Эксплуатация сети Windows с помощью Impacket Framework

  • Автор темы Автор темы LeSh1y777
  • Дата начала Дата начала

LeSh1y777

Пользователь
Регистрация
25/9/25
Сообщения
5,682
Репутация
49
Лайки
153
Депозит
-8.95$
Добро пожаловать обратно, начинающие кибервоины!

Хотя многие специалисты по безопасности знакомы с популярными фреймворками, такими как Metasploit или Burp Suite, существует мощная библиотека Python, которая часто остаётся незамеченной, несмотря на то, что является одним из самых универсальных и необходимых инструментов в арсенале любого бойца Red Team. Этот инструмент — Impacket, и сегодня мы рассмотрим, почему этот набор классов Python стал незаменимым для эксплуатации сетевых протоколов и горизонтального перемещения в современных тестах на взлом и проникновение.

Что делает Impacket необходимым для наступательной безопасности

Impacket — это набор классов Python, обеспечивающий низкоуровневый программный доступ к сетевым протоколам. В отличие от многих инструментов безопасности с простыми интерфейсами «укажи и щелкни», Impacket требует более глубокого понимания сетевых протоколов и внутреннего устройства Windows. Именно эта кривая обучения делает его настолько мощным инструментом, предоставляя вам возможности манипулирования сетевыми протоколами, позволяющие обходить традиционные средства безопасности и механизмы обнаружения.

Impacket реализует десятки сетевых протоколов, включая SMB, MSRPC, LDAP и Kerberos. Это не простые оболочки, а полноценные реализации, разработанные с нуля, обеспечивающие детальный контроль над взаимодействием между протоколами. В комплект входят готовые скрипты, такие как psexec.py, smbexec.py и wmiexec.py, которые предоставляют различные методы для удалённого выполнения кода в системах Windows.

Отличительной чертой Impacket является его ориентация на легитимные протоколы Windows, а не на эксплойты. Такой подход позволяет вам слиться с обычным сетевым трафиком и избежать обнаружения системами мониторинга безопасности, ориентированными на известные шаблоны эксплойтов. Генерируемый трафик практически неотличим от легитимных действий администратора Windows.

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

Установка и настройка Impacket

Для получения последних функций и кода разработки вы можете установить Impacket непосредственно из репозитория GitHub, используя виртуальную среду Python:

кали> судоapt install python3.13-venv

<strong>kali&gt; source impacket-env/bin/activate</strong>

<strong>kali&gt; git clone <a href="https://github.com/fortra/impacket.git">https://github.com/fortra/impacket.git</a></strong>

<strong>kali&gt; cd impacket</strong>

<strong>kali&gt; pip install .</strong>

impacket_installation.png


После завершения установки вы можете убедиться, что Impacket установлен правильно, проверив версию и доступные скрипты. В процессе установки в каталоге скриптов Python, обычно расположенном в /usr/bin, должно быть размещено множество исполняемых скриптов.

impacket_scripts.png

Проверить установку можно, запустив один из включенных скриптов с флагом help:

кали > psexec.py -h

impacket_help.png

Если установка прошла успешно, вы увидите справку по скрипту psexec.py, содержащую информацию о параметрах командной строки и примеры использования. Это подтверждает, что Impacket установлен правильно и готов к использованию.

Удаленное выполнение кода с помощью PSExec

Одним из наиболее часто используемых инструментов в арсенале Impacket является psexec.py, представляющий собой реализацию утилиты Microsoft PSExec на Python. Этот инструмент позволяет выполнять команды на удалённых системах Windows, используя легитимные протоколы администрирования Windows.

Скрипт psexec.py использует диспетчер служб Windows для создания и запуска временной службы в целевой системе. Эта служба выполняет указанную вами команду и возвращает вывод через именованные каналы. Поскольку он использует стандартные протоколы администрирования Windows, он часто обходит средства безопасности, которые могут блокировать другие методы удалённого выполнения кода.

Шаг 1: Определите целевую систему Windows

kali> nmap -sT <IP>


impacket_nmap.png

Шаг 2: Соберите учетные данные

Вам понадобятся действительные учетные данные Windows с правами администратора:

  • Учетная запись локального администратора
  • Учетная запись администратора домена
  • Любая учетная запись в локальной группе администраторов
Шаг 3: Проверка базового подключения

Тестирование подключения SMB:

кали><strong>smbclient -L //</strong><strong>&lt;IP&gt;</strong><strong> -U username</strong>

impacket_smb.png

  • ADMIN$ – Административный ресурс (указывает, что учетная запись имеет права администратора)
  • C$ – общий ресурс диска C по умолчанию (также требуется доступ администратора)
  • IPC$ – общий ресурс межпроцессного взаимодействия (используется для удаленных операций)
Ошибка SMB1 в конце является нормальной и не является проблемой — современные системы отключают SMBv1 из соображений безопасности.

Поскольку мы видим административные общие ресурсы, мы должны иметь возможность использовать PSExec. Давайте попробуем это:

kali> psexec.py имя_пользователя@&lt;IP&gt;

impacket_error.png

Ошибка указывает на то, что PSExec не может записывать данные в административные общие ресурсы, что указывает на проблему с правами доступа или конфигурацией. Поэтому я попробовал использовать WMIExec:

kali> wmiexec.py имя_пользователя@<IP>

Ошибка rpc_s_access_deniedпоказывает, что, несмотря на наличие доступа SMB, у меня нет необходимых разрешений RPC для выполнения WMI. Похоже, это ещё одна проблема, связанная с UAC. Давайте её решим:

Исправление удаленных ограничений UAC​

В системе Windows выполните следующие команды от имени администратора :

# Enable remote admin access for local accounts (fixes PSExec)
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

# Disable filtering of the built-in Administrator account (fixes WMIExec)
reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v FilterAdministratorToken /t REG_DWORD /d 0 /f

# Restart the Windows VM to apply the changes
shutdown /r /t 0
После применения исправлений UAC и перезагрузки Windows попробуйте снова запустить PSExec. Вы также можете добавить команду, 2&gt;/dev/nullчтобы отключить предупреждение об устаревании Python:

kali> psexec.py имя_пользователя@<IP> 2>/dev/null

inpacket_blocked.png

Однако даже после применения исправлений UAC процесс всё ещё не запускался — его блокировал Защитник Windows. Попробуем другую утилиту:

kali> wmiexec.py имя_пользователя@<IP> 2>/dev/null

inpacket_cmd.png

Дополнительные методы уклонения

Мы можем использовать пользовательские методы вывода. В предыдущем примере мы использовали cmd, но можно также использовать PowerShell:


кали>wmiexec.py -shell-type powershell username@&lt;IP&gt; 2&gt;/dev/null

impacket_powershell.png

Другой метод — выполнение отдельных команд вместо использования интерактивных сеансов.

<strong>kali&gt; wmiexec.py username@&lt;IP&gt; "whoami" 2&gt;/dev/null</strong>

impacket_command.png

Мы также можем использовать обфускацию имени процесса и выполнять команды через различные интерпретаторы.

<strong>kali&gt; wmiexec.py username@&lt;IP&gt; "cmd.exe /c whoami" 2&gt;/dev/null</strong>

impacket_interpreters.png

Сбор учетных данных с помощью SecretsDump​

Одним из самых ценных инструментов в коллекции Impacket для постэксплуатационных действий является secretsdump.py. Этот скрипт может извлекать различные типы учётных данных и секретов из систем Windows, включая хеши паролей, билеты Kerberos и кэшированные учётные данные.

Скрипт secretsdump.py работает, обращаясь к базе данных диспетчера учётных записей безопасности Windows, файлу NTDS.dit на контроллерах домена и различным другим хранилищам учётных данных. Он может работать как локально на скомпрометированной системе, так и удалённо по сети.

Чтобы извлечь все учетные данные из целевой системы, мы можем использовать следующую команду:

<br><strong>kali&gt; secretsdump.py username@ 2&gt;/dev/null</strong>

impaket_credentials_dump.png

Pass-the-Hash Authentication

Для аутентификации мы можем использовать полный формат хеша LM:NTLM.

кали>secretsdump.py -hashes aad3b435b51404eeaad3b435b51404ee:5fbc3d5fec8206a30f4b6c473d68ae76 username@&lt;IP&gt; 2&gt;/dev/nul

impacket_hash.png

Мы также можем сохранить вывод в файлы:

kali&gt; secretsdump.py username@&lt;IP&gt; 2&gt;/dev/null -outputfile credentials

Это создает несколько файлов:

credentials.ntds – хэши доменов

credentials.sam – локальные хеши пользователей

credentials.secrets – секреты LSA

impacket_files_output.png

Заключение​

В этом руководстве мы рассмотрели ключевые инструменты Impacket, включая PSExec , WMIExec , SMBExec и SecretsDump , для удалённого выполнения кода и сбора учётных данных. Однако это лишь малая часть возможностей этого мощного инструментария. Impacket включает десятки дополнительных утилит для перечисления LDAP, атак на основе Kerberos и расширенной эксплуатации Active Directory.

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

Если вы хотите вывести свои навыки на новый уровень и глубже погрузиться в продвинутые инструменты, такие как Impacket, рассмотрите возможность перехода на нашу подписку Member Gold . С этим ежемесячным планом вы получите доступ ко всей нашей библиотеке записанных курсов — тому же контенту, что и наши подписчики, а именно более 40 углубленных курсов.
 
Назад
Сверху Снизу