Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Tourmaline — ملاحظات الهندسة العكسية، والمصدر بعد إزالة التشويش، ومؤشرات الاختراق، وقواعد YARA الخاصة ببرمجية Tourmaline ClickFix Python RAT، والتي تغطي نفق DNS الخاص بها وC2 القائم على blockchain dead-drop. | Kitploit
أدوات/GitHubGitHub/v-pun215/tourmaline
إدارة مؤشرات الاختراق (IOC)الهندسة العكسيةتحليل البرمجيات الخبيثةالتحاليل الرقمية الجنائيةالتشفيرالقيادة والسيطرةاستخبارات التهديداتالتعلم والتعليمالاستجابة للحوادثتحليل DNS
GitHubv-pun215/tourmaline

Tourmaline

410منذ يوم واحدلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

ملاحظات الهندسة العكسية، والمصدر بعد إزالة التشويش، ومؤشرات الاختراق، وقواعد YARA الخاصة ببرمجية Tourmaline ClickFix Python RAT، والتي تغطي نفق DNS الخاص بها وC2 القائم على blockchain dead-drop.

عرض المستودع

Tourmaline

عثرت مؤخرًا على قطعة من البرمجيات الخبيثة المصممة بذكاء والتي تطلق على نفسها اسم "Torumaline".

تمت كتابة هذا الملف التعريفي (README) بلطف شديد من قبل Claude لأنني كنت مشغولًا جدًا بالامتحانات في وقت إنشاء هذا المستودع.

استغلال وفك تشفير هذه البرمجية الخبيثة استهلك جزءًا كبيرًا من وقتي المخصص للتحضير للرياضيات!

اقرأ منشور المدونة!

لأغراض تعليمية وبحثية فقط
جميع العينات مقدمة لتحليل البرمجيات الخبيثة والبحث الدفاعي. لا تقم بتشغيلها خارج بيئة معزولة ومعزولة عن الشبكة.


نظرة عامة

Tourmaline (Tourmaline.exe) هي برمجية خبيثة متقدمة متعددة المراحل لنظام Windows من نوع سرقة المعلومات/الباب الخلفي، يتم توزيعها عبر حملة ClickFix - وهي نافذة منبثقة مزيفة من Cloudflare "تحقق من أنك إنسان" في المتصفح تخدع المستخدمين لتشغيل أمر أو مثبّت خبيث يدويًا.

الملف الثنائي هو مثبّت Inno Setup 6.7.0 (المراجعة 2، إزاحات 64-بت) مخصص البناء، يحتوي على بيئة تشغيل Python 3.11 كاملة ومرحلتين من حمولة Python المشوّشة. ينشئ بابًا خلفيًا دائمًا مع:

  • نفق DNS للـ C2 عبر منفذ UDP 53 (يتنكر كاستعلامات microsoft.com)
  • نقطة إسقاط ميتة على بلوكشين Ethereum لتوزيع عنوان IP الخاص بالـ C2 (شبكة Sepolia التجريبية)
  • قناة تنفيذ المهام المشفرة بـ ChaCha20
  • أوامر موقعة بـ ECDSA لمنع الإغراق (sinkholing)
  • قفل زمني مضاد للبيئات المعزولة (عد تنازلي بـ 100 مليون تكرار، قابل للتجاوز بزمن O(1))

هيكل المستودع

root@kitploit:~
tourmaline/
├── README.md                  # This file
├── LICENSE                    # Research use license
├── .gitignore
│
├── src/                       # Extracted & deobfuscated source code
│   ├── stage1_loader.py       # Stage 1: Original obfuscated XOR time-lock loader (main.py)
│   ├── stage2_backdoor.py     # Stage 2: Deobfuscated core backdoor (from QGBdu.dxf)
│   └── decrypt_payload.py     # Utility: O(1) payload key recovery & decryption
│
├── iocs/                      # Indicators of Compromise
│   ├── indicators.json        # Structured IOC data (IPs, hashes, domains, registry)
│   ├── indicators.csv         # Flat CSV for SIEM import
│   └── rules.yar              # YARA detection rules
│
└── samples/                   # Malware samples (password-protected)
    ├── README.md              # Sample archive instructions
    ├── Tourmaline_sample.zip  # Password: infected - contains Tourmaline.exe
    └── QGBdu.dxf             # Raw encrypted Stage 2 payload blob

ناقل العدوى

يتم توزيع البرمجية الخبيثة عبر ClickFix - وهي تقنية هندسة اجتماعية حيث يقوم موقع مخترق أو يتحكم به المهاجم بتركيب طبقة فوقية لـ CAPTCHA مزيف من Cloudflare أو صفحة تحقق من المتصفح. تُوجّه الطبقة الفوقية الضحية للقيام بما يلي:

  1. اضغط Win+R
  2. الصق أمرًا (تم نسخه إلى الحافظة بواسطة JavaScript الخاص بالصفحة)
  3. اضغط Enter

يقوم الأمر الملصق بتنزيل Tourmaline.exe وتنفيذه بصمت. يعمل المثبّت بالأمر /VERYSILENT /SUPPRESSMSGBOXES /NORESTART.


تنسيق الملف الثنائي

ملاحظة: لا يمكن لأداة innoextract 1.9 القياسية استخراج هذا الملف الثنائي — فهي تدعم المراجعة 1 فقط. تستخدم المراجعة 2 إزاحات 64-بت وتتطلب تحليلًا مخصصًا (انظر src/decrypt_payload.py).


تدفق التنفيذ

root@kitploit:~
Tourmaline.exe
│
├─ Inno Setup installer runs silently
│   ├─ Extracts Python 3.11 runtime to %APPDATA%\Tourmaline\
│   ├─ Extracts main.py (Stage 1 loader)
│   ├─ Extracts QGBdu.dxf (encrypted Stage 2 blob)
│   ├─ Kills any existing pythonw.exe instances
│   └─ Registers persistence (Task Scheduler / registry)
│       └─ Name: "TourmalineUpdate" / "Hardware monitoring service"
│
├─ Stage 1: main.py (XOR Time-Lock Loader)
│   ├─ Counts _n from 99,999,999 → 0 (anti-sandbox delay ~hours on slow VMs)
│   ├─ At each _n, constructs 33-byte XOR key: struct.pack('>I', _n) + hardcoded_suffix
│   ├─ Tests key against known plaintext header of QGBdu.dxf
│   └─ On match: decrypts QGBdu.dxf entirely and exec()s the result
│       └─ O(1) bypass: known-plaintext attack on first 4 bytes (see below)
│
└─ Stage 2: QGBdu.dxf → Python backdoor
    ├─ Reads MachineGuid from HKLM\SOFTWARE\Microsoft\Cryptography
    ├─ Derives mutex Global\Tourmaline_<hash>
    ├─ Resolves C2 IP via Ethereum dead-drop (Sepolia testnet)
    ├─ Establishes DNS tunnel to C2
    └─ Poll-execute loop: fetches tasks, exec()s Python, returns output

المرحلة 1 — القفل الزمني المضاد للبيئات المعزولة (تجاوز بزمن O(1))

يستخدم المُحمّل (main.py) عدًا تنازليًا من 99,999,999 للعثور على مفتاح فك التشفير XOR. على جهاز حقيقي يكتمل هذا في ثوانٍ (لأن _n يبدأ مرتفعًا والقيمة الحقيقية قريبة من 14,511,188). في بيئة معزولة بحد زمني قصير، لا تكتمل الحلقة أبدًا.

بنية المفتاح:

root@kitploit:~
full_key = struct.pack('>I', _n) + bytes.fromhex('2b0cffe07b06ac25793b3f00cfaa2dd5881c2d6378165247539dbbdaeb')

بما أننا نعرف أول 16 بايت من النص الأصلي (g1 = lambda l6, )، يمكننا استعادة _n فورًا عبر هجوم XOR بالنص الأصلي المعروف:

root@kitploit:~
key_prefix = bytes(ciphertext[i] ^ known_plaintext[i] for i in range(4))
# Result: key_prefix = 00dd6c54 → _n = 14,511,188

استخدم src/decrypt_payload.py لإعادة إنتاج هذا.


المرحلة 2 — بنية الباب الخلفي الأساسية

الإعدادات (مضمّنة بشكل ثابت)

نقطة الإسقاط الميتة على البلوكشين (مرونة C2)

تستدعي البرمجية الخبيثة عقدًا ذكيًا على Ethereum في شبكة Sepolia التجريبية لاسترداد عنوان IP النشط للـ C2. هذا يعني أن المهاجم يمكنه تغيير عنوان IP الخاص بالـ C2 في أي وقت عبر تحديث العقد — مما يجعل تعطيل C2 التقليدي القائم على قوائم حظر عناوين IP غير فعال.

root@kitploit:~
Contract : 0x2d7a04cca0c34005f58393f30ac725e25f19e5f5
Selector : 0xeb9fd6fe
Network  : Ethereum Sepolia (chainId 11155111)
RPC      : https://ethereum-sepolia-rpc.publicnode.com
Result   : ChaCha20-encrypted blob containing current C2 IP

يتم فك تشفير البيانات المُعادة باستخدام مفتاح ChaCha20 المضمّن للكشف عن عنوان C2 الحي. في وقت التحليل، تم حل هذا إلى 158.94.211.185 (تم التحقق عبر استدعاء RPC مباشر).

نفق DNS (اتصالات C2)

يتم إرسال جميع حركة C2 كـ استعلامات UDP DNS خام مباشرة إلى عنوان IP الخاص بالـ C2 على المنفذ 53. تُبنى الاستعلامات على شكل <encoded_data>.microsoft.com، متجاوزةً التصفية القائمة على DNS وتظهر كبيانات قياس عن بُعد شرعية من Windows.

  • تنفيذ مخصص: لا يستخدم socket.getaddrinfo الخاص بـ Python أو أي مكتبة DNS
  • تشويش Opcode: يتم تطبيق بايت XOR عشوائي على حقل opcode الخاص بـ DNS في كل حزمة
  • الترميز: يتم ترميز بيانات المهام بصيغة base إلى تنسيق تسمية DNS

محرك تنفيذ المهام

ينفذ الباب الخلفي محرك exec() عشوائي لـ Python. المهام هي:

  1. يتم جلبها من C2 عبر نفق DNS
  2. فك تشفيرها بـ ChaCha20
  3. التحقق من توقيع ECDSA (يمنع حقن الإغراق)
  4. تنفيذها بـ exec() في مساحة أسماء دائمة مع التقاط المخرجات
  5. إعادة النتائج إلى C2

أنواع المهام المدعومة: تنفيذ Python، رفع/تنزيل ملفات، أمر shell، تحديث ذاتي.


مؤشرات الاختراق (IOCs)

الشبكة

تجزئات الملفات

الملفSHA256
Tourmaline.exec9b390b3b7148f549df86503858d52e030b2b5e78fed0bc525ded5927f9265d6
Tourmaline.exe (MD5)b74ac808dea2de31caf024310694ef0c

السجل / الاستمرارية


قواعد YARA

انظر iocs/rules.yar لقواعد الكشف التي تغطي:

  • ثوابت المُحمّل في المرحلة 1 (لاحقة مفتاح XOR، بايتات النص الأصلي المعروف)
  • السلاسل المضمّنة في المرحلة 2 (عنوان IP للـ C2، عنوان العقد، مفتاح ChaCha20)

المعالجة / التنظيف

إذا تم تنفيذ هذه البرمجية الخبيثة على جهاز:

  1. اعزل فورًا — افصل عن الشبكة
  2. أنهِ العمليات: taskkill /F /IM pythonw.exe
  3. احذف دليل التثبيت: %APPDATA%\Tourmaline\ أو %COMMONAPPDATA%\Tourmaline\
  4. أزل الاستمرارية:
    • Task Scheduler: احذف TourmalineUpdate
    • تحقق من HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run بحثًا عن Tourmaline أو SystemService
  5. احظر على الجدار الناري: 158.94.211.185:53/UDP؛ احظر جميع حركة UDP/53 الصادرة غير المتوقعة
  6. احظر Ethereum RPC على الوكيل: ethereum-sepolia-rpc.publicnode.com
  7. أعد تصوير النظام — نظرًا لقدرة تنفيذ Python العشوائية، يُوصى بشدة بإعادة تصوير النظام بالكامل

إعادة إنتاج التحليل

المتطلبات الأساسية

root@kitploit:~
pip install pyOpenSSL cryptography

فك تشفير حمولة المرحلة 2

root@kitploit:~
# From the repo root:
python3 src/decrypt_payload.py samples/QGBdu.dxf decrypted_stage2.py

استخراج عينة البرمجية الخبيثة

root@kitploit:~
7z x -pinfected samples/Tourmaline_sample.zip

الإفصاح


الترخيص

انظر LICENSE. هذا المستودع لأغراض تعليمية وبحثية دفاعية فقط.

تنزيل الأداة
الخاصيةالقيمة
اسم الملفTourmaline.exe
الحجم11,341,339 بايت (~10.8 ميجابايت)
MD5b74ac808dea2de31caf024310694ef0c
SHA256c9b390b3b7148f549df86503858d52e030b2b5e78fed0bc525ded5927f9265d6
التنسيقInno Setup 6.7.0 Unicode (المراجعة 2، إزاحات 64-بت)
نوع PEPE 32-بت، 11 قسمًا
حجم الطبقة الفوقية10,447,387 بايت
إزاحة سحر Inno0xD9864 (890,148 بايت)
اسم التطبيقTourmaline
إصدار التطبيق2.63.519
GUID التطبيق{2C25872D-85FC-44C7-9B16-844E39E50A44}
مسار التثبيت{commonappdata}\Tourmaline
بيئة التشغيل المضمنةPython 3.11 (مضمن كامل)
ملفات الحمولة36 ملفًا في تدفق LZMA2 صلب
المعاملالقيمة
عنوان IP للـ C2158.94.211.185
منفذ C253 (UDP)
البروتوكولنفق DNS-over-UDP مخصص
النطاق المنتحلmicrosoft.com
مفتاح ChaCha2036f555c87f71581f57d83576c88193fdc00a0173f741a3e198e2d7abdc9cda59
عقد البلوكشين0x2d7a04cca0c34005f58393f30ac725e25f19e5f5 (Sepolia)
المفتاح العام ECDSAMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEt17l3rGHHR9sYdHEvV8S+JRRCUHQQveSadlGk04xM/8WClDf/67Tyritt2+T18SY8n0xv1TKKl0AgnNFuboEEQ==
اسم الخدمةSystemService / TourmalineUpdate
MutexGlobal\Tourmaline_<MachineGuid-hash>
النوعالقيمة
عنوان IP للـ C2158.94.211.185
منفذ C253/UDP
النطاق المنتحل*.microsoft.com (UDP مخصص، ليس DNS حقيقي)
Ethereum RPChttps://ethereum-sepolia-rpc.publicnode.com
العقد الذكي0x2d7a04cca0c34005f58393f30ac725e25f19e5f5
المفتاحالقيمة
HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuidيُقرأ لبصمة الضحية
%APPDATA%\Tourmaline\دليل التثبيت
Task SchedulerTourmalineUpdate
اسم عرض الخدمةHardware monitoring service
MutexGlobal\Tourmaline_<hash>
الحقلالقيمة
تاريخ الاكتشافسبتمبر 2026
الباحثVihaan Pundir (v-pun215)
ناقل التوزيعClickFix fake Cloudflare CAPTCHA
التصنيفBackdoor / DNS Tunnel C2 / Blockchain Dead-Drop
المنصةWindows (64-bit)