![]() |
Введение
Наверное каждый уважающий себя специалист по информационной безопасности знает, а может и проходил такие испытания как CTF. Это своеобразный мозговой штурм, который заставляет использовать изощренные методы взлома систем или серверов. Их основная задача оттачивать определенные навыки в поиске и эксплуатации отдельного типа уязвимостей. Площадок для тренировок огромное множество и в этой статье я решил остановиться на платформе Hack The Box. Так как мои навыки в этом деле очень малы я решил взять одну из легких машин с названием Support. И сегодня я расскажу тебе как ее пройти. Подготовка к работе Перед началом тебе следует ознакомиться с тем, как вообще проходить такие CTF. Прежде всего следует начать со сканирования. Конечно, я пропускаю момент подключения к самой лаборатории при помощи openvpn, но думаю с этим ты разберешься сам. Далее идет анализ портов и поиск уязвимых из них. Не переживай, на каждую дыру есть свой эксплоит, поэтому проводить все вручную тебе не придется. Здесь также важно помнить, что по мимо взлома ты чаще всего должен уметь повышать привилегии в системе. Для этого всего мы будем использовать отдельный софт. Здесь я коротко описал то, как будет строится наша дальнейшая работа. Приступаем к делу! Сканирование и анализ Всю работу я провожу на виртуальной машине Kali Linux, поэтому все команды демонстрируются под нее. Ну а первым делом мы открываем консоль и сканируем машину при помощи любимого nmap. Bash: Код:
sudoКод: Код:
Starting Nmap 7.92 ( https://nmap.org ) at 2022-09-25 06:40 MSKBash: Код:
digBash: Код:
10.10Bash: Код:
# HTBПодключение и поиск Чтобы провернуть такую махинацию я буду использовать сетевой протокол SMB. Он позволяет приложениям компьютера читать и записывать файлы, а также запрашивать службы серверных программ в компьютерной сети. Поэтому для нашей работы он более чем подходит. Активируем все это дело командой: Bash: Код:
smbclient -N -Lhttps://forum.antichat.xyz/attachmen...8493257264.png Выглядит все многообещающи. Но я остановлюсь на папке support-tools и попробую поискать в ней интересные файлы. Делаем это при помощи запроса: Bash: Код:
smbclient -Nhttps://forum.antichat.xyz/attachmen...8eb16934c7.png Среди тонны ничем не примечательных программ я обратил внимание на файл UserInfo.exe.zip. Довольно странное расширение для такого архива. Ну а название говорит само за себя. Очевидно файл скрывает нужную нам информацию и чтобы до нее добраться давай скачаем все содержимое при помощи команд. Код: Код:
smb: \> mask ""Все скачалось и теперь можно проанализировать полученный файл. Я буду это делать при помощи известного dnSpy. Ты же можешь использовать любой удобный для тебя декомпилятор. Открываем файл и видим следующую картину: https://forum.antichat.xyz/attachmen...a672b82376.png Пошаримся немного по программе и перейдем к делу. Если ты не нашел нужную информацию, то советую заглянуть в UserInfo.Services и найти там ветку Protected. Здесь ты найдешь зашифрованный пароль. Теперь надо понять откуда у нас берется информация о пользователях. Для этого прогоним нашу программу через mono: Код: Код:
mono UserInfo.exehttps://forum.antichat.xyz/attachmen...b57da3776b.png Похоже наш файл обращается к серверу, чтобы найти пользователя и узнать о нем более подробную информацию. Воспользуемся этим. Конечно, здесь есть два варианта событий. Либо перехватывать трафик и вынимать из него пароль или же дизассемблировать и пересобирать программу, чтобы узнать алгоритм шифрования. Я воспользуюсь самым простым способом, но если твои навыки реверса выше среднего, то ты можешь попытаться найти ответы в коде программы. Чтобы все сработало тебе потребуется начинать перехват сразу же после запуска. Адаптер, который тебе нужен называется tun0. Запускаем программу при помощи команды: Bash: Код:
mono UserInfo.exe -vТеперь тут же начинаем перехват нашего трафика и останавливаем его после завершения работы программы. В результате ты увидишь такую информацию. https://forum.antichat.xyz/attachmen...0ac72a5b04.png Кликаем правой кнопкой мыши по выделенному пакету, выбираем функцию Следовать и переходим на протокол TCP. Прекрасно! У нас на руках есть логин и пароль для подключения (ldpa:nvEfEK16^1aM4$e7AclUf8x$tRWxPWO1%lmz). https://forum.antichat.xyz/attachmen...b12afb07dc.png После этого давай попробуем найти всю информацию о пользователях и соответственно сдампим ее при помощи утилит ldpasearch и ldpadomaindump. Выполняем команды по такому шаблону: Bash: Код:
ldapsearch -x -H ldap://Bash: Код:
ldapsearch -x -H ldap://dc.support.htb -DBash: Код:
ldapdomaindump -uhttps://forum.antichat.xyz/attachmen...b2879b1433.png Обычно строка info остается пустой в этом файле, но здесь есть какая-то информация, похожая на пароль. Давай попробуем подключиться используя эту строку как данные для входа. Я буду использовать Evil-WinRM, установим его при помощи команд и попробуем провести соединение: Bash: Код:
githttps://forum.antichat.xyz/attachmen...90e159f7f0.png Переходим по пути C:\Users\support и поищем интересные каталоги. Итак, перед тобой будет такая картина: https://forum.antichat.xyz/attachmen...42e319f0d4.png Начнем с самого первой папки и посмотрим, что там хранится. На удивление на рабочем столе у нас лежит один текстовый документ, давай скачаем его: https://forum.antichat.xyz/attachmen...45577d481a.png Ты уже мог догадаться, что в этом файле у нас лежит флаг. Не буду задерживать, потому что ты знаешь, что с этим делать. Ну а мы переходим к этапу повышения наших привилегий в системе. Повышаем привилегии в системе Здесь я не буду рассказывать путь к уязвимости, а лишь скажу, что она связана с привилегиями пользователя Support (GenericAll), которые помогут нам повысить привилегии до уровня системного администратора. Для атаки мы будем использовать три утилиты: impacket, Powermad, Rubeus и SharpHound. Создадим папку tools и поместим туда эти программы. Теперь нам надо создать фейковый аккаунт, для нашей работы. Так как мы работает в среде Windows, то нам придется использовать PE-файлы. Поэтому соберем проект Rubeus при помощи Visual Studio. Для этого воспользуемся функцией клонирования репозитория. https://forum.antichat.xyz/attachmen...71363a0c7e.png Далее тебе вылезет надоедливое уведомление о том, что версии NET Framework несовместимы. Выбери рекомендуемое системой решение. Далее открываем файл и нажимаем на основной C# файл правой кнопкой мыши. В выпадающем окне выбираем функцию Собрать. https://forum.antichat.xyz/attachmen...93f7b662a4.png Ждем несколько минут, получаем кучу ошибок и понимаем, что наш любимый антивирус видит угрозу там, где ее нет. Отключаем его раз и навсегда и пробуем собрать все по новой. Отлично! Программа готова для работы. https://forum.antichat.xyz/attachmen...52aafe3261.png Перекидываем ее в нашу виртуальную машину и помещаем в папку tools. Теперь переходим к созданию аккаунта. Надеюсь ты не потерял сессию Evil-WinRM, поскольку нам она пригодится для работы. Приступаем к работе, но для этого нам нужно сначала выгрузить все программы на удаленную машину: Bash: Код:
upload /home/user/tools/Powermad/Powermad.ps1 pm.ps1Bash: Код:
./sh.exe --memcache -c all -d SUPPORT.HTB -DomainControllerBash: Код:
Set-Variable -NameBash: Код:
xxxxxxxxxx Set-ADComputerBash: Код:
./r.exeТеперь ты можешь закрыть соединение с машиной и приступить к повышению привилегий. Для этого воспользуемся impacket и будем выдавать себя за админа. Организуем все это при помощи такой команды: Bash: Код:
cdBash: Код:
exportПодводим итоги Писать статьи такого типа гораздо сложнее, поэтому я описал все как можно подробнее. Конечно, прохождение не обошлось без помощи, но думаю теперь ты будешь более подробно представлять, как проходить CTF. Support является одной из самых легких машин, но без опыта и прохождения обучения тебе придется сложно. |
Очень интересно, спасибо
|
| Время: 20:57 |