
scanner per la limitazione globale della velocità in Linux (CVE-2016-5696)
grill, noto anche come limitazione globale della velocità in Linux, è uno scanner per CVE-2016-5696 (pure TCP off-path).
$ go get github.com/nogoegst/grill
Non utilizzare mai collegamenti wireless nel percorso verso gli host. La perdita costante di pacchetti e le ritrasmissioni riducono drasticamente la precisione della scansione.
Usa il minor numero possibile di NAT (fino a 0), poiché introducono ritardi e modificano i pacchetti.
Attualmente grill utilizza circa una media di 400KBit/s e un massimo di 500Kbit/s di larghezza di banda in uscita (16 scansioni concorrenti).
Per evitare l'interferenza del kernel durante la scansione, aggiungi una regola al tuo firewall per eliminare i pacchetti RST in uscita.
Per PF (/etc/pf.conf):
block drop out quick proto tcp flags R/R
quindi # pfctl -f /etc/pf.conf.
Per NetFilter:
# iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
grill legge da stdin e scansiona gli host da esso (fino a 16 scansioni concorrenti). Il formato di input è host port\n.
# cat probe | grill -i interface -dll gateway-MAC [-sll src-MAC] [-sip src-IP] > results
Il formato di output è host:port,recievedChACKs,1stBurstSendingTime,2ndBurstSendingTime.
Per ottenere risultati leggibili, esegui i risultati tramite l'utility verdict (si trova nella directory verdict):
cat results | verdict
Così va. Divertiti e fai l'amore.
Per scansionare i relay della rete Tor, basta recuperare e formattare l'ultimo consenso:
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
E poi passa semplicemente il file risultante all'input di grill.
Al momento, la scansione dell'intera rete Tor dovrebbe richiedere meno di 30 minuti (16 scansioni concorrenti).
Sono riuscito a scansionare l'intera rete in 7m44s utilizzando 127 scansioni concorrenti e in 6m30s riducendo ulteriormente il timeout a 1.7s (questo probabilmente non è sicuro a causa di perdita di pacchetti, congestione, ecc.).
Nota che 127 è il numero massimo (e ragionevole) di BPF aperti in OpenBSD. In Linux questo limite è più alto, ma renderà il kernel quasi bloccato. Comunque, buona fortuna.
grill è enormemente ispirato dal simile scanner Scapy di David Stainton [https://github.com/david415/scan_for_rfc5961]
e dal PoC di violentshell [https://github.com/violentshell/rover].