Impacket
Úvod a kontext
Impacket není jeden nástroj, ale celý toolkit pro práci se síťovými protokoly, identitou a správou Windows prostředí. Právě proto se v rozborech objevuje znovu a znovu: pokaždé trochu jinak, ale téměř vždy v okamžiku, kdy už nestačí jen “mám port 445” nebo “mám heslo”. Impacket je praktický právě tím, že z hypotézy udělá ověřitelný protokolový krok.
Na Forestu slouží k enumeraci účtů, relayi a DCSync. Na APT k offline těžbě z ntds.dit, práci s registrem a pozdějšímu dumpu přes strojový účet. Na Intelligence propojuje SMB, Kerberos a service ticket pro impersonaci. To je důležitý rozdíl proti “jednomu exploitu”: Impacket není o jedné technice, ale o schopnosti mluvit nativně protokolem, který daný řetězec právě potřebuje.
Pokud vás zajímají konkrétnější rodiny utilit, navazují na tenhle přehled ještě tři užší texty:
- Impacket pro AD enumeraci a první identity
- Impacket pro relay, tajemství a delegovaná práva
- Impacket pro vzdálené vykonávání a SMB pomocné workflow
Co je na Impacketu prakticky nejdůležitější
Největší hodnota toolkitu neleží v šíři, ale v tom, že pokrývá několik opakujících se rodin úloh:
- enumerace identity a služeb,
- čtení nebo těžba tajemství,
- relay a práce s důvěrou v AD,
- interakce se SMB, registry a service ticketem,
- a technické doručení dalších kroků, třeba přes dočasný SMB share.
Prakticky se vyplatí nepřemýšlet o Impacketu jako o “balíku nástrojů, které se někdy hodí”. Užitečnější je vnímat ho jako sadu protokolových primitiv.
Nejčastější scénáře využití v tomto projektu
Enumerace AD bez platného účtu nebo s minimálním přístupem
Na Forestu je dobře vidět první velká síla toolkitu: ještě před footholdem umí vytáhnout identitní informace a ověřit, zda některý účet nemá vypnutou Kerberos pre-auth.
GetADUsers.py -all -dc-ip 10.10.10.161 htb.local/
GetNPUsers.py -format hashcat -usersfile users.txt -outputfile hashes.asreproast -dc-ip $IP htb.local/
Tady není důležité jen to, že “něco vrátí”. Důležitý je posun v rozhodování:
- nejdřív je vidět reálný prostor účtů,
- potom lze zúžit kandidáty,
- a teprve nakonec přichází cracking nebo další identitní krok.
Praktický kontext téhle rodiny rozebírám i v článku Kerberos útoky z nulového přístupu.
Offline a online těžba tajemství
Na APT se Impacket neobjevuje jako cesta k exploitu, ale jako způsob, jak přeložit získané artefakty do identity materiálu. Po získání ntds.dit a SYSTEM dává okamžitě smysl:
impacket-secretsdump -ntds "Active Directory/ntds.dit" -system registry/SYSTEM -hashes lmhash:nthash LOCAL -outputfile ntlm-extract
Tím vznikne úplně jiný typ schopnosti než při běžném online útoku. Útočník už nemusí hádat hesla proti službě. Může offline zpracovat identitní vrstvu domény a teprve potom zjišťovat, který účet dává nejlepší návratnost.
Stejný toolkit pak na APT pokračuje online:
impacket-reg htb.local/henry.vinson@apt.htb.local -hashes :__CENSORED__ query -keyName HKU\\Software\\GiganticHostingManagementSystem
Tím je dobře vidět další praktická vlastnost Impacketu: jednotlivé utility na sebe přirozeně navazují. Jeden skript otevře účet, druhý registry, třetí další tajemství.
Právě tahle vrstva je podrobněji rozepsaná i v článku Doménové zálohy a offline těžba tajemství.
Relay, DCSync a delegovaná práva
Na Forestu už Impacket nepomáhá jen s enumerací. Přechází do role nástroje, který přímo pracuje s důvěrou uvnitř Active Directory.
ntlmrelayx.py -t ldap://10.10.10.161 --escalate-user svc-alfresco
secretsdump.py htb.local/svc-alfresco:s3rvice@forest.htb.local
psexec.py -hashes :32693b11e6aa90eb43d32c72a07ceea6 htb.local/administrator@forest.htb.local powershell.exe
Tohle je prakticky důležité ve dvou rovinách:
Impackettu není “support tooling”, ale hlavní pracovní vrstva útoku,- a každá utilita řeší konkrétní protokolový krok, ne obecné “zkusím exploit”.
Právě proto je v AD prostředí tak silný. Když už hypotéza říká “tady jde o relay”, “tady jde o DCSync” nebo “tady potřebuji service ticket”, Impacket obvykle nabídne přesný nástroj pro danou operaci. Související širší kontext je v článku Delegovaná práva v AD: DCSync, gMSA, relay, deleted objects.
SMB klient, share a technické doručení dalších kroků
Ne všechny utility v toolkitu jsou “silné” ve smyslu přímého průlomu. Často mají hodnotu v tom, že zjednoduší mezikrok.
Na Intelligence impacket-smbclient otevírá čitelné share a tím i skript downdetector.ps1. Na Cascade a Fuse zase pomáhá pohodlněji pracovat se SMB než ručním skládáním jiných nástrojů. Na Driveru, Resolute nebo v článku o Windows lokálním privescu přes služby, drivery a spooler se opakuje impacket-smbserver jako jednoduchý způsob, jak hostu doručit DLL nebo jiný soubor.
To je dobrá připomínka, že praktická hodnota Impacketu neleží jen v “velkých” utilitách typu secretsdump. Často ji vytváří i drobné technické zjednodušení pracovního toku.
Kerberos a service ticket jako pracovní materiál
Na Intelligence se toolkit posouvá ještě jinam. Po získání gMSA hashe už nejde o SMB share ani dump hashů, ale o přesné vyžádání service ticketu v kontextu jiné identity:
impacket-getST intelligence.htb/svc_int$ -spn WWW/dc.intelligence.htb -hashes :c699eaac79b69357d9dabee3379547e6 -impersonate Administrator
impacket-smbclient -k intelligence.htb/Administrator@dc.intelligence.htb -no-pass
Právě tady je dobře vidět, proč je užitečné vnímat Impacket jako protokolový toolkit. Neřeší jeden “typ útoku”. Řeší mnoho různých situací, ve kterých je potřeba mluvit správným jazykem s AD nebo SMB.
Jak o Impacketu přemýšlet prakticky
V běžné praxi se vyplatí držet jednoduchý sled:
1. Jakou schopnost právě potřebuji
- vypsat účty,
- ověřit Kerberos hypotézu,
- přečíst share,
- vytáhnout tajemství,
- relaynout autentizaci,
- získat service ticket,
- nebo spustit příkaz v kontextu účtu.
2. Jaký protokol to řeší
- LDAP,
- SMB,
- Kerberos,
- RPC,
- registry,
- nebo replikační logika domény.
3. Který konkrétní skript dává smysl
To je mnohem použitelnější než pouštět nástroje podle jména jen proto, že patří do stejného balíku.
Co Impacket neumí vyřešit za vás
Impacket je silný až tehdy, když už existuje dobrá hypotéza. Sám za vás nerozhodne:
- jestli má cenu jít po Kerberosu nebo po webu,
- který účet je provozně použitelný,
- jestli dané oprávnění stačí na DCSync,
- ani zda hash skutečně vede ke stabilnímu shellu.
Typická chyba vypadá jako “zkusím několik impacket skriptů a uvidím”. V praxi je mnohem lepší držet se konkrétní otázky:
- Co chci ověřit?
- Jaký protokol to nese?
- Jaký minimální krok mi dá odpověď?
Nejčastější chyby při použití
- zaměnění toolkitu za exploitační framework,
- příliš rychlé přeskakování mezi skripty bez jasné hypotézy,
- nepochopení rozdílu mezi offline a online prací s tajemstvími,
- ignorování toho, že úspěšný protokolový krok ještě neznamená použitelný provozní foothold.
Na APT je například zásadní rozdíl mezi offline secretsdump nad uniklou zálohou a pozdějším online čtením registru nebo dumpem přes strojový účet. Na Forestu je zase rozdíl mezi tím, že GetNPUsers.py vrátí roastovatelný hash, a tím, že později ntlmrelayx otevře změnu oprávnění v AD.
Související články v projektu
- Rozbory: Forest, APT, Intelligence, Sauna, Cascade, Fuse
- Techniky: Kerberos útoky z nulového přístupu, Doménové zálohy a offline těžba tajemství, Delegovaná práva v AD: DCSync, gMSA, relay, deleted objects, Windows lokální privesc přes služby, drivery a spooler
- Nástroje: Impacket pro AD enumeraci a první identity, Impacket pro relay, tajemství a delegovaná práva, Impacket pro vzdálené vykonávání a SMB pomocné workflow
Co si odnést do praxe
Impacketje nejužitečnější tehdy, když ho berete jako sadu protokolových nástrojů, ne jako jednu magickou utilitu.- V projektu se opakují hlavně čtyři rodiny použití: enumerace identity, těžba tajemství, relay a práce se SMB/Kerberem.
- Největší hodnotu přinese ve chvíli, kdy už víte, co chcete po cíli zjistit nebo vynutit, a jen potřebujete správný protokolový nástroj.
Další Související Články V Projektu
HTB Stroje
Techniky
- Dokumentová metadata jako vstup do domény
- Kerberos útoky z nulového přístupu: AS-REP roast a práce s kandidátními uživateli
- Legacy infrastruktura, kde banner prakticky rozhodne exploit