Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
उपकरण/GitHubGitHub/v-pun215/tourmaline
समझौता संकेतक (IOC) प्रबंधनरिवर्स इंजीनियरिंगमालवेयर विश्लेषणडिजिटल फोरेंसिकक्रिप्टोग्राफीकमांड एंड कंट्रोलखतरा खुफियालर्निंग और शिक्षाघटना प्रतिक्रियाDNS विश्लेषण
GitHubv-pun215/tourmaline

Tourmaline

4101 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →

Tourmaline ClickFix Python RAT के लिए रिवर्स इंजीनियरिंग नोट्स, डीऑबफस्केटेड सोर्स, IOC, और YARA नियम, जो इसके DNS टनल और ब्लॉकचेन डेड-ड्रॉप C2 को कवर करते हैं।

रिपॉजिटरी देखें
साझा करें

Tourmaline

मैं हाल ही में एक चतुराई से डिज़ाइन किए गए मैलवेयर पर पहुंचा जो खुद को "Torumaline" कहता है।

यह README बहुत दयालुता से Claude द्वारा लिखा गया है क्योंकि इस रिपॉजिटरी की शुरुआत के समय मैं परीक्षाओं में बहुत व्यस्त था।

इस मैलवेयर का शोषण और डिक्रिप्शन करने में मेरे गणित की तैयारी का एक बड़ा हिस्सा लग गया!

ब्लॉगपोस्ट पढ़ें!

केवल शैक्षिक और शोध उद्देश्यों के लिए
सभी नमूने मैलवेयर विश्लेषण और रक्षात्मक शोध के लिए प्रदान किए गए हैं। सैंडबॉक्स्ड, एयर-गैप्ड वातावरण के बाहर निष्पादित न करें।


अवलोकन

Tourmaline (Tourmaline.exe) एक परिष्कृत, बहु-चरणीय Windows इन्फोस्टीलर/बैकडोर है जो ClickFix अभियान के माध्यम से वितरित किया जाता है - एक नकली Cloudflare "Verify you are human" ब्राउज़र पॉपअप जो उपयोगकर्ताओं को धोखा देकर मैन्युअल रूप से एक दुर्भावनापूर्ण कमांड या इंस्टॉलर चलाने के लिए प्रेरित करता है।

यह बाइनरी एक कस्टम-निर्मित Inno Setup 6.7.0 (Revision 2, 64-bit offsets) इंस्टॉलर है जो एक पूर्ण Python 3.11 रनटाइम और दो चरणों वाले ऑब्फस्केटेड Python पेलोड को बंडल करता है। यह एक स्थायी बैकडोर स्थापित करता है जिसमें शामिल हैं:

  • DNS tunneling C2 UDP पोर्ट 53 पर (microsoft.com क्वेरीज़ के रूप में छिपा हुआ)
  • Ethereum blockchain dead-drop C2 IP वितरण के लिए (Sepolia testnet)
  • ChaCha20-एन्क्रिप्टेड टास्क निष्पादन चैनल
  • ECDSA-हस्ताक्षरित कमांड sinkholing को रोकने के लिए
  • Anti-sandbox time-lock (100M पुनरावृत्ति काउंटडाउन, 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 के माध्यम से वितरित किया जाता है - एक सोशल इंजीनियरिंग तकनीक जहां एक समझौता किया गया या हमलावर-नियंत्रित वेबसाइट एक नकली Cloudflare CAPTCHA या ब्राउज़र सत्यापन पृष्ठ को ओवरले करती है। ओवरले पीड़ित को निर्देश देता है:

  1. Win+R दबाएं
  2. एक कमांड पेस्ट करें (पृष्ठ की JavaScript द्वारा क्लिपबोर्ड पर कॉपी किया गया)
  3. Enter दबाएं

पेस्ट किया गया कमांड Tourmaline.exe को डाउनलोड और चुपचाप निष्पादित करता है। इंस्टॉलर /VERYSILENT /SUPPRESSMSGBOXES /NORESTART चलाता है।


बाइनरी प्रारूप

नोट: स्टॉक innoextract 1.9 इस बाइनरी को एक्सट्रैक्ट नहीं कर सकता — यह केवल Revision 1 का समर्थन करता है। Revision 2 64-bit offsets का उपयोग करता है और कस्टम पार्सिंग की आवश्यकता होती है (देखें 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 — Anti-Sandbox Time-Lock (O(1) बायपास)

लोडर (main.py) XOR डिक्रिप्शन कुंजी खोजने के लिए 99,999,999 से काउंटडाउन का उपयोग करता है। एक वास्तविक मशीन पर यह सेकंडों में पूरा हो जाता है (क्योंकि _n उच्च से शुरू होता है और वास्तविक मान 14,511,188 के करीब है)। कम समय सीमा वाले सैंडबॉक्स में, लूप कभी पूरा नहीं होता।

कुंजी संरचना:

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

चूंकि हम प्लेनटेक्स्ट के पहले 16 बाइट्स (g1 = lambda l6, ) जानते हैं, हम known-plaintext XOR हमले के माध्यम से तुरंत _n पुनर्प्राप्त कर सकते हैं:

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 लचीलापन)

यह मैलवेयर सक्रिय C2 IP पता प्राप्त करने के लिए Sepolia testnet पर एक Ethereum स्मार्ट कॉन्ट्रैक्ट को कॉल करता है। इसका मतलब है कि हमलावर कॉन्ट्रैक्ट को अपडेट करके किसी भी समय C2 IP बदल सकता है — पारंपरिक IP ब्लॉकलिस्ट-आधारित C2 व्यवधान अप्रभावी है।

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

लौटाया गया डेटा लाइव C2 पता प्रकट करने के लिए हार्डकोडेड ChaCha20 कुंजी से डिक्रिप्ट किया जाता है। विश्लेषण के समय, यह 158.94.211.185 पर हल हुआ (लाइव RPC कॉल के माध्यम से सत्यापित)।

DNS टनल (C2 संचार)

सभी C2 ट्रैफ़िक सीधे C2 IP पर पोर्ट 53 पर कच्ची UDP DNS क्वेरीज़ के रूप में भेजा जाता है। क्वेरीज़ <encoded_data>.microsoft.com के रूप में संरचित होती हैं, DNS-आधारित फ़िल्टरिंग को बायपास करती हैं और वैध Windows टेलीमेट्री के रूप में दिखाई देती हैं।

  • कस्टम कार्यान्वयन: Python के socket.getaddrinfo या किसी DNS लाइब्रेरी का उपयोग नहीं करता
  • Opcode obfuscation: प्रत्येक पैकेट में DNS opcode फ़ील्ड पर एक यादृच्छिक XOR बाइट लागू होता है
  • एन्कोडिंग: टास्क डेटा को DNS लेबल प्रारूप में बेस-एन्कोड किया जाता है

टास्क निष्पादन इंजन

बैकडोर एक मनमाना Python exec() इंजन लागू करता है। टास्क हैं:

  1. DNS टनल के माध्यम से C2 से प्राप्त
  2. ChaCha20-डिक्रिप्टेड
  3. ECDSA-हस्ताक्षर-सत्यापित (sinkhole इंजेक्शन को रोकता है)
  4. आउटपुट कैप्चर के साथ एक स्थायी नेमस्पेस में exec()'d
  5. परिणाम C2 को लौटाए गए

समर्थित टास्क प्रकार: Python exec, फ़ाइल अपलोड/डाउनलोड, शेल कमांड, स्व-अपडेट।


समझौते के संकेतक (IOCs)

नेटवर्क

फ़ाइल हैश

FileSHA256
Tourmaline.exec9b390b3b7148f549df86503858d52e030b2b5e78fed0bc525ded5927f9265d6
Tourmaline.exe (MD5)b74ac808dea2de31caf024310694ef0c

रजिस्ट्री / स्थायित्व


YARA नियम

पता लगाने के नियमों के लिए iocs/rules.yar देखें जो कवर करते हैं:

  • चरण 1 लोडर स्थिरांक (XOR कुंजी प्रत्यय, known-plaintext बाइट्स)
  • चरण 2 हार्डकोडेड स्ट्रिंग्स (C2 IP, कॉन्ट्रैक्ट पता, 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 exec क्षमता के कारण, पूर्ण रीइमेजिंग की दृढ़ता से सिफारिश की जाती है

विश्लेषण का पुनरुत्पादन

पूर्वापेक्षाएँ

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 देखें। यह रिपॉजिटरी केवल शैक्षिक और रक्षात्मक शोध उद्देश्यों के लिए है।

टूल डाउनलोड करें
PropertyValue
File nameTourmaline.exe
Size11,341,339 bytes (~10.8 MB)
MD5b74ac808dea2de31caf024310694ef0c
SHA256c9b390b3b7148f549df86503858d52e030b2b5e78fed0bc525ded5927f9265d6
FormatInno Setup 6.7.0 Unicode (Revision 2, 64-bit offsets)
PE type32-bit PE, 11 sections
Overlay size10,447,387 bytes
Inno magic offset0xD9864 (890,148 bytes)
App nameTourmaline
App version2.63.519
App GUID{2C25872D-85FC-44C7-9B16-844E39E50A44}
Install path{commonappdata}\Tourmaline
Bundled runtimePython 3.11 (full embed)
Payload files36 files in solid LZMA2 stream
ParameterValue
C2 IP158.94.211.185
C2 Port53 (UDP)
ProtocolCustom DNS-over-UDP tunnel
Spoofed domainmicrosoft.com
ChaCha20 key36f555c87f71581f57d83576c88193fdc00a0173f741a3e198e2d7abdc9cda59
Blockchain contract0x2d7a04cca0c34005f58393f30ac725e25f19e5f5 (Sepolia)
ECDSA pubkeyMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEt17l3rGHHR9sYdHEvV8S+JRRCUHQQveSadlGk04xM/8WClDf/67Tyritt2+T18SY8n0xv1TKKl0AgnNFuboEEQ==
Service nameSystemService / TourmalineUpdate
MutexGlobal\Tourmaline_<MachineGuid-hash>
TypeValue
C2 IP158.94.211.185
C2 Port53/UDP
Spoofed Domain*.microsoft.com (custom UDP, not real DNS)
Ethereum RPChttps://ethereum-sepolia-rpc.publicnode.com
Smart Contract0x2d7a04cca0c34005f58393f30ac725e25f19e5f5
KeyValue
HKLM\SOFTWARE\Microsoft\Cryptography\MachineGuidRead for victim fingerprinting
%APPDATA%\Tourmaline\Installation directory
Task SchedulerTourmalineUpdate
Service display nameHardware monitoring service
MutexGlobal\Tourmaline_<hash>
FieldValue
Discovery dateSeptember 2026
ResearcherVihaan Pundir (v-pun215)
Distribution vectorClickFix fake Cloudflare CAPTCHA
ClassificationBackdoor / DNS Tunnel C2 / Blockchain Dead-Drop
PlatformWindows (64-bit)