[БЕЗОПАСНОСТЬ] Один из самых быстрых сетевых сканеров портов в мире: знакомьтесь, Masscan (или как найти 100500 камер и роутеров) [УРОК]
Если вы занимаетесь вопросами анализа сетевой безопасности на предприятии, в офисе, или у себя дома, вам точно будет полезна эта статья.
Внимание! Всё, что описано в данной статье, - лишь специализированный софт и его возможности. Данный софт может применяться как в профилактических целях, так и для проведения целенаправленных атак. Любое использование данного софта, как законное, так и незаконное, остается на совести пользователя или администратора. Всегда устанавлиайте надёжные пароли на все ваши устройства и изолируйте их от внешнего мира.
Я решил попробовать продолжить тему сетевой безопасности. В некоторых случаях мер обеспечения защиты может не хватать, а в некоторых слуаях вы просто, возможно, захотите проверить безопасность собственной внутренней сети. Для задач анализа большого диапазона IP-адресов вам и пригодится волшебная утилта Masscan.
Сами разработчики инструмента уверяют, что его гипотетическая скорость может достигать 25 миллионов пакетов в секунду (если это позволит ваш ПК, сетевая карта, оборудование провайдера и т. д.), что позволяет просканировать весь Интернет (диапазон адресов IPv4) всего за 3 минуты (по одному порту на IP). Этот инструмент полезен для обзора сетей большого масштаба — таких как Интернет или внутренние сети.
Так ли это на самом деле и есть ли возможность разогнать сканер до таких скоростей?
Установим софт в Ubuntu
В Kali софт идёт из коробки, возможно в других дистрибутивах для аудита тоже. А мы попробуем просто поставить его на Ubuntu, это элементарно:
sudo apt-get install git gcc make libpcap-dev
git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
Готово! Я пробовал в разных системах, никаких ошибок сборки не возникало нигде. Обратите внимание, make собирает скрипт в папку ./bin/masscan, можно его оттуда забрать и переложить куда удобно или запускать полной командой! Или предварительно зайти в папку со бинарником cd bin
.
Пробуем в домашних условиях
Запустим тест в диапазоне моего оператора, расширив его для упрощения до максимума. Т.е. 255 машин 255 раз, это 255х255 = чуть более 65 тысяч машин: time sudo ./masscan -p80 --range 178.76.0.0-178.76.255.255 --rate=1000000 --output-format=grepable --output-filename=smallscan.txt
- time добавлен в начале, чтобы отследить, сколько времени работала команда. Итого, сканирование 65 тысяч машин с записью в файл smallscan заняло 17 секунд. Средняя скорость сканирования по данным приложения составляла 16-17 тысяч машин в секунду. Если учитывать время на ожидание ответов, вышло чуть меньше 4 тысяч машин в секунду. Что, согласитесь, тоже очень достойно! Вообще, приложение может работать с рейтами до 25 000 000 (млн) запросов в секунду, но ваше сетевое оборудование врядли это выдержит, так что скорость будет меньше.
Ещё пример
Сканируем весь интернет, 80 порт (не шутка :) и записываем результаты в файл massscan.txt: sudo ./masscan -p80 --range 0.0.0.0-255.255.255.255 --rate=25000000 --output-format=grepable --output-filename=massscan.txt --exclude 255.255.255.255
. Попробуем для сравнения запустить сканирование с какого-нибудь относительно мощного облачного хостинга (в примере у меня облачная IDE C9):
Скорость уже получше: от 20 до 200 тысяч машин в секунду, в среднем 40 тысяч, т.е. лучше в 3 раза. Интересно, какой хостинг нужно использовать, чтобы сканировать за скорости в хотя бы 1 миллион машин в секунду? Гугл? :)
Если теперь начать переходить по найденным адресам, то вам будут попадаться роутеры Microtik, провайдерское оборудование, роутеры Asus, TP-LINK, D-Link, и целая куча различных китайских DVR и IP-камер. Большинство, конечно же, со стандартным паролем или подвержено эксплуатации.
Feedback
А какими сканерами сетей вы пользуетесь? Оценили ли скорость инструмента masscan? Занимаетесь ли вы аудитом сетевой безопасности? Напишите в комментариях, и ваша карма получит +100500 очков (=
Аудитор сетевой безопасности,
Den Ivanov aka @SXIII from Random City