
сканер глобального ограничения скорости в Linux (CVE-2016-5696)
grill, также известный как глобальное ограничение скорости в Linux, — это сканер для CVE-2016-5696 (чистый TCP off-path).
$ go get github.com/nogoegst/grill
Никогда не используйте беспроводные каналы на пути к хостам. Постоянные потери пакетов и повторные передачи значительно снижают точность сканирования.
Используйте как можно меньше NAT (вплоть до 0), они вносят задержки и изменяют пакеты.
В настоящее время grill использует примерно в среднем 400 Кбит/с и макс. 500 Кбит/с исходящей пропускной способности (16 параллельных сканирований).
Чтобы избежать вмешательства ядра во время сканирования, добавьте правило в брандмауэр для сброса исходящих RST-пакетов.
Для PF (/etc/pf.conf):
block drop out quick proto tcp flags R/R
затем # pfctl -f /etc/pf.conf.
Для NetFilter:
# iptables -A OUTPUT -p tcp --tcp-flags RST RST -j DROP
grill читает stdin и сканирует хосты из него (до 16 параллельных сканирований). Формат ввода: host port\n.
# cat probe | grill -i interface -dll gateway-MAC [-sll src-MAC] [-sip src-IP] > results
Формат вывода: host:port,recievedChACKs,1stBurstSendingTime,2ndBurstSendingTime.
Чтобы получить удобочитаемые результаты, пропустите результаты через утилиту verdict (находится в каталоге verdict):
cat results | verdict
Вот так. Веселитесь и занимайтесь любовью.
Чтобы просканировать реле сети Tor, просто получите и отформатируйте последний консенсус:
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
А затем просто передайте полученный файл на вход grill.
На данный момент сканирование всей сети Tor должно занимать менее 30 минут (16 параллельных сканирований).
Мне удалось просканировать всю сеть за 7m44s, используя 127 параллельных сканирований, и за 6m30s, дополнительно уменьшив тайм-аут до 1.7s (это, вероятно, небезопасно из-за потерь пакетов, перегрузки и т.д.).
Обратите внимание, что 127 — это максимальное (и разумное) количество открытых BPF в OpenBSD. В Linux этот лимит выше, но он может почти заблокировать ваше ядро. В любом случае, удачи.
grill в значительной степени вдохновлен похожим сканером на Scapy от David Stainton [https://github.com/david415/scan_for_rfc5961] и PoC от violentshell [https://github.com/violentshell/rover].