
نص عدائي يتتبع التغييرات التشغيلية التي تم إجراؤها أثناء مهمة الفريق الأحمر. يمنحك سجل تدقيق كامل لما تم تغييره وما لا يزال بحاجة إلى التنظيف.
Ledger هو سكريبت هجومي لـ Cobalt Strike يتتبع كل تغيير تشغيلي يتم إجراؤه أثناء المهمة. كل خدمة تمكّنها، قاعدة جدار ناري تخترقها، حساب تنشئه، أو مفتاح تسجيل تلمسه يتم تسجيله مع درجة خطورة، إسناد المشغل، وحالة التنظيف. في نهاية المهمة، تحصل على سجل تدقيق كامل لما تم تغييره وما لا يزال بحاجة إلى التنظيف.
مهام الفريق الأحمر تترك آثارًا. يتم تمكين الخدمات، إنشاء الحسابات، فتح قواعد جدران الحماية، تعديل مفاتيح التسجيل. بدون سجل منظم، يسهل نسيان هذه الأشياء — خاصة عبر المهام الطويلة أو عندما يعمل عدة مشغلين في وقت واحد.
Ledger يمنحك سجلًا جاريًا يحتوي على:
ledger.cna إلى دليل سكريبتات Cobalt Strike الخاص بك.ledger.cna.dirty متاح في كل وحدة تحكم منارة.جميع الأوامر تُنفذ من وحدة تحكم المنارة باستخدام الأمر المستعار dirty.
dirty <الفئة> <الأمر> [تعليق] [الدرجة]
تعليق والدرجة اختياريان. إذا تم حذفهما، يتم استخدام قيم افتراضية مناسبة بناءً على الفئة.
dirty RPC "sql-enablerpc lon-db-1 lon-db-2"
dirty DEFENDER "add-exclusion C:\windows\temp" "Payload staging" 8
dirty GROUP "net group 'Domain Admins' svc_backup /add /domain"
dirty USER "net user backdoor P@ssw0rd! /add"
dirty SCHEDULED_TASK "schtasks /create /tn updater /tr C:\temp\beacon.exe /sc onlogon"

dirty exec <الفئة> <الأمر> [تعليق] [الدرجة]
يسجل التغيير وينفذ الأمر فورًا على المنارة — خطوة واحدة بدلاً من اثنتين.
dirty exec RPC "sql-enablerpc lon-db-1 lon-db-2"
dirty exec USER "net user backdoor P@ssw0rd! /add"
dirty exec DEFENDER "sc config WinDefend start= disabled"
dirty exec FIREWALL "netsh advfirewall set allprofiles state off"
قيود dirty exec
يستخدم dirty exec داخليًا brun، الذي ينفذ ملفًا ثنائيًا مباشرة بدون غلاف cmd.exe /c. هذا يعني:
net، sc، reg، nltest، whoami، ipconfig، إلخ.sleep، cd، ls، pwd، download، upload، execute-assembly، inject، إلخ. لهذه، قم بتشغيل أمر المنارة بشكل عادي واستخدم dirty <الفئة> <الأمر> بشكل منفصل لتسجيله.cmd.exe: dir، echo، set، type، الأنابيب (|)، إعادة التوجيه (>)، إلخ. قم بتسجيلها يدويًا باستخدام dirty CATEGORY "shell <command>"..cna أخرى لن يتم توجيهها بشكل صحيح عبر dirty exec.dirty show
dirty show DEFENDER
dirty show DESKTOP-ABC123
يعرض جميع الإدخالات المسجلة. عامل التصفية الاختياري يطابق الأمر، التعليق، الفئة، اسم المضيف، واسم المستخدم.

dirty score
يعرض ملخص مخاطر لكل مضيف مع إجمالي الدرجات، عدد التنظيفات المعلقة، وشريط مرئي. يتم فرز المضيفين حسب أعلى درجة أولاً.
dirty clean <id>
dirty clean all
dirty clean host <اسم_المضيف>
مطابقة اسم المضيف غير حساسة لحالة الأحرف وتدعم المطابقات الجزئية — DESKTOP تطابق DESKTOP-FGN4LPG.
dirty export text
dirty export json
dirty export text DEFENDER
dirty export json DESKTOP-ABC
تُكتب التصديرات إلى الدليل الذي يحتوي على ledger.cna وتتضمن ملخص درجات المضيف في الأعلى متبوعًا بسجل التغيير الكامل. أزرار شريط قوائم Ledger تؤدي إلى تشغيل تصديرات غير مفلترة مباشرة.
dirty help
| الفئة | الدرجة الافتراضية | التعليق الافتراضي |
|---|---|---|
| REGISTRY | 2 | تم تعديل التسجيل |
| FIREWALL | 3 | تم تعديل قاعدة جدار الناري |
| SERVICE | 3 | تم تغيير تكوين الخدمة |
| RPC | 4 | تم إجراء تغييرات على RPC |
| WINRM | 4 | تم تمكين WinRM |
| SMB | 4 | تم تغيير توقيع SMB |
| DCOM | 4 | تم تمكين DCOM |
| RDP | 5 | تم تمكين RDP |
| SCHEDULED_TASK | 5 | تم إنشاء مهمة مجدولة |
| DEFENDER | 6 | تم تغيير تكوين Defender |
| GROUP | 6 | تم تعديل عضوية المجموعة |
| USER | 7 | تم تعديل حساب المستخدم |
| ACL | 8 | تم تعديل ACL |
| SPN | 8 | تم تعديل SPN |
| DOMAIN_ADMIN | 9 | تم تعديل مجموعة مسؤولي المجال |
| TRUST | 9 | تم تعديل علاقة الثقة |
أي فئة غير مدرجة يتم قبولها بدرجة افتراضية 3.
لكل إدخال
| التصنيف | الدرجة |
|---|---|
| منخفض | < 5 |
| متوسط | 5 – 7 |
| عالي | 8+ |
الإجمالي (لكل مضيف)
| التصنيف | الدرجة |
|---|---|
| منخفض | < 5 |
| متوسط | 5 – 9 |
| عالي | 10 – 14 |
| حرج | 15+ |
عندما تصبح المنارة ميتة مع إدخالات غير منظفة لا تزال معلقة، يرسل Ledger تحذيرًا أحمر إلى سجل أحداث Cobalt Strike مرئيًا لجميع المشغلين المتصلين:

يتم إطلاق التحذير مرة واحدة لكل منارة ويتم إعادة تعيينه تلقائيًا إذا تعافت المنارة وسجلت الدخول مرة أخرى. يتم استبعاد المنارات المرتبطة (الطفلية) والمنارات التي قتلها المشغل بشكل صريح. يتناسب توقيت التحذير مع إعداد النوم للمنارة — نوم 60 ثانية يؤدي إلى إطلاق التحذير بعد حوالي دقيقتين، نوم 5 دقائق بعد حوالي 10 دقائق.
LEDGER EXPORT -- 2026-05-21 19:50:34
HOST SCORE SUMMARY
================================================================================
Host Risk Score Pending Bar
--------------------------------------------------------------------------------
DESKTOP-RLP4KBJ (sally *) CRITICAL +21 2 pend [##########]
DESKTOP-FGN4LPG (Admin) CRITICAL +18 0 pend [#########]
================================================================================
CHANGE LOG
================================================================================
[000002] 2026-05-21 19:22:56 | neo | GROUP | MEDIUM +6 | CLEANED
Host : DESKTOP-FGN4LPG
User : Admin
Process : HTTP Listener_x64.exe (PID 4716)
Command : net group 'Domain Admins' svc_backup /add /domain
Comment : Added svc_backup to Domain Admins for lateral movement
{
"exported": "2026-05-21 19:53:19",
"host_summary": [
{
"host": "DESKTOP-FGN4LPG (Admin)",
"risk": "CRITICAL",
"score": 18,
"pending": 0
},
{
"host": "DESKTOP-RLP4KBJ (sally *)",
"risk": "CRITICAL",
"score": 21,
"pending": 2
}
],
"entries": [
{
"id": "000004",
"timestamp": "2026-05-21 19:31:36",
"operator": "neo",
"beacon_id": "1607712302",
"computer": "DESKTOP-RLP4KBJ",
"beacon_user": "sally *",
"beacon_process": "HTTP Listener_x64.exe (PID 11540)",
"functionality": "USER",
"command": "net user svc_backup P@ssw0rd123! /add /domain",
"comment": "Created service account for persistence",
"score": 7,
"risk": "MEDIUM",
"cleaned": false
}
يتم بث كل إدخال مسجل ومنظف إلى سجل أحداث Cobalt Strike عبر elog، لذا يرى جميع المشغلين المتصلين تغييرات بعضهم البعض في الوقت الفعلي. يعيش السجل في ذاكرة خادم الفريق طوال مدة الجلسة.
ledger.cna.dirty USER "net user ..." "my comment" 9 — الوسيطة الأخيرة تحدد درجة صريحة.