Базовый инструментарий для атак на инфраструктуру
Инфра тема, гораздо интереснее вэбчика @cherepawwka
Вступление
Всем привет! Вы не забыли и не дали мне слиться, а потому представляю вашему вниманию чтиво по базовому инструментарию для атак на инфраструктуру=) Сразу условлюсь, что данный материал направлен на тех, кому предстоит столкнуться с инфрой впервые, если же вам уже доводилось её ломать, многое из описанного будет вам уже знакомо. Приятного прочтения!
Начнем с утилит для проведения самого первого этапа – разведки.
NMAP
В представлении не нуждается. Официальный сайт – nmap.org. Классический сканер, имеющий огромное количество техник сканирования, скриптов и модулей. Поиск хостов в подсети, сканирование сервисов и их версий, определение версии OS, брутфорс учетных записей и еще многое-многое другое – это то, что может предоставить nmap.
Rustscan
Одна из лучших альтернатив для nmap – Rustscan. Сверхбыстрый сканер портов, написанный на Rust. Сканирует все 65к портов за считанные секунды, легко устанавливается и поддерживает скрипты nmap'а
Почта
На этапе разведки бывает важно собрать все почтовые адреса, расположенные в зоне скоупа. Можно пользоваться автоматизированными утилитами, например, theHarvester, однако в контексте студенческой битвы будет достаточно внимательно изучить ресурс и найти на нем 2-3 почтовых ящика.
Metasploit Framework
MSF – мощнейшая утилита для создания и отладки эксплоитов, предустановленная в Kali Linux.
- Metasploit Framework: Основной компонент, предоставляющий структуру и инструменты для проведения атак.
- Metasploit Database: Содержит информацию об уязвимостях, эксплойтах, модулях и целевых системах.
- Metasploit Console: Интерактивный интерфейс для управления фреймворком и выполнения задач.
- Metasploit Modules: Разнообразные модули, разделенные на категории: exploits, payloads, auxiliary, post-exploitation, encoders.
Поддерживает создание полезной нагрузки для получения более функционального reverse-shell соединения, умеет эксплуатировать некоторые уязвимости в автоматическом режиме, умеет готовить эксплоиты для запуска на атакуемой машине и еще многое, многое другое! Функционал фреймворка настолько обширен, что он просто-напросто обязателен к изучению.
Impacket
Python Impacket – набор классов для работы с сетевыми протоколами
sudo apt install python3-impacket
Impacket это мощный инструмент для тестирования на проникновение, предоставляющий широкие возможности для взаимодействия с сетевыми протоколами и службами. В потенциальные возможности Impacket входят:
Из всех функций импакета могу выделить следующие наиболее используемые модули:
impacket-GetUserSPNs
– позволяет запросить Service Ticket для учетной записи, обладающей SPN (service principal name) и взломать его с целью получения пароля. Данная атака называется Kerberoastingimpacket-GetNPUsers
– позволяет запросить доменных пользователей с отключенной преаутентификацией и запросить TGT на их имя без пароля, после чего можно попытаться взломать сессионный ключ, отправленный с тикетом и получить пароль пользователя. Данная атака называется AS-REP-Roastingimpacket-psexec
– позволяет запускать процессы на удаленных системахimpacket-smbclient
– позволяет взимодействовать с SMB серверомimpacket-getTGT
– позволяет запросить TGT тикет, имея на руках Kerberos ключ или NTLM хешimpacket-getST
– позволяет запросить service ticketimpacket-wmiexec
– позволяет подключиться к системе и получить интерактивный шелл при помощи WMI (Windows Management Instrumentation)
Функционал, опять же, настолько обширен, что чтобы набить руку на эту утилиту уйдет достаточно много времени.
Kerbrute
Следующий на очереди инструмент – Kerbrute.
Утилита для быстрого и точного перечисления и брутфорса учетных записей Active Directory, использующая механизм преаутентификации Kerberos.
go get github.com/ropnop/kerbrute
Поддерживает атаки: bruteuser, passwordspray, userenum, bruteforce. Особо ничего и не добавишь =)
Crackmapexec
Следующий клиент – crakmapexec.
Утилита так же служит для перечисления и брутфорса учетных записей, но в данном случае работает со следующими протоколами: smb, mssql, win-rm, ldap, rdp, smb, ssh, ftp.
NetExec
Еще одно Open-Source решение, следующее поколение crackmapexec – NetExec
sudo apt install pipx git pipx ensurepath pipx install git+https://github.com/Pennyw0rth/NetExec
Утилита поддерживает работу по бОльшему количеству протоколов, поддерживает password spray, user enumeration, command execution, authorization и ряд других функций
ADGenerator
Прежде чем двинемся дальше, представьте, что вы точно знаете имя сотрудника организации, но понятия не имеете, какое имя у его учетной записи. Как быть в таком случае? Как проводить атаки на учетку, имя которой неизвестно? Здесь нас спасает незамысловатый скрипт – ADGenerator.
Он принимает на вход список имен, из которых генерирует список учетных записей, пригодных для перечисления при помощи kerbrute, crackmapexec или netexec и тд
Bloodhound Python
Базирующийся на Импакете харвестер домена – Bloodhound
Для чего нужен данный инструмент? Представим, что вы нашли первую валидную пару учетных данных и получили доступ в домен, что дальше? Bloodhound позволяет вам сдампить всю информацию о строении домена – учетные записи, группы, администраторы, политики, взаимосвязи между ними, и представить это в виде графа:
Это мощнейший инструмент для анализа строения атакуемого домена, который так же нередко может помочь с поиском вектора повышения привилегий.
Mimikatz
Mimikatz – утилита для извлечения критических данных (паролей, хешей, учетных записей, токенов доступа и других секретов) из памяти системы. Есть альтернатива, написанная на Python – pypykatz
Mimikatz работает, используя уязвимости в API Windows, чтобы получить доступ к данным, хранящимся в памяти. Методы, используемые mimikatz: Pass-the-Hash, Pass-the-Ticket, Pass-the-Key, Kerberos golden/silver Ticket, Pass-the-Cache.
Учтите, что для полноценной работы mimikatz его необходимо запускать с правами администратора!
John The Ripper && Hashcat
Думаю, эти двое в представлении тоже не нуждаются. Это утилиты для брутфорса различных хешей: первая работает на процессоре, вторая – на видеокарте. В Kali Linux предустановлены.
Как правило, John используется для взлома более простых хешей, hashcat – для более сложных
Responder
Responder - это инструмент для тестирования на проникновение, который используется для перехвата сетевого трафика, сбора учетных данных и как часть цепочки в атаке ntlm-relay.
1. Запуск Responder: Вы запускаете Responder на машине, которая находится между атакуемой системой и сервером, к которому эта система обращается.
2. Перехват трафика: Responder перехватывает сетевой трафик, в том числе запросы аутентификации NTLM (NT LAN Manager).
3. Создание ответов: Когда Responder перехватывает запрос аутентификации NTLM, он создает ложный ответ, имитируя ответ сервера.
4. Сбор учетных данных: Ложный ответ содержит поддельные данные, которые позволяют Responder собрать учетные данные пользователя, в том числе имя пользователя, пароль и хэш NTLM.
5. Атаки типа "Pass-the-Hash": Responder может использовать украденные хэши NTLM для атак типа "Pass-the-Hash". Он может имитировать ответ сервера, используя украденный хэш, чтобы получить доступ к другим ресурсам сети от имени пользователя.
Responder не самая простая в использовании утилита и требует практики.
Эскалация привилегий
В контексте инфраструктуры существует огромное количество способов повышения привилегий, останавливаться на них мы сейчас не будем, но приведу пару утилит, которые могут помочь в поиске вектора эскалации:
- WinPEAS – Windows Privilege Escalation Amazing Scripts
- LaZagne – харвестер данных с машины
- PowerView – набор скриптов для перечисления домена
Pivoting
Пивотинг – техника получения доступа к локальным ресурсам домена, которые не доступны извне. Используя техники пивотинга атакующий как бы делает вид, что находится в одной локальной сети организации. Говоря более техническим языком, техники пивотинга позволяют сделать маршрутизируемым тот трафик, который по умолчанию таковым не является.
Для пивотинга существует целый ряд утилит, вот некоторые из них:
Socat
Утилита, позволяющая переадресовывать сокеты с хостовой машины на клиентскую
Chisel
В простонародье "числа" – утилита для port forwarding. Представим, что вы скомпроментировали хост, на котором обнаружили локально поднятое веб-приложение, недоступное извне. "Числа" имеют два режима работы – клиент и сервер, которые устанавливают между собой соединение и позволяют запускать локальное веб-приложение с атакуемой машины через localhost атакующей машины.
Sshuttle
Open-sourсe прокси для туннелирования трафика.
Ligolo
Одна из лучших утилит для пивотинга, полюбившаяся многим пентестерам
С2 Frameworks
После получения доступа и закрепления в системе, желательно пустить корни еще глубже, чтобы, например, случайное падение сервера или отлетевшая сессия не стали поводом повторять всю атаку заново. Для этого используются Command & Control (C2) фреймворки. Вариантов таких фреймворков уйма – Cobalt Strike, Sliver, Empire и другие, большой список С2 можно найти здесь
Так же эти фреймворки содержат весь необходимый набор утилит для дальнейшего продвижения в инфраструктуре.
Лично мне на данном этапе довелось поработать со sliver и empire – очень крутые бесплатные C2 фреймворки, однако учтите, что работа с С2 впервые требует практики!
Заключение
В данном материале охвачен лишь самый базовый набор инструментов, используемый при работе с инфраструктурой, однако этого набора достаточно, чтобы найти подход и познакомиться с атаками на нее.