ащиты, чем попытки предотвратить распространение утилит позволяющих реализовать FTP bounce атаки.
Не существует такой магической опции, которая позволяла бы обнаруживать и обходить брандмауэры и IDS. Для этого необходимы навыки и опыт. Подробное описание таких методов выходит за рамки данного справочного руководства, где содержаться только важные опции с описанием их возможностей.
-f (фрагментировать пакеты); --mtu (используя заданное значение MTU)
При задании опции -f все типы сканирования (включая различные типы пингования) будут использовать маленькие фрагментированные IP пакеты. Идея состоит в том, чтобы разбить TCP заголовок на части и посылать их в различных пакетах для того, чтобы не дать определить пакетным фильтрам и системам обнаружения вторжения, что вы делаете. Будьте осторожны с этой опцией! Некоторые программы имеют проблемы с обработкой таких маленьких пакетов. Один старый сниффер Sniffit аварийно завершал работу после принятия первого фрагмента. Задайте эту опцию один раз, и Nmap будет разбивать пакеты на части по 8 байт или меньше после IP заголовка. Таким образовм, 20-ти байтный TCP заголовок будет разбит на 3 пакета. Два из них будут содержать по 8 байт этого заголовка, а третий - последние 4. Конечно же, каждый фрагмент также имеет IP заголовок. Задайте опцию -f снова, чтобы использовать фрагменты по 16 байт (тем самым сократится число фрагментов). Или вы можете задать свой собственный размер фрагмента с помощью опции --mtu. Не используйте опцию -f вместе с --mtu. Размер должен быть кратным 8. В то время как фрагментированные пакеты не смогут пройти через пакетные фильтры и брандмауэры, которые ставят в очередь все IP фрагменты, например, с помощью опции CONFIG_IP_ALWAYS_DEFRAGв ядре Linux, некоторые сети не могут позволить себе связанное с этим падение производительности и поэтому не используют такую возможность. Другие могут использовать ее, потому что фрагменты в таких сетях могут идти по разным маршрутам. Некоторые системы фрагментируют исходящие пакеты прямо в ядре. Linux с включенным модулем отслеживания соединения iptables тому пример. Произведите сканирование с включенным сниффером Wireshark , чтобы убедиться, что пакеты фрагментируются. Если в вашей ОС возникают проблемы, попробуйте задать опцию --send-eth, чтобы обойти IP слой и отсылать сырые ethernet фрэймы.
-D <фиктивный_хост1>[,<фиктивный_хост2>][,ME][,...] (Маскировка сканирования с помощью фиктивных хостов)
Производится сканирование с использованием фиктивных хостов; в этом случае цель сканирования считает, что заданные вами фиктивные хосты также производят ее сканирование. Хотя IDS цели может сообщить о том, что было произведено 5-10 сканирований портов с каждого IP адреса, система не сможет узнать, с какого из этих IP адресов действительно производилось сканирование, а какие были лишь безвредными ловушками. Хотя этот тип сканирования может быть распознан путем отслеживания маршрута, сбрасыванием ответа или другими активными методами, в большинстве случае он является эффективным способом сокрытия вашего IP адреса.
При задании фиктивных хостов, разделяйте их запятыми; вы также можете указать ME как один из фиктивных хостов для задания позиции в списке вашего реального IP адреса. Если вы задаете ME в шестой позиции или дальше, некоторые обычные системы обнаружения сканирования портов (например, Solar Designer's excellent Scanlogd) вряд ли вообще отобразят ваш IP адрес. Если вы не задаете флаг ME, Nmap поставит его в произвольную позицию. Вы также можете использовать RND для генерации произвольного, незарезервированного IP адреса, или RND:<чило> для генерации определенного <числа> адресов.
Имейте ввиду, что хосты, указанные вами в качестве фиктивных, должны работать, иначе вы просто зафлудите целевые хосты с помощью запросов на подключение. Также легко будет определить, какой хост действительно производит сканирование, если только он будет работать. Возможно вы захотите использовать IP адреса вместо имен (в этом случае сети, в которых находятся фиктивные хосты, не видят вас в своих логах).
Фиктивные хосты используются и во время фазы обнаружения хостов (используя ICMP, SYN, ACK и что там еще), и во время сканирования портов. Также они используются во время удаленного определения ОС (-O). Эта техника не работает при сканировании с целью определения версии или с целью обнаружения возможности установления TCP соединения. Во время сканирования задержки принудительно устанавливаются между каждой группой обманных запросов. Т.к. ловушки посылаются одной группой сразу, то это может временно нарушить работу системы контроля ограничений нагрузок.
Использование большого количества фиктивных хостов может снизить скорость вашего сканирование и даже сделать его менее точным. Также, некоторые ISP будут отфильтровывать ваши обманные пакеты, в то время как некоторые вообще никак не ограничивают такого рода IP пакеты.
-S
В некоторых обстоятельствах Nmap может не определить ваш адрес (в этом случае Nmap сообщит вам об этом). В этом случае используйте опцию -S, передав ей в качестве параметра IP адрес, чтобы указать интерфейс, который вы хотите использовать для отправки пакетов.
Также эта опция может быть использована для того, чтобы заставить "думать" цель сканирования, что ее сканирует кто-то другой. Представьте компанию, которая частенько подвергается сканированию портов со стороны конкурента! Как правило, в этом случае необходимо использовать также опции -e и -PN. Имейте ввиду, что вы не будете получать в ответ никаких пакетов (они будут отправлены на указанный вами IP адрес), поэтому Nmap не будет выводить какой-либо полезной информации.
-e <интерфейс> (Использовать конкретный интерфейс)
Указывает Nmap, какой интерфейс использовать для отправки и приема пакетов. Nmap в состоянии определить его автоматически, но сообщит вам, если не сможет.
--source-port <номер_порта>; -g <номер_порта> (Задать свой номер порта)
Одной из удивительно часто встречающихся ошибок при конфигурировании системы безопасности является тенденция доверять траффику, основываясь только на номере исходного порта. Легко понять как это происходит. Администратор устанавливает новенький брандмауэр, и его заваливают жалобы от неблагодарных пользователей, чьи приложения перестали работать. В частности, может не работать DNS, т.к. UDP DNS ответы от внешних серверов больше не могут войти в сеть. Еще одним распространенным примером является FTP. При активной FTP передаче, удаленный сервер пытается установить соединение с клиентом, чтобы послать запрашиваемый файл.
Существуют безопасные методы решения этих проблем, часто в виде прокси на уровне приложений или надстроек к брандмауэрам. Но, к сожалению, существуют и более легкие, небезопасные методы. Принимая во внимание то, что DNS ответы приходят с порта 53 а FTP с порта 20, многие администраторы поддаются искушению и просто разрешают весь входящий трафик с этих портов. Они также часто полагают, что атакующие не заметят и не будут использовать такие дыры в брандмауэрах. В других случаях, администраторы считают, что это всего лишь временные меры, до тех пор пока они не придумают более безопасные способы решения проблем. Потом они забывают об этом.
Перегруженные работой сетевые администраторы не единственные, кто попадается в такую ловушку. Многочисленные продукты просто кишат такими небезопасными правилами. Даже Microsoft заслуживает порицания. Фильтры IPsec, которые были установлены в Windows 2000 и Windows XP содержат внутренне правило, разрешающее весь TCP или UDP траффик с порта 88 (Kerberos). Еще один известный случай: версии брандмауэра Zone Alarm до 2.1.25 разрешали все входящие UDP пакеты с порта 53 (DNS) или 67 (DHCP).
Nmap предоставляет опции -g и --source-port (они эквиваленты) для того, чтобы воспользоваться такими ошибками. Просто задайте номер порта, и Nmap будет использовать его для отправки пакетов. Nmap должна использовать различные номера портов, чтобы точно определить ОС; также DNS запросы игнорируют опцию --source-port, т.к. для их осуществления Nmap использует системные библиотеки. Большинство TCP вариантов сканирований, включая SYN сканирование, полностью поддерживают эту опцию, как и UDP сканирование.
--data-length <число> (Добавить произвольные данные к посылаемым пакетам)
В обычных условиях Nmap посылает минимальные пакеты, содержащие только заголовок. Так TCP пакеты составляют 40 байтов, а запросы на ICMP эхо ответ всего 28. Эта опция указывает Nmap добавлять заданное число произвольных байтов к посылаемым пакетам. Эта опция не влияет на пакеты, используемые для определения ОС (-O) , поскольку в этом случае необходимо тщательное соответствие запросов, но большинство пакетов, используемых для различных видов пингования и сканирования портов поддерживают ее. Это немного замедляет сканирование, зато делает его более незаметным.
--ip-options ; --ip-options <шестнадцатиричная строка> (Посылать пакет с заданным ip опциями)
Протокол IP предоставляет несколько опций, которые могут быть заданы в заголовке пакета. В отличии от повсеместно используемых TCP опций, опций IP редко видны из соображений практичности и безопасности. Фактически, большинство роутеров Интернета блокируют наиболее опасные опции, как, например, отслеживание источника. И все же опции могут быть полезны для определения и манипулирования сетевым маршрутом к целевым машинам. Например, возможно вы сможете воспользоваться опцией для определения маршрута до цели, когда более традиционные методы в стиле tracerout будут бесполезны. Или если ваши пакеты блокируются каким-либо брандмауэром, вы можете попробовать задать маршрут с менее строгим сетевым экраном.
Наиболее действенным способом задания IP опций является передача их значений в качестве аргументов опции --ip-options. Каждое шестнадцатиричное значение задается с помощью \x, после которого следуют два цифры. Вы можете повторять символы, поставив после них звездочку и указав количество повторений. Например, \x01\x07\x04\x00*36\x01 это шестнадцатиричная строка, содержащая 36 NUL байтов.