
scanner de limitation de débit globale sous Linux (CVE-2016-5696)
grill, alias limitation globale de débit sous Linux, est un scanner pour
CVE-2016-5696 (TCP pur hors chemin).
$ go get github.com/nogoegst/grill
N'utilisez jamais de liaisons sans fil sur le chemin vers les hôtes. Les pertes de paquets constantes et les retransmissions réduisent considérablement la précision du scan.
Utilisez le moins de NAT possible (jusqu'à 0), ils introduisent des délais et modifient les paquets.
Actuellement, grill utilise en moyenne environ 400KBit/s et un maximum de 500Kbit/s de bande passante de sortie (16 scans simultanés).
Pour éviter toute interférence du noyau pendant le scan, ajoutez une règle à votre pare-feu pour supprimer les paquets RST sortants.
Pour PF (/etc/pf.conf):
block drop out quick proto tcp flags R/R
puis # pfctl -f /etc/pf.conf.
Pour NetFilter:
# iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
grill lit stdin et scanne les hôtes à partir de celui-ci (jusqu'à 16 scans simultanés). Le format d'entrée est host port\n.
# cat probe | grill -i interface -dll gateway-MAC [-sll src-MAC] [-sip src-IP] > results
Le format de sortie est host:port,recievedChACKs,1stBurstSendingTime,2ndBurstSendingTime.
Pour obtenir des résultats lisibles, exécutez les résultats via l'utilitaire verdict (dans le répertoire verdict):
cat results | verdict
Ainsi va la vie. Amusez-vous et faites l'amour.
Pour scanner les relais du réseau Tor, récupérez et formatez le dernier consensus:
curl https://collector.torproject.org/recent/relay-descriptors/consensuses/`date -u +'%Y-%m-%d-%H-00-00-consensus'` | grep '^r '| awk '{print $7" "$8}' > probe-consensus
Puis passez simplement le fichier obtenu en entrée de grill.
À l'heure actuelle, scanner tout le réseau Tor devrait prendre moins de 30 minutes (16 scans simultanés).
J'ai réussi à scanner tout le réseau en 7m44s en utilisant 127 scans simultanés et en 6m30s en réduisant davantage le délai d'attente à 1.7s (ce n'est probablement pas sûr en raison des pertes de paquets, de la congestion, etc.).
Notez que 127 est le nombre maximum (et raisonnable) de BPF ouverts sous OpenBSD. Sous Linux, cette limite est plus élevée mais cela rendra votre noyau presque bloqué. En tout cas, bonne chance.
grill est grandement inspiré par le scanner Scapy similaire de David Stainton [https://github.com/david415/scan_for_rfc5961]
et le PoC de violentshell [https://github.com/violentshell/rover].