tom@home.htb:~$

Blog o HTB

1 February 2021

Socat

Úvod a kontext

socat je jeden z těch nástrojů, které se v rozborech neobjevují nápadně často, ale pokaždé přesně ve chvíli, kdy je potřeba slepit dohromady dvě síťové reality, které spolu běžně nekomunikují. Není to skener ani exploit framework. Je to praktický relé a bridge nástroj.

Na Zettě propojí lokální IPv4 port se vzdáleným IPv6 rsync rozhraním a tím zpřístupní interní službu běžnému klientovi. Širší dopravní kontext je i v článku Port forwarding, proxy a protokolové mosty jako exploitační primitivum a na síťovou část navazuje i IPv6 jako opomíjená attack surface.

Co socat v praxi řeší

socat je nejpraktičtější ve chvíli, kdy existuje konkrétní zdroj i cíl provozu, ale chybí mezi nimi jednoduché technické lepidlo. Typicky řeší otázku:

Jeho síla neleží v “mnoha funkcích”, ale v tom, že umí velmi rychle udělat malý, jednorázový a přesně cílený transportní most.

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

Překlad mezi IPv4 a IPv6

Na Zettě byl nejdůležitější problém v tom, že rsync služba běžela v interní IPv6 vrstvě, zatímco běžné další workflow bylo připravené pro lokální IPv4 práci. socat tenhle nesoulad vyřešil jediným mostem:

socat TCP4-LISTEN:8730,fork TCP6:[dead:beef::250:56ff:feb9:f660]:8730

Praktický dopad je zásadní:

To je přesně typ situace, kde socat ušetří psaní vlastního wrapperu nebo hledání složitějšího tunelu.

Rychlý jednorázový bridge místo plného tunelu

V projektu se socat explicitně objevuje hlavně na Zettě, ale prakticky reprezentuje širší kategorii problémů: není potřeba budovat celý SOCKS pivot nebo dlouhodobý tunel, stačí přemostit jeden konkrétní port mezi dvěma body.

To je užitečné hlavně tehdy, když:

Doplněk k širší pivot logice

socat dává smysl v okamžiku, kdy útok už přešel do interní vrstvy a potřebuje malý technický most, ne další enumeraci. Právě proto se v širším kontextu často objevuje vedle:

V tomto projektu to není hlavní “hero” nástroj. Je to přesný specialista na úzký dopravní problém.

Kdy je socat nejlepší volba

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

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

socat:

Na Zettě byla nejdřív nutná znalost interní IPv6 topologie i toho, že za ní běží rsync. socat až následně proměnil tuhle znalost ve snadno použitelnou pracovní cestu.

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

Přehnaně široké použití tam, kde stačí jednodušší cesta

Někdy stačí ssh -L nebo normální klient s podporou cílové vrstvy. socat má největší hodnotu tehdy, když opravdu řeší konkrétní nesoulad mezi tím, co nástroj očekává, a tím, jak je služba dostupná.

Záměna bridge za pivot

socat často vytváří jeden přesný most. Není to automaticky náhrada za obecný SOCKS pivot nebo správu většího vnitřního prostoru.

Ignorování toho, co je skutečný cíl

Stejně jako u jiných dopravních nástrojů je důležité, že most není cíl. Cíl je služba za ním a důvod, proč má její zpřístupnění bezpečnostní dopad.

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

Interní služba běží na jiné adresní rodině

To je Zetta.

Potřebuji zpřístupnit jediný konkrétní port dalšímu nástroji

To je obecně nejtypičtější role socatu v post-exploitation práci a přesně do ní zapadá i Zetta.

Nechci stavět celý tunel, jen rychlý přemosťovací bod

Právě tady bývá socat praktičtější než těžší tunelovací řešení.

Související články v projektu

Co si odnést do praxe

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

Techniky

Nástroje

tags: nastroje - tunneling - relay - tcp - ipv6 - pivot - port-forwarding