tom@home.htb:~$

Blog o HTB

28 October 2020

Evil-WinRM

Úvod a kontext

Evil-WinRM není exploit. Je to praktický klient pro okamžik, kdy už existuje použitelný windowsový účet, hash nebo jiný autentizační materiál a je potřeba z něj udělat stabilní vzdálený shell. Právě proto se v rozborech opakuje tak často: jakmile řetězec skončí u WinRM služby na 5985 nebo 5986, bývá to nejpohodlnější způsob další práce.

Na Resolute otevře shell po nalezení výchozího hesla, na Forestu a Sauně po Kerberos nebo AS-REP footholdu, na Remote po reuse tajemství z TeamVieweru a na Anubis až po certifikátové kompromitaci identity. To je důležité: Evil-WinRM sám nic neláme. Jen převádí už získaný přístup do použitelného PowerShell kontextu.

Co tenhle nástroj v praxi řeší

Když je na Windows hostu otevřený WinRM a existují validní přihlašovací údaje, bývá několik možností:

Právě třetí varianta bývá nejpraktičtější. Evil-WinRM dává:

To je důvod, proč se na blogu po získání účtu často přechází právě na WinRM. Ne proto, že by to bylo “cool”, ale protože to zjednoduší všechno další.

Nejčastější scénáře využití v tomto projektu

Přihlášení jménem a heslem po prvním identity footholdu

Nejběžnější scénář je jednoduchý: nejprve někde unikne heslo nebo padne na password spray a pak se ověří proti WinRM.

To je dobře vidět třeba na:

Prakticky jde o nejčistší variantu:

evil-winrm -i Resolute.megabank.local -u melanie -p 'Welcome123!'

Jakmile je shell otevřený, lze pohodlně pokračovat ve čtení transcriptů, dumpu tajemství, enumeraci služeb nebo dalším laterálním pohybu.

Stabilní shell po Kerberos nebo AD enumeraci

Na AD strojích je běžné, že heslo nevznikne z webu, ale z práce s identitou: AS-REP roast, veřejná jména, dokumentová metadata nebo defaultní heslo. Jakmile takový účet vyjde a WinRM je dostupný, Evil-WinRM bývá první rozumná volba.

Na Forestu se po cracknutí svc-alfresco:s3rvice okamžitě přechází na WinRM, protože je potřeba stabilní PowerShell pro sběr dat do BloodHoundu. Na Sauně totéž platí pro FSmith i pozdější pass-the-hash jako Administrator. Praktický kontext téhle části rozebírám i v článku Kerberos útoky z nulového přístupu.

evil-winrm -i 10.10.10.175 -u FSmith -p 'Thestrokes23'
evil-winrm -i 10.10.10.175 -u Administrator -H 'd9485863c1e9e05851aa40cbb4ab9dff'

Tady je důležité, že WinRM není cíl. Je to kanál, který zpřehlední další práci po získání identity.

Kerberos a certifikátové scénáře

Na Anubis je dobře vidět, že Evil-WinRM není vázaný jen na obyčejné heslo. Když už útok vede přes certifikát, PKINIT nebo jiný doménový trust model, může WinRM pořád posloužit jako finální pracovní shell.

proxychains -f proxychains4.conf evil-winrm -i earth.windcorp.htb -u administrator -r WINDCORP.HTB

Právě tady je vidět další praktická věc: problém nemusí být autentizace, ale dostupnost služby. Když WinRM běží jen v interní síti nebo přes pivot, Evil-WinRM dává smysl až ve chvíli, kdy je vyřešený tunel nebo proxy. Konkrétní certifikátový kontext rozebírám v článku AD CS a certifikáty jako cesta k Administratorovi.

Kdy je Evil-WinRM nejlepší volba

Evil-WinRM se vyplácí hlavně tehdy, když:

Naopak nedává smysl očekávat od něj něco, co neřeší:

Nejčastější chyby v praxi

Zaměnění nástroje za foothold

Na blogu je dobře vidět, že Evil-WinRM se objevuje až po získání identity. Pokud heslo nebo hash ještě neexistuje, hledá se nejdřív v:

Teprve potom přichází na řadu WinRM klient.

Ignorování síťové dosažitelnosti

Na Controlu WinRM není zvenku dosažitelný a musí se nejdřív přeposlat. Na Anubis je potřeba proxychains. Na podobných hostech tedy problém neleží v syntaxi příkazu, ale v tom, zda se na službu dá z aktuálního místa vůbec dostat.

Záměna lokálního a doménového kontextu

U Windows hostů je prakticky důležité vždy vědět:

Na jednoduchém hostu stačí -u a -p. V doménovém prostředí může rozhodnout i správný hostname, realm nebo práce přes hash.

Představa, že shell rovná se admin

Evil-WinRM často otevře jen běžného uživatele. Na Resolute je to melanie, na Driveru tony, na Heistu Chase. Skutečná privilege escalation pak stojí až na:

Nejčastější praktické scénáře

Potvrzení reuse hesla

Když heslo unikne z webu, konfigurace nebo logu, WinRM je rychlý způsob, jak ověřit, zda nejde o širší problém identity. To je přesně případ Remote, Heistu nebo Fuse.

Přechod z jednorázového footholdu na použitelnou pracovní session

Po webshellu, SMB enumeraci nebo cracknutí hashe dává WinRM mnohem pohodlnější prostředí než improvizovaný boční kanál. To je velmi dobře vidět na Forestu, Cascade nebo Resolute.

Finální shell po AD nebo certifikátové kompromitaci

Když útok skutečně kompromituje doménovou identitu, Evil-WinRM bývá už jen čistý a spolehlivý způsob, jak z ní udělat administrátorský shell. To platí pro Saunu, APT i Anubis.

Související články v projektu

Co si odnést do praxe

Další Související Články V Projektu

HTB Stroje

Techniky

Nástroje

tags: nastroje - windows - active-directory - winrm - powershell