
ماسح Cobalt Strike يستعيد (يسترد) إشارات Team Server المكتشفة في كائن JSON
أداة لاصطياد/استخراج إشارات Cobalt Strike و"تقليل" تكوين الإشارات الخاصة بها للفهرسة لاحقًا. يمكن أن تكون عمليات الصيد واسعة النطاق وعبر الإنترنت باستخدام خدمات مثل SecurityTrails أو Shodan أو ZoomEye، أو قائمة من عناوين IP.
cat results.json | jq📺 عرض توضيحي
المتطلبات: virtualenv و python3.8+
git clone https://github.com/splunk/melting-cobalt && cd melting-cobalt استنساخ المشروع والانتقال إلى دليل المشروع.pip install virtualenv && virtualenv -p python3 venv && source venv/bin/activate && pip install -r requirements.txt إنشاء بيئة افتراضية وتثبيت المتطلبات.تابع إلى التكوين للحصول على مفتاح API لـ SecurityTrails أو Shodan أو ZoomEye.
melting-cobalt.confانسخ melting-cobalt.conf.example إلى melting-cobalt.conf!
تأكد من تعيين رمز مميز لأحد الموفرين المتاحين. إذا كنت بحاجة إلى إنشاء رمز لحسابك، فاتبع هذه [التعليمات](htt://need wiki page).
مثال على التكوين:
[global]
output = results.json
# يخزن المطابقات بتنسيق JSON هنا
log_path = melting-cobalt.log
# يحدد مسار ملف السجل
log_level = INFO
# يحدد مستوى التسجيل
# القيم المحتملة: INFO, ERROR, VERBOSE
nse_script = grab_beacon_config.nse
# المسار إلى السكريبت NSE الذي يقوم بسحب تكوينات Cobalt. هذا يستخدم تحديدًا https://github.com/whickey-r7/grab_beacon_config
searches = search.yml
# يحتوي على عمليات البحث المختلفة التي سيتم تشغيلها على كل موفر خدمة مسح الإنترنت (مثل shodan و zoomeye و security trails) عند صيد خوادم الفريق.
shodan_token = TOKENHERE
# رمز shodan للبحث
zoomeye_token = TOKENHERE
# رمز zoomeye للبحث
securitytrails_token = TOKENHERE
# رمز security trails للبحث
لتعديل عملية الاستخراج الافتراضية التي تتم عبر الموفرين المختلفين، قم بتخصيص search.yml. فيما يلي أمثلة البحث الافتراضية لـ melting-cobalt.
شغّل:
python melting-cobalt.py
قم بتعبئة ips.txt بعناوين IP محتملة لـ C2 الخاصة بـ Cobalt Strike مفصولة بسطر جديد، مثال:
1.1.1.1
2.2.2.2
3.3.3.3
شغّل:
python melting-cobalt.py -i ips.txt
إذا كنت بحاجة إلى إلهام من الصيادين، نوصي بشدة بما يلي:
usage: melting-cobalt.py [-h] [-c CONFIG] [-o OUTPUT] [-v] [-i INPUT]
scans for open cobalt strike team servers and grabs their beacon configs and write this as a json log to be analyzed by any analytic tools
like splunk, elastic, etc..
optional arguments:
-h, --help show this help message and exit
-c CONFIG, --config CONFIG
config file path
-o OUTPUT, --output OUTPUT
file to write to the results, defaults to results.json.log
-v, --version shows current melting-cobalt version
-i INPUT, --input INPUT
newline delimeted file of cobalt strike server ips to grab beacon configs from. example ips.txt
عمليات البحث التالية متوفرة بشكل افتراضي ويمكن إضافة المزيد إلى search.yml للحصول على مزيد من البيانات.
'ssl.jarm:07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1'
'ssl.jarm:07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1 port:"22, 80, 443, 444, 1234, 2000, 2222, 3000, 3780, 4000, 4443, 6379, 7443, 8443, 8080, 8081, 8082, 8087, 8088, 8099, 8089, 8090, 8181, 8888, 8889, 9443, 50050" HTTP/1.1 404 Not Found Content-Length: 0'
'product:"cobalt strike team server"'
ملاحظة: سيولد الكثير من النتائج المزعجة، لا تقم بجدولة هذا فعليًا إلا إذا كنت تريد حرق رصيد الترخيص الخاص بك.
'ssl.cert.serial:146473198'
'SELECT address, ports.port FROM ips WHERE jarm = "07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1"'
'SELECT address, ports.port, isp.name_normalized, ports.port, address, asn.number, jarm, http.headers.raw FROM ips WHERE jarm = "07d14d16d21d21d07c42d41d00041d24a458a375eef0c576d23a7bab9a9fb1" OR jarm = "07d14d16d21d21d07c07d14d07d21d9b2f5869a6985368a9dec764186a9175" OR jarm = "2ad2ad16d2ad2ad22c42d42d00042d58c7162162b6a603d3d90a2b76865b53" AND http.headers.content_type = "text/plain" AND http.headers.raw = "content-length:0" AND ports.port IN (22, 80, 443, 444, 1234, 2000, 2222, 3000, 3780, 4000, 4443, 6379, 7443, 8443, 8080, 8081, 8082, 8087, 8088, 8099, 8089, 8090, 8181, 8888, 8889, 9443, 50050)'
يرجى استخدام متعقب مشكلات GitHub للإبلاغ عن الأخطاء أو طلب الميزات.
إذا كانت لديك أسئلة أو تحتاج إلى دعم، يمكنك:
حقوق النشر 2020 شركة Splunk Inc.
مرخص بموجب ترخيص Apache، الإصدار 2.0 (يُشار إليه باسم "الترخيص")؛ لا يجوز لك استخدام هذا الملف إلا وفقًا للترخيص. يمكنك الحصول على نسخة من الترخيص على
http://www.apache.org/licenses/LICENSE-2.0
ما لم يقتض القانون المعمول به أو يتم الاتفاق عليه كتابيًا، يتم توزيع البرنامج المرخص بموجب الترخيص على أساس "كما هو"، دون أي ضمانات أو شروط من أي نوع، سواء كانت صريحة أو ضمنية. راجع الترخيص لمعرفة اللغة المحددة التي تحكم الأذونات و القيود بموجب الترخيص.