tom@home.htb:~$

Blog o HTB

28 October 2020

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:

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ž:

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:

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

Co si odnést do praxe

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

Techniky

Nástroje

tags: nastroje - tls - ssl - certificates - crypto - pki