![image](https://habrastorage.org/webt/gn/q2/-v/gnq2-vvbv1u9l2qsjqo_xdmfins.png)
Продолжаю публикацию решений отправленных на дорешивание машин с площадки HackTheBox.
В данной статье собираем информацию о машине, выполняем password spraying для получения пользователя, а также повышаем свои права от DnsAdmin до SYSTEM с помощью вредоносной DLL библиотеки.
Подключение к лаборатории осуществляется через VPN. Рекомендуется не подключаться с рабочего компьютера или с хоста, где имеются важные для вас данные, так как Вы попадаете в частную сеть с людьми, которые что-то да умеют в области ИБ :)
Организационная информация
Чтобы вы могли узнавать о новых статьях, программном обеспечении и другой информации, я создал канал в Telegram и группу для обсуждения любых вопросов в области ИиКБ. Также ваши личные просьбы, вопросы, предложения и рекомендации рассмотрю лично и отвечу всем.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Вся информация представлена исключительно в образовательных целях. Автор этого документа не несёт никакой ответственности за любой ущерб, причиненный кому-либо в результате использования знаний и методов, полученных в результате изучения данного документа.
Recon
Данная машина имеет IP адрес 10.10.10.169, который я добавляю в /etc/hosts.
10.10.10.169 resolute.htb
Первым делом сканируем открытые порты. Так как сканировать все порты nmap’ом долго, то я сначала сделаю это с помощью masscan. Мы сканируем все TCP и UDP порты с интерфейса tun0 со скоростью 500 пакетов в секунду.
masscan -e tun0 -p1-65535,U:1-65535 10.10.10.169 --rate=500
![image](https://habrastorage.org/webt/k1/uk/ot/k1ukotzhyjd56cow0b0oqasqkmk.png)
На хосте открыто много портов. Теперь просканируем их с помощью nmap, чтобы отфильтровать и выбрать нужные.
nmap resolute.htb -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49676,49677,49688,49915
![image](https://habrastorage.org/webt/bc/b5/yx/bcb5yxsifvtjhc-e203w7xyqatq.png)
Теперь для получения более подробной информации о сервисах, которые работают на портах, запустим сканирование с опцией -А.
nmap -A resolute.htb -p53,88,135,139,389,445,464,593,636,3268,3269,5985,9389,47001,49664,49665,49666,49667,49671,49676,49677,49688,49915
![image](https://habrastorage.org/webt/le/jg/ue/lejgue_z-x0yqnqsmzxnbdzfwok.png)
![image](https://habrastorage.org/webt/cy/v5/zi/cyv5zicubk1tuyupghapzz16jyg.png)
Из вывода nmap находим доменное имя megabank.local, которое добавляем в /etc/hosts. Первое делом в разведке для Windows — базовое перечисление. Лично я, тестируя с linux машины, использую enum4linux.
enum4linux -a megabank.local
![image](https://habrastorage.org/webt/fo/gn/ve/fognvexkwr4dzovjhb-n59wztyu.png)
![image](https://habrastorage.org/webt/mg/bx/ya/mgbxya7qhtailkwfen673xqgfxc.png)
![image](https://habrastorage.org/webt/8h/pg/1m/8hpg1mlmap9unk-dsvayaylfeu4.png)
![image](https://habrastorage.org/webt/9q/sj/64/9qsj64fxebsws98ae5dgk-jucci.png)
![image](https://habrastorage.org/webt/lb/80/ga/lb80gabpp01s5j1cbuwwwu5qae0.png)
И среди информации о домене, пользователях, группа, и парольной политике находим интересный комментарий к учетной записи пользователя mark. В комментарии содержится его пароль. Но после попытки авторизации с этими учетными данными, мы на всех сервисах терпим неудачу.
USER
Так как мы имеем уже засвеченный в системе пароль и список пользователей, мы можем использовать одну из техник Lateral Movement — это Password Spraying. Обо всем этом я подробно писал здесь. Суть в том, что мы пробуем известные пароли для всех известных пользователей.
Перебирать первым делом пробуем конечно же по SMB. Для этого можно использовать модуль smb_login для Metasploit Framework.
![image](https://habrastorage.org/webt/jq/0d/gw/jq0dgwaihzuybfux46cjgog5maa.png)
Указываем нужные параметры.
![image](https://habrastorage.org/webt/mu/sk/fh/muskfhabe--hkxh4r6peyibbmz0.png)
И успешно находим пользователя, к которому подходит данный пароль.
![image](https://habrastorage.org/webt/3c/be/eq/3cbeeqmhas_mthgr0xqltadfxya.png)
И проверяем учетные данные. Я предпочитаю smbmap, которому указываем пользователя, пароль, домен и хост.
![image](https://habrastorage.org/webt/qq/n7/mt/qqn7mthjuwwot1iun0tqzigbymc.png)
И получаем список доступных ресурсов. Если вернуться к списку портов, то там есть работающая служба WinRM на 5985. Для удобной работы с данной службой из-под linux можно использовать Evil-WinRM.
![image](https://habrastorage.org/webt/ar/qs/o5/arqso553svopq61bg-bqbpeftn0.png)
USER2
Evil-WinRM работает отлично, но метерпретер все же удобнее. Благо данная программа позволяет при подключении указывать директорию с PowerShell или C# файлами, которые будут автоматически загружены в сессию. Сгенерируем PowerShell файл, который будет содержать Meterpreter нагрузку.
![image](https://habrastorage.org/webt/sf/cx/ao/sfcxaodejj1vo0afslfu3ez4vrw.png)
И создадим листенер для прослушивания соединения.
![image](https://habrastorage.org/webt/i9/ri/r4/i9rir4zftzvjjdrjub9gakmwdbm.png)
Теперь подключаемся c Evil-WinRM и указываем директорию со скриптом.
![image](https://habrastorage.org/webt/e2/f_/xh/e2f_xhfockxgky8a__jy1uzrvri.png)
Но после запуска файла с нагрузкой, видим, что скрипт отработал без ошибок, но подключения нет.
![image](https://habrastorage.org/webt/wm/dc/xj/wmdcxjb_c0qwigchcwmfyvrujym.png)
Скорее всего скрипт был заблокирован. Так как это PowerShell, то скорее всего с помощью AMSI. Но Evil-WinRM имеет собственные полезные модули.
![image](https://habrastorage.org/webt/vh/yb/y8/vhyby8bp6gimrzevacifhlqmpva.png)
Как можно догадаться, нам нужен первый. Применим данный модуль и снова запустим наш файл с нагрузкой.
![image](https://habrastorage.org/webt/7n/zo/jd/7nzojdvvvylhcmksvfowwzknxu8.png)
И наблюдаем успешное соединение.
![image](https://habrastorage.org/webt/w_/9u/sb/w_9usb7uyyblhvalp1mnnhe-ec4.png)
После запуска скриптов для Recon’a, обхода машины, натыкаемся на интересную директорию.
![image](https://habrastorage.org/webt/0f/7u/r5/0f7ur5peboaw5b-btlbkt_i-2mq.png)
Это директория, которая хранит текстовый файл с записанной сессий PowerShell, после команды “Start-Transcript”. Ищем файл.
![image](https://habrastorage.org/webt/bj/yn/tq/bjyntq4um9hqaa_nyczbaxq63mk.png)
Давайте посмотрим содержимое.
![image](https://habrastorage.org/webt/xm/ed/so/xmedsokrl0wpjezu-jlts-sntlg.png)
Так, это сессия пользователя Ryan. И чуть дальше находим команду, с которой передавался пароль.
![image](https://habrastorage.org/webt/s0/e8/kr/s0e8krsihtsjrgmnghnfeaix_zm.png)
Пробуем учетные данные для службы WinRM.
![image](https://habrastorage.org/webt/hp/ys/r7/hpysr7o0ttyvb84rywglvbfhiji.png)
И в итоге логинимся как Ryan.
ROOT
И первым делом, проверяя информацию о текущем пользователе, находим интересную особенность. Он является членом группы DnsAdmins.
![image](https://habrastorage.org/webt/ux/7x/ab/ux7xabfv8ooxpgvhcx9obvxb01e.png)
Это дает нам возможность повысить свои привилегии до SYSTEM. Мы можем попросить загрузить DLL при следующем запуске службы. Давайте сгенерируем DLL, содержащую нагрузку meterpreter.
![image](https://habrastorage.org/webt/4r/7z/xp/4r7zxplhr6orsb3gmr8s07ffk9a.png)
И запустим листенер.
![image](https://habrastorage.org/webt/uu/ef/4r/uuef4rkqmxy9_hhduqix6utuqvq.png)
Теперь активируем smb-сервер. Указываем директорию, название и поддержку SMB 2-й версии.
![image](https://habrastorage.org/webt/vg/qc/s9/vgqcs9mkmhzjx_24kpl8ofkxbsg.png)
Теперь с помощью dnscmd укажем, какую DLL загрузить.
![image](https://habrastorage.org/webt/d4/4c/n7/d44cn7-e3e_swbqk--zg9b74cos.png)
![image](https://habrastorage.org/webt/uw/fc/vq/uwfcvqs8sruryh5guqsrhsoidwu.png)
Команда успешно выполнена, теперь перезагрузим службу DNS.
![image](https://habrastorage.org/webt/sm/28/sp/sm28sprkxmrrvvutvok8dhnjkda.png)
И после перезагрузки видим подключение по SMB.
![image](https://habrastorage.org/webt/1l/g1/xq/1lg1xqphy3ooqbjwtlldgzjsm50.png)
А также открытую сессию.
![image](https://habrastorage.org/webt/b5/cz/fi/b5czfis340lgjqh6q0hs_cy3z-m.png)
И мы получаем права System.
Вы можете присоединиться к нам в Telegram. Там можно будет найти интересные материалы, слитые курсы, а также ПО. Давайте соберем сообщество, в котором будут люди, разбирающиеся во многих сферах ИТ, тогда мы всегда сможем помочь друг другу по любым вопросам ИТ и ИБ.
czuryk
А если бы не было бы пароля в дескрипшене, куда бы развивался вектор атаки?)