Чем просканировать локальную сеть на вирусы
Ваш роутер является основной целью для хакеров, которые хотят бесплатно разгрузить ваше WiFi- соединение или проникнуть в вашу сеть. Если это скомпрометировано, они могут перенаправить ваши личные или служебные интернет-запросы на зараженные вредоносным ПО серверы.
Тем не менее, большинство людей не осознают масштаб проблем, связанных с взломанным маршрутизатором. Производители также массово производят разные устройства и не удосуживаются обновлять их, что оставляет их открытыми для атак. Фактически, киберпреступники используют это для атаки на многие маршрутизаторы.
Самый последний пример атак вредоносных программ на маршрутизаторах — это угроза VPNFilter . После масштабной атаки вредоносного ПО, которая скомпрометировала тысячи WiFi-маршрутизаторов и сетевых устройств по всему миру, ФБР срочно обратилось к владельцам дома и небольшого офиса с просьбой перезагрузить свои маршрутизаторы, чтобы предотвратить массированную атаку вредоносного ПО.
К числу угроз, создаваемых такими вредоносными программами, относятся отключение маршрутизаторов, блокирование сетевого трафика и сбор информации, проходящей через маршрутизаторы. Вы можете потерять конфиденциальную или конфиденциальную информацию и данные, что может создать огромные проблемы для вас или вашего бизнеса.
Очевидно, что никто не хочет находиться в такой ситуации, поэтому мы составили это руководство о том, как проверить маршрутизатор на наличие вредоносных программ и что вы можете сделать, чтобы его было сложнее взломать.
Признаки того, что ваш маршрутизатор заражен
Если вы подозреваете, что с вашим маршрутизатором что-то не так, есть несколько общих признаков, указывающих на возможный взлом или атаку вредоносного ПО. Среди красных флажков для проверки включают в себя:
- Компьютер работает медленнее, чем обычно.
- Поиски в Интернете переадресованы на странные сайты.
- Сообщения о выкупе с требованием денежной суммы в обмен на разблокировку ваших данных.
- Пароли онлайн-аккаунта не работают.
- Некоторые средства отсутствуют на вашем банковском счете в Интернете.
- Компьютерные программы аварийно завершают работу.
- Новые имена панелей инструментов, которые вы не можете распознать, появляются в вашем веб-браузере.
- На вашем экране появятся несколько всплывающих окон с поддельными антивирусными сообщениями.
- Новое программное обеспечение неожиданно установлено на вашем компьютере.
Например, если вы подключаетесь к своей учетной записи онлайн-банкинга через устройство, подключенное к вашему маршрутизатору, вы будете перенаправлены на поддельную версию банковского сайта. Если вы достаточно внимательны, вы можете даже заметить, что такие вредоносные сайты не имеют HTTPS-шифрования. С фишингового сайта злоумышленник может получить доступ к вашей банковской сессии и забрать деньги без вашего ведома.
Вот на что обратить внимание, если DNS вашего роутера был взломан:
- Нежелательная реклама как порно объявления и другие появляются на экране в то время как вы просматриваете обычные страницы, которые вы посещаете. Эти объявления также могут быть изменены, чтобы обмануть вас.
- Вы получаете предупреждения или уведомления, которые указывают на возможные проблемы с вашим компьютером.
- Ваш браузер перенаправляет с популярных веб-страниц, таких как сайты онлайн-банкинга и социальные сети, на поддельные версии сайтов. Эти фишинговые сайты собирают вашу личную информацию, учетные данные для входа, иногда даже ваши банковские данные и данные кредитной карты.
Если вы все еще не уверены в том, что ваш маршрутизатор содержит вредоносное ПО или был взломан, вы можете проверить F-Secure Router. Это простой онлайн-инструмент, который быстро проверяет работоспособность вашего маршрутизатора на наличие потенциальных угроз и уязвимостей. Несмотря на то, что это не самый тщательный инструмент в использовании, с него можно начать проверять, заражен ли ваш маршрутизатор.
Что делать, если ваш маршрутизатор заражен
Если вы обнаружите, что на вашем маршрутизаторе есть вредоносное ПО, вот несколько простых шагов, которые необходимо предпринять, чтобы минимизировать ущерб.
Прежде чем пытаться исправить ваш компьютер или удалить вредоносные программы, сделайте резервную копию ваших данных и файлов в облачном хранилище или на внешнем жестком диске.
Если вы получили ложное антивирусное сообщение и подозреваете, что на вашем маршрутизаторе установлено вредоносное ПО, выключите компьютер и перезапустите его в безопасном режиме, чтобы удалить любое подозрительное программное обеспечение.
Когда вы закончите, перезапустите в обычном режиме и проверьте, исчезли ли сообщения, а затем снова просканируйте компьютер, чтобы выявить все оставшиеся угрозы вредоносного ПО.
Это ваша первая линия защиты, поскольку она защищает ваши устройства в Интернете. Создайте надежный SSID (имя сети) и пароль и включите брандмауэр вашего маршрутизатора.
Вы также можете получить VPN (виртуальную частную сеть) для вашего дома или бизнеса, если вы хотите быть очень осторожными.
Если существуют учетные записи, которые были взломаны в результате атаки маршрутизатора, немедленно запросите сброс пароля и создайте более надежный. Вы также можете использовать двухфакторную аутентификацию для дополнительной безопасности.
Посмотрите внимательно на любые ссылки в ваших письмах, прежде чем нажимать на них. Если вы используете один пароль для нескольких учетных записей, измените их тоже. Безопасный менеджер паролей пригодится, если вы не можете управлять разными паролями для всех ваших учетных записей.
Другие шаги, которые вы можете предпринять, включают в себя:
- Включите шифрование WPA2 вместо исходного WAP или устаревшего WEP.
- Установите роутер в скрытый режим, чтобы злоумышленникам было сложнее найти его в Интернете.
- Установите обновления прошивки, чтобы защитить маршрутизатор от исправленных ошибок.
- Выключите UPnP в вашем роутере. Этот параметр можно использовать для изменения вашего DNS-сервера, поскольку он обычно доверяет всем запросам из вашей локальной сети.
- Предупредите свою семью, друзей и коллег, чтобы они не принимали фальшивые приглашения по электронной почте, файлы для загрузки или запросы и сообщения в социальных сетях.
Заключение
После того, как вы проверили свой роутер на наличие вредоносных программ и обнаружили, что большинство упомянутых выше признаков присутствуют, вам необходимо вылечить компьютер, чтобы восстановить его нормальную работу.
Будьте в курсе маршрутизаторов, вредоносных программ, взлома и других проблем кибербезопасности, чтобы помочь защитить ваши устройства от будущих рисков и держать вас в курсе и информировать. Таким образом, вы можете принять лучшие решения о защите вашего маршрутизатора, компьютера и мобильных устройств.
Проблема эпидемии сетевых червей актуальна для любой локальной сети. Рано или поздно может возникнуть ситуация, когда в ЛВС проникает сетевой или почтовый червь, который не детектируется применяемым антивирусом. Сетевой вирус распространяется по ЛВС через не закрытые на момент заражения уязвимости операционной системы или через доступные для записи общие ресурсы. Почтовый вирус, как следует из названия, распространяется по электронной почте при условии, что он не блокируется клиентским антивирусом и антивирусом на почтовом сервере. Кроме того, эпидемия в ЛВС может быть организована изнутри в результате деятельности инсайдера. В данной статье мы рассмотрим практические методики оперативного анализа компьютеров ЛВС с применением различных средств, в частности с помощью авторской утилиты AVZ.
Постановка задачи
В случае обнаружения эпидемии или некой нештатной активности в сети администратор должен оперативно решить минимум три задачи:
- обнаружить зараженные ПК в сети;
- найти образцы вредоносной программы для отправки в антивирусную лабораторию и выработки стратегии противодействия;
- принять меры для блокирования распространения вируса в ЛВС и его уничтожения на зараженных компьютерах.
В случае деятельности инсайдера основные шаги анализа идентичны и чаще всего сводятся к необходимости обнаружения установленного инсайдером постороннего ПО на компьютерах ЛВС. В качестве примера такого ПО можно назвать утилиты удаленного администрирования, клавиатурные шпионы и различные троянские закладки.
Рассмотрим более подробно решение каждой из поставленных задач.
Поиск зараженных ПК
Для поиска зараженных ПК в сети можно применять как минимум три методики:
- автоматический удаленный анализ ПК — получение информации о запущенных процессах, загруженных библиотеках и драйверах, поиск характерных закономерностей — например процессов или файлов с заданными именами;
- исследование трафика ПК с помощью сниффера — данный метод очень эффективен для отлова спам-ботов, почтовых и сетевых червей, однако основная сложность в применении сниффера связана с тем, что современная ЛВС строится на базе коммутаторов и, как следствие, администратор не может осуществлять мониторинг трафика всей сети. Проблема решается двумя путями: запуском сниффера на маршрутизаторе (что позволяет осуществлять мониторинг обмена данными ПК с Интернетом) и применением мониторинговых функций коммутаторов (многие современные коммутаторы позволяют назначить порт мониторинга, на который дублируется трафик одного или нескольких портов коммутатора, указанных администратором);
- исследование нагрузки на сеть — в данном случае очень удобно применять интеллектуальные коммутаторы, которые позволяют не только оценивать нагрузку, но и удаленно отключать указанные администратором порты. Данная операция существенно упрощается при наличии у администратора карты сети, на которой имеются данные о том, какие ПК подключены к соответствующим портам коммутатора и где они расположены;
- применение ловушек (honeypot) — в локальной сети настоятельно рекомендуется создать несколько ловушек, которые позволят администратору своевременно обнаружить эпидемию.
Автоматический анализ ПК можно свести к трем основным этапам:
- проведение полного исследования ПК — запущенные процессы, загруженные библиотеки и драйверы, автозапуск;
- проведение оперативного обследования — например поиск характерных процессов или файлов;
- карантин объектов по определенным критериям.
Все перечисленные задачи можно решить при помощи авторской утилиты AVZ, которая рассчитана на запуск из сетевой папки на сервере и поддерживает скриптовый язык для автоматического обследования ПК. Для запуска AVZ на компьютерах пользователей необходимо:
- Поместить AVZ в открытую для чтения сетевую папку на сервере.
- Создать в этой папке подкаталоги LOG и Qurantine и разрешить пользователям запись в них.
- Запустить AVZ на компьютерах ЛВС при помощи утилиты rexec или логон-скрипта.
Запуск AVZ на шаге 3 должен производиться при таких параметрах:
\\my_server\AVZ\avz.exe Priority=-1 nw=Y nq=Y HiddenMode=2 Script=\\my_server\AVZ\my_script.txt
Рис. 1. Редактор скриптов AVZ
Рассмотрим три типовых скрипта, которые могут пригодиться в ходе борьбы с эпидемией. Во-первых, нам потребуется скрипт для исследования ПК. Задача скрипта — произвести исследование системы и создать протокол с результатами в заданной сетевой папке. Скрипт имеет следующий вид:
// Включение сторожевого таймера на 10 минут
// Запуск сканирования и анализа
//Завершение работы AVZ
В ходе выполнения данного скрипта в папке LOG (предполагается, что она создана в каталоге AVZ на сервере и доступна пользователям для записи) будут создаваться HTML-файлы с результатами исследования компьютеров сети, причем для обеспечения уникальности в имя протокола включается имя исследуемого компьютера. В начале скрипта располагается команда включения сторожевого таймера, который принудительно завершит процеcc AVZ через 10 минут в случае, если в ходе выполнения скрипта возникнут сбои.
Протокол AVZ удобен для изучения вручную, однако для автоматизированного анализа он мало пригоден. Кроме того, администратору часто известно имя файла вредоносной программы и требуется только проверить наличие или отсутствие данного файла, а при наличии — поместить в карантин для анализа. В этом случае можно применить скрипт следующего вида:
// Включение сторожевого таймера на 10 минут
// Поиск вредоносной программы по имени
QuarantineFile(‘%WinDir%\smss.exe’, ‘Подозрение на LdPinch.gen’);
QuarantineFile(‘%WinDir%\csrss.exe’, ‘Подозрение на LdPinch.gen’);
//Завершение работы AVZ
В этом скрипте задействуется функция QuarantineFile, которая совершает попытку карантина указанных файлов. Администратору остается только проанализировать содержимое карантина (папка Quarantine\сетевое_имя_ПК\дата_каратина\) на наличие помещенных в карантин файлов. Следует учесть, что функция QuarantineFile автоматически блокирует помещение в карантин файлов, опознанных по базе безопасных AVZ или по базе ЭЦП Microsoft. Для практического применения данный скрипт можно усовершенствовать — организовать загрузку имен файлов из внешнего текстового файла, проверять найденные файлы по базам AVZ и формировать текстовый протокол с результатами работы:
// Поиск файла с указанным именем
function CheckByName(Fname : string) : boolean;
if Result then begin
case CheckFile(FName) of
-1 : S := ‘, доступ к файлу блокируется’;
1 : S := ‘, опознан как Malware (‘+GetLastCheckTxt+’)’;
2 : S := ‘, подозревается файловым сканером (‘+GetLastCheckTxt+’)’;
3 : exit; // Безопасные файлы игнорируем
AddToLog(‘Файл ‘+NormalFileName(FName)+’ имеет подозрительное имя’+S);
//Добавление указанного файла в карантин
SuspNames : TStringList; // Список имен подозрительных файлов
// Проверка файлов по обновляемой базе данных
if FileExists(GetAVZDirectory + ‘files.db’) then begin
AddToLog(‘База имен загружена - количество записей = ‘+inttostr(SuspNames.Count));
for i := 0 to SuspNames.Count - 1 do
AddToLog(‘Ошибка загрузки списка имен файлов’);
Для работы данного скрипта необходимо создать в папке AVZ доступные пользователям для записи каталоги Quarantine и LOG, а также текстовый файл files.db — каждая строка данного файла будет содержать имя подозрительного файла. Имена файлов могут включать макросы, наиболее полезные из которых — %WinDir% (путь к папке Windows) и %SystemRoot% (путь к папке System32). Другим направлением анализа может стать автоматическое исследование списка процессов, запущенных на компьютерах пользователей. Информация о запущенных процессах есть в протоколе исследования системы, но для автоматического анализа удобнее применять следующий фрагмент скрипта:
// Обновление списка процессов
AddToLog(‘Количество процессов = ‘+IntToStr(GetProcessCount));
// Цикл анализа полученного списка
for i := 0 to GetProcessCount - 1 do begin
S1 := S1 + ‘,’ + ExtractFileName(GetProcessName(i));
// Поиск процесса по имени
if pos(‘trojan.exe’, LowerCase(GetProcessName(i))) > 0 then
S := S + GetProcessName(i)+’,’;
AddLineToTxtFile(GetAVZDirectory+’\LOG\_alarm.txt’, DateTimeToStr(Now)+’ ‘+GetComputerName+’ : ‘+S);
AddLineToTxtFile(GetAVZDirectory+’\LOG\_all_process.txt’, DateTimeToStr(Now)+’ ‘+GetComputerName+’ : ‘+S1);
В завершение рассмотрим последний из полезных скриптов анализа — скрипт автоматического карантина всех файлов, которые не опознаются по базе безопасных AVZ и по базе ЭЦП Microsoft:
Автоматический карантин изучает запущенные процессы и загруженные библиотеки, службы и драйверы, около 45 способов автозапуска, модули расширения браузера и проводника, обработчики SPI/LSP, задания планировщика, обработчики системы печати и т.п. Особенностью карантина является то, что файлы в него добавляются с контролем повторов, поэтому функцию автокарантина можно вызывать многократно.
Достоинство автоматического карантина заключается в том, что с его помощью администратор может оперативно собрать потенциально подозрительные файлы со всех компьютеров сети для их изучения. Простейшей (но весьма эффективной на практике) формой изучения файлов может быть проверка полученного карантина несколькими популярными антивирусами в режиме максимальной эвристики. Следует отметить, что одновременный запуск автокарантина на нескольких сотнях компьютеров может создать высокую нагрузку на сеть и на файловый сервер.
Исследование трафика можно проводить тремя способами:
- вручную при помощи снифферов;
- в полуавтоматическом режиме — в данном случае сниффер собирает информацию, и затем его протоколы обрабатываются либо вручную, либо некоторым ПО;
- автоматически при помощи систем обнаружения вторжений (IDS) типа Snort (http://www.snort.org/) либо их программных или аппаратных аналогов. В простейшем случае IDS состоит из сниффера и системы, анализирующей собираемую сниффером информацию.
Система обнаружения вторжений является оптимальным средством, так как позволяет создавать наборы правил для обнаружения аномалии в сетевой активности. Второе ее преимущество состоит в следующем: большинство современных IDS позволяют размещать агенты мониторинга трафика на нескольких узлах сети — агенты собирают информацию и передают ее. В случае же применения сниффера очень удобно пользоваться консольным UNIX-сниффером tcpdump. Например, для мониторинга активности по порту 25 (протокол SMTP) достаточно запустить сниффер с командной строкой вида:
tcpdump -i em0 -l tcp port 25 > smtp_log.txt
В данном случае ведется захват пакетов через интерфейс em0; информация о захваченных пакетах будет сохраняться в файле smtp_log.txt. Протокол сравнительно просто анализировать вручную, в данном примере анализ активности по порту 25 позволяет вычислить ПК с активными спам-ботами.
В качестве ловушки (Honeypot) можно использовать устаревший компьютер, производительность которого не позволяет применять его для решения производственных задач. Например, в сети автора в качестве ловушки успешно применяется Pentium Pro c 64 Мбайт оперативной памяти. На этот ПК следует установить наиболее распространенную в ЛВС операционную систему и выбрать одну из стратегий:
- Установить операционную систему без пакетов обновлений — она будет индикатором появления в сети активного сетевого червя, эксплуатирующего любую из известных уязвимостей для данной операционной системы;
- установить операционную систему с обновлениями, которые установлены на других ПК сети — Honeypot будет аналогом любой из рабочих станций.
Каждая из стратегий имеет как свои плюсы, так и минусы; автор в основном применяет вариант без обновлений. После создания Honeypot следует создать образ диска для быстрого восстановления системы после ее повреждения вредоносными программами. В качестве альтернативы образу диска можно использовать системы отката изменений типа ShadowUser и его аналогов. Построив Honeypot, следует учесть, что ряд сетевых червей ищут заражаемые компьютеры путем сканирования диапазона IP, отсчитываемого от IP-адреса зараженного ПК (распространенные типовые стратегии — X.X.X.*, X.X.X+1.*, X.X.X-1.*), — следовательно, в идеале Honeypot должен быть в каждой из подсетей. В качестве дополнительных элементов подготовки следует обязательно открыть доступ к нескольким папкам на Honeypot-системе, причем в данные папки следует положить несколько файлов-образцов различного формата, минимальный набор — EXE, JPG, MP3.
Рис. 2. Создание и настройка предупреждения о сетевой активности
В качестве предупреждения удобнее всего использовать сообщения электронной почты, отправляемые на почтовый ящик администратора, — в этом случае можно получать оперативные оповещения от всех ловушек в сети. Кроме того, если сниффер позволяет создавать несколько предупреждений, есть смысл дифференцировать сетевую активность, выделив работу с электронной почтой, FTP/HTTP, TFTP, Telnet, MS Net, повышенный трафик более 20-30 пакетов в секунду по любому протоколу (рис. 3).
Рис. 3. Письмо-оповещение, высылаемое
в случае обнаружения пакетов, соответствующих заданным критериям
При организации ловушки неплохо разместить на ней несколько применяемых в сети уязвимых сетевых служб или установить их эмулятор. Простейшим (и бесплатным) является авторская утилита APS, работающая без инсталляции. Принцип работы APS сводится к прослушиванию множества описанных в ее базе портов TCP и UDP и выдаче в момент подключения заранее заданного или случайно генерируемого отклика (рис. 4).
Рис. 4. Главное окно утилиты APS
Дистанционное удаление вредоносных программ
В идеальном случае после обнаружения образцов вредоносных программ администратор отправляет их в антивирусную лабораторию, где они оперативно изучаются аналитиками и в базы антивируса вносятся соответствующие сигнатуры. Эти сигнатуры через автоматическое обновление попадают на ПК пользователей, и антивирус производит автоматическое удаление вредоносных программ без вмешательства администратора. Однако эта цепочка не всегда работает как положено, в частности возможны следующие причины сбоя:
- по ряду независимых от администратора сети причин образы могут не дойти до антивирусной лаборатории;
- недостаточная оперативность антивирусной лаборатории — в идеале на изучение образцов и их внесение в базы уходит не более 1-2 часов, то есть в пределах рабочего дня можно получить обновленные сигнатурные базы. Однако не все антивирусные лаборатории работают столь оперативно, и обновления можно ждать несколько дней (в редких случаях — даже недель);
- высокая работоспособность антивируса — ряд вредоносных программ после активации уничтожают антивирусы или всячески нарушают их работу. Классические примеры — внесение в файл hosts записей, блокирующих нормальную работу системы автообновления антивируса, удаление процессов, службы и драйверов антивирусов, повреждение их настроек и т.п.
Следовательно, в перечисленных ситуациях придется бороться с вредоносными программами вручную. В большинстве случаев это несложно, так как по результатам исследования компьютеров известны зараженные ПК, а также полные имена файлов вредоносных программ. Остается только произвести их дистанционное удаление. Если вредоносная программа не защищается от удаления, то уничтожить ее можно скриптом AVZ следующего вида:
// Эвристическая чистка системы
Данный скрипт удаляет один заданный файл (или несколько файлов, так как команд DeleteFile в скрипте может быть неограниченное количество) и затем производит автоматическую чистку реестра. В более сложном случае вредоносная программа может защищаться от удаления (например, пересоздавая свои файлы и ключи реестра) или маскироваться по руткит-технологии. В этом случае скрипт усложняется и будет иметь следующий вид:
// Включение протоколирования BootCleaner
// Импорт в задание BootCleaner списка файлов, удаленных скриптом
Часто при выполнении пентестов клиент просит меня просканировать внешнюю сеть (надеюсь, что ваши клиенты хорошо осведомлены о рисках, и помимо сканирования внешней сети дадут вам доступ во внутреннюю сеть, но эта тема отдельной статьи). В случае с небольшими организациями я в основном использую nmap на всех этапах сканирования. Когда речь заходит о больших сетях, попробуем вначале разделить процедуру сканирования на отдельные этапы:
У nmap возникают сложности с большим диапазоном адресов, поскольку эта утилита работает по принципу синхронного сканнера, отслеживает запросы на соединение и ожидает ответа. Если на TCP-запрос на соединение (SYN) не приходит ответа, время ожидания истекает, и nmap присваивает службе статус filtered (находится под фильтром). Nmap параллельно запускает несколько пробных запросов, однако службы со статусом filtered (и неактивные IP-адреса) сильно замедляют общий процесс.
Помимо утилит, работающих с использованием синхронизации, одной из которых является nmap, существует несколько асинхронных сканеров, которые не отслеживают соединения: scanrand, ZMap и мой любимый masscan.
Я предпочитаю пользоваться masscan по нескольким причинам. Первая, и самая главная причина заключается в том, что синтаксис masscan во многом схож с nmap. Во-вторых, masscan является одним из самых быстрых даже среди асинхронных сканеров. При наличии правильных сетевых интерфейсов и драйверов эффективность этого сканера ограничивается шириной вашего канала. При использовании двух 10 гигабитных Ethernet-адаптеров, выпускаемых Intel, можно просканировать весь диапазон IPv4-адресов за шесть минут, когда ежесекундно будут передаваться 10 миллионов пакетов.
Вначале рассмотрим базовый синтаксис masscan в применении к сканированию TCP-портов в большом диапазоне сети (например, 16 миллионов IPv4-адресов, используемых Apple).
$ sudo masscan 17.0.0.0/8 -p0-1023
Скорость сканирования
По умолчанию masscan будет отсылать 100 пакетов в секунду. В каждом пакете 18 байт отводится под Ethernet-заголовок, 20 байт под TCP-заголовок и более 20 байт под IPv4-заголовок. В итоге отсылается 5800 байт (или примерно 46 килобайт) в секунду. Поскольку masscan при сканировании портов и хостов распределяет ресурсы равномерно, соответственно, полоса также будет распределяться равномерно. На широкой полосе может случиться непреднамеренная DDOS атака в случае во время сканирования небольшой сети, но при 1-10 мегабит в секунду (или 20 тысячах пакетов в секунду, параметр --rate 20000) проблем возникнуть не должно. На виртуальных машинах скорость может легко доходить до 200 тысяч пакетов в секунду (--rate 200000), что эквивалентно 93 мегабитам в секунду исходящего трафика. Однако следует согласовать с клиентом необходимость использования столь высоких скоростей.
Сканирование сети
Как же мы можем определить, что на определенном IPv4-адресе есть рабочие TCP-службы? Самый простой способ – просканировать 65536 портов (от 0 до 65535). Однако в больших сетях этот метод будет отнимать слишком много времени даже на больших скоростях. Я обычно выбираю 100 или 1000 наиболее популярных портов по версии nmap. Если IP-адрес отвечает на любой SYN-пакет (в ответ посылается либо RST, что свидетельствует о закрытом порте/соединении, или SYN-ACK, что свидетельствует об открытом порте/соединении), то мы сохраняем этот IP-адрес в отдельный список для последующего анализа при помощи nmap или, например, сканера уязвимостей Nessus.
Воспользуемся небольшим трюком для получения списка наиболее популярных портов. Мы будем сканировать нашу собственную систему и выводить на экран перечень портов в XML-формате. В XML-формате отображаются параметры, используемые при сканировании, и, что более важно, выводится перечень портов в удобочитаемой форме. Я выбрал первые 100 портов, но вы можете легко поменять это значение (например, вывести первые 10 или 1000 портов).
$ nmap localhost --top-ports 100 -oX - | grep services
Далее используем полученный список как значения параметра –p при сканировании целевого диапазона. В качестве примера все также используем сеть компании Apple. Скорость 100000 пакетов в секунду эквивалентна трафику 32 мегабит в секунду.
$ sudo masscan 17.0.0.0/8 -oG apple-masscan.gnmap -p 7,9,13,21-23,25-26,37,53,79-81,88,106,110-111,113,119,135,139,143-144,179,199,389,427,443-445,465,513-515,543-544,548,554,587,631,646,873,990,993,995,1025-1029,1110,1433,1720,1723,1755,1900,2000-2001,2049,2121,2717,3000,3128,3306,3389,3986,4899,5000,5009,5051,5060,5101,5190,5357,5432,5631,5666,5800,5900,6000-6001,6646,7070,8000,8008-8009,8080-8081,8443,8888,9100,9999-10000,32768,49152-49157 --rate 100000
Обратите внимание, что masscan поддерживает ту же самую опцию -oG filename.gnmap, что и nmap. Далее мы будем обрабатывать полученный список (в формате greppable) для анализа хостов с открытыми портами. Сканирование 16 миллионов адресов по 100 портам займет примерно 5 часов. На мой взгляд, это время вполне разумно. Рассмотрим первые несколько строк полученного файла:
# Masscan 1.0.3 scan initiated Thu Jul 20 22:24:40 2017
# Ports scanned: TCP(1;7-7,) UDP(0;) SCTP(0;) PROTOCOLS(0;)
Host: 17.179.241.56 () Ports: 443/open/tcp////
Host: 17.253.84.72 () Ports: 179/open/tcp////
Host: 17.188.161.148 () Ports: 8081/open/tcp////
Host: 17.188.161.212 () Ports: 8081/open/tcp////
$ egrep '^Host: ' apple-masscan.gnmap | cut -d" " -f2 | sort | uniq > apple-alive
Таким образом, наш список стал значительно меньше, и далее мы можем применить nmap для более детального анализа:
# nmap -PN -n -A -iL apple-alive -oA apple-nmap-advanced-scan
Теперь, на базе файла, сгенерированного masscan, сканер nmap сможет выполнить свою работу намного быстрее.
Напишите в комментариях, помог ли вам мой метод в работе. В целом мне нравится nmap, но иногда ресурсоемкие задачи лучше выполнять более специализированными утилитами.
Спасибо за внимание.
Читайте также: