sslscan
Úvod a kontext
sslscan je úzký, ale velmi praktický nástroj pro situaci, kdy problém neleží v samotné aplikaci, ale v tom, jak se k ní připojit přes TLS. Nepomůže najít webový exploit a neotevře shell. Pomůže ale rychle zjistit, které verze protokolu, cipher suite a certifikátové parametry cílová služba skutečně přijímá.
Na Fatty byl právě tohle klíčový detail. Starý Java klient i server trvali na TLSv1.0 a cipheru AES128-SHA. Bez takového ověření bylo snadné uvíznout v dojmu, že proxy nebo MITM nefunguje, i když problém ve skutečnosti ležel v nekompatibilním TLS nastavení. Samotný aktivní MITM krok pak řešil až sslsplit.
Co tenhle nástroj v praxi řeší
sslscan má největší praktickou hodnotu ve chvíli, kdy potřebujete rychle zjistit:
- které TLS verze server akceptuje,
- jaké cipher suite podporuje,
- zda odpovídá certifikát a handshake,
- a jestli je potřeba starší nebo nestandardní klientská kompatibilita.
To je důležité hlavně tehdy, když:
- starší služba odmítá moderní klienty,
- proxy nebo intercepting tool selhává bez zjevné chyby,
- nebo je potřeba napodobit přesný transportní profil aplikace.
Nejčastější scénáře využití v tomto projektu
Potvrzení, že problém je v TLS kompatibilitě
Na Fatty měl klient fungovat přes starý Java stack a bylo nutné přizpůsobit proxy i MITM workflow. sslscan rychle ukázal, že server akceptuje jen TLSv1.0 a AES128-SHA:
sslscan 10.10.10.174:1337
Jakmile je tohle zřejmé, dává smysl přepnout ostatní nástroje do kompatibilního režimu. Bez toho by další experimenty vypadaly jako selhání proxy nebo certifikátu, i když skutečný problém byl nižší v transportní vrstvě.
Rychlé ověření, jestli dává smysl ladit certifikáty nebo cipher
V praxi je velmi častý omyl, že se problém přisoudí certifikátu, i když server ve skutečnosti odmítá verzi TLS nebo konkrétní cipher. sslscan právě tenhle zmatek rychle rozbije. Pomůže určit, jestli:
- řešíte certifikát,
- řešíte cipher suite,
- nebo řešíte vůbec základní handshake kompatibilitu.
Kdy je sslscan nejlepší volba
sslscan dává největší smysl tehdy, když:
- se připojení přes TLS chová podezřele,
- služba je stará nebo nestandardní,
- potřebujete přizpůsobit proxy, MITM nebo klienta,
- nebo chcete rychle potvrdit, co server opravdu přijímá.
Naopak není vhodný jako náhrada za hlubší TLS analýzu nebo jako obecný síťový skener. Je to rychlý diagnostický nástroj pro velmi konkrétní otázku.
Nejčastější chyby v praxi
Řešení aplikace, když problém leží v transportu
Na Fatty by bez sslscan bylo snadné trávit čas dekompilací klienta nebo laděním proxy, i když první problém byl prostě starý TLS profil.
Předpoklad, že moderní klient vždy funguje
Starší interní služby, Java klienti nebo proprietární protokoly často stojí na parametrech, které moderní nástroje ve výchozím stavu odmítají. sslscan je rychlý způsob, jak to potvrdit.
Zaměnění podpory cipher za funkční celkový řetězec
To, že server podporuje určitý cipher, ještě neznamená, že máte vyřešenou certifikační část nebo klientský handshake. Je to jen první potvrzení kompatibility.
Související články v projektu
- Rozbory: Fatty
Co si odnést do praxe
sslscanje praktický hlavně jako rychlý TLS diagnostický nástroj pro okamžik, kdy moderní klient nebo proxy selhává.- Největší hodnotu má u starých nebo nekompatibilních služeb, kde je potřeba potvrdit verzi TLS a cipher suite.
- Neřeší exploit. Jen velmi rychle oddělí aplikační problém od transportního.