Onlangs, Seqrite Die laboratorium het 'n phishing-veldtog gesien wat formbook-diewe deur e-posaanhangsels afgelewer het. Formbook, soos gesien sedert 2016, het in baie opsigte ontwikkel van stealth-funksies tot ontduikingstegnieke. Aangesien dit op hackerforums as Malware as a Service verkoop word, kan ons 'n aantal variante sien. Terwyl die ontduikingstegniek dieselfde bly, word verskeie lae gebruik voordat die vrag ontplooi word, en hulle word slegs in die geheue gelaai om te verhoed dat hulle geïdentifiseer word. Soos met ander variante, gebruik dit ook steganografie om kwaadwillige lêers binne beelde weg te steek, en dit te dekripteer om te laai en in die geheue op te roep.
Hierdie variant bevat drie stadiums voor die finale vrag
- Aankooporder.exe/XXXI.exe
- Arthur.dll
- Montero.dll
- MASM (Finale Vrag)

Tegniese Analise:
Dit begin met 'n spies-phishing-e-pos wat 'n aankooporder bevat, tesame met 'n aanhangsel van 'n zip-lêer. Na onttrekking bevat dit slegs 'n enkele pe-lêer, PurchaseOrder.exe, wat 'n dotnet-saamgestelde binêre lêer is.

Fase 1 (Aankooporder.exe):
Hierdie variant versteek stadium 2 en stadium 3 wanware in die bron van Purchase Order.exe. Bronnaam "Hkyl” soos getoon in Fig 2 is stadium 3 binêr.
Aanvanklik slaap die wanware vir nege sekondes voordat dit voortgaan om die stadium 2-vrag te dekripteer. Soos getoon in Fig. 3, haal dit stadium 2-geënkripteerde data op van APP hulpbron teenwoordig in hulpbron van Purchase Order.exe en stoor dit in die bytes-skikking. Dit stoor ook 16 grepe van die dekripsiesleutel vir stadium 2-vrag wat "AP7H9H5OI4478F8CH05FGA".


Voor die dekripsie van stadium 2 se vrag, soos getoon in Fig. 4, word 'n derde skikking van 256 grepe geskep en met 'n waarde van 0 tot 255 geïnisialiseer.

Daarna stel dit array3 op deur 16 grepe-sleutels in ewekansige posisies te kopieer.

Sodra dit die array3-waarde opstel, voer dit xoring van geïnkripteerde data met array3 uit en stoor dit in array2 wat nou die Fase 2 PE-lêer arthur.dll bevat,
Om die fase 2 dll-lêer uit te voer, gebruik dit InvokeMember() om die gedekripteerde samestelling (Arthur.dll) in die geheue te laai met die Load-metode. Soos in Fig. 5 getoon, gebruik dit nie die Load-funksie direk nie, maar kry die waarde van 'n objek, die waarde van HJ is Load.

Fase 2 (Arthur.dll):
Sodra dit in die geheue gelaai is, roep dit MainForm.Justy() vanaf die stadium 2 PE-lêer met drie argumente aan. Dit gebruik hierdie argumente in die stadium 2 PE-lêer om die stadium 3 PE-lêer te kry.


- WA = “486B796C”=Hkyl (hulpbron in PurchaseOrder.exe, Fig 2)
- WZ = “62616F”=bao (Dekripsiesleutel vir stadium 3)
- @naamruimte = “AssessVoorbeeldBestrydVorm”[Projeknaam van PurchaseOrder.exe]
Aanvanklik slaap hierdie stadium 2 vir veertien sekondes voordat dit voortgaan om stadium 3 te dekripteer.
Hierdie funksie dekripteer 'n beeld deur 'n sleutel te gebruik wat as 'n argument deurgegee word, dan onttrek dit die rooi, groen en blou waardes uit elke nie-deursigtige pixel in 'n beeld en skep 'n skikking.

Hierdie skikking, wanneer dit ge-XOR word deur waarde[ bao ] te gebruik wat tydens stadium 2 deurgegee word, bring stadium 3 montero.dll wat ook in die geheue gelaai word met behulp van Assembly.Load metode. Nadat die hoofmetode gnWmyvSdDoAS8VNPBy.ukHjJHqoK1() van stadium 3 module verkry is, word dit aangeroep.

Fase 3 (Montero.dll):
In hierdie fase 3 PE-lêer, voordat die hoofmetode ukHjJHqoK1() aangeroep word, dekripteer die konstruktor die vereiste konfigurasie-instellings. Hierdie instellings bevat die dekripsiesleutel van die finale vrag, mutex-naam en mutex-vlag geaktiveer of nie, lêer-losplek, lêer-aflaaigedrag geaktiveer of nie, lêer-aflaaiplek, ens. Hierdie konfigurasie-instellings word in die skikking [gnWmyvSdDoAS8VNPBy.YiEuqBAod0] gestoor.

Nadat die konfigurasie-instellings gedekripteer is, word gekontroleer of die Mutex-vlag geaktiveer is in die 29ste ligging van die skikking YiEuqBAod0. Indien waar, skep dit 'n mutex met die naam " zpkpGXyWHvBpdzNULuLRtAzq ". As die mutex reeds teenwoordig is, sal dit homself beëindig. Hierdie gedrag word algemeen geïmplementeer om opsporing deur sekuriteitsverskaffers te vermy en om te verhoed dat 'n tweede instansie van dieselfde wanware uitgevoer word. Dan verifieer dit die Slaap-vlag. Indien geaktiveer, sal dit slaap om die uitvoering daarvan te vertraag sodat sandkaste nie die kwaadwillige gedrag vasvang nie.

Dan kyk dit of die boodskapboks wat die vlag vertoon, geaktiveer is in die 30ste ligging van die skikking YiEuqBAod0, indien geaktiveer, wys dit die boodskapboks om die gebruiker te mislei.

Daarna verifieer dit die 10de ligging van die skikking YiEuqBAod0 wat as 'n uitsluitingspad-vermoë gebruik word. Indien geaktiveer, voeg dit die wanware-pad by die uitsluitings en voer hierdie cmdlet uit deur LOL binary[powershel.exe] in die verborge vensterkenmerke om die opsporing van die AV-verskaffer te vermy, asook om hul gedrag van die slagoffer weg te steek.

5de ligging van skikking YiEuqBAod0, hierdie ligging word gebruik om óf 'n ander vrag af te laai óf die taakfunksie op te dateer. As hierdie vlag geaktiveer is, laai dit 'n ander malware-familie af of ontvang dit 'n opdrag van die bedreigingsakteur C2 en voeg daardie opdrag in die XML-lêer in die %temp%-ligging in en voer daardie lêer uit vanaf die %temp%-ligging. Hierdie xml word as invoer in die geskeduleerde taak gegee.

2de ligging van skikking YiEuqBAod0, die bedreigingsakteur het hierdie ligging as lêerverlies gebruik. As hierdie vlag geaktiveer is, kontroleer die wanware aanvanklik "qwwnzxGmN.exe" of die lêer reeds in "C:\Users\username\AppData\Roaming" van die slagoffer se gasheer teenwoordig is. As daardie lêer nie op daardie ligging teenwoordig is nie, skep dit die lêer met die verborge kenmerkstel, selfkopie van die ouerlêer. Hierdie eienskap kan deur aanvallers gebruik word om die teenwoordigheid van hierdie wanware te verbloem om te verhoed dat administrateurs en gebruikers dit vind.

Sodra die ouerlêer self gekopieer is na die "%appdata%Roaming"-ligging soos genoem in Fig. 14, sal hierdie lêer by die uitsluitingspad gevoeg word. Dan dekodeer dit die base64-geënkodeerde data, wat in die konstruktor van die hoofmetode van stadium 3 gedekripteer is, na 'n string wat 'n XML-lêer is. Hierdie XML-lêer bevat 'n waarde wat 'n taak genereer. Hierdie waardes is die verborge kenmerk van die wanware- lêer, persistensie, funksie geaktiveer, opdraguitvoering van die lêerpad, ens.


Hierdie XML-lêer word in die %temp%-ligging as "*.tmp" geskep, en dan word die vereiste waardes in die XML-lêer opgedateer, soos '"Ligging" en "GEBRUIKERSDATA", ens. Daarna word 'n geskeduleerde taak met 'n verborge weduwee-attribuut geskep om hul gedrag van die slagoffer weg te steek vir volharding, soos "updates\qwwnzxGmN", en die XML-lêer word ingevoer. Die bedreigingsakteur het die tmp-lêer uitgevee om spore vir sekuriteitsontleders te vermy.

Fig. 18 toon 'n 3de - stadium module wat die finale vrag dekripteer. Die veranderlike gnWmyvSdDoAS8VNPBy.AtOuOF5iCk = " 4kQLt8DIME " is die naam van die hulpbron (in motero.dll). gnWmyvSdDoAS8VNPBy.NJMuDv6Sv6 = " pqDVZxpXC " is die sleutel. Dit laai die hulpbron en gee dit deur aan die dekripsiemetode Pp62t2mj9p saam met DIE SLEUTEL.
Dekripsiemetode stoor finale vrag in gnWmyvSdDoAS8VNPBy. w9Yu0dnomp.


Hierdie finale vrag is 'n 32-bis, MASM-saamgestelde binêre lêer met slegs die ".text"-afdeling. Die hoogs verduisterde lêer dekripteer en enkripteer kode op grond van vereistes.

Sodra die finale vrag in die buffer gedekripteer is, kontroleer dit die eerste ligging van die skikking YiEuqBAod0, gebaseer op hierdie waarde kies dit die teikenproses vir prosesholting. Die bedreigingsakteur het die waarde 0 tot 4 verskaf. As die waarde 4 is, laai dit die finale vrag in die geheue deur die samestellingslaaimetode en voer die toegangspunt van die finale vrag uit.

As die waarde " 1 " is, kies dit die teikenprosesnaam as MSBuild.exe vir prosesholting, as die waarde " 2 " is, is die teikenprosesnaam vbc.exe, as die waarde " 3 " is, is die teikenprosesnaam RegSvcs.exe. As geeneen van die bogenoemde waardes genoem word nie, kies dit die teikenproses as ouerlêer.

In Fase 3-konstruktor het dit die API-volgorde vir Prosesuitholling in Metode bLmuzQDIA5() wat in CreateProcessA gestoor is, ontsyfer. Hierdie wanware skep die geteikende proses gebaseer op die bogenoemde waarde Fig. 17 en skep daardie proses in die opgeskorte modus.
![]()

Metode je3uFjEe5y() het die WriteProcessMemory gestoor, dit het die finale vrag ".text"-afdeling in die geteikende prosesgeheue gedekripteer.

IOCS:
6A9F890C529C410FA32793F496E7F200
0DA34A44EE4876DD5E35939AF02F1D32
D751816C3673935BF989716ABD0DAB21
F8EC1BE3F2BD8269DB033375ED1A841E
Deteksies:
Trojan.Formbook.S34651912
Yara-reël:
invoer "pe"
reël Formbook_varainat
{
snare:
$s1=”AP7H9H5OI4478F8CH05FGA” wide ascii
$s2 ={67 B7 76 87 0A C8 C4 5E 29 AC 76 8F 70 E8 6E 09 91 40 4A AE 28 D5 7F CE AB 90 4B D3 07 C1 A8 B2 A0 B3 88 CA 9 A58 C3
$s3 ={78 33 66 C6 4D CD 82 2F B8 D6 10 8A B7 E9 D5 65 8B 45 1A B7 ED 08 2E B3 89 2F 0B 89 75 F5 08 5D}
toestand:
almal van hulle
}
MITRE AANVAL TTP's:
| taktiek | Tegniek / Prosedure |
| Aanvanklike toegang | T1566.001: Spiesvissing-aanhegsel |
| Uitvoering | T1059.001:Opdrag- en Skriptinterpreteerder: PowerShell |
| T1053.005:Geskeduleerde Taak/Werk: Geskeduleerde Taak | |
| Volharding | T1053.005:Geskeduleerde Taak/Werk: Geskeduleerde Taak |
| Verdedigingsontduiking | T1027.003:Verduisterde lêers of inligting: Steganografie |
| T1036:Maskering | |
| T1497:Virtualisering/Sandbox-ontduiking | |
| T1055.012:Prosesinspuiting: Prosesholting | |
| Discovery | T1082:Stelselinligting-ontdekking |
| T1083:Lêer- en gidsontdekking | |
| T1057:Prosesontdekking |
Gevolgtrekking:
Met wanware as 'n diens, kan ons verskeie weergawes van formbook sien. Dikwels bly die omhulsel verander, maar die finale vrag bly dieselfde, dit is om antivirus-opsporings te vermy. Bedreigingsakteurs lewer hierdie wanware deur middel van spiesphishing-pos waaraan kwaadwillige dokumente of uitvoerbare binêre lêers aangeheg is. Gebruikers word aangeraai om te verhoed dat hulle verdagte e-posse met aanhangsels oopmaak. Hierdie variant implementeer ontduikingstegnieke om volharding te handhaaf. Vermy om deur stelseladministrateur of gebruiker betrap te word deur die lêerattribuut weg te steek. Verseker dat slegs een instansie van wanware in die stelsel loop deur mutex te skep.
Skrywer: Rumana Siddiqui en Manoj Kumar Neelamegam



