Найти тему

Photographer 1: пошаговый разбор Vulnhub

Оглавление

В этой статье пойдет речь о том, как получить доступ к root для машины с легким уровнем безопасности под названием «Photographer 1». Она доступна на Vulnhub для тестирования на проникновение. Пользователи могут скачать все необходимое, перейдя по ссылке. Большой вклад в создание этой лаборатории внес v1n1v131r4.

Итак, пора начинать и узнать, как успешно получить доступ к root.

Разведка обстановки

Настало время создать свою собственную лабораторию. Человек будет использовать сеть NAT. Сначала он определит IP-адрес уязвимой машины с помощью netdiscover. В данном случае следует ввести команду:

netdiscover -r 10.0.2.0/24

-2

Итак, найденный IP-адрес – 10.0.2.20.

Теперь, когда у пользователя есть IP-адрес его целевой машины, необходимо продолжить сканирование с помощью nmap. Это будет сделано за счет следующей команды:

sudo nmap –sV 10.0.2.20

На приведенном ниже скриншоте можно увидеть, что на целевой машине открыты 4 порта, которые в дальнейшем могут быть использованы для процесса перечисления.

Обнаруженные порты – 80, 139, 445 и 8000.

-3

Перечисление

При открытых портах 139 и 445, которые также являются портами SMB, стоит попробовать найти «низко висящий плод», что-то очень доступное, к примеру, Sambashare. Обычно в boot2root пользователь запускает нулевой сеанс и смотрит, получил ли он какую-либо информацию. В данном случае человек будет использовать smbclient, чтобы найти определенные данные, к которым он способен получить доступ без creds. Для поиска таких важных ресурсов необходимо ввести следующие команды:

smbclient –N –L \\\\10.0.2.20
smbclient \\\\10.0.2.20\\sambashare
get mailsent.txt
get wordpress.bkp.zip

Отлично!!! Итак, похоже, что пользователь может получить доступ к Sambashare. Стоит продолжить трудиться над этим и выполнить задуманный план.

Человек находит два файла в Sambashare с именами mailsent.txt и wordpress.bkp.zip, который он загрузит на свою машину для дальнейшего осмотра с помощью команды GET.

-4

Файл mailsent.txt кажется интересным. Стоит просмотреть его и понять, скрывает ли он что-нибудь полезное для пользователя.

-5

У человека теперь есть кое-какая важная информация. Он получил два имени пользователя Daisa и Agi.

Понятно, что Agi заключает в себе какой-то секрет. На этом этапе человек почувствовал, что это может быть определенный ключ, связанный с учетными данными, поэтому необходимо сохранить эту информацию для дальнейшего использования.

-6

Теперь, когда у человека есть имена пользователей, настало время перейти к перечислению порта 80. К сожалению, пользователь не смог придумать ничего более продуктивного, поэтому он, собственно, и решил перечислить порт 8000. Был получен такой результат:

-7

Сервер, похоже, работает под управлением KOKEN CMS. Стоит погуглить про него, чтобы найти общедоступный эксплойт. Кажется, необходимый общедоступный эксплойт был обнаружен.

https://www.exploit-db.com/exploits/48706

-8

Применение полученных данных

Читая эксплойт, пользователю кажется, что это аутентифицированный эксплойт загрузки файлов, а это значит, что ему потребуются некоторые учетные данные. Перейдя на страницу администратора CMS, он увидит, что там нужно ввести именно них:

-9

После некоторых проб и ошибок пользователь все еще не мог войти в систему. Похоже, это блокпост на дороге к успеху. Но точно же, человек еще не пробовал верительные грамоты, которые получил ранее.

Если читатели помнят, пользователь смог получить два имени пользователя Daisa и Agi из файла mailsent.txt. Следует попробовать применить эти учетные данные.

Отлично!!! Пользователь успешно вошел в систему, используя следующие учетные данные:

daisa@photographer.com : babygirl.

Пользователь смог войти в систему CMS.

-10

Теперь пользователь загрузит свой Shell PHP, который уже доступен на Kali. Чтобы загрузить его, человек будет следовать определенным шагам. Сначала он нажимает на кнопку «Импортировать контент».

-11

Теперь пользователь получает возможность загрузить его Shell, это видно на картинке ниже.

-12

Перед отправкой своего обратного Shell PHP пользователь должен добавить расширение jpg к нему для того, чтобы обойти фильтрацию расширений в соответствии с эксплойтом. Как только файл будет переименован соответствующим образом, человек будет использовать Burp Suite для перехвата импортированных данных, удаления расширения jpg и пересылки запроса.

-13

После внесения изменений пользователю нужно нажать на вкладку «Вперед» два-три раза. Он немедленно получает обратный Shell на его листенере Netcat.

Теперь, когда пользователь получил обратный Shell, он сначала создаст другой Shell с помощью команды:

python -c "import pty;pty.spawn('/bin/bash')"

После этого пользователь изменит каталог с home на daisa. Как только он окажется в каталоге dais, человек отправится дальше и откроет файл user.txt. Открыв его, пользователь обнаружил пользовательский флаг, как показано на рисунке ниже.

-14

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

Теперь пришло время для той части CTF, которую ждут все читатели. Теперь пользователь постарается получить доступ к root. Но не стоит спешить – следует действовать медленно и спокойно. Сначала пользователь проверит наличие любых двоичных файлов suid с помощью команды:

find / -perm –u=s –type f 2>/dev/null

-15

Похоже, что php7.2 был установлен в suid. Пользователь может легко увеличить его привилегии, используя php7.2 следующим образом:

/usr/bin/php7.2 -r "pcntl_exec('/bin/bash', ['-p']);"

Для этого он обратился к bins GTFO.

Отлично!!! Теперь, когда у пользователя есть доступ к root, он готов получить флаг root.

Все так думают, так что настала пора пойти и захватить этот последний флаг. Как только пользователь окажется в root shell, ему просто нужно изменить свой каталог на root с помощью команды:

cd root

Теперь, когда человек находится в каталоге root, он прочитает файл proof.txt с помощью команды. Теперь у него есть доступ к последнему флагу, как показано на картинке ниже.

-16

Автор переведенной статьи: Arnav Tripathy.

Важно! Информация исключительно в учебных целях. Пожалуйста, соблюдайте законодательство и не применяйте данную информацию в незаконных целях.