OpenSSL
Úvod a kontext
OpenSSL je v bezpečnostní praxi jeden z těch nástrojů, které se skoro nikdy nestanou hlavním tématem write-upu, ale bez nich se řada kroků vůbec nepohne. Není to skener ani exploit framework. Je to praktická sada utilit pro práci s certifikáty, klíči, CSR, kontejnery typu .p12 a jednodušší kryptografií kolem souborů.
Na Anubis slouží k vytvoření žádosti o certifikát pro AD CS. Na Fatty rozbalí klientský certifikát z fatty.p12 pro další MITM práci. Na Fortress Jet je zase použitý úplně jinak: jako rychlý nástroj pro dešifrování souboru, když už je k dispozici správný AES klíč. To dobře ukazuje jeho reálnou roli v projektu: nejde o jeden specializovaný trik, ale o spolehlivý pracovní nástroj pro několik opakujících se situací.
Co tenhle nástroj v praxi řeší
OpenSSL má v těchto článcích největší hodnotu hlavně ve třech typech úloh:
- vytvoření nebo převod certifikátového materiálu,
- rozbalení klíčů a certifikátů z kontejneru,
- a jednoduché dešifrování nebo transformace souboru, když už znáte správný kryptografický vstup.
Prakticky to znamená, že pomáhá ve chvíli, kdy už rozumíte bezpečnostní logice problému a potřebujete z ní udělat konkrétní technický artefakt.
Nejčastější scénáře využití v tomto projektu
Vytvoření CSR pro certifikátový útok
Na Anubis a v technickém článku AD CS a certifikáty jako cesta k Administratorovi je OpenSSL hlavně nástroj na vytvoření žádosti o certifikát:
openssl req -config admin.cnf -subj "/DC=htb/DC=windcorp/CN=Users/CN=Administrator" -new -nodes -sha256 -out admin.req -keyout admin.key
Tady je důležité chápat, že OpenSSL sám nic neeskaluje. Jen zformuje správný klíčový materiál a CSR tak, aby šlo zneužít slabě nastavenou certifikační šablonu. Praktický problém leží v AD CS trust modelu, ne v samotném nástroji.
Rozbalení .p12 a příprava klíčů pro další práci
Na Fatty je jeho role jiná. Po dekompilaci klienta se ukáže, že aplikace používá klientský certifikát fatty.p12 a známe i jeho heslo. OpenSSL pak slouží k rozbalení soukromého klíče a veřejného certifikátu:
openssl pkcs12 -in fatty.p12 -nocerts -out fatty.key
openssl pkcs12 -in fatty.p12 -clcerts -nokeys -out fatty.crt
To je velmi častý praktický scénář. Samotný .p12 bývá pro další tooling nepohodlný, takže prvním krokem je převod do podoby, se kterou umí pracovat jiný nástroj nebo vlastní skript.
Rychlé dešifrování souboru, když už je znám klíč
Na Fortress Jet OpenSSL neřeší certifikáty, ale souborovou kryptografii. Po získání správného AES hesla stačí dešifrovat secret.enc:
openssl aes-256-cbc -d -in /home/tony/secret.enc -out msg.txt -k "Fk+HCXBabN72H+GnoNutYBcMFNB9c+jG4R/RBFyHoFI="
To je dobrá připomínka, že OpenSSL není jen TLS utility. V praxi často poslouží i jako rychlý převodník nebo dešifrovač pro artefakt, který jste získali jinou cestou.
Kdy je OpenSSL nejlepší volba
OpenSSL se vyplácí hlavně tehdy, když:
- už máte konkrétní certifikátový nebo klíčový problém,
- potřebujete vytvořit CSR nebo převést klíčový materiál,
- pracujete s
.p12,.crt,.keya podobnými formáty, - nebo máte správný kryptografický vstup a jen potřebujete udělat praktickou transformaci souboru.
Naopak nedává smysl čekat, že za vás vyřeší kryptografickou analýzu nebo logiku útoku. Je to především pracovní nástroj pro operace nad materiálem, který už máte.
Nejčastější chyby v praxi
Zaměnění nástroje za útok
Na Anubis problém neležel v OpenSSL, ale v tom, že CA byla ochotná vydat použitelný certifikát pro privilegovanou identitu. OpenSSL tu jen vyrobil korektní vstup.
Nejasnost, co je certifikát a co soukromý klíč
Na Fatty je dobře vidět, že praktická práce často vyžaduje oddělit:
- veřejný certifikát,
- soukromý klíč,
- a případně heslem chráněný kontejner.
Bez tohoto rozlišení se snadno ztratíte v tom, který soubor patří kterému nástroji.
Příliš široké používání OpenSSL tam, kde je potřeba něco jiného
Pro TLS diagnostiku je praktičtější sslscan. Pro aktivní MITM v daném projektu dával smysl sslsplit. OpenSSL je skvělý na manipulaci s materiálem, ale neřeší všechno kolem něj.
Související články v projektu
- Rozbory: Anubis, Fatty, Fortress Jet
- Techniky: AD CS a certifikáty jako cesta k Administratorovi
- Nástroje: sslscan, sslsplit
Co si odnést do praxe
OpenSSLje v projektu hlavně praktický pracovní nástroj pro CSR, klíče, certifikáty a jednoduché kryptografické operace nad soubory.- Největší hodnotu má ve chvíli, kdy už rozumíte bezpečnostní logice problému a potřebujete z ní vyrobit nebo převést konkrétní artefakt.
- Sám o sobě nic neláme. Jen zrychluje a zpřesňuje práci kolem certifikátů a klíčového materiálu.