
एक एग्रेसर स्क्रिप्ट जो रेड टीम अभियान के दौरान किए गए परिचालन परिवर्तनों को ट्रैक करती है। आपको एक पूर्ण ऑडिट ट्रेल देती है कि क्या बदला गया और अभी भी क्या साफ करने की आवश्यकता है।
Ledger एक Cobalt Strike एग्रेसर स्क्रिप्ट है जो एंगेजमेंट के दौरान किए गए हर परिचालन परिवर्तन को ट्रैक करती है। आपके द्वारा सक्षम की गई हर सेवा, खोला गया हर फ़ायरवॉल नियम, बनाया गया हर खाता, या छुई गई हर रजिस्ट्री कुंजी जोखिम स्कोर, ऑपरेटर एट्रिब्यूशन और क्लीनअप स्थिति के साथ लॉग हो जाती है। एंगेजमेंट के अंत में आपके पास इस बात का पूरा ऑडिट ट्रेल होता है कि क्या बदला गया था और अब भी क्या साफ़ करने की आवश्यकता है।
रेड टीम एंगेजमेंट्स आर्टिफैक्ट छोड़ती हैं। सेवाएँ सक्षम हो जाती हैं, खाते बन जाते हैं, फ़ायरवॉल नियम खुल जाते हैं, रजिस्ट्री कुंजियाँ संशोधित हो जाती हैं। संरचित लॉग के बिना इन्हें भूलना आसान है — विशेष रूप से लंबे एंगेजमेंट्स में या जब कई ऑपरेटर एक साथ काम कर रहे हों।
Ledger आपको एक चालू जर्नल देता है जिसमें शामिल हैं:
ledger.cna को अपनी Cobalt Strike स्क्रिप्ट्स डायरेक्टरी में कॉपी करें।ledger.cna चुनें।dirty एलियास अब हर Beacon कंसोल में उपलब्ध है।सभी कमांड्स dirty एलियास का उपयोग करके Beacon कंसोल से चलाए जाते हैं।
dirty <CATEGORY> <command> [comment] [score]
comment और score वैकल्पिक हैं। यदि छोड़ दिए जाते हैं, तो श्रेणी के आधार पर उपयुक्त डिफ़ॉल्ट मान उपयोग किए जाते हैं।
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 <CATEGORY> <command> [comment] [score]
परिवर्तन को लॉग करता है और तुरंत बीकन पर कमांड निष्पादित करता है — दो के बजाय एक चरण।
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, आदि। उनके लिए, Beacon कमांड को सामान्य रूप से चलाएँ और उसे लॉग करने के लिए dirty <CATEGORY> <command> का अलग से उपयोग करें।dirty show
dirty show DEFENDER
dirty show DESKTOP-ABC123
सभी लॉग की गई प्रविष्टियाँ दिखाता है। वैकल्पिक फ़िल्टर कमांड, कमेंट, श्रेणी, होस्टनाम और उपयोगकर्ता नाम से मेल खाता है।
dirty score
एग्रीगेट स्कोर, लंबित क्लीनअप गणना और एक विज़ुअल बार के साथ प्रति-होस्ट जोखिम सारांश दिखाता है। होस्ट्स को उच्चतम स्कोर पहले क्रमबद्ध किया जाता है।
dirty clean <id>
dirty clean all
dirty clean host <hostname>
होस्टनाम मिलान केस-इनसेंसिटिव है और आंशिक मिलान का समर्थन करता है — DESKTOP का मिलान DESKTOP-FGN4LPG से होता है।
dirty export text
dirty export json
dirty export text DEFENDER
dirty export json DESKTOP-ABC
एक्सपोर्ट उस डायरेक्टरी में लिखे जाते हैं जिसमें ledger.cna मौजूद है, और शीर्ष पर होस्ट स्कोर सारांश तथा उसके बाद पूरा चेंज लॉग शामिल होता है। Ledger मेनू बार बटन सीधे बिना फ़िल्टर वाले एक्सपोर्ट ट्रिगर करते हैं।
dirty help
कोई भी सूचीबद्ध न की गई श्रेणी 3 के डिफ़ॉल्ट स्कोर के साथ स्वीकार की जाती है।
प्रति प्रविष्टि
| लेबल | स्कोर |
|---|---|
| LOW | < 5 |
| MEDIUM | 5 – 7 |
| HIGH | 8+ |
एग्रीगेट (प्रति होस्ट)
| लेबल | स्कोर |
|---|---|
| LOW | < 5 |
| MEDIUM | 5 – 9 |
| HIGH | 10 – 14 |
| CRITICAL | 15+ |
जब कोई बीकन बिना साफ़ किए लेजर प्रविष्टियाँ अभी भी लंबित होने पर डेड हो जाता है, तो Ledger सभी कनेक्टेड ऑपरेटरों को दिखाई देने वाले Cobalt Strike Event Log में एक लाल चेतावनी भेजता है:
चेतावनी प्रति बीकन एक बार भेजी जाती है और यदि बीकन ठीक होकर फिर से चेक-इन करता है तो स्वचालित रूप से रीसेट हो जाती है। लिंक्ड (चाइल्ड) बीकन और ऑपरेटर द्वारा स्पष्ट रूप से किल किए गए बीकन बाहर रखे गए हैं। चेतावनी का समय बीकन की स्लीप सेटिंग के साथ समायोजित होता है — 60s स्लीप लगभग 2 मिनट के बाद ट्रिगर होती है, 5m स्लीप लगभग 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
}
हर लॉग की गई और साफ़ की गई प्रविष्टि elog के माध्यम से Cobalt Strike Event Log में प्रसारित होती है, ताकि सभी कनेक्टेड ऑपरेटर एक-दूसरे के परिवर्तनों को वास्तविक समय में देख सकें। जर्नल सत्र की अवधि के लिए teamserver मेमोरी में रहता है।
ledger.cna मौजूद है।dirty USER "net user ..." "my comment" 9 — अंतिम तर्क एक स्पष्ट स्कोर सेट करता है।cmd.exe की आवश्यकता होती है: dir, echo, set, type, पाइप्स (|), रीडायरेक्ट्स (>), आदि। उन्हें dirty CATEGORY "shell <command>" के साथ मैन्युअल रूप से लॉग करें।.cna फ़ाइलों से लोड किए गए कस्टम BOF एलियास dirty exec के माध्यम से सही ढंग से डिस्पैच नहीं होंगे।| श्रेणी | डिफ़ॉल्ट स्कोर | डिफ़ॉल्ट कमेंट |
|---|
| 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 | ट्रस्ट संबंध संशोधित |