Idle Scan описанное в этом учебнике, является более сложной техникой, использующей щит (называемый зомби) между атакующим и целью, если сканирование будет обнаружено системой защиты (брандмауэром или IDS), она обвинит промежуточное устройство (зомби), а не компьютер атакующего.
Nmap Idle Scan
Атака в основном заключается в подделке щита или промежуточного устройства. Важно отметить, что наиболее важным шагом в этом типе атаки является не проведение ее против цели, а поиск устройства-зомби.
Чтобы понять, как работает Idle Scan, вы должны знать, что такое IP ID. Каждая отправляемая TCP датаграмма имеет уникальный временный ID, который позволяет фрагментацию и последующую сборку фрагментированных пакетов на основе этого ID, называемого IP ID. IP ID постепенно увеличивается в зависимости от количества отправленных пакетов, поэтому на основе номера IP ID можно узнать количество пакетов, отправленных устройством.
Когда вы посылаете незапрашиваемый пакет SYN/ACK, ответом будет пакет RST для сброса соединения, этот пакет RST будет содержать номер IP ID. Если сначала вы отправите незапрашиваемый SYN/ACK пакет на зомби-устройство, оно ответит RST пакетом, показывающим его IP ID, второй шаг - подделать этот IP ID, чтобы отправить поддельный SYN пакет на цель, заставляя ее поверить, что вы - зомби, цель ответит (или нет) на зомби, на третьем шаге вы отправите новый SYN/ACK на зомби, чтобы снова получить RST пакет для анализа увеличения IP ID.
- Отправка незапрашиваемый SYN/ACK на зомби-устройство, чтобы получить RST-пакет с указанием IP ID зомби.
- Отправка поддельный SYN-пакет, выдавая себя за зомби, заставив цель ответить незапрашиваемым SYN/ACK на зомби, заставив его ответить новым обновленным RST.
- Отправка новый незапрашиваемый SYN/ACK зомби, чтобы получить RST-пакет для анализа его нового обновленного IP ID.
Если порт цели открыт, она ответит устройству-зомби пакетом SYN/ACK, побуждая зомби ответить пакетом RST, увеличивающим ее IP ID. Затем, когда атакующий снова пошлет зомби пакет SYN/ACK, IP ID будет увеличен на +2, как показано в таблице выше.
Если порт закрыт, цель не пошлет зомби пакет SYN/ACK, а пошлет RST, и ее IP ID останется прежним, когда атакующий пошлет зомби новый ACK/SYN, чтобы проверить его IP ID, он увеличится только на +1 (из-за ACK/SYN, посланного зомби, без увеличения, спровоцированного целью).
- То же, что и выше
- В этом случае цель отвечает зомби пакетом RST вместо SYN/ACK, не позволяя зомби отправить RST, который может увеличить его IP ID.
- Атакующий посылает SYN/ACK, а зомби отвечает только увеличением, сделанным при взаимодействии с атакующим, а не с целью.
Когда порт фильтруется, цель вообще не отвечает, IP ID также остается неизменным, так как не происходит ответа RST, и когда атакующий посылает новый SYN/ACK зомби для анализа IP ID, результат будет таким же, как и при закрытых портах. В отличие от SYN, ACK и Xmas сканирования, которые не могут отличить определенные открытые и отфильтрованные порты, эта атака не может отличить закрытые и отфильтрованные порты.
- То же, что и выше
- В этом случае нет ответа от цели, что не позволяет зомби отправить RST, который может увеличить его IP ID.
- То же, что и выше
Поиск зомби-устройства
Nmap NSE (Nmap Scripting Engine) предоставляет скрипт IPIDSEQ для обнаружения уязвимых зомби-устройств. В следующем примере скрипт используется для сканирования порта 80 случайных 1000 целей для поиска уязвимых хостов, уязвимые хосты классифицируются как Incremental или little-endian incremental.
Пример IPIDSEQ для случайного поиска кандидатов в зомби:
1 | nmap -p80 --script ipidseq -iR 1000 |
Самый сложный шаг при выполнении Idle-сканирования - найти уязвимое зомби-устройство, это сложно по многим причинам:
- Многие интернет-провайдеры блокируют этот тип сканирования.
- Большинство операционных систем присваивают IP ID случайным образом
- Хорошо настроенные брандмауэры и honeypots могут выдавать ложные срабатывания.
В таких случаях при попытке выполнить Idle scan вы получите следующую ошибку:
1 | "…cannot be used because it has not returned any of our probes — perhaps it is down or firewalled. QUITTING!". |
Если вам повезет на этом этапе, вы найдете старую систему Windows, старую систему IP-камер или старый сетевой принтер, последний пример рекомендуется в книге Nmap.
При поиске уязвимых зомби вы можете выйти за рамки Nmap и использовать дополнительные инструменты, такие как Shodan и более быстрые сканеры. Вы также можете запустить случайное сканирование с определением версий, чтобы найти возможную уязвимую систему.
Выполнение сканирования в режиме ожидания Nmap
Обратите внимание, что следующие примеры не были разработаны в рамках реального сценария.
В следующих примерах обнаружение хоста пропущено и дана инструкция по сканированию в режиме ожидания с использованием IP 192.168.56.102 в качестве устройства зомби для сканирования портов 80.21.22 и 443 цели 192.168.56.101.
1 | nmap -Pn -sI 192.168.56.102 -p80,21,22,443 192.168.56.101 |
Где:
- nmap: вызывает программу
- -Pn: пропускает обнаружение хоста.
- -sI: сканирование вхолостую
- 192.168.56.102: зомби.
- -p80,21,22,443: указывает сканировать указанные порты.
- 192.68.56.101: является целью.
В следующем примере только опция, определяющая порты, заменена на -p-, что дает указание Nmap сканировать наиболее распространенные 1000 портов.
1 | nmap -sI 192.168.56.102 -Pn -p- 192.168.56.101 |
Заключение
В прошлом самым большим преимуществом Idle Scan было как сохранение анонимности, так и подделка личности устройства, которое не подвергалось фильтрации и не вызывало доверия у защитных систем; оба способа использования кажутся устаревшими из-за сложности поиска уязвимых зомби (тем не менее, это, конечно, возможно). Оставаться анонимным с помощью щита было бы практичнее, используя публичную сеть, а сложные брандмауэры или IDS вряд ли будут сочетаться со старыми и уязвимыми системами как заслуживающие доверия.