Массовое сканирование. Masscan

Массовое сканирование. Masscan

E7|MGMx80



Тему массового сканирования сети интернет на наличие работающих служб, наверное, только ленивый не осветил. Отчего задача стоит нелегкая: доступно и насыщенно осветить материал и не залезть в скучные дебри мануала.

Программ для массового сканирования достаточно много, но широко известны nmap, zmap и masscan.

Останавливаться на каждой не буду, а выделю свою любимую Masscan.

Это один из самых быстрых и гибких сканеров портов. За счет кастомного TCP/IP стека он может выполнять до 10 миллионов пакетов с секунду.

В Kali Linux данная программа уже входит в список предустановленного софта.

Для установки на Linux Debian семейства (Ubuntu, Mint) можно проинсталлировать из репозитория:

sudo apt update
sudo apt install masscan

или собрать из исходников:

sudo apt-get install git gcc make libpcap-dev
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make

Синтаксис запуска программы:

masscan <ip/range_ip> -p <ports> <options>

Команда для сканирования на наличие сайтов в подсети 1.0.0.0/255.0.0.0 со скоростью 20000 пакетов в секунду:

masscan -p80,443 1.0.0.0/8 --rate=20000

Это хорошо, когда нам нужно обычные сайты найти. Часто бывает так, что критически важная служба сайта крутится не на IP доменного сайта, а просто проксируются на него. Все это обычно скрывают за произвольными портами.

К ним же относятся различные API службы.


Nginx проксирование с одного сервера на различные сайты


Masscan позволяет задавать диапазоны портов:

masscan -p80,443,1000-6000 87.0.0.0/8 --rate=20000

Но я бы вам не рекомендовал так делать. Сильно увеличивается количество запросов.

Расчет количества запросов:

5003 порта х 16 777 214 хостов = 83 936 401 642 запросов.

Поиск по диапазону портов осуществляется только после грамотного осинта, который сократит список исследуемых IP адресов, и, как результат, количество запросов и время сканирования.

masscan -p80,443,1000-6000 87.250.10.0/24 --rate=20000

Сканируя 80, 443 и другие http порты можно получить много паразитного трафика. Отчего велика вероятность забить канал или на VDS получить предупреждение/бан от хостера.

Есть два пути решения этой проблемы: или DROP-ать на определенном порту в iptables, или устроить спуфинг.

Первый вариант самый этичный.

Делаем блокировку входящих запросов на интерфейсе eth0 с портов 65000:

iptables -A INPUT -p tcp -i eth0 --dport 65000 -j DROP

Проверяем список правил iptables:

iptables -L INPUT

Далее производим скан сети 87.0.0.0/8 на наличие служб на портах 80 и 443 с указанием сбора баннеров HTTP заголовков с отправкой пакетов на 65000 порт в качестве источника:

masscan 87.0.0.0/8 -p80,443 --rate=20000 --banners --adapter-port 65000

Не умеете работать с iptables? Остается вариант использования спуфинга.

Выбираем IP адрес из своей локальной сети, который никем не занят, все пакеты заворачиваем на него.

masscan 87.0.0.0/8 -p80,443 --rate=20000 --banners --adapter-ip 192.168.10.111

Моя этичность не позволяет описывать злобные схемы, но таким образом можно хорошо насолить владельцам соседних VDS, которые вместе с вами находятся в одной подсети.

Masscan позволяет сохранять результаты сканирования в различных форматах

-oL  - Список
-oJ  - JSON
-oG  - Grepable
-oB  - Бинарный
-oX  - XML

Вывод в бинарном формате:

masscan 87.0.0.0/8 -p80,443 --rate=20000 --banners --adapter-port 65000 -oB 87.0.0.0_8.bin

Вывод в XML формате:

masscan 87.0.0.0/8 -p80,443 --rate=20000 --banners --adapter-port 65000 -oX 87.0.0.0_8.xml

Для чтения сохраненного файла есть опция --readscan

masscan --readscan 87.0.0.0_8.bin

При сканировании можно так же использовать udp порты, они обозначаются префиксом u: перед номером порта.

Пример сканирования сети 1.0.0.0/8 на наличие DNS серверов, работающих на 53 tcp и udp портах с сохранением версии DNS сервера в файле 1_8_dns.xml

masscan 1.0.0.0/8 -pU:53,53 --banners --output-filename 1_8_dns.xml

Для более подробного изучения опций сканирования, можно воспользоваться мануалом:

man masscan

Masscan очень гибкий, мощный и быстрый сканер. В грамотных руках это боевой инструмент.

Рассмотрим практический пример использования masscan.

Задача: Нужно получить выход на Украину с приватных IP адресов самой Украины.

Самый простой способ, выбираем крупного оператора связи, допустим это будет КиевСтар.

Проводим Osint по данной организации https://dnsdumpster.com/static/graph/kyivstar.ua-202211030722.html


Узнаем используемые IP адреса, и какие зарегистрированы автономные системы.

Посмотрим в какой AS находится IP 94.153.164.9.



Получаем подсеть 94.153.164.9/16.

Возвращаемся к нашей задаче и думаем через что это всех проще реализовать.

У большинства дома имеются wi-fi маршрутизаторы для выхода в интернет. Их великое множество, но среди них есть интересная железка как Microtik. Интересна она тем, что это как мини сетевой комбайн, есть почти все на вкус и цвет. Любой грамотный специалист сможет на данном маршрутизаторе настроить VPN Server (L2TP или PPTP). Микротики так же являются очень мощными Wi-Fi точками с возможностью ручного выставления децибел, отчего эти железки покупают опытные пользователи и обыватели. Обычному пользователю ее сложно настроить, но и "прямота" рук IT-специалистов на час тоже нам на руку, из-за чего в сети интернет можно найти много маршрутизаторов с дефолтными настройками.

Идентифицировать Mikrotik можно по службе удаленного администрирования winbox, которая крутится на порту 8291.

Вот по этому порту и будем осуществлять поиск.

masscan 94.153.0.0/16 -p 8291 --rate=1000 --banners --adapter-port 65000 -oX UA_94.153.0.0_16.xml

Содержимое поиска сохранится в файле UA_94.153.0.0_16.xml

Из данной подсети мы нашли 334 маршрутизатора.

Таким образом можно себе насканировать этих железок в любой стране.

К примеру в USA на сети 1.0.0.0/8 их нашлось 1530.

Как дальше получить к ним доступ и настроить VPN, это тема отдельной статьи.

Особо пытливые умы могут взять на домашнее задание.

На этом тема массового сканирования раскрыта в необходимом практическом объеме.

P.S. Если кому интересен графический интерфейс, пишите в комментариях.

Может для вас напишу статью по его установке и использованию.


Ваш MGMx80.


Report Page