September 7

Базовый инструментарий для атак на инфраструктуру 

@fefuctf @collapsz


Инфра тема, гораздо интереснее вэбчика @cherepawwka


Вступление

Всем привет! Вы не забыли и не дали мне слиться, а потому представляю вашему вниманию чтиво по базовому инструментарию для атак на инфраструктуру=) Сразу условлюсь, что данный материал направлен на тех, кому предстоит столкнуться с инфрой впервые, если же вам уже доводилось её ломать, многое из описанного будет вам уже знакомо. Приятного прочтения!

Начнем с утилит для проведения самого первого этапа – разведки.

NMAP

В представлении не нуждается. Официальный сайт – nmap.org. Классический сканер, имеющий огромное количество техник сканирования, скриптов и модулей. Поиск хостов в подсети, сканирование сервисов и их версий, определение версии OS, брутфорс учетных записей и еще многое-многое другое – это то, что может предоставить nmap.

nmap -h

Rustscan

Одна из лучших альтернатив для nmap – Rustscan. Сверхбыстрый сканер портов, написанный на Rust. Сканирует все 65к портов за считанные секунды, легко устанавливается и поддерживает скрипты nmap'а

rustscan

Почта

На этапе разведки бывает важно собрать все почтовые адреса, расположенные в зоне скоупа. Можно пользоваться автоматизированными утилитами, например, theHarvester, однако в контексте студенческой битвы будет достаточно внимательно изучить ресурс и найти на нем 2-3 почтовых ящика.

Metasploit Framework

MSF – мощнейшая утилита для создания и отладки эксплоитов, предустановленная в Kali Linux.

mfsconsole

Основные компоненты:

  1. Metasploit Framework: Основной компонент, предоставляющий структуру и инструменты для проведения атак.
  2. Metasploit Database: Содержит информацию об уязвимостях, эксплойтах, модулях и целевых системах.
  3. Metasploit Console: Интерактивный интерфейс для управления фреймворком и выполнения задач.
  4. Metasploit Modules: Разнообразные модули, разделенные на категории: exploits, payloads, auxiliary, post-exploitation, encoders.

Поддерживает создание полезной нагрузки для получения более функционального reverse-shell соединения, умеет эксплуатировать некоторые уязвимости в автоматическом режиме, умеет готовить эксплоиты для запуска на атакуемой машине и еще многое, многое другое! Функционал фреймворка настолько обширен, что он просто-напросто обязателен к изучению.

Impacket

Python Impacket – набор классов для работы с сетевыми протоколами

Python-Impacket

Установка:

sudo apt install python3-impacket

Impacket это мощный инструмент для тестирования на проникновение, предоставляющий широкие возможности для взаимодействия с сетевыми протоколами и службами. В потенциальные возможности Impacket входят:

  1. Сканирование и перечисление
  2. Эксплуатация уязвимостей
  3. Пост-эксплуатация

Из всех функций импакета могу выделить следующие наиболее используемые модули:

  1. impacket-GetUserSPNs – позволяет запросить Service Ticket для учетной записи, обладающей SPN (service principal name) и взломать его с целью получения пароля. Данная атака называется Kerberoasting
  2. impacket-GetNPUsers – позволяет запросить доменных пользователей с отключенной преаутентификацией и запросить TGT на их имя без пароля, после чего можно попытаться взломать сессионный ключ, отправленный с тикетом и получить пароль пользователя. Данная атака называется AS-REP-Roasting
  3. impacket-psexec – позволяет запускать процессы на удаленных системах
  4. impacket-smbclient – позволяет взимодействовать с SMB сервером
  5. impacket-getTGT – позволяет запросить TGT тикет, имея на руках Kerberos ключ или NTLM хеш
  6. impacket-getST – позволяет запросить service ticket
  7. impacket-wmiexec – позволяет подключиться к системе и получить интерактивный шелл при помощи WMI (Windows Management Instrumentation)

Функционал, опять же, настолько обширен, что чтобы набить руку на эту утилиту уйдет достаточно много времени.

Kerbrute

Следующий на очереди инструмент – Kerbrute.

Утилита для быстрого и точного перечисления и брутфорса учетных записей Active Directory, использующая механизм преаутентификации Kerberos.

Установка:

go get github.com/ropnop/kerbrute

Поддерживает атаки: bruteuser, passwordspray, userenum, bruteforce. Особо ничего и не добавишь =)

Kerbrute

Crackmapexec

Следующий клиент – crakmapexec.

Утилита так же служит для перечисления и брутфорса учетных записей, но в данном случае работает со следующими протоколами: smb, mssql, win-rm, ldap, rdp, smb, ssh, ftp.

crackmap

В Kali Linux предустановлена.

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

Установка:

pip install bloodhound

Для чего нужен данный инструмент? Представим, что вы нашли первую валидную пару учетных данных и получили доступ в домен, что дальше? Bloodhound позволяет вам сдампить всю информацию о строении домена – учетные записи, группы, администраторы, политики, взаимосвязи между ними, и представить это в виде графа:

bloodhound

Это мощнейший инструмент для анализа строения атакуемого домена, который так же нередко может помочь с поиском вектора повышения привилегий.

Mimikatz

Mimikatz – утилита для извлечения критических данных (паролей, хешей, учетных записей, токенов доступа и других секретов) из памяти системы. Есть альтернатива, написанная на Python – pypykatz

mimikatz

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

John

Думаю, эти двое в представлении тоже не нуждаются. Это утилиты для брутфорса различных хешей: первая работает на процессоре, вторая – на видеокарте. В Kali Linux предустановлены.

Как правило, John используется для взлома более простых хешей, hashcat – для более сложных

Responder

Responder - это инструмент для тестирования на проникновение, который используется для перехвата сетевого трафика, сбора учетных данных и как часть цепочки в атаке ntlm-relay.

Responder

Как работает Responder:

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 не самая простая в использовании утилита и требует практики.

Эскалация привилегий

В контексте инфраструктуры существует огромное количество способов повышения привилегий, останавливаться на них мы сейчас не будем, но приведу пару утилит, которые могут помочь в поиске вектора эскалации:

  1. WinPEAS – Windows Privilege Escalation Amazing Scripts
  2. LaZagne – харвестер данных с машины
  3. PowerView – набор скриптов для перечисления домена

Pivoting

Пивотинг – техника получения доступа к локальным ресурсам домена, которые не доступны извне. Используя техники пивотинга атакующий как бы делает вид, что находится в одной локальной сети организации. Говоря более техническим языком, техники пивотинга позволяют сделать маршрутизируемым тот трафик, который по умолчанию таковым не является.

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 впервые требует практики!

Заключение

В данном материале охвачен лишь самый базовый набор инструментов, используемый при работе с инфраструктурой, однако этого набора достаточно, чтобы найти подход и познакомиться с атаками на нее.

Keep researching!