Инструмент, который любят хакеры и ненавидят админы
CrackMapExec (сокращённо CME) — это один из самых мощных и «вкусных» инструментов для тестирования безопасности Windows-сетей, в особенности — инфраструктур, построенных на базе Active Directory. Он позволяет проводить атаки на протоколы SMB, RDP, WinRM, LDAP и MSSQL, сканировать сеть, проверять логины и пароли, вытаскивать хэши и многое другое. Всё это — в рамках одной командной строки.
По сути, это как швейцарский нож для пентестера, только не с лезвием, а с десятком модулей для lateral movement и эскалации привилегий в корпоративной сети.
Зачем нужен CrackMapExec
Если вы когда-либо пытались провести аудит Windows-сети вручную, то вы знаете, насколько это муторно. CrackMapExec позволяет автоматизировать рутину, такую как:
- Проверка валидности учётных данных (логин/пароль, NTLM-хэш);
- Определение, у каких учёток есть админ-доступ к хостам;
- Сканирование служб: SMB, RDP, WinRM, MSSQL и прочее;
- Получение списка пользователей, групп, сессий, расшаренных ресурсов;
- Сбор хэшей NTLM и Kerberos ticket'ов (Pass-the-Hash, Pass-the-Ticket);
- Загрузка и выполнение команд или скриптов на удалённых машинах.
Как работает CME
CrackMapExec написан на Python и построен как модульный инструмент. Это означает, что он может быть расширен дополнительными плагинами и скриптами, но даже «из коробки» умеет страшно много.
Принцип простой: указываем список IP-адресов (или диапазон), учётные данные — и инструмент сам начинает работу по всем поддерживаемым протоколам. Для SMB, к примеру, он сразу определяет, к каким хостам есть доступ, где логин валиден, где пользователь админ и так далее.
Ключевые возможности CrackMapExec
Аутентификация по разным схемам
Поддерживаются:
- Логин/пароль
- NTLM-хэши (Pass-the-Hash)
- Kerberos билеты (Pass-the-Ticket)
- SSH-ключи (для Linux-модулей)
Массовая проверка логинов
Можно протестировать одну или несколько учёток сразу по всем хостам:
cme smb 192.168.1.0/24 -u users.txt -p passwords.txt
Определение админских прав
Показывает, на каких машинах учётка является локальным админом:
cme smb targets.txt -u admin -p password --local-auth
Сбор хэшей и билетов
Инструмент может использовать secretsdump для извлечения хэшей:
cme smb 192.168.1.10 -u admin -H hash --ntds
Запуск команд на удалёнке
Если учётка админская, можно выполнить команду на всех машинах в сети:
cme smb 192.168.1.0/24 -u admin -p pass --exec-method smbexec -x "ipconfig /all"
Загрузка и запуск скриптов
Можно подгрузить и выполнить PowerShell-скрипт или EXE на удалённых машинах.
Поддержка Mimikatz и других инструментов
CME может использовать встроенные плагины, включая запуск Mimikatz через PowerShell Remoting — что открывает огромные возможности для получения учётных данных и токенов.
Установка и запуск
Самый простой способ — через pipx или ручная установка из исходников.
Через pipx:
pipx install crackmapexec
Из исходников:
git clone https://github.com/byt3bl33d3r/CrackMapExec cd CrackMapExec pip install -r requirements.txt python setup.py install
Обратите внимание: на Windows не работает. CrackMapExec предназначен для Linux/MacOS.
Поддерживаемые протоколы
CrackMapExec поддерживает работу с рядом сетевых протоколов:
- SMB — главный вектор;
- WinRM — удалённый запуск PowerShell-команд;
- LDAP — сбор информации об AD;
- MSSQL — логин, выполнение запросов, RCE;
- RDP — проверка логина/пароля через NLA;
- FTP/SSH — сканирование и аутентификация.
Модули и плагины
CrackMapExec поддерживает пользовательские модули. Примеры:
- mimikatz.py — запуск Mimikatz через WinRM;
- kerberoast.py — автоматический Kerberoasting;
- powerview.py — PowerView для обхода AD;
- bloodhound.py — сбор данных для BloodHound.
Как выглядит типичная атака с CME
Вот сценарий, который может разыграть пентестер (или атакующий):
- Сканирует сеть на открытые порты SMB.
- Пробует пары логин/пароль из базы (или хэши).
- Получает доступ к машине с админскими правами.
- Запускает Mimikatz и тащит хэши других пользователей.
- Расширяет доступ до всей сети.
Контрмеры: как защититься от CME
Если вы сисадмин, вас сейчас уже начало знобить. Вот что можно сделать:
- Отключить SMBv1, SMB Signing обязательно включить;
- Ограничить доступ к WinRM, SMB, MSSQL по IP;
- Использовать LAPS для уникальных локальных паролей;
- Настроить EDR и SIEM для отслеживания массовых логинов и lateral movement;
- Запретить хранение паролей в системах без необходимости;
- Ограничить использование административных прав на рабочих станциях.
Юридическая и этическая сторона
Как и в случае с LaZagne, использование CrackMapExec на чужих системах без разрешения — это уголовное преступление. Это мощный инструмент, но предназначен он для пентестеров, аудиторов, специалистов ИБ и исследователей, работающих по договору.
Заключение
CrackMapExec — это один из самых продвинутых и автоматизированных инструментов для аудита безопасности Windows-сетей. Он объединяет возможности десятка утилит в одном фреймворке, позволяя быстро находить уязвимые точки и двигаться по сети. В умелых руках — это незаменимый помощник. В руках злоумышленника — кошмар для администратора.
Если вы хотите понять, насколько ваша инфраструктура уязвима, не нужно гадать — просто запустите CME в тестовой среде. Он покажет всю картину без прикрас. И да, проверьте, есть ли у ваших локальных админов одинаковые пароли — CME это очень любит.