Сканирование в режиме ожидания - Idle scan

Сканирование в режиме ожидания на открытом порту

В сканирование в режиме ожидания это TCP сканирование портов метод, который состоит из отправки подделанный пакеты в компьютер[1] чтобы узнать, какие услуги доступны. Это достигается за счет олицетворения другого компьютера, сетевой трафик которого очень медленный или отсутствует (то есть не передает и не принимает информацию). Это может быть бездействующий компьютер, называемый "зомби".[2]

Обзор

Это действие можно выполнить с помощью общих программного обеспечения сеть коммунальные услуги Такие как Nmap и hping. Атака заключается в отправке поддельных пакетов на конкретную машину. цель в попытке найти отличительные черты другого зомби машина. Атака сложна, потому что между атакующим компьютером и целью нет взаимодействия: злоумышленник взаимодействует только с "зомби"компьютер.

Этот эксплуатировать выполняет две функции: сканер портов и сопоставитель доверенных IP отношения между машинами. Целевая система взаимодействует с "зомби«компьютер и различие в поведении можно наблюдать с помощью разных« зомби »с подтверждением различных привилегий, предоставленных целью для разных компьютеров.[3]

Общая цель сканирования в режиме ожидания - «проверить состояние порта, оставаясь при этом полностью невидимым для целевого хоста».[4]

Происхождение

Обнаружил Сальваторе Санфилиппо (также известный под псевдонимом "Антирез") в 1998 году,[5] сканирование в режиме ожидания использовалось многими черная шляпа «хакеры», чтобы тайно идентифицировать открытые порты на целевом компьютере, готовясь к атаке. Хотя изначально он назывался тупое сканирование, период, термин сканирование в режиме ожидания был придуман в 1999 году, после публикации проверенного концепции сканера 16-битного идентификационного поля (IPID) под названием бездельникАвтор Filipe Almeida (он же LiquidK).[6] На этот тип сканирования также можно ссылаться как зомби сканирование; все номенклатуры связаны с природой одного из компьютеров, участвующих в атаке.

Основы TCP / IP

Устройство и работа Интернет основан на Пакет Интернет-протокола, обычно также называемый TCP / IP. IP - это основной протокол в Интернет-уровень пакета Internet Protocol Suite и имеет задачу доставки дейтаграмм из источника хозяин к хосту назначения исключительно на основании их адреса. Для этого IP определяет методы и структуры адресации для дейтаграммы. инкапсуляция. Это протокол без установления соединения, основанный на передаче пакетов. Каждый IP-пакет от данного источника имеет идентификатор, который однозначно идентифицирует дейтаграмму IP.[требуется разъяснение ]

TCP обеспечивает надежную и упорядоченную доставку потока байтов от программы на одном компьютере к другой программе на другом компьютере. TCP - это протокол, на который полагаются основные Интернет-приложения, такие как Всемирная паутина, электронное письмо, и передача файлов. Каждое из этих приложений (веб-сервер, почтовый сервер, FTP-сервер) называется сетевая служба. В этой системе сетевые службы идентифицируются с помощью двух компонентов: адреса хоста и номера порта. На каждый хост имеется 65536 различных и используемых номеров портов. Большинство служб по умолчанию используют ограниченный диапазон номеров, и почти всегда используется номер порта по умолчанию для службы.

Некоторые сканеры портов сканируют только наиболее распространенные номера портов или порты, наиболее часто связанные с уязвимыми службами на данном узле. Видеть: Список номеров портов TCP и UDP.

Результат сканирования порта обычно делится на одну из трех категорий:

  • Открыть или же Принято: Хост отправил ответ, указывающий, что служба прослушивает порт.
  • Закрыто или же Отклонен или же Не слушать: Хост отправил ответ, указывающий, что соединение с портом будет запрещено.
  • Отфильтровано, Упавший или же Заблокировано: Нет ответа от хозяина.

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

  1. Проблемы безопасности и стабильности, связанные с программой, отвечающей за предоставление услуги - Открытые порты.
  2. Проблемы безопасности и стабильности, связанные с Операционная система который работает на хосте - открытые или закрытые порты.

Отфильтрованные порты обычно не представляют собой уязвимостей. Хост в локальной сети может быть защищен брандмауэр который фильтрует пакеты в соответствии с правилами, установленными его администратором. Это сделано для отказа в предоставлении услуг неизвестным хостам и предотвращения вторжение во внутренней сети. IP-протокол является протоколом передачи сетевого уровня.

Базовая механика

Сканирование в режиме ожидания использует предсказуемые Значение поля идентификации из заголовка IP: каждый IP-пакет от данного источника имеет идентификатор, который однозначно идентифицирует фрагменты исходной IP-дейтаграммы; реализация протокола присваивает значения этому обязательному полю, как правило, с шагом фиксированного значения (1). Поскольку передаваемые пакеты пронумерованы в последовательности, вы можете сказать, сколько пакетов передается между двумя полученными вами пакетами.

Злоумышленник сначала просканирует хост с последовательным и предсказуемым порядковым номером (IPID). Последние версии Linux, Солярис, OpenBSD, и Виндоус виста не подходят как зомби, так как IPID был реализован с помощью патчей[7] который рандомизировал IPID.[1] Компьютеры, выбранные для использования на этом этапе, известны как «зомби».[2]

Как только подходящий зомби будет найден, следующим шагом будет попытка установить TCP-соединение с заданной службой (портом) целевой системы, выдавая себя за зомби. Это делается путем отправки SYN пакет на целевой компьютер, подменяя IP-адрес зомби, то есть с исходным адресом, равным IP-адресу зомби.

Если порт целевого компьютера открыт, он принимает соединение для службы, отвечая зомби пакетом SYN / ACK.

Затем компьютер-зомби отправит RST-пакет на целевой компьютер (для сброса соединения), потому что он фактически не отправлял SYN-пакет.

Поскольку зомби должен был отправить пакет RST, он увеличивает свой IPID. Так злоумышленник узнает, открыт ли порт цели. Злоумышленник отправит зомби еще один пакет. Если IPID увеличивается только на шаг, злоумышленник будет знать, что конкретный порт закрыт.

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

Первый этап сканирования в режиме ожидания
Второй этап холостого сканирования

В поисках зомби-хозяина

Первый шаг в выполнении сканирования в режиме ожидания - найти подходящего зомби. Ему необходимо назначать пакеты IP-идентификатора постепенно на глобальной (а не для каждого хоста, с которым он взаимодействует) основе. Он должен быть свободен (отсюда и название сканирования), поскольку посторонний трафик будет увеличивать его последовательность IP-идентификаторов, запутывая логику сканирования. Чем ниже задержка между атакующим и зомби, а также между зомби и целью, тем быстрее будет проходить сканирование.[8]
Обратите внимание, что когда порт открыт, IPID увеличиваются на 2. Последовательность действий следующая:
1. Атакующий на цель -> SYN, цель на зомби -> SYN / ACK, зомби на цель -> RST (IPID приращение на 1)
2. Теперь злоумышленник пытается проверить зомби на результат. Атакующий зомби -> SYN / ACK, Зомби атакующему -> RST (IPID увеличивается на 1)
Итак, в этом процессе IPID, наконец, увеличивается на 2.

При попытке сканирования в режиме ожидания инструменты (например, nmap) проверяют предлагаемого зомби и сообщают о любых проблемах с ним. Если один не работает, попробуйте другой. Достаточное количество хостов в Интернете уязвимо, и найти кандидатов в зомби не составит труда. Обычный подход - просто выполнить ping sweep какой-то сети. Выбор сети рядом с исходным адресом или рядом с целью дает лучшие результаты. Вы можете попробовать сканирование в режиме ожидания с использованием каждого доступного хоста из результатов проверки связи, пока не найдете тот, который работает. Как обычно, лучше всего спросить разрешения, прежде чем использовать чьи-либо машины для неожиданных целей, таких как сканирование в режиме ожидания.

Простые сетевые устройства часто становятся отличными зомби, потому что они, как правило, недостаточно используются (простаивают) и построены на простых сетевых стеках, уязвимых для обнаружения трафика IP ID.

Хотя определение подходящего зомби требует некоторой первоначальной работы, вы можете продолжать использовать хороших зомби. В качестве альтернативы, были некоторые исследования использования непреднамеренных общедоступных веб-сервисов в качестве зомби-хостов для выполнения аналогичного сканирования в режиме ожидания. Использование способа, которым некоторые из этих служб выполняют исходящие соединения после отправки пользовательских данных, может служить своего рода сканированием бездействия бедняков.[9]

Использование hping

Метод hping для сканирования в режиме ожидания представляет собой более низкий пример того, как выполняется сканирование в режиме ожидания. В этом примере целевой хост (172.16.0.100) будет сканироваться с использованием неактивного хоста (172.16.0.105). Открытый и закрытый порт будут протестированы, чтобы увидеть, как разыгрывается каждый сценарий.

Во-первых, установите, что бездействующий хост действительно бездействует, отправьте пакеты с помощью hping2 и наблюдайте, как номера id постепенно увеличиваются на единицу. Если номера идентификаторов увеличиваются случайно, хост фактически не бездействует или имеет ОС, которая не имеет предсказуемого IP-идентификатора.

[root @ localhost hping2-rc3] # ./hping2 -S 172.16.0.105HPING 172.16.0.105 (eth0 172.16.0.105): набор S, 40 заголовков + 0 байтов данныхlen = 46 ip = 172.16.0.105 ttl = 128 id = 1371 sport = 0 flags = RA seq = 0 win = 0 rtt = 0,3 мсlen = 46 ip = 172.16.0.105 ttl = 128 id = 1372 sport = 0 flags = RA seq = 1 win = 0 rtt = 0,2 мсlen = 46 ip = 172.16.0.105 ttl = 128 id = 1373 sport = 0 flags = RA seq = 2 win = 0 rtt = 0,3 мсlen = 46 ip = 172.16.0.105 ttl = 128 id = 1374 sport = 0 flags = RA seq = 3 win = 0 rtt = 0,2 мсlen = 46 ip = 172.16.0.105 ttl = 128 id = 1375 sport = 0 flags = RA seq = 4 win = 0 rtt = 0,2 мсlen = 46 ip = 172.16.0.105 ttl = 128 id = 1376 sport = 0 flags = RA seq = 5 win = 0 rtt = 0,2 мсlen = 46 ip = 172.16.0.105 ttl = 128 id = 1377 sport = 0 flags = RA seq = 6 win = 0 rtt = 0,2 мсlen = 46 ip = 172.16.0.105 ttl = 128 id = 1378 sport = 0 flags = RA seq = 7 win = 0 rtt = 0,2 мсlen = 46 ip = 172.16.0.105 ttl = 128 id = 1379 sport = 0 flags = RA seq = 8 win = 0 rtt = 0,4 мс

Отправьте поддельный SYN-пакет на целевой хост на порт, который вы ожидаете открыть. В данном случае тестируется порт 22 (ssh).

# hping2 —spoof 172.16.0.105 -S 172.16.0.100 -p 22 -c 1HPING 172.16.0.100 (eth0 172.16.0.100): набор S, 40 заголовков + 0 байтов данных--- 172.16.0.100 статистика hping ---1 пакет передан, 0 пакетов получено, 100% потеря пакетовдвусторонний мин. / сред. / макс. = 0,0 / 0,0 / 0,0 мс

Поскольку мы подделали пакет, мы не получили ответа, и hping сообщает о 100% потере пакета. Целевой хост ответил напрямую бездействующему хосту пакетом синхронизации / подтверждения. Теперь проверьте бездействующий хост, чтобы увидеть, не увеличился ли номер идентификатора.

# hping2 -S 172.16.0.105 -p 445 -c 1HPING 172.16.0.105 (eth0 172.16.0.105): набор S, 40 заголовков + 0 байтов данныхlen = 46 ip = 172.16.0.105 ttl = 128 DF id = 1381 sport = 445 flags = SA seq = 0 win = 64320 rtt = 0,3 мс--- 172.16.0.105 статистика hping ---1 пакет передан, 1 пакет получен, потеря пакетов 0%двусторонний мин. / средн. / макс. = 0,3 / 0,3 / 0,3 мс

Обратите внимание, что идентификатор прокси-хостов увеличился с id = 1379 до id = 1381. 1380 было использовано, когда бездействующий хост ответил на пакет синхронизации / подтверждения целевого хоста первым пакетом.

Выполните те же процессы еще раз, проверяя порт, который, вероятно, закрыт. Здесь мы тестируем порт 23 (телнет).

# hping2 -S 172.16.0.105 -p 445 -c 1; hping2 - обман 172.16.0.105 -S 172.16.0.100 -p 23 -c 1; hping2 -S 172.16.0.105 -p 445 -c 1HPING 172.16.0.105 (eth0 172.16.0.105): набор S, 40 заголовков + 0 байтов данныхlen = 46 ip = 172.16.0.105 ttl = 128 DF id = 1382 sport = 445 flags = SA seq = 0 win = 64320 rtt = 2,1 мс--- 172.16.0.105 статистика hping ---1 пакет передан, 1 пакет получен, потеря пакетов 0%двусторонний мин. / сред. / макс. = 2,1 / 2,1 / 2,1 мсHPING 172.16.0.100 (eth0 172.16.0.100): набор S, 40 заголовков + 0 байтов данных--- 172.16.0.100 статистика hping ---1 пакет передан, 0 пакетов получено, 100% потеря пакетовдвусторонний мин. / сред. / макс. = 0,0 / 0,0 / 0,0 мсHPING 172.16.0.105 (eth0 172.16.0.105): набор S, 40 заголовков + 0 байтов данныхlen = 46 ip = 172.16.0.105 ttl = 128 DF id = 1383 sport = 445 flags = SA seq = 0 win = 64320 rtt = 0,3 мс--- 172.16.0.105 статистика hping ---1 пакет передан, 1 пакет получен, потеря пакетов 0%двусторонний мин. / средн. / макс. = 0,3 / 0,3 / 0,3 мс

Обратите внимание, что на этот раз идентификатор не увеличился, потому что порт был закрыт. Когда мы отправили поддельный пакет на целевой хост, он ответил бездействующему хосту первым пакетом, который не увеличил счетчик id.

Использование nmap

Первое, что сделает пользователь, это найдет подходящего зомби на LAN:

Выполнение сканирования портов и идентификации ОС (опция -O в nmap) в сети-кандидате зомби, а не просто сканирование ping помогает выбрать хорошего зомби. Пока включен подробный режим (-v), обнаружение ОС обычно определяет метод создания последовательности IP-идентификатора и выводит строку, такую ​​как «Создание последовательности IP-идентификатора: инкрементное». Если тип задан как Incremental или Broken little-endian incremental, машина является хорошим кандидатом в зомби. Это еще не гарантия того, что он будет работать, поскольку Solaris и некоторые другие системы создают новую последовательность IP-идентификаторов для каждого хоста, с которым они взаимодействуют. Хозяин тоже может быть слишком занят. Обнаружение ОС и список открытых портов также могут помочь в выявлении систем, которые, скорее всего, простаивают.

Другой подход к выявлению кандидатов-зомби - запуск сценария ipidseq NSE на хосте. Этот сценарий проверяет хост, чтобы классифицировать метод генерации IP-идентификатора, а затем распечатывает классификацию IP-идентификатора так же, как это делает определение ОС. Как и большинство сценариев NSE, ipidseq.nse можно запускать параллельно со многими хостами, что делает его еще одним хорошим выбором при сканировании целых сетей в поисках подходящих хостов.

nmap -v -O -sS 192.168.1.0/24

Это указывает Nmap выполнить ping-анализ и показать все хосты, которые находятся в указанном диапазоне IP. После того, как вы нашли зомби, вы должны отправить поддельные пакеты:

nmap -P0 -p <порт> -sI <целевой IP-адрес>

Сопоставление изображений показывает оба этих этапа в успешном сценарии.

Эффективность

Хотя многие операционные системы теперь защищены от использования в этой атаке, некоторые популярные системы все еще уязвимы;[1] делая сканирование в режиме ожидания по-прежнему очень эффективным. После успешного сканирования IP-адрес злоумышленника не отслеживается на целевом компьютере. брандмауэр или же Система обнаружения вторжений бревно. Еще одна полезная возможность - это возможность обойти брандмауэр, потому что вы сканируете цель с компьютера зомби,[10] который может иметь дополнительные права, чем у злоумышленника.

Смотрите также

Примечания

  1. ^ а б c Эриксон, Джон (1977). Взлом искусства эксплуатации. Сан-Франциско: NoStarch Press. п. 264. ISBN  1-59327-144-1.
  2. ^ а б «Что такое Idle Scan? | Информационные и коммуникационные технологии ICterra». 2017-02-01. Получено 2020-09-09.
  3. ^ Сын, До (2017-12-01). «Введение в сканирование в режиме ожидания / зомби • Тестирование на проникновение». Тестирование на проникновение. Получено 2020-09-09.
  4. ^ Трапикин, Роман (сентябрь 2015). «Кто сканирует Интернет?» (PDF). Семантический ученый. Получено 9 сентября 2020.
  5. ^ Санфилиппо, Сальваторе (1998-12-18). "новый метод сканирования TCP". Получено 2010-09-28.
  6. ^ Филипе Алмейда (он же LiquidK) (1999-12-03). "idlescan (ip.id portscanner)". Получено 2010-11-09.
  7. ^ Санфилиппо, Сальваторе (1999-10-26). "предсказуемый ip-> id patch". Получено 2010-09-28.
  8. ^ Гордон «Федор» Лион (2010). "Nmap Network Scanning Глава 5. Методы и алгоритмы сканирования портов". ООО "Insecure.Com". Получено 2010-09-28.
  9. ^ Мартин «olemoudi» Обиолс (2011). «Зомби-сканирование с использованием непредусмотренных общественных служб». (Почти) Блог о взломе технологий. Архивировано из оригинал на 2011-03-20. Получено 2011-03-16.
  10. ^ Гордон «Федор» Лион (2010). "Nmap Network Scanning Глава 15. Справочное руководство Nmap". ООО "Insecure.Com". Получено 2010-09-28.

внешняя ссылка