Certmitm è uno strumento open source sviluppato dal ricercatore Aapo Oksman per identificare vulnerabilità nella convalida dei certificati nelle connessioni TLS di dispositivi client o applicazioni.
La repository, creata ad agosto dello scorso anno, include collegamenti agli slide e a un video che abbiamo caricato su YouTube per una più semplice visione.
L’installazione certmitm è stata testata su Debian 11 e Debian 12 e richiede Python 3.10 o versioni successive, è possibile installare i pacchetti necessari con il comando pip install -r requirements.txt
.
Per l’utilizzo, è consigliabile configurare il computer eseguendo certmitm come router per altri dispositivi nella rete e ottenere certificati reali, ad esempio un certificato Let’s Encrypt, e salvarli in real_certs.
Esempio
- Avviare un server DHCP/DNS
sudo ip addr add 10.0.0.1/24 dev eth0
sudo dnsmasq --no-daemon --interface eth0 --dhcp-range=10.0.0.100,10.0.0.200 --log-dhcp --log-queries --bind-interfaces -C /dev/null
- Intercettare le connessioni TLS dei client e reindirizzare le altre connessioni a Internet attraverso l’interfaccia WLAN
sudo iptables -A INPUT -i eth0 -j ACCEPT
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 443 -j REDIRECT --to-ports 9900
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
- Eseguire certmitm
python3 certmitm.py --listen 9900 --workdir testing --verbose --show-data
- Collegare i client alla rete e avviare le applicazioni. Si noti che potrebbe essere necessario riprovare a eseguire le applicazioni un paio di volte se i test falliscono
La repository presenta anche una hall of fame che elenca pubblicamente le vulnerabilità trovate con lo strumento, in ultimo viene evidenziato appunto il report su HackerOne che è valso al ricercatore un premio di 50 mila dollari.
Fonte: github.com