Причины:
1. Ошибка в синтаксисе CIDR: Неверная маска (например, `/33`) или запись адреса (192.168.1.0/24 вместо 192.168.1.0/24 — корректно; 192.168.1.5/24 — ошибка, если не включен рандом).
2. Отсутствие прав `root`: Masscan требует raw-сокеты (CAP_NET_RAW).
3. Блокировка трафика файрволом/скоростью: `--rate` слишком низкий (пакеты не проходят через хост) или слишком высокий (отбрасываются роутером).
4. Проблемы с ARP: Если цель в той же L2-сети, не разрешается MAC-адрес из-за изоляции сети (VLAN) или ACL на порту коммутатора.
5. Конфликт с другими утилитами: Nmap или iptables блокируют raw-пакеты.
6. Неверный интерфейс: Masscan пытается отправить пакеты через lo (127.0.0.1), а не через eth0/wlan0.
Решение:
1. Проверка синтаксиса:
bash
masscan 192.168.1.0/24 --rate=100 --adapter-ip 192.168.1.2 --adapter-mac aa:bb:cc:dd:ee:ffУбедитесь, что маска корректна (например, /24). Не используйте `/32` если нужна подсеть.
2. Права:
bash
sudo masscan ...Или дать бинарнику права: `sudo setcap cap_net_raw+ep masscan`.
3. Скорость (rate):
- Для локальной сети: `--rate 1000`.
- Для внешней с высокими потерями: начните с `--rate 50`, увеличьте на 10%.
4. Принудительный ARP и режим без проверки:
bash
masscan --arpspoof 192.168.1.1 --router-mac 00:11:22:33:44:55 ...Если MAC роутера неизвестен, используйте `--arpspoof` с любым IP для обхода ACL.
5. Проверка доставки пакетов (tcpdump):
bash
sudo tcpdump -i eth0 icmp and host 192.168.1.100Если пакеты отправлены, но нет ответа — проблема на целевой стороне (файрвол/порт закрыт).
6. Использование `--wait 0` для реального времени:
bash
sudo masscan 192.168.1.0/24 -p80,443 --rate=500 --wait 0Отключит задержку по умолчанию.
7. Проверка конфликтов:
bash
sudo ip link set eth0 promisc on
sudo iptables -F
stop nmap/zenmapИтоговая команда (если все настройки верны):
bash
sudo masscan 10.10.10.0/24 -p80,443 --rate=1000 --interface eth0Если не работает — проверьте tcpdump с хоста назначения.