tom@home.htb:~$

Blog o HTB

21 November 2020

Legacy infrastruktura, kde banner prakticky rozhodne exploit

Úvod a kontext

U moderních systémů obvykle nestačí vidět verzi služby a hned sahat po veřejném exploitu. Bannery mohou být zkreslené, distribuce backportují záplaty a stejné číslo verze nemusí znamenat stejný stav zranitelnosti. U skutečně legacy infrastruktury ale často platí něco jiného: kombinace

je sama o sobě téměř diagnózou.

Právě to ukazují Devel, Grandpa, Lame a Legacy. Tyto stroje nejsou zajímavé proto, že by vyžadovaly hlubokou kreativitu. Jsou zajímavé proto, že správná interpretace banneru a kontextu okamžitě zúží prostor na jeden nebo dva realistické útoky.

O čem tenhle článek je a o čem není

Tenhle text není katalog historických CVE. Je o rozhodování.

Praktickou práci se scanem a čtením síťové stopy rozebírám i v samostatném článku Nmap.

Nejde o otázku:

Jde o otázku:

To je důležité i obranně. Pokud v síti ještě běží Windows XP, IIS 6.0 s WebDAV nebo Samba z éry 3.0.20, problém nespočívá v tom, že „někdy možná bude exploit“. Problém je v tom, že už samotná přítomnost takové technologie dramaticky zjednodušuje rozhodování útočníka.

Co dělá z banneru opravdu silnou indicii

Banner sám o sobě nestačí. Vysokou hodnotu má až ve chvíli, kdy sedí několik vrstev najednou:

1. Technologie patří do známé historické éry

Například:

2. Povrch služby odpovídá známému vzoru

Nejde jen o číslo verze, ale i o chování:

3. Existuje velmi krátká cesta od indicie k ověřitelné hypotéze

Dobrá pracovní hypotéza nevypadá jako „zkusím dvacet exploitů“. Vypadá jako:

Grandpa: IIS 6.0 a WebDAV jako téměř hotová odpověď

Grandpa je učebnicový příklad. Už první scan ukazuje:

Microsoft-IIS/6.0
Allowed Methods: OPTIONS, TRACE, GET, HEAD, COPY, PROPFIND, SEARCH, LOCK, UNLOCK

Tady není hlavní hodnota v tom, že nmap našel webserver. Hlavní hodnota je v tom, že kombinace:

prakticky sama navrhuje další krok.

Na Grandpa proto dává smysl sáhnout po iis_webdav_scstoragepathfromurl. To je přesně ten typ situace, kdy už hluboká webová enumerace nepřináší lepší návratnost než správně přečtený banner.

Legacy: Windows XP a SMB jako diagnóza, ne jen informace

Legacy jde ještě dál. Scan vrátí v podstatě jen toto:

445/tcp  open  microsoft-ds  Windows XP microsoft-ds
Service Info: OSs: Windows, Windows XP

Na moderním Windows serveru by z podobného výstupu ještě nešlo vyvozovat téměř nic. U Windows XP je to ale jiný svět. Když se k tomu přidá pozitivní indicie směrem k ms08-067, nejde o dlouhou analytickou práci. Jde o potvrzení, že v síti leží historický host s přímou cestou k SYSTEM.

Legacy dobře ukazuje, že nejnebezpečnější na podobné infrastruktuře nemusí být jedna konkrétní chyba. Nejhorší je samotný fakt, že host patří do technologické generace, kde jsou celé třídy síťových chyb dávno veřejně zmapované a stále spolehlivě zneužitelné.

Lame: když je zranitelných služeb moc, banner pomáhá vybrat správnou

Lame je užitečný jinak. Nejde o host s jedním křiklavým problémem, ale o stroj, kde je starých služeb víc najednou:

vsftpd 2.3.4
Samba 3.0.20
distccd v1

Právě tady se ukazuje druhá obranně důležitá lekce. Útočník obvykle nehledá „nejzajímavější“ chybu. Hledá nejlevnější cestu.

Na Lame proto vychází nejlépe Samba 3.0.20 a usermap_script, protože nevede jen k footholdu, ale rovnou k privilegovanému shellu. Banner tady nerozhoduje v tom smyslu, že by existovala jediná možná cesta. Rozhoduje v tom smyslu, že umožní rychle vyřadit méně výhodné varianty.

Devel: banner nestačí, ale ve spojení s povrchem dramaticky zkrátí cestu

Devel je dobrá protiváha. Samotný Microsoft IIS 7.5 ještě automaticky neznamená přímý exploit. Rozhodující je až kombinace s anonymous FTP a tím, že FTP listing obsahuje iisstart.htm.

To mění situaci zásadně. Najednou už nejde o obecné IIS 7.5 na Windows, ale o mnohem konkrétnější pattern:

Devel tak ukazuje důležitou korekci celé teze. Banner sám často nestačí, ale ve starém prostředí stačí banner plus jeden odpovídající infrastrukturní detail a prostor rozhodování se prudce zúží.

Traverxec je užitečný linuxový doplněk ke stejné úvaze. Nostromo není „legacy infrastruktura“ ve smyslu Windows XP nebo Samba 3.0.20, ale ukazuje velmi podobný rozhodovací moment: jakmile scan vrátí nostromo 1.9.6, nemá velký smysl dělat nekonečnou webovou enumeraci proti neznámému stacku. Nejkratší a nejrealističtější hypotéza vede rovnou ke známé RCE pro konkrétní verzi serveru.

Jak se rozhodovat po prvním skenu

Při práci s legacy hostem má smysl jít po těchto otázkách:

Je to skutečně stará technologie, nebo jen starě vypadající banner

U živých distribucí je potřeba počítat s backporty. U Windows XP, IIS 6.0 nebo historické Samby je pravděpodobnost falešného optimismu výrazně nižší.

Sedí i chování služby

Verze sama nestačí. Potvrzující signál bývá:

Jaká je nejkratší cesta k ověřitelné hypotéze

Smyslem není spustit všechno, co vrátí searchsploit. Smyslem je najít jeden nebo dva kandidáty, které dávají technicky i provozně největší smysl.

Praktickou práci s tímto filtrováním rozebírám samostatně i v článku Searchsploit.

Jaký je očekávaný dopad

Lame a Legacy ukazují nejtvrdší variantu: síťový exploit rovnou vrací privilegovaný shell. Grandpa a Devel ukazují dvoufázový řetězec: nejdřív foothold, pak lokální privesc. I to je důležité pro priorizaci.

Kde se obrana nejčastěji plete

„Je to staré, ale je to uvnitř“

Legacy infrastruktura uvnitř sítě není menší problém. Jen přesouvá okamžik kompromitace do chvíle, kdy útočník získá první foothold jinde.

To je pravda u moderních stacků. U opravdu starých technologií ale stejná opatrnost často vede k podcenění rizika. Pokud host opravdu běží na XP nebo na IIS 6.0, nejde o akademickou nejistotu, ale o prakticky exploitable stav.

„Exploit se týká jen konkrétní služby“

Ve skutečnosti dopad často přesahuje samotnou službu. Devel ukazuje přechod z webového kontextu do SYSTEM, Lame a Legacy rovnou plný kompromis hostu.

Obrana a hardening

1. Inventarizovat legacy technologie jako samostatnou rizikovou kategorii

Nestačí vědět, že host „nějak běží“. Je potřeba explicitně vědět:

2. Oddělit nepatchovatelné systémy od běžné sítě

Pokud systém nejde aktualizovat, nesmí zůstat v běžném dosahu. U SMB, WebDAV nebo anonymous FTP je to zásadní.

3. Omezit služby, které zbytečně rozšiřují povrch

Anonymous FTP, WebDAV nebo historické sdílené služby bývají na legacy hostech zapnuté spíš ze setrvačnosti než z nutnosti. To je přesně typ dluhu, který zjednodušuje útok nejvíc.

4. Nepodceňovat lokální dopad po prvním footholdu

Na starých Windows hostech bývá cesta od webového nebo uživatelského shellu k SYSTEM velmi krátká. Ochrana nesmí stát na předpokladu, že „první shell ještě nic neznamená“.

Shrnutí klíčových poznatků

Co si odnést do praxe

Další související články

HTB Stroje

Techniky

Nástroje

tags: legacy - windows - linux - smb - webdav - patching