Fyodor
ÐлекÑей Волков
Коротко о главном
Ð’ данной Ñтатье раÑÑмотрен метод Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ð¸ об операционной ÑиÑтеме удаленного хоÑта, иÑпользующий механизм опроÑа Ñтека TCP/IP удаленного хоÑта. Вначале предÑтавлены некоторые клаÑÑичеÑкие методы Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐžÐ¡ удаленного хоÑта. Затем раÑÑматриваютÑÑ ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ñ‹Ðµ методы воздейÑÑ‚Ð²Ð¸Ñ Ð½Ð° удаленный хоÑÑ‚, по результатам которых можно Ñделать определенные выводы об уÑтановленной на нем ОС. Ðаконец, раÑÑмотрен механизм комплекÑного воздейÑÑ‚Ð²Ð¸Ñ Ð½Ð° удаленный хоÑÑ‚, иÑпользующий комбинацию раÑÑмотренных методов и реализованный в программе NMAP.
Введение
Проблема Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð° и верÑии операционной ÑиÑтемы (далее - ОС) удаленного хоÑта ÑвлÑетÑÑ Ð²ÐµÑьма актуальной на начальном Ñтапе реализации атаки на хоÑÑ‚. Ð’ завиÑимоÑти от того, ÐºÐ°ÐºÐ°Ñ ÐžÐ¡ уÑтановлена на удаленном хоÑте, атакующий будет планировать Ñвои дальнейшие дейÑтвиÑ, воздейÑÑ‚Ð²ÑƒÑ Ð½Ð° извеÑтную "дыру" (еÑли Ñ‚Ð°ÐºÐ¾Ð²Ð°Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ) в безопаÑноÑти уÑтановленной на хоÑте ОС. При Ñтом, чем точнее атакующий определит тип и верÑию ОС удаленного хоÑта, тем Ñффективней будет выполнен его "взлом". Ð’ подтверждении Ñтого, раÑÑмотрим неÑколько возможных Ñитуаций.
ДопуÑтим, оÑущеÑтвлÑетÑÑ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° Ð¿Ñ€Ð¾Ð½Ð¸ÐºÐ½Ð¾Ð²ÐµÐ½Ð¸Ñ Ð² удаленный хоÑÑ‚. Ð’ результате ÑÐºÐ°Ð½Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ð¾Ñ€Ñ‚Ð¾Ð² было обнаружено, что 53-й порт хоÑта открыт. Ðа оÑновании данного признака можно предположить, что на хоÑте уÑтановлена одна из верÑий ОС UNIX, и выполнÑетÑÑ Ð¾Ð´Ð½Ð° из уÑзвимых верÑий демона bind. ЕÑли Ñто веÑьма уÑловное предположение ÑвлÑетÑÑ Ð²ÐµÑ€Ð½Ñ‹Ð¼, атакующий имеет только одну попытку иÑпользовать обнаруженную "дыру", поÑкольку неудавшаÑÑÑ Ð¿Ð¾Ð¿Ñ‹Ñ‚ÐºÐ° атаки "подвеÑит" демона и порт окажетÑÑ Ð·Ð°ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼, поÑле чего атакующему придетÑÑ Ð¸Ñкать новые "дыры" в безопаÑноÑти удаленного хоÑта.
ЕÑли атакующий точно определит тип и верÑию ОС удаленного хоÑта (например, Linux kernel 2.0.35 или Solaris 2.51), он может ÑоответÑтвующим образом Ñкоординировать Ñвои дейÑтвиÑ, проанализировав информацию, каÑающуюÑÑ Ð¸Ð·Ð²ÐµÑтных проблем в безопаÑноÑти определенной ОС.
ИÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÑ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ð½Ñ‹Ðµ ÑредÑтва, обеÑпечивающие определение ОС удаленного хоÑта, атакующий ÑпоÑобен проÑканировать множеÑтво хоÑтов и определить тип и верÑию ОС, уÑтановленную на каждом из них. Затем, когда кто-нибудь опубликует в Ñети Интернет информацию об обнаруженной "дыре" в безопаÑноÑти конкретной ОС, атакующий автоматичеÑки получает ÑпиÑок уÑзвимых хоÑтов, на которых уÑтановлена Ð´Ð°Ð½Ð½Ð°Ñ Ð²ÐµÑ€ÑÐ¸Ñ ÐžÐ¡.
Информацию о типе и верÑии ОС удаленного хоÑта возможно иÑпользовать в качеÑтве ÑпекулÑтивного ÑредÑтва Ñоциальной инженерии. Ðапример, атакующий получает от удаленного хоÑта Ñледующую информацию:
DataVoice TxPort PRISMA 3000 T1 CSU/DSU 6.22
Следующим его шагом может быть звонок админиÑтратору данного хоÑта от имени Ñлужбы поддержки DataVoice и подробный раÑÑказ о мифичеÑкой "дыре" в Prisma 3000, Ñ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°Ñ†Ð¸ÐµÐ¹ обÑзательной уÑтановки программы - "заплаты", "только что отправленной" по Ñлектронной почте админиÑтратору. "Заплата" на Ñамом деле ÑвлÑетÑÑ Ð·Ð°ÐºÐ»Ð°Ð´ÐºÐ¾Ð¹, переÑылающей атакующему вÑе пароли ÑиÑтемы. Как видно, Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð¾Ð± ОС хоÑта ÑвлÑетÑÑ Ð¾Ñновным оружием в руках опытного взломщика.
КлаÑÑичеÑкие методы Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ð¿ÐµÑ€Ð°Ñ†Ð¸Ð¾Ð½Ð½Ð¾Ð¹ ÑиÑтемы удаленного хоÑта
СущеÑтвует маÑÑа различных ÑпоÑобов получить информацию об ОС удаленного хоÑта. Удивительно, но Ñамым Ñффективным из них и по Ñей день ÑвлÑетÑÑ Ñледующий:
Playground~> telnet hpux.u-aizu.ac.jp
Tryin 163.143.102.12 ...
Connected to hpux.uaizu.ac.jp.
Escape character is '^]'.
HP-UX hpux B.10.01.A 9000/715 (ttyp2)
login:
Как видно, не имеет ÑмыÑла прибегать к различным ухищрениÑм, еÑли удаленный хоÑÑ‚ Ñам Ñообщает о Ñвоей ОС. ОÑÐ½Ð¾Ð²Ð½Ð°Ñ Ð¼Ð°ÑÑа разработчиков ОС поÑтавлÑÑŽÑ‚ Ñвои продукты именно Ñ Ñ‚Ð°ÐºÐ¸Ð¼Ð¸ заголовками, и многие ÑиÑтемные админиÑтраторы забывают их отключить. Ðо даже еÑли вывод заголовка отключен, большинÑтво прикладных программ выдадут информацию, находÑщуюÑÑ Ð² заголовке ОС хоÑта по первому требованию (еÑли админиÑтратор не позаботилÑÑ Ð¾Ð± отключении Ñтой возможноÑти). Ðапример, FTP-Ñервер:
Payfones> telnet ftp.netscape.com 21
Trying 207.200.74.26 ...
Connected to ftp.netscape.com.
Escape character is '^]'.
220 ftp29 FTP server (UNIX(r) System V Release 4.0) ready.
Далее, применив команду SYST, можно получить более подробную информацию:
SYST
215 UNIX Type: L8 Version SUNOS
Кроме того, еÑли имеетÑÑ Ð´Ð¾Ñтуп к FTP, атакующий может проÑмотреть bin-файлы в каталоге /bin/ls и определить, в какой ОС они иÑпользуютÑÑ. Ðналогичную информацию можно получить и от WEB-Ñервера:
Playground> echo 'GET / HTTP/1.0\n' | nc hotboot.com 80 | egrep '^Server:'
Server: Microsoft-IIS/4.0
Playground>
Другие методы предуÑматривают проÑмотр базы данных Ñервера Ñлужбы DNS (неÑффективный метод, поÑкольку немногие из ÑиÑтемных админиÑтраторов Ñтанут размещать Ñту информацию на DNS-Ñервере), а также упомÑнутую ранее Ñоциальную инженерию.
Метод опроÑа Ñтека TCP/IP удаленного хоÑта
Как правило, реакцией Ñервера на любое удаленное воздейÑтвие (входÑщий пакет данных, запроÑ) ÑвлÑетÑÑ Ð¿Ð°ÐºÐµÑ‚ данных, поÑылаемый иÑточнику данного воздейÑÑ‚Ð²Ð¸Ñ (в дальнейшем под термином "Ñервер" понимаетÑÑ Ð°Ñ‚Ð°ÐºÑƒÐµÐ¼Ñ‹Ð¹ хоÑÑ‚, а под термином "хоÑÑ‚" - хоÑÑ‚ атакующего).
Как показывает практика, различные ОС при работе в Ñети по-разному реагируют на один и тот же запроÑ. ИÑÑледовав оÑобенноÑти реакций на Ð·Ð°Ð¿Ñ€Ð¾Ñ ÐžÐ¡, верÑии которых заранее извеÑтны, можно набрать определенную ÑтатиÑтику, ÑопоÑтавив реакции на Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ Ñ‚Ð¸Ð¿Ð¾Ð¼ ОС. При иÑпользовании комбинированного воздейÑтвиÑ, ÑтатиÑтичеÑÐºÐ°Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ ÑтановитÑÑ Ð±Ð¾Ð»ÐµÐµ конкретизированной.
Ð’ дальнейшем, иÑÑÐ»ÐµÐ´ÑƒÑ Ñ€ÐµÐ°ÐºÑ†Ð¸ÑŽ Ñервера Ñ Ð½ÐµÐ¸Ð·Ð²ÐµÑтной ОС, Ñ Ð¸Ñпользованием накопленной ÑтатиÑтики можно определить не только тип, но и верÑию уÑтановленной на Ñервере ОС. Ðапример, возможно точно отличить Solaris 2.4 от Solaris 2.50 или Linux kernel version 2.0.30 (Ð´Ð»Ñ Ð²Ñех Linux далее указываетÑÑ Ð²ÐµÑ€ÑÐ¸Ñ Ñдра) от Linux 2.0.35.
РаÑÑмотрим более подробно оÑновные методы иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ ÐžÐ¡ Ñервера.
FIN-иÑÑледование
Перед началом непоÑредÑтвенного иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ…Ð¾ÑÑ‚ Ñканирует порты Ñервера и определÑет, какие порты ÑвлÑÑŽÑ‚ÑÑ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ð¼Ð¸. Затем на любой открытый порт Ñервера хоÑÑ‚ поÑылает FIN-пакет (TCP-пакет на завершение ÑоединениÑ) или любой другой пакет без флагов SYN и ACK. Ð’ ÑоответÑтвии Ñ RFC 793 Ñервер должен ответить на такой пакет RST-пакетом, однако некоторые ОС типа Windows, BSDI, CISCO, HP/UX, MVS и IRIX не поÑылают ничего в ответ.
ИÑÑледование BOGUS- флагом
ХоÑÑ‚ поÑылает на Ñервер SYN-пакет Ñ ÑƒÑтановленным в TCP-заголовке неиÑпользуемым "флагом" BOGUS. "Флаг" BOGUS не ÑвлÑетÑÑ Ð½Ð°ÑтоÑщим флагом. Ðа Ñамом деле Ñтот термин подразумевает уÑтановку бит в поле Reserved заголовка TCP-пакета как 1000000 (вмеÑто вÑех нулей ÑоглаÑно RFC 793). ОС Linux до 2.0.35 ÑохранÑет в ответе Ñтот "флаг". Ðекоторые ОС обрывают Ñоединение при получении такого пакета.
Определение закона Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ISN Ñервера
ХоÑÑ‚ поÑылает на Ñервер SYN-пакет Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñом на Ñоединение, запиÑав в пакет Ñвое (извеÑтное) значение ISN. Сервер, получив Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° Ñоединение, прибавлÑет к полученному ISN единицу и запиÑывает полученное значение в поле ACK ответа (Ñ‚.е. SYN|ACK-пакета), а в поле ISS ответа - Ñвой ÑобÑтвенный ISN, и передает пакет уÑтанавливающему Ñоединение хоÑту. Ðа приемной Ñтороне (Ñ‚.е. на Ñтороне хоÑта) пакет анализируетÑÑ. ÐžÐ¿ÐµÑ€Ð°Ñ†Ð¸Ñ Ð¿Ð¾Ð²Ñ‚Ð¾Ñ€ÑетÑÑ Ð´Ð¾ тех пор, пока не будет выÑвлен закон Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ISN Ñервера.
Возможны Ñледующие закономерноÑти:
- закон "поÑтоÑнного приращениÑ" (традиционный закон "+64" - Ñтарые верÑии UNIX): значение ISN Ñервера, запиÑываемого в поле ISS ответа на Ð·Ð°Ð¿Ñ€Ð¾Ñ "уÑтановление ÑоединениÑ", увеличиваетÑÑ Ð½Ð° поÑтоÑнную величину (либо на 64) Ñ ÐºÐ°Ð¶Ð´Ñ‹Ð¼ обрабатываемым запроÑом;
- закон "Ñлучайных приращений" (новые верÑии Solaris, IRIX, FreeBSD, DigitalUNIX, Cray): приращение ISN ноÑит Ñлучайный характер;
- иÑтинно Ñлучайные Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ (Linux 2.0.x, OpenVMS, новые AIX): значение ISN ÑвлÑетÑÑ Ñлучайной величиной;
- закон "времÑ-завиÑимых приращений" (Windows): значение ISN периодичеÑки во времени увеличиваетÑÑ Ð½Ð° некоторую небольшую величину;
- поÑтоÑнный (концентраторы 3Com [ISN=0x803], принтеры Apple LaserWriter [0xC7001]): значение ISN оÑтаетÑÑ Ð¿Ð¾ÑтоÑнным.
ÐÐ½Ð°Ð»Ð¸Ð·Ð¸Ñ€ÑƒÑ Ð¿Ñ€Ð¸Ð½Ñтые от Ñервера TCP-пакеты целеÑообразно обратить внимание на поле Window в их заголовках , поÑкольку значение Ñтого Ð¿Ð¾Ð»Ñ ÑвлÑетÑÑ Ñвоеобразной конÑтантой, характеризующей ОС. Ð’ некоторых ÑлучаÑÑ… Ð´Ð»Ñ Ð¾Ð´Ð½Ð¾Ð·Ð½Ð°Ñ‡Ð½Ð¾Ð³Ð¾ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð° ОС доÑтаточно извлечь значение Ð¿Ð¾Ð»Ñ Window в TCP-заголовке принÑтого от Ñервера пакета.
Так, ОС AIX - единÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ ÐžÐ¡, Ð¸Ð¼ÐµÑŽÑ‰Ð°Ñ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ Window=0x3F25. "ПолноÑтью перепиÑанный" Ñтек TCP/IP в ОС Windows NT5, равно, как и OpenBSD и FreeBSD, имеют Window=0x402E.
ИÑÑледование Ð¿Ð¾Ð»Ñ ACK в TCP-пакете
Рекомендацией RFC 793 определено Ñтандартное изменение Ð¿Ð¾Ð»Ñ ACK в TCP-пакетах при уÑтановлении ÑоединениÑ, передаче данных и закрытии ÑоединениÑ. Однако в неÑтандартных ÑитуациÑÑ… различные ОС по-разному уÑтанавливают значение Ñтого полÑ.
ИÑÑледование проводитÑÑ Ñледующим образом. Ðа закрытый TCP-порт хоÑÑ‚ отправлÑет FIN|PSH|URG-пакет Ñ Ð¸Ð·Ð²ÐµÑтным значением ISN в поле ISS. БольшинÑтво ОС Ñкопируют значение ISN, прибывшее в ISS, в поле ACK ответа. Однако ОС Windows и некоторые Ñетевые принтеры отправÑÑ‚ в поле ACK ответа ISN+1. ЕÑли хоÑÑ‚ пошлет SYN|FIN|PSH|URG-пакет, поведение Windows предÑказать трудно. Иногда Ñта ОС отправлÑет в поле ACK ответа прибывший ISN, иногда - ISN+1, иногда - по вÑей видимоÑти, Ñлучайное значение. ОÑтаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ догадыватьÑÑ, какой код напиÑала Microsoft Ð´Ð»Ñ Ð¾Ð±Ñ€Ð°Ð±Ð¾Ñ‚ÐºÐ¸ подобной Ñитуации.
ИÑÑледование ÑкороÑти Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ICMP-Ñообщений
СоглаÑно RFC 792, протокол ICMP иÑпользует протокол IP в качеÑтве ÑредÑтва доÑтавки. Очевидно, что ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ Ð·Ð°Ð½Ð¸Ð¼Ð°ÑŽÑ‚ определенную чаÑть полоÑÑ‹ пропуÑÐºÐ°Ð½Ð¸Ñ ÐºÐ°Ð½Ð°Ð»Ð° ÑвÑзи, что Ñнижает общую ÑкороÑть передачи данных. По Ñтой причине некоторые продвинутые ОС, ÑÐ»ÐµÐ´ÑƒÑ Ñ€ÐµÐºÐ¾Ð¼ÐµÐ½Ð´Ð°Ñ†Ð¸Ð¸ RFC 1812, ограничивают количеÑтво отправлÑемых в канал ÑвÑзи ICMP-Ñообщений об ошибках.
Так, Linux ограничивает количеÑтво ICMP-Ñообщений об ошибке типа "получатель недоÑтупен" (Destination Unreachable) до 80 Ñообщений в 4 Ñекунды, Ñ Ð¿Ñ€Ð¾Ñтоем 0,25 Ñекунды, еÑли Ñто ограничение было превышено.
ЕдинÑтвенный ÑпоÑоб проверить ÑкороÑть Ð³ÐµÐ½ÐµÑ€Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ICMP-Ñообщений Ñервером - поÑлать на некоторый закрытый UDP-порт Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ номером набор пакетов и подÑчитать количеÑтво принÑтых ICMP-Ñообщений. Ðтот теÑÑ‚ ÑвлÑетÑÑ Ð¾Ñ‡ÐµÐ½ÑŒ медленным, и, кроме того, вызывает отноÑительно большую нагрузку на Ñеть.
ИÑÑледование формата ICMP-Ñообщений
Ð”Ð»Ñ ÑÐ½Ð¸Ð¶ÐµÐ½Ð¸Ñ Ð¾Ð±Ñ‰ÐµÐ¹ нагрузки на Ñеть рекомендациÑми было уÑтановлено, что дейтаграмма Ñ ICMP-Ñообщением об ошибке должна иметь меньший размер, чем дейтаграмма Ñ ICMP-Ñообщением, Ð²Ñ‹Ð·Ð²Ð°Ð²ÑˆÐ°Ñ Ð¾ÑˆÐ¸Ð±ÐºÑƒ. Так, в качеÑтве ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ "порт недоÑтижим" (Port Unreachable - PU) практичеÑки вÑе ОС генерируют дейтаграмму, предÑтавлÑющую Ñобой необходимый IP-заголовок и 8 байт данных, которые и ÑвлÑÑŽÑ‚ÑÑ Ð½ÐµÐ¿Ð¾ÑредÑтвенно ICMP-Ñообщением. Однако ОС Solaris формирует ICMP-Ñообщение немного большего размера, а Linux - еще больше, чем Solaris. Таким образом, имеетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть раÑпознавать ОС Linux и Solaris даже в том Ñлучае, еÑли Ñервер не оÑущеÑтвлÑет проÑлушивание портов.
ИÑÑледование Ñха в ICMP-ÑообщениÑÑ…
Как извеÑтно, в ICMP-Ñообщении об ошибке должна приÑутÑтвовать чаÑть дейтаграммы, вызвавшей Ñту ошибку. Ðта чаÑть ÑоÑтоит из IP-заголовка дейтаграммы и первых 64-Ñ… бит данных дейтаграммы, и называетÑÑ "Ñхом" дейтаграммы.
Ðекоторые ОС иÑпользуют IP-заголовок прибывшей дейтаграммы в качеÑтве "рабочего проÑтранÑтва" на начальном Ñтапе ее обработки. Ðто приводит к иÑкажению IP-заголовка, и дейтаграмма Ñ Ð¸Ñкаженным заголовком отправлÑетÑÑ ÐºÐ°Ðº Ñхо ICMP-ÑообщениÑ.
Различные ОС по-разному иÑкажают заголовок дейтаграммы. Ðапример, ОС AIX и BSDI в IP-заголовке Ñха возвращают значение Ð¿Ð¾Ð»Ñ TotalLength на 20 байт больше первоначального Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¸Ñходной дейтаграммы. Ðекоторые верÑии ОС BSDI, FreeBSD, OpenBSD, ULTRIX и VAXen Ñтирают поле ID в Ñхо-IP заголовке.
Ðе ÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° то, что поле "ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð°Ñ Ñумма" IP-заголовка так или иначе изменÑетÑÑ Ð²ÑвÑзи Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸ÐµÐ¼ параметра TTL, некоторые ОС типа AIX, FreeBSD отправлÑÑŽÑ‚ в Ñхо-дейтаграмме неÑоответÑтвующую либо нулевую контрольную Ñумму. То же Ñамое проиÑходит и Ñ ÐºÐ¾Ð½Ñ‚Ñ€Ð¾Ð»ÑŒÐ½Ð¾Ð¹ Ñуммой в UDP-пакете.
Вцелом, возможно проведение девÑти различных теÑтов Ð´Ð»Ñ Ð¿Ñ€Ð¾Ð²ÐµÑ€ÐºÐ¸ Ñха дейтаграммы в ICMP-Ñообщении и выÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡Ð½Ñ‹Ñ… закономерноÑтей Ð´Ð»Ñ Ñ€Ð°Ð·Ð½Ñ‹Ñ… ОС.
ИÑÑледование Ð¿Ð¾Ð»Ñ Type Of Service в заголовке ICMP-ÑообщениÑ
Ð’ ICMP-Ñообщении, нарÑду Ñ ÑƒÐ¶Ðµ упомÑнутыми признаками, можно проанализировать поле Type Of Service (Тип ÑервиÑа, TOS). ПодавлÑющее большинÑтво ОС уÑтанавливают поле TOS=0. Однако Ñтарые верÑии Linux ÑтавÑÑ‚ TOS=0xC0 (Ñледует отметить, что Ñто значение не ÑвлÑетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÐµÐ¼ на какой-либо тип ÑервиÑа). Таким образом, данный признак можно иÑпользовать ÑовмеÑтно Ñ Ð´Ñ€ÑƒÐ³Ð¸Ð¼Ð¸ теÑтами Ð´Ð»Ñ Ñ€Ð°Ð·Ð»Ð¸Ñ‡ÐµÐ½Ð¸Ñ Ñтарых и новых верÑий Linux.
ИÑÑледование обработки фрагментов дейтаграммы
Как извеÑтно, протокол IP делит пакет на фрагменты Ð´Ð»Ñ Ð´Ð°Ð»ÑŒÐ½ÐµÐ¹ÑˆÐµÐ¹ передачи их в Ñеть. Ðа практике различные ОС могут по-разному оÑущеÑтвлÑть обработку Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ„Ñ€Ð°Ð³Ð¼ÐµÐ½Ñ‚Ð¾Ð². Так, некоторые ОС заменÑÑŽÑ‚ Ñтарый фрагмент, прибывший без ошибок, повторно прибывшим аналогичным. Другие ОС Ñчитают, что Ñтарый пакет имеет привилегию над аналогичным новым и игнорируют его. ИÑÑÐ»ÐµÐ´ÑƒÑ Ð·Ð°ÐºÐ¾Ð½ Ð¿ÐµÑ€ÐµÐºÑ€Ñ‹Ñ‚Ð¸Ñ Ñ„Ñ€Ð°Ð³Ð¼ÐµÐ½Ñ‚Ð¾Ð² можно Ñделать определенные выводы отноÑительно типа ОС иÑÑледуемого Ñервера.
ИÑÑледование Ð¿Ð¾Ð»Ñ Options заголовка TCP-пакета
Поле Options (опции) TCP-пакета ÑвлÑетÑÑ ÐµÐ´Ð²Ð° ли не Ñамым важным каналом утечки информации от хоÑта отноÑительно ОС, уÑтановленной на нем. Денное поле имеет некоторые оÑобенноÑти:
- опции TCP-протокола не ÑвлÑÑŽÑ‚ÑÑ Ð¾Ð±Ñзательными, и не вÑе ОС поддерживают их;
- узнать, поддерживает ли ОС опции TCP можно, поÑлав на Ñервер Ð·Ð°Ð¿Ñ€Ð¾Ñ Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ в ÑоответÑтвующем поле TCP-заголовка некоторый набор опций (а лучше вÑего - полный набор). Сервер укажет на поддержку определенных опций, уÑтановив Ñоотв. значение в поле Options TCP-заголовка ответа и ÑброÑит вÑе оÑтальные.
<WindowScale=10><NOOP><MaxSegmentSize=256><TimeStamp><EndOfOptions>
и получив от Ñервера ответ подобного рода
<NOOP><MaxSegmentSize=1024><NOOP><NOOP><EndOfOps>
можно Ñделать вывод о том, что ОС Ñервера поддерживает опцию MaxSegmentSize.
Ðекоторые ОС, например, новые верÑии FreeBSD и поÑледние верÑии Linux 2.1.x , поддерживают вÑе опции, другие (например Linux 2.0.x) - лишь небольшой набор опций.
РаÑÑÐ¼Ð°Ñ‚Ñ€Ð¸Ð²Ð°Ñ Ð¿Ñ€Ð¸Ð²ÐµÐ´ÐµÐ½Ð½Ñ‹Ð¹ выше пример, можно обратить внимание на то, что значение MaxSegmentSize (MSS) в запроÑе (256) отличаетÑÑ Ð¾Ñ‚ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð²ÐµÑ‚Ð° (1024). ПоÑтому, еÑли неÑколько ОС поддерживают одинаковый набор опций, имеетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть Ñ€Ð°Ð·Ð»Ð¸Ñ‡ÐµÐ½Ð¸Ñ ÐžÐ¡ по значению опций.
Кроме того, из примера видно, что Ð¾Ð¿Ñ†Ð¸Ñ MSS в ответе Ñтоит на втором меÑте, а в запроÑе была указана на третьем меÑте. Ðта оÑобенноÑть иÑпользуетÑÑ Ð² Ñлучае, когда разные ОС имеют одинаковый набор опций Ñ Ð¸Ð´ÐµÐ½Ñ‚Ð¸Ñ‡Ð½Ñ‹Ð¼Ð¸ их значениÑми. При Ñтом возможно различение ОС по порÑдку ÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ñ‹Ñ… в ответе опций.
Так, ОС Solaris возвращает:
<NOOP><NOOP><TimeStamp><NOOP><WindowScale><EchoedMSS>
или, кратко, NNTNWE. ОС Linux 2.1.122 возвращает MENNTNW. Одинаковый набор опций, одни и те же Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð½Ð¾ - разный порÑдок их ÑледованиÑ.
ИÑÑледование флага DontFragment в IP-заголовке
Многие ОС в определенных ÑитуациÑÑ… не иÑпользуют фрагментацию пакетов, и поÑтому уÑтанавливают флаг DontFragment (DF) в IP-заголовке отправлÑемой (нефрагментированной) дейтаграммы. Ðто повышает производительноÑть ОС при работе в Ñети вÑвÑзи Ñ ÑƒÐ¼ÐµÐ½ÑŒÑˆÐµÐ½Ð¸ÐµÐ¼ времени обработки передаваемых пакетов. УÑтановив завиÑимоÑть Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ñ (или отÑутÑтвиÑ) данного признака в конкретной Ñитуации от типа ОС, можно в дальнейшем иÑпользовать его в одном из теÑтов на определение ОС Ñервера.
ИÑÑледование возможноÑти "борьбы Ñ Ð·Ð°Ñ‚Ð¾Ð¿Ð»ÐµÐ½Ð¸ÐµÐ¼" SYN-пакетами
"Затопление" SYN-пакетами ÑвлÑетÑÑ Ð´Ð¾Ñтаточно извеÑтным ÑпоÑобом "завала" Ñервера, вызвав у него ÑоÑтоÑние "отказа в обÑлуживании". Суть Ñтой атаки заключаетÑÑ Ð² том, что при отправлении на некоторый открытый порт Ñервера определенного чиÑла SYN-пакетов (Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° уÑтановление ÑоединениÑ) Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ неÑущеÑтвующего IP-адреÑа Ñервер переÑтает отвечать на вÑе входÑщие на Ñтот порт запроÑÑ‹.
БольшинÑтво ОС могут уÑпешно обработать не более 7 таких пакетов. Однако некоторые новые верÑии ОС (например, новые Linux) ÑпоÑобны боротьÑÑ Ñ "затоплением" SYN-пакетами различными методами (например, SYN-cookies) Ð´Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾Ñ‚Ð²Ñ€Ð°Ñ‰ÐµÐ½Ð¸Ñ "отказа в обÑлуживании".
ПоÑтому имеетÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñть иÑÑледовать ОС Ñервера, поÑлав на него 8 SYN-пакетов Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ неÑущеÑтвующего IP-адреÑа в поле "иÑточник" IP-заголовка (указание ложного иÑточника позволÑет избежать разрыва ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¼ÐµÐ¶Ð´Ñƒ Ñервером и хоÑтом) и затем проверить возможноÑть уÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ñ Ñервером по тому порту, на который были отправлены SYN-пакеты.
ОÑобенноÑти ОС Windows
ÐеÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° вÑе выше перечиÑленные методы Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐžÐ¡ Ñервера, практичеÑки невозможно различить Ñтек TCP/IP у ОС Windows 95, Windows 98 и Windows NT вÑех верÑий, неÑÐ¼Ð¾Ñ‚Ñ€Ñ Ð½Ð° то, что Windows 98 вышла позже Windows 95 на 4 года. Ðтот факт позволÑет Ñделать вывод о том, что Ñтек TCP/IP, положенный в оÑнову Windows 95, был Ñкопирован в Windows NT 4.0 и, может быть, Ñлегка изменен в Windows 98.
ПоÑтому атакующему, определив ОС Ñервера как Windows95/NT, доÑтаточно опробовать извеÑтные методы атаки на Ñти ОС (Ping of Death, WinNuke, Teardrop, Land). Тем Ñамым, работа Ñервера так или иначе будет нарушена.
Ð ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¼ÐµÑ‚Ð¾Ð´Ð° комплекÑного опроÑа Ñтека TCP/IP в NMAP
РаÑÑмотрим реализацию метода иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ ÐžÐ¡ удаленного хоÑта путем комплекÑного опроÑа его TCP/IP Ñтека, называемым иначе методом ÑнÑÑ‚Ð¸Ñ "отпечатков" Ñтека TCP/IP и иÑпользуемым в Ñканере NMAP.
Ð”Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐžÐ¡ удаленного хоÑта, верÑÐ¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ неизвеÑтна, необходимо иметь определенную информацию о том, как ОС извеÑтных верÑий реагируют на определенные виды запроÑов, опиÑанных выше, иначе Ð³Ð¾Ð²Ð¾Ñ€Ñ - ÑоÑтавить "отпечаток" Ñтека TCP/IP операционной ÑиÑтемы.
Ð”Ð»Ñ Ñтого необходимо удаленный либо локальный хоÑÑ‚, тип и верÑÐ¸Ñ ÐžÐ¡ которого заранее извеÑтны, протеÑтировать вÑеми опиÑанными выше ÑпоÑобами, проанализировать результаты теÑтов и на оÑнове полученных данных ÑоÑтавить общую характериÑтику (или Ñ‚.н. "отпечаток") Ñтека TCP/IP удаленного хоÑта, привÑзав его к конкретному типу и верÑии ОС.
Собрав доÑтаточно большое количеÑтво таких отпечатков (Ñ…Ð¾Ñ‚Ñ Ð¼Ð¾Ð¶Ð½Ð¾ начинать и Ñ Ð¾Ð´Ð½Ð¸Ð¼), возможно теми же методами иÑÑледовать хоÑÑ‚, тип и верÑÐ¸Ñ ÐžÐ¡ которого заранее неизвеÑтна. СоÑтавив из полученных результатов отпечаток и ÑопоÑтавив его Ñ ÑƒÐ¶Ðµ имеющимиÑÑ, можно определить, какой ОС ÑоответÑтвует полученный отпечаток и на оÑновании Ñтого Ñделать вывод об ОС иÑÑледуемого хоÑта.
Ðлгоритм Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿ÐµÑ‡Ð°Ñ‚ÐºÐ° Ñтека TCP/IP Ñледующий. Вначале проводитÑÑ Ñканирование портов удаленного хоÑта Ñ Ñ†ÐµÐ»ÑŒÑŽ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÐºÑ€Ñ‹Ñ‚Ñ‹Ñ… портов и Ñлужб, функционирующих на иÑÑледуемом хоÑте. Затем проводитÑÑ Ð½ÐµÑколько теÑтов, поÑтапно выполнÑющих Ð¾Ð¿Ñ€Ð¾Ñ Ñтека TCP/IP удаленного хоÑта Ñ Ñ†ÐµÐ»ÑŒÑŽ выÑÐ²Ð»ÐµÐ½Ð¸Ñ Ñ€Ð°ÑÑмотренных выше признаков.
Ðа оÑнове полученных от хоÑта ответов ÑоÑтавлÑетÑÑ Ð¾Ñ‚Ð¿ÐµÑ‡Ð°Ñ‚Ð¾Ðº, который затем ÑравниваетÑÑ Ñ ÑƒÐ¶Ðµ имеющейÑÑ Ð±Ð°Ð·Ð¾Ð¹ отпечатков, и принимаетÑÑ Ñ€ÐµÑˆÐµÐ½Ð¸Ðµ о типе и верÑии ОС иÑÑледуемого хоÑта.
Заметим, что нет никакой разницы между алгоритмом Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿ÐµÑ‡Ð°Ñ‚ÐºÐ° Ð´Ð»Ñ Ñ…Ð¾Ñта Ñ Ð¸Ð·Ð²ÐµÑтной ОС и Ð´Ð»Ñ Ñ…Ð¾Ñта Ñ ÐžÐ¡, верÑÐ¸Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ неизвеÑтна. Вот пример одного из таких отпечатков, полученного Ð´Ð»Ñ ÐžÐ¡ IRIX верÑии 6.2 - 6.4.
FingerPrint IRIX 6.2 - 6.4
Tseq(Class=i800)
T1(DF=N%W=C000|EF2A%ACK=S++%Flags=AS%Ops=MNWNNT)
T2(Resp=Y%DF=N%W=0%ACK=S%Flags=AR%Ops=)
T3(Resp=Y%DF=N%W=C000|EF2A%ACK=0%Flags=A%Ops=NNT)
T4(DF=N%W=0%ACK=0%Flags=R%Ops=)
T5(DF=N%W=0%ACK=S++%Flags=AR%Ops=)
T6(DF=N%W=0%ACK=0%Flags=R%Ops=)
T7(DF=N%W=0%ACK=S%Flags=AR%Ops=)
PU(DF=N%TOS=0%IPLEN=38%RIPTL=148%RID=E%RIPCK=E%UCK=E%ULEN=134%
DAT=E)
Ð”Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚Ð¿ÐµÑ‡Ð°Ñ‚ÐºÐ° было проведено 9 теÑтов. Далее подробно раÑÑмотрен каждый из них.
DF = N - ÑоÑтоÑние флага DontFragment в IP-заголовке ответа (N, Ñ‚.е. 0)
W = C000|EF2A - значение Ð¿Ð¾Ð»Ñ Window в TCP-заголовке ответа (C000 либо EF2A)
ACK = S++ - значение Ð¿Ð¾Ð»Ñ ACK в TCP-заголовке ответа (S++, Ñ‚.е. поÑланный хоÑтом ISN+1)
Flags = AS - ÑоÑтоÑние флагов в TCP-заголовке ответа (должны быть уÑтановлены флаги ACK (A) и SYN (S))
Ops = MNWNNT - набор TCP-опций (учитываетÑÑ Ð½Ð°Ð»Ð¸Ñ‡Ð¸Ðµ опций и порÑдок их ÑледованиÑ), указанных в TCP-заголовке ответа:
<MSS><NOOP><WindowScale><NOOP><NOOP><TimeStamp>
Resp = Y - указатель, определÑющий наличие или отÑутÑтвие ответа от Ñервера на подобный запроÑ. Данный указатель иÑпользуетÑÑ Ð² том Ñлучае, когда ÐºÐ¾Ð½ÐºÑ€ÐµÑ‚Ð½Ð°Ñ ÐžÐ¡, Ð´Ð»Ñ ÐºÐ¾Ñ‚Ð¾Ñ€Ð¾Ð¹ ÑоÑтавлен отпечаток, может не ответить на запроÑ, иÑпользуемый в теÑте, тогда как другие ОС отвечают на подобный Ð·Ð°Ð¿Ñ€Ð¾Ñ (Ñто и уÑтанавливаетÑÑ ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»ÐµÐ¼ Resp=Y/N). Ð’ Ñлучае, еÑли Respне приÑутÑтвует Ñреди переменных, подразумеваетÑÑ, что на подобный Ð·Ð°Ð¿Ñ€Ð¾Ñ Ð»ÑŽÐ±Ð°Ñ ÐžÐ¡ пошлет ответ.
Ops = - набор TCP-опций в ответе на запроÑ. "ПуÑтое" значение данной переменной означает отÑутÑтвие в ответе каких-либо опций.
Ðа закрытый порт Ñервера Ñ Ð±Ð¾Ð»ÑŒÑˆÐ¸Ð¼ номером хоÑÑ‚ отправлÑет Ð·Ð°Ð¿Ñ€Ð¾Ñ (TCP и UDP-пакет), и анализируетÑÑ Ð¿Ñ€Ð¸Ð±Ñ‹Ð²ÑˆÐµÐµ в ответ ICMP-Ñообщение Port Unreachable (порт недоÑтупен).
DF = N - ÑоÑтоÑние флага DontFragment в IP-заголовке ICMP-ÑообщениÑ
TOS = 0 - значение Ð¿Ð¾Ð»Ñ TypeOfService в прибывшем ICMP-Ñообщении (равно 0)
IPLEN = 38 - шеÑтнадцатиричное значение Ð¿Ð¾Ð»Ñ TotalLength в IP-заголовке прибывшего ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (ÑоÑтавлÑет 38h)
RIPTL = 148 - значение Ð¿Ð¾Ð»Ñ TotalLength в IP-заголовке Ñха ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (ÑоÑтавлÑет 148h)
RID = E - проверка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ñ ID в IP-заголовке Ñха ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (E-Ñовпадает Ñ Ð¿Ð¾Ñланным значением, F-не Ñовпадает)
RIPCK = E - проверка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ñ CheckSum в IP-заголовке Ñха ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (E-Ñовпадает Ñ Ð¿Ð¾Ñланным значением, F-не Ñовпадает)
UCK = E - проверка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ñ CheckSum в UDP-заголовке (при отправлении на Ñервер UDP-пакета) UDP-Ñха ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (E-Ñовпадает Ñ Ð¿Ð¾Ñланным значением, F-не Ñовпадает)
ULEN = 134 - проверка Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»Ñ CheckSum в UDP-заголовке UDP-Ñха ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (ÑоÑтавлÑет 134h)
DAT = E - проверка данных UDP-Ñха ICMP-ÑÐ¾Ð¾Ð±Ñ‰ÐµÐ½Ð¸Ñ (E-Ñовпадает Ñ Ð¿Ð¾Ñланным значением, F-не Ñовпадает). Ð’ общем Ñлучае, ÑовокупноÑть значений переменных UCK=E, ULEN=0x134h (Ð´Ð»Ñ IRIX) и DAT=E означает, что данные Ñхо-UDP были принÑты верно. ПоÑкольку большинÑтво ОС не отправлÑÑŽÑ‚ поÑланные в UDP-пакете данные в качеÑтве Ñха, решение о его "верноÑти" принимаетÑÑ Ð½Ð¸ оÑновании значений UCK и ULEN, а в поле DAT уÑтанавливаетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ по умолчанию (Ñ‚.е. DAT = E).
NMAP - в дейÑтвии
Ðиже приведены результаты иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¾Ð³Ñ€Ð°Ð¼Ð¼Ñ‹ NMAP Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÐžÐ¡ реально ÑущеÑтвующих Ñайтов Internet. Ðа вÑех Ñайтах заголовки ОС отключены как в приглашении, так и в различных прикладных программах. Результаты иÑÑÐ»ÐµÐ´Ð¾Ð²Ð°Ð½Ð¸Ñ Ñледующие:
www.l0pht.com => OpenBSD 2.2 - 2.4
insecure.org => Linux 2.0.31-34
www.rhino9.ml.org => Windows 95/NT
www.technotronic.com => Linux 2.0.31-34
www.nmrc.org => FreeBSD 2.2.6 - 3.0
www.cultdeadcow.com => OpenBSD 2.2 - 2.4
www.kevinmitnick.com => Linux 2.0.31-34
www.2600.com => FreeBSD 2.2.6 - 3.0 Beta
www.antionline.com => FreeBSD 2.2.6 - 3.0 Beta
www.rootshell.com => Linux 2.0.35
www.repsec.com => Linux 2.0.35
www.iss.net => Linux 2.0.31-34
www.checkpoint.com => Solaris 2.5 - 2.51
www.infowar.com => Win95/NT
www.li.org => Linux 2.0.35
www.redhat.com => Linux 2.0.31-34
www.debian.org => Linux 2.0.35
www.linux.org => Linux 2.1.122 - 2.1.126
www.sgi.com => IRIX 6.2 - 6.4
www.netbsd.org => NetBSD 1.3X
www.openbsd.org => Solaris 2.6
www.freebsd.org => FreeBSD 2.2.6-3.0 Beta
www.harvard.edu => Solaris 2.6
www.yale.edu => Solaris 2.5 - 2.51
www.caltech.edu => SunOS 4.1.2-4.1.4
www.stanford.edu => Solaris 2.6
www.mit.edu => Solaris 2.5 - 2.51
www.berkeley.edu => UNIX OSF1 V 4.0,4.0B,4.0D
www.oxford.edu => Linux 2.0.33-34
www.aol.com => IRIX 6.2 - 6.4
www.happyhacker.org => OpenBSD 2.2-2.4
www.lwn.net => Linux 2.0.31-34
www.slashdot.org => Linux 2.1.122 - 2.1.126
www.whitehouse.gov => IRIX 5.3
sunsite.unc.edu => Solaris 2.6
Заключение
Ðвтор выражает глубокую признательноÑть вÑем тем, кто принимал учаÑтие в Ñоздании Ñетевого Ñканера NMAP а также многочиÑленной команде предварительного бета-теÑÑ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð´Ð°Ð½Ð½Ð¾Ð¹ программы. Ð’ чаÑтноÑти, Jan Koum, van Hauser, Dmess0r, David O'Brien, James W. Abendschan, Solar Designer, Chris Wilson, Stuart Stock, Mea Culpa, Lamont Granquist, Dr. Who, Jordan Ritter, Brett Eldridge, и Pluvius за интернет-адреÑа Ñайтов Ñ Ð¸Ð·Ð²ÐµÑтными верÑиÑми ОС и готовые отпечатки Ð´Ð»Ñ Ð½ÐµÐºÐ¾Ñ‚Ð¾Ñ€Ñ‹Ñ… операционных ÑиÑтем.
ВопроÑÑ‹ и комментарии отправлÑйте по адреÑу:
Программу NMAP вы вÑегда можете Ñкачать Ñ:
© 1997-2000 Fyodor. Insecure Organisation.
© 1999-2000 ÐлекÑей Волков. AVS Hackers Technology, Inc.