Реферат по предмету "Информатика, программирование"


Сетевые сканеры и анализаторы

Кубанский государственный технологический университет
Кафедразащиты информации
КУРСОВАЯ РАБОТА
Подисциплине:
языкипрограммирования
 
На тему:
Сетевые сканерыи анализаторы
Краснодар 2008

ВВЕДЕНИЕ
Данный курсовой проектявляется обзорной статьей о передаче информации в локальных сетях и методах еёотслеживания (нахождения). Собранный мною материал предназначен для опытныхпользователей, работающих с локальными сетями, в частности – для сетевыхадминистраторов.

Сканирование
 
Цель сканирования —выявить открытые «окна» и «двери». В предварительнособранной информации содержатся сведения об адресах подсетей и отдельныхкомпьютеров, полученных с помощью запросов whois и переноса зоны.
Информация, собранная наэтом этапе, очень ценна для взломщика, поскольку содержит такие данные, какимена и фамилии сотрудников, номера телефонов, диапазоны IP-адресов, адресаDNS-серверов и почтовых серверов. Теперь можно приступать к выявлению техкомпьютеров, которые подключены к сети и достижимы из Internet. Для этого будутиспользоваться разнообразные средства и приемы, такие как ping-прослушивание,сканирование портов и различные методы, позволяющие автоматизировать выполнениеэтих задач.
Необходимо отметить, чтофакт наличия IP-адреса в перенесенной зоне еще не означает, что ксоответствующему узлу можно получить доступ через Internet. Необходимопроверить каждый конкретный компьютер в отдельности и выяснить, подключен ли онк Internet и имеются ли на нем порты, находящиеся в состоянии ожиданиязапросов. Нам приходилось встречать немало неправильно настроенныхDNS-серверов, которые предоставляли всем желающим адреса обслуживаемых имичастных сетей (например, 10.10.10.0). Поскольку такие адреса немаршрутизируются по Internet, вы понапрасну будете тратить время, пытаясьсвязаться с ними. Более подробная информация о том, какие адреса являютсямаршрутизируемыми, приведена в RFC 1918(http://www.ietf.org/rfc/rfcl918.txt).
Теперь давайте перейдемко второму этапу сбора информации — сканированию.
Прослушивание сети спомощью утилиты ping
Одним из основных этаповв определении структуры сети является ее автоматизированное прослушивание спомощью утилиты ping по диапазону IP-адресов или адресам подсетей. Цель такогопрослушивания — определить, имеется ли у отдельных компьютеров подключение кInternet. Утилита ping отправляет пакеты ICMP ECHO (тип 8) указанномукомпьютеру и ожидает ответного пакета ICMP ECHO_REPLY (тип 0). Получение такогоответа говорит о том, что компьютер в данный момент подключен к Internet. Хотяпри некоторой настойчивости с помощью утилиты ping можно определить количествопостоянно подключенных к Internet компьютеров в небольшой и даже средней сети,ручной перебор сетевых адресов будет малоэффективен, если необходимообследовать корпоративную сеть крупной организации.
Для выполненияping-прослушивания можно воспользоваться любым из .G® *-» многочисленныхсредств, разработанных как для системы UNIX, так и дляi-""""" Windows NT. В мире UNIX одним из самыхнадежных и проверенных методов такого прослушивания является использованиеутилиты fping (http:/ packetstormsecurity.com/Exploit_Code_Archive/fping.tar.gz). В отличие от других подобныхутилит, которые перед переходе к тестированию следующего компьютера ожидаютответа на ранее посланный запрос, утилита fping рассылает все запросыодновременно, а затем ожидает ответа сразу от всех узлов. Именно поэтомуутилита fping обеспечивает гораздо более высокую скорость прослушиваниябольшого диапазона IP-адресов, чем обычная утилита ping. Утилита fping быланаписана специально для использования в сценариях оболочек совместно с утилитойgping (http://www.hacking-exposed.com/tools/tools.html), которая входит в пакет,распространяемый вместе с fping. Утилита gping генерирует список IP-адресов,передаваемых на вход fping для прослушивания. Листинг использования утилитыgping для сетей класса А, В или С может показаться слегка непонятным, поэтомурассмотрим его подробнее.
[tsunami ]'$ gping
usage: gping aO aN bO bNcO cN dO dN
gping a bO bN cO cN dO dN
gping a b cO cN dO dN
gping a b с dO dN
gping abcd
В качестве параметровутилите gping необходимо передать диапазон IP-адресов. На основании этогодиапазона будет генерироваться листинг, в котором адреса перебираются друг задругом. Каждый октет передаваемого IP-адреса должен отделяться от остальныхпробелами. Например, если мы собираемся генерировать IP-адреса для сети классаС, нам необходимо просто добавить 254 в качестве последнего параметра. Этопозволит утилите перебрать все адреса от 192.168.1.1 до 192.168.1.254.Предположим, что эта сеть не содержит подсетей и использует маску подсети255.255.255.0. Кроме того, мы не будем проверять адрес самой сети 192.168.1.0 иадрес широковещательной рассылки 192.168.1.255. Следует избегать примененияутилиты ping к адресам широковещательной рассылки, поскольку это может привестик отказу, или так называемому состоянию DoS (denial of service), если ответныйпакет одновременно будет сгенерирован многимиузлами (более подробная информацияо том, как установить маску подсети узла, приведена в документации по запросамICMP). С использованием утилиты gping можно сгенерировать перечень адресов,которые затем будут использоваться утилитой fping.
[tsunami] gping 192 168 1 1 254
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.251
192.168.1.252
192.168.1.253
192.168.1.254
Теперь в нашемраспоряжении имеется список всех узлов, которые могут находиться в исследуемойсети класса С. Осталось лишь перенаправить вывод утилиты gping на вход утилитыfping, которая выполнит прослушивание сети и определит, какие компьютеры вданный момент подключены к сети.
[tsunami]? gping 192 168 11 254 | fping -a
192.168.1.254 is alive
192.168.1.227 is alive
192.168.1.224 is alive
192.168.1.3 is alive
192.168.1.2 is alive
192.168.1.1 is alive
192.168.1.190 is alive
Параметр -а утилиты fpingпредназначен для включения режима, в котором выводится информация обо всехактивных в данный момент компьютерах сети. Если нужно, утилита может выводить иинформацию об именах узлов. Этот режим включается с помощью параметра -d. Понашему мнению, параметр -а лучше всего использовать в сценариях оболочки, апараметр -d — при исследовании сети на предмет поиска определенных узлов. Средидругих параметров необходимо упомянуть -f, который позволяет вводить адреса иззаранее подготовленного файла, а также -h, с помощью которого можно получитьперечень всех параметров утилиты и режимов их использования. Еще однойутилитой, о которой мы будем много говорить в этой книге, является утилитаnmap, созданная хакером по имени Федор (Fyodor) (www.insecure.org/nmap). Болееподробно эта утилита будет рассматриваться ниже в этой главе, однако будетнелишним упомянуть, что, кроме всех остальных возможностей, данная утилитатакже позволяет выполнить прослушивание сети. Для включения соответствующегорежима необходимо указать параметр -SP.
[tsunami] nmap -sP 192.168.1.0/24
Starting nmap V. 2.53 byfyodor@insecure.org
(www.insecure.org/nmap/)
Host (192.168.1.0) seemsto be a subnet broadcast
address (returned 3 extrapings).
Host (192.168.1.1) appearsto be up.
Host (192.168.1.10)appears to be up.
Host (192.168.1.11)appears to be up.
Host (192.168.1.15)appears to be up.
Host (192.168.1.20)appears to be up.
Host (192.168.1.50)appears to be up.
Host (192.168.1.101)appears to be up.
Host (192.168.1.102)appears to be up.
Host (192.168.1.255) seemsto be a subnet broadcast
address (returned 3 extrapings).
Nmap run completed — 256
IP addresses (10 hosts up)scanned in 21 seconds
Что касается приверженцевWindows, они также не остались без внимания.В частности, имеется такая бесплатная утилита, как Finger (рис. 1.1),написанная хакерами из группы Rhino9 (http://www.nmrc.org/files/snt/). Этаутилита является одной из самых быстрых в своем классе. Как и fping, утилитаFinger одновременно рассылает несколько ICMP-пакетов ECHO, а затем ожидаетпоступления ответов. Кроме того, Finger позволяет также получать имена узлов исохранять результаты своей работы в файле. Такой же скоростью, как и Finger,обладает коммерческий продукт Ping Sweep, предлагаемый компанией SolarWinds(www.solarwinds.net). Поразительная скорость работы Ping Sweep объясняется тем,что данная программа позволяет устанавливать время задержки между передаваемымипакетами (delay time). Установив это значение равным 0 или 1, можнопросканировать всю сеть класса С и получить имена ее узлов менее чем за 7секунд. Однако при использовании этих средств соблюдайте осторожность,поскольку в этом случае можно значительно снизить пропускную способностькакого-нибудь низкоскоростного канала, например канала ISDN с пропускнойспособностью 128 Кбит/с или Frame Relay (не говоря уже о спутниковом илиинфракрасном канале).
Среди других утилитWindows, предназначенных для прослушивания сети, можно отметить WS_Ping ProPack(www.ipswitch.com) и Netscan Tools (www.nwpsw.com). Хотя возможностей этихутилит вполне достаточно для прослушивания небольших сетей, они значительномедленнее Finger и Ping Sweep. Кроме того, не забывайте, что утилиты сграфическим интерфейсом, несмотря на удобство их использования, лишают васвозможности их применения в сценариях и автоматизированных процедурах.
Возможно, вы хотитеспросить, как поступать, если исследуемый узел блокирует сообщения ICMP?Хороший вопрос. Такой подход зачастую применяется на тех узлах, администраторыкоторых заботятся о безопасности. Однако, несмотря на блокировку пакетов ICMP,существуют дополнительные средства и методы, позволяющие определить, подключенли такой узел к сети или нет. Вместе с тем необходимо отметить, что все этисредства оказываются не такими точными и эффективными, как обычные утилитысемейства ping.
В тех случаях, когдаобмен данными по протоколу ICMP заблокирован, в первую очередь применяетсяметод сканирования портов (port scanning), который более подробнорассматривается ниже в этой главе. Просканировав стандартные порты каждогопотенциального IP-адреса сети, можно определить, какие узлы подключены к сети.Если порт открыт (opened mode) или находится в режиме ожидания (listeningmode), значит, по данному адресу находится подключенный к Internet узел сети.Недостатками этого метода являются большие временные затраты и некотораянеопределенность результата (если по какому-то адресу не удалось обнаружить ниодного порта, то это еще не означает, что соответствующий узел не подключен кInternet). Одной из утилит, которые можно использовать для сканирования портов,является nmap. Как уже упоминалось, с помощью этой утилиты можно проводитьICMP-прослушивание, однако этим перечень ее возможностей далеко неисчерпывается. В частности, эта утилита позволяет выполнять так называемоеTCP-прослушивание сканированием (TCP ping scan). Данный режим включается спомощью параметра -рт и указания номера порта, например 80. Выбор порта сномером 80 обусловлен тем, что в подавляющем большинстве случаев именно ониспользуется узлами сети для обмена данными через пограничные маршрутизаторыили брандмауэры с компьютерами, расположенными в так называемойдемилитаризованной зоне (DMZ — demilitarized zone). При использованииуказанного параметра утилита рассылает узлам исследуемой сети пакеты АСК, азатем ожидает поступления пакетов RST, что свидетельствует о том, что узелподключен к Internet.
[tsunami] nmap -sP -PT80192.168.1.0/24
TCP probe port is 80
Starting nmap V. 2.53
Host (192.168.1.0) appearsto be up.
Host (192.168.1.1) appearsto be up.
Host shadow (192.168.1.10)appears to be up.
Host (192.168.1.11)appears to be up.
Host (192.168.1.15)appears to be up.
Host (192.168.1.20)appears to be up.
Host (192.168.1.50)appears to be up.
Host (192.168.1.101)appears to be up.
Host (192.168.1.102)appears to be up.
Host (192.168.1.255)appears to be up.
Nmap run completed (10hosts up) scanned in 5 seconds
Как видно из приведенноговыше листинга, этот метод определения подключенных к Internet узлов оченьэффективен, даже если на них блокируется передача пакетов ICMP. С помощьюутилиты nmap имеет смысл провести несколько подобных проверок, тестируя такиестандартные порты как SMTP (25), POP (110), AUTH (110), IMАР (143) или другиепорты, которые, по вашим сведениям, могут быть уникальными на каком-либокомпьютере исследуемой сети.
Еще одной утилитой, специальнопредназначенной для TCP-прослушивания, является утилита hping(http://www.kyuzz.org/antirez/). По возможностям она даже превосходит утилитуnmap. Утилита hping позволяет пользователям управлять параметрами протоколаTCP, что может обеспечить проникновение отправляемых пакетов даже черезнекоторые устройства управления доступом. Так, установив порт назначения спомощью параметра -р, можно обойти некоторые устройства управления доступомточно так же, как это было сделано с применением утилиты traceroute в главе 1.Поэтому утилита hping может с успехом служить не только для TCP-прослушивания,но и преодолевать преграды некоторых устройств управления доступом благодарявозможности фрагментации пакетов.
[tsunami] hping192.168.1.2 -S -p 80 -f
HPING 192.168.1.2 (ethO192.168.1.2):
S set, 40 data bytes
60 bytes from 192.168.1.2:
flags=SA seq=0 ttl=124id=17501 win=0 time=46.5
60 bytes from 192.168.1.2:
flags=SA seq=l ttl=124id=18013 win=0 time=169.1
В некоторых случаяхпростые устройства управления доступом не могут корректно обрабатыватьфрагментированные пакеты, что позволяет им проходить через такие устройства идостигать интересующего взломщика адреса. Обратите внимание, что в случае,когда порт открыт, возвращаются флаги TCP SYN (s) и дек (А). Утилиту hpingочень легко использовать в сценариях оболочки с параметром счетчика пакетов-cN, где N — это количество пакетов, которые нужно отправить в Internet, преждечем переходить к выполнению следующей команды сценария. Хотя данный метод и необладает такой скоростью, как описанные выше методы ICMP-прослушивания, внекоторых случаях только он может помочь выяснить конфигурацию сети. Болееподробно утилита hping рассматривается в главе 11, «Брандмауэры».
Последним из средствпрослушивания рассмотрим утилиту icmpenum хакером Симплом Номадом (SimpleNomad) (http://www.nmrc.org/files/sunix/icmpenum-1.1.tgz). Эту утилиту удобноиспользовать для определения архитектуры сети. Утилита icmpenum позволяетбыстро выявить подключенные к сети компьютеры, передавая стандартныеICMP-пакеты ECHO, а также ICMP-запросы TIME STAMP REQUEST и INFO. Если входныепакеты ECHO не пропускаются пограничным маршрутизатором или брандмауэром, топодключенные узлы можно по-прежнему идентифицировать с помощью альтернативныхпакетов ICMP.
[shadow] icmpenum -i2 -с 192.168.1.0
192.168.1.1 is up
192.168.1.10 is up
192.168.1.11 is up
192.168.1.15 is up
192,168.1.20 is up
192.168.1.103 is up
В приведенном примересеть класса С (192.168.1.0) была протестирована с использованием ICMP-запроса TIMESTAMP REQUEST. Однако реальная мощь утилиты icmpenum заключается в возможностиидентификации узлов с помощью ложных пакетов, что позволяет избежатьобнаружения злоумышленника. Это возможно благодаря тому, что утилита icmpenumпозволяет генерировать ложные пакеты с использованием параметра -s и пассивноожидать отклика при указании параметра -р.
Подводя итог, можноотметить, что IСМР- или TCP-прослушивание позволяет точно установить, какиекомпьютеры сети подключены к Internet. Так, в рассматриваемом примере мыустановили, что из 255 потенциальных адресов сети класса С к Internetподключены лишь несколько компьютеров. Выявленные узлы становятся предметомпервоочередного внимания в дальнейших исследованиях. Таким образом, мызначительно сузили область поиска, что позволяет сэкономить время и силы дляболее эффективных действий.
 
Идентификациязапущенных TCP- и UDP-служб
Использование хорошейутилиты сканирования портов — важнейший этап сбора информации об исследуемойсети. Хотя для этих целей существует много различных программ, ориентированныхкак на платформу UNIX, так и на платформу Windows NT, мы ограничимсярассмотрением лишь самых популярных и проверенных временем сканеров.
strobe
Утилита strobe — этообщепризнанный и популярный TCP-сканер портов, написанный Джулианом Ассанжем(Julian Assange) (ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/strobe-l.06.tgz). Она стала известной уже довольнодавно и, вне всякого сомнения, считается одной из самых быстрых и надежныхутилит этого класса. К основным возможностям утилиты strobe относитсяоптимизация системных и сетевых ресурсов, а также сканирование исследуемойсистемы с максимальной эффективностью. Помимо высокой эффективности, утилитаstrobe версии 1.04 и выше может собирать идентификационные маркеры (если,конечно, они имеются), связанные с каждым проверяемым портом. Эта информацияможет оказаться полезной при определении операционной системы, а такжезапущенных на компьютере службах. В данных, выводимых утилитой strobe, имеетсяинформация о каждом прослушанном порте TCP.
[tsunami] strobe192.168.1.10
strobe 1.03 © 1995 JulianAssange (proff@suburbia.net).
192.168.1.10 echo 7/tcpEcho [95,JBP]
192.168.1.10 discard 9/tcpDiscard [94,JBP]
192.168.1.10 sunrpc111/tcp rpcbind SUN RFC
192.168.1.10 daytime13/tcp Daytime [93,JBP]
192.168.1.10 chargen19/tcp ttytst source
192.168.1.10 ftp 21/tcpFile Transfer [Control] [96,JBP]
192.168.1.10 exec 512/tcpremote process execution;
192.168.1.10 login.513/tcp remote login a la telnet;
192.168.1.10 cmd 514/tcpshell like exec, but automatic
192.168.1.10 ssh 22/tcpSecure Shell
192.168.1.10 telnet23,/tcp Telnet [112,JBP]
192.168.1.10 smtp 25/tcpSimple Mail Transfer [102,JBP]
192.168.1.10 nfs 2049/tcpnetworked file system
192.168.1.10 lockd 4045/tcp
192.168.1.10 unknown32772/tcp unassigned
192.168.1.10 unknown32773/tcp unassigned
192.168.1.10 unknown32778/tcp unassigned
192.168.1.10 unknown32799/tcp unassigned
192.168.1.10 unknown 32804/tcp unassigned
Хотя в большинствеслучаев утилита strobe предоставляет точные данные, все же важно помнить онекоторых ее ограничениях. Во-первых, данная утилита выполняетTCP-сканирование, не поддерживая сканирование по протоколу UDP. Поэтому внекоторых случаях можно получить лишь половину требуемой информации. Во-вторых,при соединении с каждым портом утилита strobe выполняет лишь TCP-сканированиеподключением. Хотя именно этим и объясняется высокая надежность получаемыхрезультатов, в то же время использование утилиты strobe очень легко выявить наисследуемой системе. Поэтому необходимо рассмотреть и другие утилитысканирования, лишенные указанных недостатков.
udp_scan
Для UDP-сканирования,которого не выполняет strobe, можно воспользоваться утилитой udp_scan, котораяизначально входила в пакет SATAN (Security Administrator Tool for AnalyzingNetworks), написанный Дэном Фармером (Dan Farmer) и Вайетсом Венема (WietseVenema) в 1995 году. Хотя сам пакет SATAN несколько устарел, входящие в егосостав утилиты по-прежнему можно использовать. Кроме того, по адресуhttp://wwdsilx.wwdsi.com можно получить новую версию пакета SATAN, котораятеперь называется SAINT. Несмотря на наличие множества других утилитUDP-сканирования, мы пришли к выводу, что udp_scan — одна из самых надежныхутилит, позволяющая получать достоверные результаты. Правда, необходимо сказатьтакже о том, что, несмотря на высокую надежность утилиты udp_scan, у нееимеется и один существенный недостаток. Эта утилита не может противостоятьконтратаке какого-либо из пакетов IDS, который осведомлен о методах,используемых в пакете SATAN для сканирования портов. Таким образом, еслисканирование необходимо выполнить более скрытно, поишите какое-нибудь другоесредство. Обычно с помощью утилиты udp_scan проверяются порты с номерами,меньшими 1024, а также некоторые определенные порты с большими номерами.
;tsunami] udp_scan192.168.1.1 1-1024
-: 2: UNKNOWN: 53:UNKNOWN: 123:UNKNOWN: 135:UNKNOWN:
netcat
Еще одной прекраснойутилитой является netcat (или nc), написанная Хоббитом (Hobbit,hobbit@avian.org). Эта утилита может выполнять так много различных задач, чтобыла названа нами «швейцарским армейским ножом». Помимо остальныхвозможностей, о которых мы еще не раз будем говорить на протяжении всей книги,утилита nc позволяет применять основные методы TCP- и UDP-сканирования.Степенью детализации выводимых данных можно управлять с помощью параметров -v и-vv, которые включают, соответственно, режимы подробного и очень подробногоотображения результатов. Параметр -z применяется для включения режима нулевоговвода-вывода (zero mode I/O), используемого для сканировании портов, а параметр-..2 позволяет задать для каждого соединения интервал ожидания. По умолчаниюутилита пс выполняет TCP-сканирование, а для UDP-сканирования необходимоиспользовать параметр -и (как показано во втором примере).
tsunami] nc -v -z -w2192.168.1.1 1-140
192.168.1.1] 139 (?) open
192.168.1.1] 135 (?) open
192.168.1.1] 110 (pop-3)open
[192.168.1.1] 106 (?) open
[192.168.1.1] 81 (?) open
[192.168.1.1] 80 (http)open
[192.168.1.1] 79 (finger)open
[192.168.1.1] 53 (domain)open
[192.168.1.1] 42 (?) open
[192.168.1.1] 25 (smtp)open
[192.168.1.1] 21 (ftp)open
[tsunami] nc -u -v -z -w2192.168.1.1 1-140
[192.168.1.1] 135(ntportmap) open
[192.168.1.1] 123 (ntp)open
[192.168.1.1] 53 (domain)open
[192.168.1.1] 42 (name) open
nmap
Рассмотрев простейшиесредства сканирования портов, давайте перейдем к обсуждению возможностейбезусловного лидера этой категории — утилиты nmap. Данная утилита,разработанная Федором (Fyodor) (http://www.insecure.org/nmap), обладает нетолько базовыми возможностями TCP- и UDP-сканирования, но и поддерживает всеостальные упоминавшиеся выше методы. Очень редко можно найти утилиту, котораяпредоставляла бы столь богатый набор возможностей в одном пакете. Итак,запустим утилиту и посмотрим, какие возможности она предоставляет.
[tsunami]# nmap -h
nmap V. 2.53 Использование:
nmap [Тип(ы) сканирования][Параметры]

Некоторые стандартные типысканирования
(При использовании параметров,отмеченных символом '*',
требуются привилегии root)
-sT TCP-сканирование подключением
(устанавливается по умолчанию) * -sSTCP-сканирование
с помощью сообщений SYN (среди всехметодов TCP-сканирования является наилучшим)
* -sU UDP-сканирование
-sP ping-прослушивание
(выполняется поиск всех достижимыхузлов)
* -sF,-sX,-sN сканирование с помощьюсообщений FIN,
по методу «рождественскойелки» и
нуль-сканирование,
соответственно(рекомендуется использовать только опытным пользователям)
-SR/-I сканирование с использованиемдемона
RPC/identd (применяется совместно сдругими типами сканирования)
Некоторые стандартные параметры
(являются необязательными, могуткомбинироваться друг с другом):
* -О режим изучения пакетов TCP/IP
с целью определения типа удаленнойоперационной системы
-р — диапазонпортов,
которые будут сканироваться.
Пример диапазона:'1-1024,1080,6666,31337'
-F Выполняется сканирование портов,
перечисленных в файле /etc/services
-v Режим вывода подробной информации.
Рекомендуется всегда использоватьэтот параметр.
Для включения режима вывода очень
подробной информации используйтепараметр -vv
-РО Отключение проверкиактивности узла с помощью утилиты ping (применяется для сканирования такихузлов, как www.microsoft.com и аналогичных)
* -Ddecoy_hostl,decoy2[,...]
Скрытое сканирование с указаниемнескольких ложных адресов узлов

Принятая политика ожидания отклика отудаленного узла
-n/-R Никогда не выполнять разрешениеимен DNS/
Всегда выполнять [по умолчанию: именаразрешаются
при необходимости] -oN/-oM
Вывести результаты сканирования вфайл в
удобочитаемом/машинном формате -iL
Взять IP-адреса или имена узлов изфайла .
Для использования стандартного потокаввода stdin укажите '-'
* -S /-e
позволяет указать исходный IP-адресили устройство
--переход в интерактивный режим
(затем для получения справки нужнонажать клавишу h)
[tsunami] nmap -sS192.168.1.1
Starting nmap V. 2.53 byfyodor@insecure.org
Interesting ports on(192.168.1.11):
(The 1504 ports scannedbut
not shown below are instate: closed)
Port State ProtocolService
21 open tcp ftp
25 open tcp smtp
42 open tcp nameserver
53 open tcp domain
79 open tcp finger
80 open tcp http
81 open tcp hosts2-ns
106 open tcp popSpw
110 open tcp pop-3
135 open tcp loc-srv
139 open tcp netbios-ssn
443 open tcp https
Помимо вышеуказанных,утилита nmap предоставляет и другие полезные возможности, заслуживающиедетального обсуждения. Так, в приведенном выше примере мы ис-ПОЛЬЗОЕИЛИпараметры командной строки, при которых осуществлялось сканирование одногоузла. Однако утилита nmap с такой же легкостью позволяет сканировать и всю сеть.Как легко заметить, nmap поддерживает описания диапазонов адресов в нотацииCIDR (Classless Inter-Domain Routing — бесклассовая маршрутизация доменовInternet), описанной в RFC 1519 (среди всех методов TCP-сканирования являетсянаилучшим)
* -sU UDP-сканирование
-sP ping-прослушивание (выполняетсяпоиск всех достижимых узлов)
* -sF,-sX,-sN сканирование с помощьюсообщений FIN,
по методу «рождественскойелки» и нуль-сканирование, соответственно (рекомендуется использоватьтолько опытным пользователям)
-SR/-I сканирование с использованиемдемона RPC/identd (применяется совместно с другими типами сканирования)
Некоторые стандартные параметры (являютсянеобязательными, могут комбинироваться друг с другом):
* -О режим изучения пакетов TCP/IP
с целью определения типа удаленнойоперационной системы
-р — диапазонпортов, которые будут сканироваться.
Пример диапазона:'1-1024,1080,6666,31337'
-F Выполняется сканирование портов, перечисленныхв файле /etc/services
-v Режим вывода подробной информации.
Рекомендуется всегда использоватьэтот параметр.
Для включения режима вывода оченьподробной информации используйте параметр -vv
-РО Отключение проверкиактивности узла с помощью утилиты ping (применяется для сканирования такихузлов, как www.microsoft.com и аналогичных)
* -Ddecoy_hostl,decoy2[,...]
Скрытое сканирование суказанием нескольких ложных адресов узлов

Принятая политика ожидания отклика отудаленного узла
-n/-R Никогда не выполнять разрешениеимен DNS/
Всегда выполнять [поумолчанию: имена разрешаются при необходимости] -oN/-oM
Вывести результатысканирования в файл в удобочитаемом/машинном формате -iL
Взять IP-адреса или имена узлов изфайла .
Для использования стандартного потокаввода stdin укажите '-'
* -S /-e
позволяет указать исходный IP-адресили устройство  --переход в интерактивный режим  (затем для получения справкинужно нажать клавишу h)
[tsunami] nmap -sS192.168.1.1
Starting nmap V. 2.53 byfyodor@insecure.org
Interesting ports on(192.168.1.11):
(The 1504 ports scannedbut
not shown below are instate: closed)
Port State ProtocolService
21 open tcp ftp
25 open tcp smtp
42 open tcp nameserver
53 open tcp domain
79 open tcp finger
80 open tcp http
81 open tcp hosts2-ns
106 open tcp popSpw
110 open tcp pop-3
135 open tcp loc-srv
139 open tcp netbios-ssn
443 open tcp https
Помимо вышеуказанных,утилита nmap предоставляет и другие полезные возможности, заслуживающие детальногообсуждения. Так, в приведенном выше примере мы использовали параметры команднойстроки, при которых осуществлялось сканирование одного узла. Однако утилитаnmap с такой же легкостью позволяет сканировать и всю сеть. Как легко заметить,nmap поддерживает описания диапазонов адресов в нотации CIDR (ClasslessInter-Domain Routing — бесклассовая маршрутизация доменов Internet), описаннойв RFC 1519 (http://www.ietf.org/rfc/rfcl519.txt). В этом формате очень легкозадавать диапазоны адресов вида 192.168.1.1-192.168.1.254. Полученнуюинформацию можно сохранить в обычном текстовом файле с помощью параметра -о.При указании параметра -oN результаты будут сохранены в удобочитаемом формате.
[tsunar.i]#ranap -sF 192.168.1.0/24 -oN outfile
Если выводимые данныенужно сохранить в файле, в котором в качестве разделителей используются символытабуляции (например, чтобы впоследствии программно анализировать полученнуюинформацию), используйте параметр -оМ. В любом случае при сканировании сети,скорее всего, будет получено очень много информации, поэтому имеет смыслсохранить результаты в любом из форматов. В некоторых случаях целесообразносохранять их сразу в обоих форматах, используя как параметр -ON, так и -оM.
Предположим, что послесбора предварительных данных о сети организации мы пришли к выводу, что вкачестве основного брандмауэра в ней используется простое устройство,выполняющее фильтрацию пакетов. В этом случае можно воспользоваться параметром-f утилиты nmap, чтобы включить режим фрагментации пакетов. Очевидно, что этоприведет к отделению заголовков TCP-пакетов от самих пакетов, что затруднит дляустройств управления доступом или систем IDS возможность выявления попыткисканирования. В большинстве случаев современные устройства фильтрации пакетов ибрандмауэры прикладного уровня, прежде чем осуществлять анализ пакетов IP,помещают все фрагменты в очередь. Однако при использовании более старых моделейустройств управления доступом или устройств, в которых соответствующие функциибыли отключены для повышения производительности, дефрагментация не выполняетсяи пакеты передаются дальше во внутреннюю сеть в том виде, в котором онипоступают.
Если архитектура системыбезопасности исследуемой сети и ее узлов была хорошо продумана, то эта системабез особого труда выявит сканирование, осуществляемое с помощью приведенныхвыше примеров. Для таких случаев утилита nmap предоставляет дополнительныевозможности маскирования, предназначенные для заполнения системных журналовисследуемого узла избыточной информацией. Данный режим включается с помощьюпараметра -D. Главная идея данного подхода состоит в том, чтобы во времявыполнения реального сканирования создать видимость одновременного сканированияиз других указанных в командной строке адресов. Для того чтобы воспрепятствоватьтакому сканированию, системе безопасности исследуемого узла придется проверитьвсе записи, чтобы выяснить, какие из полученных IP-адресов источниковсканирования являются реальными, а какие — фиктивными. При использованииданного метода нужно удостовериться в том, что IP-адреса, выступающие вкачестве маскировочных, принадлежат реальным узлам, которые в моментсканирования подключены к Internet. В противном случае исследуемая системабудет не в состоянии обработать все сообщения SYN, в результате чего возникнетусловие DoS.
[tsunami] nmap -sS192.168.1.1 -D 10.1.1.1
www.target_web.com,ME-p25,139,443
Starting nmap V. 2.53 byfyodor@insecure.org
Interesting ports on(192.168.1.1):
Port State ' ProtocolService
25 open tcp smtp
443 open tcp https
Nmap run completed — 1 IPaddress (1 host up) scanned in 1 second
В приведенном примерепараметры, введенные в командной строке утилиты nmap, обеспечивают сканированиев режиме, затрудняющем обнаружение реального адреса сканирующего узла.
Еще одним полезнымметодом является сканирование с целью идентификации запущенных процессов(подробнее о нем говорится в RFC 1413, www.ieff.org/rfc/rfcl413.txt).Этот тип сканирования, называемый ident-сканированием, предназначен дляопределения пользователя путем установления TCP-соединения с портом 113. Оченьчасто в ответ приходит сообщение, содержащее идентификатор владельца процесса,связанного с данным портом. Однако этот метод годится лишь для исследованиясистем UNIX.
[tsunami] nmap -I 192.168.1.10
Starting nmap V. 2.53 byfyodor@insecure.org
Port State ProtocolService Owner
22 open tcp ssh root
25 open tcp smtp root
80 open tcp http root
110 open tcp pop-3 root
113 open tcp auth root
6000 open tcp Xll root
В приведенном вышефрагменте показано, как идентифицируются владельцы всех обнаруженных процессов.Опытный читатель должен обратить внимание на то, что Web-сервер принадлежит непользователю nobody, как это должно быть в соответствии с элементарнымиправилами обеспечения безопасности, а пользователю root, что является вопиющимнарушением. Выполнив идентификацию процессов и установив такой интересный факт,можно заключить, что взломщик, которому удастся проникнуть через систему защитыWeb-сервера, получит полный контроль над данным компьютером.
Последний метод, накотором мы остановимся, называется сканированием с прорывом по FTP (FTP bouncescanning). Этот метод впервые был описан Хоббитом (Hobbit). В своей статье,опубликованной в электронном бюллетене Bugtraq в 1995 году, он осветилнекоторые скрытые недостатки протокола FTP (RFC 959,www.ietf.org/rfc/rfc0959.txt). Кратко данный метод можно описать какскрытное подключение через FTP-сервер, используя поддержку proxy-серверов,реализованную на этом FTP-сервере. Как отмечает Хоббит в вышеупомянутой статье,прорыв по FTP «можно использовать практически для неотслеживаемой отправкиэлектронной почты и сообщений в группы новостей, взлома серверов различныхсетей, заполнения диска, попыток прорыва через брандмауэры и другой вредоноснойдеятельности, которая при этом может оставаться практически незамеченной».Добавим, что с помощью прорыва по FTP можно сканировать порты, чтобы скрытьсвой адрес, и, что еще более важно, обходить устройства управления доступом.
Конечно, утилита nmapподдерживает и этот режим сканирования (параметр -b). Однако для его выполнениянеобходимо соблюдение нескольких условий. Во-первых, на FTP-сервере должен бытькаталог, доступный для чтения/записи со стороны любого пользователя, например/incoming. Во-вторых, FTP-сервер должен принять от утилиты nmap заведомонеправильную информацию о порте с помощью команды PORT. Хотя этот метод оченьэффективен для проникновения через устройства управления доступом, а также длясокрытия своего адреса, у него есть один существенный недостаток — слишкомнизкая скорость работы. Кроме того, многие современные FTP-серверы простозапрещают выполнение таких операций.
Однако применениеразличных средств для сканирования портов — это только половина задачи. Теперьнужно разобраться с тем, как проанализировать данные, полученные с помощьюкаждой из утилит. Независимо от применяемого средства, необходимоидентифицировать открытые порты, поскольку их перечень позволит определитьоперационную систему удаленного узла. Например, если на узле открыты порты 135и 139, то, скорее всего, этот узел работает под управлением операционнойсистемы Windows NT. Обычно Windows NT опрашивает порты 135 и 139, тогда какWindows 95/98 — лишь порт 139.
Например, изучиврезультаты, полученные во время работы утилиты strobe, которая рассматриваласьвыше в этой главе, можно заключить, что исследовавшийся в рассматриваемомпримере узел работает под управлением операционной системы из семейства UNIX.Данный вывод можно сделать на основании того, что на исследуемом узле открыты портыс номерами 111 (portmapper), 512-514 (службы Berkley R), 2049 (NFS), а такжепорты с номерами 3277Х, что характерно именно для систем семейства UNIX. Болеетого, можно также предположить, что данная операционная система относится ксемейству Solaris — именно этой системе присуще использование служб RPC вместес портам из этого диапазона. Нужно подчеркнуть, что это лишь предположения,поскольку в действительности установленная операционная система, если с еенастройкой поработал опытный администратор безопасности, может лишь«выдавать себя» за Solaris, а в действительности не иметь с нейничего общего.
Итак, после завершенияTCP- и (или) UDP-сканирования портов уже можно выдвинуть предположения о типеоперационной системы, работающей на исследуемом узле, и, следовательно, о том,как можно проникнуть на этот узел. Например, если на сервере Windows NT открытпорт 139, то такой узел подвергается очень высокой степени риска. Подробнее оскрытых недостатках системы защиты Windows NT, а также о том, как с помощьюпорта 139 можно проникнуть в систему, в которой не приняты адекватные контрмерыдля защиты этого порта, рассказывается в главе 5.
Рассматривавшаяся вкачестве примера система UNIX, скорее всего, также подвергается большому риску,поскольку выявленные нами работающие службы предоставляют в распоряжениеудачливого взломщика очень большие возможности. Например, использование службудаленного вызова процедур (RPC — Remote Procedure Call) и поддержки сетевойфайловой системы (NFS — Network File System) являются двумя основными методамипроникновения через систему защиты сервера UNIX (подробнее см. главу 8).
С другой стороны, еслислужба RPC не находится в режиме ожидания запросов, то проникнуть через еесистему защиты практически невозможно. Именно поэтому так важно помнить, чточем больше служб работает на компьютере, тем большему риску он подвергается.
 
Сканированиес помощью утилит
Утилита cheops(произносится «ки-опс», www.marko.net/cheops/), изображеннаяна рис. 1.2, представляет собой программу с графическим интерфейсом,предназначенную для полномасштабного исследования сети. При этом в одном пакетеобъединены утилиты ping, traceroute, средства сканирования портов, а такжеопределения типа операционной системы (с помощью queso). Кроме этого, cheopsпозволяет получить графическое схематическое изображение исследуемой сети исвязанных с ней сетей, что значительно облегчает понимание ее архитектуры.
Вторая утилита, накоторой мы остановимся, называется tkined и входит в состав пакета Scotty(http://wwwhome.cs.utwente.nl/~schoenw/scotty/). По существу, эта утилитаявляется редактором сетевого редактирования, написанным на языке Tel, который,объединяет различные средства управления сетью, обеспечивающие сборвсевозможной информации об архитектуре и работе сети. Утилита tkined обладаетбольшой гибкостью и позволяет проводить исследование сети с представлениемрезультатов в графической форме. Кроме утилиты tkined, в состав пакета Scottyвходит немало других интересных средств, заслуживающих самого пристальноговнимания.
 
Контрмеры:защита от средств автоматического сбора информации
Поскольку вавтоматизированных средствах, подобных Scotty, tkined и cheops, объединеныприемы, о которых рассказывалось выше в данной главе, для защиты от них можноприменять контрмеры, аналогичные тем, которые применяются для соответствующихсредств сбора информации, сканирования и т.д.
Пассивноеисследование стека
Основные принципыпассивного исследования стека аналогичны концепциям, лежащим в основе его активногоисследования. Однако в данном случае вместо передачи пакетов для определенияиспользуемой операционной системы взломщик осуществляет мониторинг сетевоготрафика. Таким образом, наблюдая за сетевым трафиком между различнымикомпьютерами, можно определить тип и версию удаленной операционной системы.Большие исследования в этой области были проведены Ланцом Спитзнером (LanceSpitzner). На их основе была написана книга, которую можно найти по адресуhttp://www.enteract.com/~lspitz/finger.html. Кроме ТОГО, по адресуhttp://www.subterrain.net/projects/siphon можно также найти утилиту siphon,предназначенную для пассивного исследования портов и идентификации операционнойсистемы. Теперь познакомимся с тем, как же выполняется пассивное исследованиестека.
Параметры,используемые для пассивного исследования стека
Для определения типа иверсии операционной системы можно использовать самые разнообразные признаки.Однако сейчас мы ограничимся рассмотрением лишь нескольких атрибутов, связанныхс сеансом сетевого взаимодействия с помощью протокола TCP/IP.
·           атрибутов TTL (Time-to-Live — время жизни).Устанавливает лиоперационная система значение TTL для исходящих пакетов?
·           WindowsSize (размер окна). Какой размер окна используется?
·           DF (Don'tFragment — бит фрагментации). Устанавливается ли операционной системой признакDF?
·           TOS (Type-of-Service — тип службы).Устанавливается лиоперационной системой значение TOS. Если да, то какое?
Проанализировав каждый изатрибутов и сравнив полученные результаты со значениями из имеющейся базыданных, можно определить удаленную операционную систему. Поскольку этот методне гарантирует получения правильного ответа на основе каждого из атрибутов вотдельности, для получения более надежных результатов атрибуты можно комбинировать.Именно такой подход и используется утилитой siphon.
Вот как работаетописанный метод. Если с помощью утилиты telnet установить удаленное соединениемежду узлами 192 .168 .1.10 и 192 .168 .1.11, то с использованием утилитыsiphon можно определить тип удаленной операционной системы.
[shadow]# telnet192.168.1.11
С помощью нашей любимойутилиты snort можно частично просмотреть пакеты, передаваемые в процессесетевого взаимодействия.
06/04-11:23:48.297976192.168.1.11:23 -> 192.168.1.10:2295
TCP TTL:255 TOS:OxO10:58934 DF
**S***A* Seq: OxD3B709A4Ack: OxBE09B2B7 Win: 0x2798
TCP Options => NOP NOPTS: 9688775 9682347 NOP WS: 0 MSS: 1460
При этом видно, что упоминавшиесявыше атрибуты принимают следующие значения:
·           TTL= 255
·           Размер окна= 2798
·           Бит DF = Yes A TOS = 0
Теперь обратимся к базе данныхутилиты siphon — файлу osprints.conf:
[shadow]f grep -i Solarisosprints.conf
# Window:TTL:DF:OperatingSystem DF = 1 for ON, 0 for OFF.
2328:255:l:Solaris 2.6 — 2.7
2238:255:l:Solaris 2.6 — 2.7
2400:255:l:Solaris 2.6 — 2.7
2798:255:l:Solaris 2.6 — 2.7
FE88:255:l:Solaris 2.6 — 2.7
87CO:255:l:Solaris 2.6 — 2.7
FAFO:255:0:Solaris 2.6 — 2.7
FFFF:255:1:Solaris 2.6-2.7
Из приведенного фрагментавидно, что в четвертой записи содержатся те же значения, которые были полученыс использованием утилиты snort. Таким образом, с помощью утилиты siphon можноточно определить исследуемую операционную систему.
[crush]# siphon -v -i xl0-о fingerprint.out
Running on: 'crush'running FreeBSD 4.0-RELEASE on a(n) i386
Using Device: xlO
Host Port. TTL DFOperating System 192.168.1.11 23 255 ON Solaris 2.6 — 2.7
Итак, в качествеудаленной была определена система Solaris 2.6. И это.не вызвало особыхпроблем. Пассивное исследование стека взломщик может использовать для выборапотенциальных жертв. Для этого достаточно понаблюдать за соответствующимWeb-узлом и проанализировать сетевой трафик либо воспользоваться утилитойsiphon. Несмотря на то что описанный метод является достаточно эффективным, онвсе же имеет некоторые ограничения. Во-первых, в приложениях, генерирующих своисобственные пакеты (например, шпар), не применяются те же признаки, что и самойоперационной системой. Поэтому полученные результаты могут оказаться неточными.Во-вторых, на удаленном узле можно без проблем изменить атрибуты соединения.
Solaris: ndd -set /dev/ipip_def_ttl 'число'
Linux: echo 'число' >/proc/sys/net/ipv4/ip_default_ttl
NT:
HKEY_LOCAL_MACHINESystemCurrentControlSet
ServicesTcpipParameters

Активноеисследованиестека
Прежде чем перейти крассмотрению возможностей утилит nmap и queso, необходимо вкратце пояснить, вчем же состоит суть исследования стека TCP/IP. Исследование стека (stackfingerprinting) — это очень мощная технология, позволяющая быстро определитьтип и версию операционной системы узла с высокой степенью вероятности.
Очевидно, что разныеразработчики по-разному подходят к реализации стека TCP/IP. В частности, многиеразработчики по-своему трактуют рекомендации документов RFC, что впоследствиипроявляется в логике работы тех или иных сетевых служб. Таким образом, зная осуществующих различиях и проверив реакцию служб изучаемой системы на различныеситуации, можно практически однозначно определить тип и версию соответствующейоперационной системы. Для достижения максимальной достоверности приисследовании стека требуется по крайней мере один порт, находящийся в режимеожидания запросов. С помощью утилиты nmap можно выдвинуть предположение обиспользуемой операционной системе даже при отсутствии таких портов, однако степеньего достоверности в этом случае будет невысокой. Полное описание процессаисследования стека можно найти в статье Федора (Fyodor), впервые публикованнойв журнале Phrack Magazine.
Ниже приведен переченьтестов, которые можно использовать в процессе исследования стека дляопределения типа и версии операционной системы.
·           Передачапакетов FIN (FIN probe). Пакет FIN отсылается в открытый порт. Как ужеупоминалось, согласно документу RFC 793 исследуемая система не должна отвечатьна такое сообщение. Однако многие реализации стека (например, Windows NT)отвечают на них, отправляя пакет FIN/ACK.
·           Попыткаустановки флагов (bogus flag probe). Отсылается пакет SYN с установленнымфлагом в заголовке TCP, значение которого не определено спецификацией протокола.Некоторые операционные системы, например Linux, в ответном пакете устанавливаютэтот же флаг.
·           Изучениеначальной последовательности (Initial Sequence Number (ISN) sampling). Основнаязадача этого теста — попытаться определить характерные признаки начальнойпоследовательности, генерируемой узлом при получении запроса на установкусоединения, которые характерны для той или иной реализации TCP.
·           Мониторинг бита фрагментации («don't fragment bit»monitoring). Этот битустанавливается некоторыми операционными системами для повышенияпроизводительности. Проверка данного бита может помочь в определении типаоперационной системы, для которой характерно такое поведение.
·           Исходныйразмер окна TCP (TCP initial window size). Для некоторых реализаций стека протоколовTCP/IP данный параметр уникален, что способствует точности определения типаоперационной системы.
·           ЗначениеАСК (дек value). В различных реализациях стека IP по-разному задается значениеполя АСК. В одних случаях возвращается полученный от вас номерпоследовательности, а в других — значение номера последовательности,увеличенное на 1.
·           Обработкасообщений об ошибках ICMP (ICMP error message quenching). Некоторыеоперационные системы следуют рекомендациям документа RFC 1812 (www.ietf.org/rfc/rfcl812.txt) и ограничивают скорость передачи сообщений обошибках. Поэтому, отправляя UDP-пакеты на какой-либо порт (обычно с большимномером), вполне реально измерить количество сообщений об ошибках, поступившееза определенный период, и определить таким образом тип операционной системы.
·           Измерениедлины сообщений ICMP (ICMP message quoting). При возникновении ошибок ICMPразными операционными системами передаются сообщения различной длины.Проанализировав полученное сообщение, можно сделать некоторые предположения обисследуемой операционной системе.
·           Проверкацелостности ответных сообщений об ошибках ICMP (ICMP error message-echoingintegrity). В некоторых реализациях стека используется изменение заголовка IPпри возврате сообщений об ошибках ICMP. Проверив тип изменений, внесенных взаголовок, можно сделать некоторые предположения об операционной системеисследуемого узла.
·           Тип службы (TOS — type of service). Можно проверять поле TOS для сообщений «ICMP portunreachable» (порт недоступен). В большинстве реализаций это поле имеетзначение 0, однако иногда используются и другие значения.
·           Обработкафрагментации (fragmentation handling). Как отмечают Томас Пташек (ThomasPtacek) и Тим Ньюсхам (Tim Newsham) в своей известной статье Insertion, Evasion,and Denial of Service: Eluding Network Intrusion Detection (http://www.clark.net/~roesch/idspaper.html), различные стеки обрабатывают перекрывающиесясообщения по-разному. При сборке фрагментированньк пакетов некоторые стекизаписывают новые данные поверх старых и наоборот. Проверив, каким образом былисобраны тестовые пакеты, можно сделать предположение об исследуемойоперационной системе.
·           ПараметрыTCP (TCP options). Параметры TCP определены в документе RFC 793 и недавноизданном RFC 1323 (www.ietf.org/rfc/rfcl323.txt). Нововведения, описанные в RFC1323, нашли отражение только в самых последних реализациях стеков. Отправляяпакет с набором различных параметров, таких как по operation, maximum segmentsize, window scale factor, timestamp и так далее, можно сделать вывод о типе иверсии операционной системы.
Для того чтобывоспользоваться утилитой nmap и выполнить все перечисленные тесты (заисключением обработки фрагментации и обработки сообщений об ошибках ICMP),достаточно указать в командной строке параметр -о. Давайте посмотрим, как будетвыглядеть полученный результат.
[tsunami] nmap-0192.168.1.10
Starting nmapV. 2.53 by fyodor@insecure.org
Interestingports on shadow (192.168.1.10) :
Port StateProtocol Service
7 open tcpecho
9 open tcp discard
13 open tcpdaytime
19 open tcpchargen
21 open tcpftp
22 open tcpssh
23 open tcptelnet
25 open tcpsmtp
37 open tcptime
111 open tcpsunrpc
512 open tcpexec
513 open tcplogin
514 open tcpshell
2049 open tcpnfs
4045 open tcplockd
TCP SequencePrediction: Class=randorn positive increments
Difficulty=26590(Worthy challenge)
Remoteoperating system guess: Solaris 2.5, 2.51
Как видно, при включениирежима исследования стека утилиты nmap можно легко получить достаточно точноеопределение типа и версии операционной системы. Даже если на изучаемом узле неоткрыто ни одного порта, утилита nmap поможет сделать довольно точноепредположение об используемой операционной системе.
[ tsunami]# nmap -p80 -010.10.10.10
Starting nmap V. 2.53 byfyodor@insecure.org
Warning: No ports foundopen on this machine,
OS detection will be
MUCH less reliable
No ports open for host(10.10.10.10)
Remote OS guesses: Linux2.0.27 — 2.0.30, Linux 2.0.32-34,
Linux 2.0.35-36, Linux2.1.24 PowerPC,
Linux 2.1.76, Linux 2.1.91- 2.1.103, Linux 2.1.122 — 2.1.132; 2.2.0-prel — 2.2.2, Linux 2.2.0-pre6 — 2.2.2-ac5
Nmap run completed — 1 IP
address (1 host up)scanned in 1 second
Как видно из приведенноголистинга, утилита nmap даже без открытых портов, правильно определилаоперационную систему Linux.
Одной из примечательныхособенностей утилиты nmap является то, что листинг сигнатур хранится вотдельном файле с именем nmap-os-fingerprints. При появлении каждой новойверсии утилиты этот файл также обновляется, и на момент написания данной книгив нем содержались сотни сигнатур. Если вы хотите добавить новые сигнатуры иповысить таким образом эффективность утилиты nmap, обратитесь ПО адресуhttp://www.insecure.org:80/cgi-bin/nmap-submit.cgi.
Хотя на момент написанияданной книги утилита nmap, по-видимому, позволяет наиболее точно выполнитьисследование стека TCP/IP, она, тем не менее, является далеко не первойпрограммой, в которой реализована соответствующая технология. До того как Федорвстроил в утилиту nmap средства определения операционной системы, для этих жецелей уже была создана утилита queso (http://www.apostols.org/projectz/).Необходимо отметить, что утилита queso не позволяет выполнять сканированиепортов и может определять тип операционной системы только при наличии висследуемой системе открытого порта (по умолчанию используется порт 80). Еслипорт 80 закрыт, необходимо задать другой открытый порт, как показано вследующем примере, в котором с помощью утилиты queso осуществляется попыткаопределить тип операционной системы через порт 25.
[tsunami] queso 10.10.10.20:25
10.10.10.20:25 * Windoze 95/98/NT
Контрмеры: защита от определенияоперационной системы
Обнаружениепопыток определения операционной системы
Многие из упоминавшихсявыше средств выявления сканирования с успехом могут служить и для обнаруженияпопыток определения типа операционной системы, Хотя они не проинформируют вас отом, что выполнялось специальное сканирование с помощью утилиты nmap или queso,с их помощью все же удастся распознать сам факт такого особого сканирования,например с установкой флага SYN.
Предупреждениепопыток определения операционной системы
Хотелось бы посоветоватькакое-нибудь средство, позволяющее противодействовать попыткам определенияоперационной системы, однако, к сожалению, вынуждены констатировать, что решитьэту проблему весьма непросто. Конечно, можно изменить исходный код операционнойсистемы (естественно, если он имеется в вашем распоряжении) или поменять еепараметры, влияющие на характеристики стека, однако такое вмешательство можетзначительно изменить функциональность ОС. Например, в системе FreeBSD 4.xимеется параметр ядра TCP_DROP_SYNFIN, который можно применить дляигнорирования пакетов SYN+FIN, используемых утилитой nmap в целях исследованиястека. Установка этого параметра поможет пресечь попытки определения типаоперационной системы, однако в то же время нарушит поддержку RFC 1644 (TCPExtensions for Transactions).
Вместо этого мыпредлагаем создавать такие сети, в которых сканированию могли бы подвергнутьсялишь надежные и хорошо защищенные proxy-серверы и брандмауэры, а не компьютерывнутренней сети. В этом случае, даже если взломщику и удастся разведать типоперационной системы того или иного узла, проникновение через устройства защитыбудет значительно затруднено.
Пассивноеопределение операционной системы
Из предыдущих разделоввидно, насколько эффективными оказываются средства активного исследованиястека, такие как утилиты nmap и queso. Важно не забывать о том, чторассмотренные выше приемы являются активными по своей природе. При этом дляопределения специфических особенностей сетевого стека и используемойоперационной системы каждому узлу нужно передавать тестовые пакеты. Посколькувсе активные методы предполагают передачу пакетов, идентификации операционнойсистемы. Другими словами, активное исследование является далеко не самымскрытым методом, к которому может прибегнуть взломщик.
 
Типысканирования
Прежде чем перейти кописанию конкретных средств, используемых для сканирования портов, необходимоуделить немного времени обзору методов сканирования, известных в настоящеевремя. Одним из пионеров реализации различных методов сканирования являетсяранее упоминавшийся Федор (Fyodor). Многочисленные приемы сканирования былиреализованы им в утилите nmар. Многие из описанных в данной книге методовсканирования были предложены самим Федором.
TCP-сканированиеподключением (TCP connect scan). При таком типе сканирования осуществляетсяпопытка подключения по протоколу TCP к интересующему нас порту с прохождениемполной процедуры согласования параметров (handshake), состоящей в обменесообщениями SYN, SYN/ACK и АСК. Попытки такого сканирования очень легковыявляются. На рис. 1.3 показана диаграмма обмена сообщениями в процессесогласования параметров.
 TCP-сканированиес помощью сообщений SYN (TCP SYN scan). Этот метод называется такжесканированием с незавершенным открытием сеанса (half-open scanning), так какпри его использовании полное TCP-соединение не устанавливается. Вместо этого наисследуемый порт отправляется сообщение SYN. Если в ответ поступает сообщениеSYN/ACK, это означает, что данный порт находится в состоянии LISTENING. Если жеответ приходит в виде сообщения RST/ACK, то, как правило, это говорит о том,что исследуемый порт отключен. Получив ответ, компьютер, выполняющийсканирование, отправляет исследуемому узлу сообщение RST/ACK, поэтому полноесоединение не устанавливается. Этот метод обеспечивает более высокую скрытностьпо сравнению с полным подключением. Многие системы не регистрируют такиепопытки, поэтому они довольно часто могут оставаться незамеченными.
/>
Рис. 1.3. При установкеTCP-соединения происходит обмен тремя сообщениями: (1) клиент отправляетсерверу пакет SYN, (2) получает от сервера пакет SYN/ACK и (3) отправляетсерверу пакет АСК
·           TCP-сканированиес помощью сообщений FIN (TCP FIN scan). В этом случае исследуемой системеотправляется пакет FIN. Согласно документу RFC 793(http://www.ieff.org/rfc/rfc0793.txt), в ответ узел должен отправить пакет RSTдля всех закрытых портов. Данный метод срабатывает только для стека протоколовTCP/IP, реализованного в системе UNIX.
·           TCP-сканированиепо методу «рождественской елки» (TCP Xmax Tree scan). Прииспользовании данного метода на исследуемый порт отправляются пакеты FIN, URG иPUSH. Согласно документу RFC 793, исследуемый узел в ответ должен отправитьсообщения RST для всех закрытых портов.
·           TCPнуль-сканирование (TCP Null scan). Этот метод состоит в отправке пакетов сотключенными флагами. Согласно RFC 793, исследуемый узел должен ответитьотправкой сообщения RST для всех закрытых портов.
·           TCP-сканированиес помощью сообщений АСК (TCP ACK scan). Этот метод позволяет получить наборправил, используемых брандмауэром. Такое сканирование поможет определить,выполняет ли брандмауэр простую фильтрацию пакетов лишь определенных соединений(пакетов с установленным флагом АСК) или обеспечивает расширенную фильтрациюпоступающих пакетов.
·           TCP-сканированиеразмера окна (TCP Windows scan). Такой метод позволяет выявить открытые, атакже фильтруемые/нефильтруемые порты некоторых систем (например, AIX иFreeBSD), в зависимости от полученного размера окна протокола TCP.
·           TCP-сканированиепортов RFC (TCP RFC scan). Этот метод применим только для систем UNIX ииспользуется для выявления портов RFC (Remote Procedure Call — удаленный вызовпроцедур), связанных с ними программ и их версий.
А UDP-сканирование (UDPscan). Данный метод заключается в отправке на исследуемый узел пакетов попротоколу UDP. Если в ответ поступает сообщение о том, что порт ICMP недоступен(ICMP port unreachabie), это означает, что соответствующий порт закрыт. Сдругой стороны, если такого сообщения нет, можно предположить, что данный портоткрыт. В связи с тем, что протокол UDP не гарантирует доставки, точностьданного метода очень сильно зависит от множества факторов, влияющих наиспользование системных и сетевых ресурсов. Кроме того, UDP-сканирование —очень медленный процесс, что особенно сказывается при попытках сканированияустройств, в которых реализован мощный алгоритм фильтрации пакетов. Поэтому,планируя использовать UDP-сканирование, приготовьтесь к тому, что результатымогут оказаться ненадежными.
Некоторые реализацииIP-протокола обладают одним неприятным свойством: пакеты RST отправляютсяобратно для всех сканируемых портов независимо от того, находятся лисоответствующие порты в режиме ожидания запросов. Учитывайте этот факт прииспользовании описанных методов. Однако в то же время сканирование подключениеми сканирование с использованием сообщений SYN могут применяться для всех узлов.
 
Утилитысканирования портов для системы Windows
В предыдущих разделахбыли рассмотрены утилиты сканирования портов с точки зрения пользователя UNIX,однако неужели не существует аналогичных средств, доступных для пользователейWindows? Конечно же, это не так. Следующие утилиты сканирования портов являютсялучшими среди подобных средств, поскольку обладают высокой скоростью, точностьюи широким набором функциональных возможностей.
NetScanTools Pro 2000
Одним из наиболееуниверсальных средств исследования сетей, доступных в настоящее время, являетсяпакет NetScanTools Pro 2000 (NSTP2K), содержащий самые разнообразные утилиты,объединенные общим интерфейсом. С использованием NSTP2K можно генерироватьзапросы DNS, включая nslookup, dig и axf r, запросы whois, осуществлять ping-прослушивание,сканировать таблицы имен NetBIOS, отслеживать сообщения SNMP и выполнять многиедругие задачи. Более того, с использованием пакета NetScanTools Pro 2000 можновыполнять несколько задач одновременно. Например, можно выполнять сканированиепортов одной сети и осуществлять ping-прослушивание другой сети (хотя мы неможем ручаться за правильность таких действий по отношению к большим сетям).
В состав пакетаNetScanTools Pro 2000 включен также один из лучших сканеров портов Windows. Всенеобходимые параметры можно установить во вкладке Port Probe. К преимуществамутилиты сканирования NSTP2K. можно отнести возможность гибкого заданияпараметров исследуемых узлов и портов (и IP-адреса и список портов могут бытьимпортированы из текстовых файлов), возможность TCP- и UDP-сканирования (хотясоответствующие режимы нельзя установить отдельно для каждого порта), а такжевысокую скорость благодаря реализации многопоточности. К недостаткам утилитысканирования пакета NSTP2K можно отнести некоторую громоздкость получаемыхрезультатов, что затрудняет их анализ с помощью сценариев, и, кроме того,графический интерфейс делает невозможным применение этой утилиты в сценариях.Нам хотелось бы высказать следующее пожелание: было бы очень удобно, чтобырезультаты, полученные с использованием одной утилиты пакета NSTP2K (скажем,NetScanner), можно было бы напрямую передавать другой утилите (например, PortProbe).
В общем, пакет NSTP2K(http://www.nwpsw.com) представляет собой профессионально разработанныйпрограммный продукт, который регулярно обновляется посредством сервисныхпакетов, однако все же остается несколько дорогостоящим по сравнению спредоставляемыми им возможностями. Можно также познакомиться с менее робастнойверсией Netscan Tools (в настоящее время доступна версия 4), являющейся пробной30-дневной версией пакета NSTP2K. Однако предоставляемые ею возможности нестоль широки, как у пакета Pro 2000 (например, она не позволяет выполнятьUDP-сканирование).
При использовании пакетаNSTP2K не забудьте отключить сервер идентификации во вкладке IDENT Server,чтобы не запрещать прослушивание порта 113.
SuperScan
Утилита SuperScan,написанная Робином Кейром (Robin Keir) (http: //members.home.com/rkeir/software.html), является еще одной быстрой и гибкой утилитой TCP-сканированияпортов и имеет гораздо более привлекательную стоимость — она распространяетсябесплатно! Как и пакет NSTP2K, утилита SuperScan позволяет гибко задаватьперечень IP-адресов исследуемых узлов и сканируемых портов. Особенно удобноиспользовать режим Extract from file. Лучше всего особенности его примененияописаны в справочной системе. Вот небольшой фрагмент из справочной системыутилиты SuperScan, из которого видно, что она позволяет сэкономить значительнуючасть времени.
«Режим [The»Extract from file" feature scans] позволяет просматривать содержимоелюбого текстового файла и извлекать из него корректные IP-адреса и имена узлов.При поиске корректных имен программой выполняются достаточно интеллектуальныедействия. Однако перед обработкой файла из него нужно удалить потенциальнонеоднозначные фрагменты текста, воспользовавшись внешним текстовым редактором.На кнопках Browse и Extract можно щелкать столько раз, сколько различных файловимеется в вашем распоряжении. При этом в список имен исследуемых узловпрограммой будут добавлены все новые имена. Все повторяющиеся элементы будутавтоматически удалены. После нахождения всех имен узлов щелкните на кнопкеResolve, чтобы преобразовать их в числовые IP-адреса и выполнить подготовку кэтапу сканирования портов." Эта утилита предоставляет также один изнаиболее обширных списков портов, с которым нам когда-либо приходилосьвстречаться. (Авторам книги нравится список под названием henss.lst. Болеетого, в исходном англоязычном названии книги первые буквы составляютаббревиатуру HENSS&S, откуда можно заключить, что авторы — просто фанатыэтого списка.) Кроме того, порты можно выделить или отменить их выделениевручную. Не лишний раз повторить, что утилита SuperScan помимо всехперечисленных возможностей обладает также и высокой скоростью.
NTOScanner
Утилита NTOScanner компании NTObjectives, Inc. (http://www.ntobjectives.com)представляет собой быструю программу TCP-сканирования с графическиминтерфейсом, которая при ручной установке соответствующего режима позволяеттакже собирать маркеры портов, находящихся в состоянии ожидания запросов.Однако эта утилита имеет некоторые неудобства при задании исследуемых узлов ипортов, а также требует, чтобы перед сканированием сетей класса С к узлам былоприменено ping-прослушивание. Утилита NTOScanner чрезвычайно полезна дляопределения служб, запущенных на конкретном узле или в сети, достижимой спомощью ICMP-пакетов.
WinScan
Утилита WinScan компанииScan Mathias of Prosolve (http://www.prosolve.com) является свободнораспространяемой программой TCP-сканирования портов, реализованной в двухверсиях: с графическим интерфейсом (winscan.exe) и для использования вкомандной строке (scan.exe). Мы регулярно обращаемся к версии для команднойстроки в файлах сценариев, поскольку при сканировании сетей класса С онапозволяет получить удобные для анализа результаты. При использовании утилитWin32 strings, tee и tr компании Mortice Kern Systems, Inc.(http://www.mks.com) следующая консольная команда NT будет выполнять сканированиесети для портов из диапазона 0-1023 и формировать результат в виде строк сполями, разделенными двоеточиями, в формате IP-адрес: имя_службы: порт/протокол(для облегчения восприятия строка была разделена на две части).
scan.exe -n 192.168.7.0 -s0 -е 1023-f|strings|findstr/с:"/top"|
 tr \011\040: | tr-s ::|tee -ia results.txt
Параметр -f при медленныхсоединениях лучше не использовать, поскольку полученные результаты могутоказаться не очень надежными. При запуске приведенной выше команды будут полученыпримерно следующие данные.
192.168.22.5:nbsession:139/tcp
192.168.22.16:nbsession:139/tcp
192.168.22.32:nbsession:139/tcp
Большое спасибо ПатрикуХейму (Patrick Heim) и Ясону Глассбергу (Jason Glassberg) за предоставлениеэтой интересной команды.
ipEye
Не думаете ли вы, что длявыполнения нетрадиционного сканирования потребуется система Linux и утилитаnmap? He торопитесь с выводами, поскольку утилита ipEye Арни Видстрома (ArneVidstrom)'(http: //ntsecurity.nu) позволяет выполнить сканирование требуемыхпортов, а также TCP-сканирование с помощью сообщений SYN, FIN и сиспользованием метода «рождественской елки», из командной строкиWindows. На использование этой прекрасной утилиты накладывается лишь несколькоограничений. Они заключаются в том, что ее можно использовать только в средеWindows 2000 и одновременно сканировать один узел. Вот пример запуска утилитыipEye для выполнения TCP-сканирования с помощью сообщений SYN порта с номером20. При этом предпринята попытка избежать правил фильтрации, используемыхмаршрутизатором. Приведенный пример аналогичен запуску утилиты nmap спараметром -д (для краткости полученные результаты отредактированы).
С:\Toolbox>ipeye.exe
192.168.234.110 -syn -p 11023 -sp 20
ipEye 1.1 — (с) 2000, Arne Vidstrom (arne.vidstrom@ntsecurity.nu)
— ntsecurity.nu/toolbox/ipeye/
1-52 [closed or reject]
53 [open]
54-87 [closed or reject]
88 [open]
89-134 [closed or reject]
135 [open]
136-138 [closed or reject]
139 [open]
636 [open]
637-1023 [closed orreject]
1024-65535 [not scanned]
WUPS
Утилита Windows UDP Port Scanner(WUPS) разработана теми же авторами (http://ntsecurity.nu). Эта утилита представляет собойнадежное, с графическим интерфейсом и относительно быстрое средствосканирования UDP-портов, несмотря на то, что позволяет одновременно сканироватьзаданную последовательность портов лишь одного узла. Как видно из рис. 2.6,утилита WUPS является надежным средством для быстрого UDP-сканирования каждоготребуемого узла и, следовательно, значительно облегчает выполнение этойутомительной задачи.
Защита отсканирования портов
В табл. 1.4 приведенперечень различных популярных утилит сканирования, а также типы сканирования,которые эти утилиты позволяют выполнять.
 
Контрмеры:защита от сканирования портов
Выявление факта сканирования
Как правило, взломщикиприбегают к сканированию TCP- и UDP-портов удаленного компьютера, чтобыустановить, какие из них находятся в состоянии ожидания запросов. Поэтомувыявить факт сканирования — значит, установить, в каком месте и кем будетпредпринята попытка взлома. Основные методы выявления факта сканированиясостоят либо в использовании специальной программы, предназначенной длявыявления вторжений на уровне сети (IDS), такой как NFR, либо в использованиимеханизма защиты на уровне отдельного узла.
Таблица 1.4. Популярныеутилиты сканирования портов и их возможности  Утилита Сканирование  Ресурс  UNIX  TCP  UDP  Скрытое    Strobe  X    
ftp://f tp.FreeBSD.org/
pub/FreeBSD
/ports/distfiles/strobe-1.06.tgz  Tcp_scan  X    
wwdsilx.
wwdsi.com/saint/  Udp_scan    X  
 http://wwdsilx.
wwdsi.com/saint/  Nmap  X  X  X www. inscure. org/nmap  Netcat  X  X  
www.10pht.com/
users/10pht/nc110.tgz
 Windows
Netcat  X  X  
www.10pht.com/users/
10pht/ncllnt.zip  NetScanTools Pro 2000  X  X    http://www.nwpsw.com  SuperScan  X    
members.home.com/
rkeir/software.html  NTOScanner  X     www.ntobjectives.com  WinScan  X     www.prosolve.com  IpEye  X     ntsecurity.nu  WUPS    X   ntsecurity.nu  Fscan  X  X   www.foundstone.com

Метод UDP-сканированияутилиты netcat не работает в операционной системе Windows NT, поэтомупользователям этой ОС не стоит доверять полученным результатам.
# Алгоритм выявления фактасканирования
# Автор — Стюарт Мак-Клар (StuartMcClure)
# Данный алгоритмвыявляет неудачные попытки сканирования портов,
# которые приводят к генерациисообщений ACK/RST.
В процессе настройки
# можно поэкспериментировать созначениями
# maxcount и maxtime.
port_schema =library_schema:new( 1, [«time», «ip», «ip»,
«int»],
scope() };
time = 0;
count = 0;
maxcount =2; t Максимально допустимое количество ACK/RST.
maxtime =5; tt Максимально допустимоевремя, в течение
# которого может достигаться значениеmaxcount.
source = 0; port = 0;target = 0;
filter portscan ip ( )
{
if (tcp.is)
(
# Проверка АСК, RST и источникапоступления.
if ( byte(ip.blob, 13) == 20 )
# Установлены флаги АСК, RST
{
count = count + 1;
source = ip.dest;
target = ip.source;
port = tcp.sport;
time = system.time;
} } on tick = timeout
( sec: maxtime, repeat )
call checkout;
}
func checkout {
if (count >= maxcount){
echo(«Попытка сканирования порта,
Время: », time, "\n); recordsystem.time, source, target,
port tothe_recorder_portscan; count = 0; }
else
count = 0;
}
the_recorder_portscan=recorder("
bin/histogrampackages/sandbox/portscan.cfg",
«port_schema»
);
Для выявления попытоксканирования портов можно также воспользоваться утилитой snort (www.snort.org)(см. также spyjurenet.com/linuxrc.org/projects/ snort/). Как вы моглидогадаться, эта утилита является одной из предпочитаемых нами программ IDS(заметим, что ее версии 1.x не позволяют обнаруживать фрагментацию пакетов).Вот пример листинга, содержащего данные о попытке сканирования портов.
[**] spp_portscan: PORTSCAN DETECTEDfrom 192.168.1.10 [**]
05/22-18:48:53.681227
[**] spp_portscan:portscan status from 192.168.1.10: 4 connections
across 1 hosts: TCP(O),UDP(4) [**]
05/22-18:49:14.180505
[**] spp_portscan: End ofportscan from 192.168.1.10 [**]
05/22-18:49:34.180236
Для платформы UNIXсуществует немало утилит, таких, например, как Утилита: scanlogd(http://www.openwall.com/scanlogd/) компании Solar Designer, которые выявляют ирегистрируют попытки сканирования. Кроме того, утилиту Psionic PortSentry,созданную в рамках проекта Abacus (http://www.psionic.com/abacus), можнонастроить не только на регистрацию, но и на принятие контрмер при выявлениифакта активного сканирования. Один из способов борьбы с попытками сканированияпортов заключается в автоматической установке для ядра правил фильтрации, когдак уже существующим добавляется новое правило, запрещающее доступ со стороныузла-нарушителя. Такое правило можно задать в конфигурационном файле утилитыPortSentry. При этом одно и то же правило может отличаться в различныхсистемах. Для системы Linux 2.2.x, в которой имеется поддержка ядрабрандмауэра, в файл portsentry.conf нужно добавить запись, аналогичнуюследующей.
# New ipchain support forLinux kernel version 2.102+
KILL_ROUTE="/sbin/ipchains-I input -s $TARGET$ -j DENY -1"
Утилита PortSentryсовместима с большинством версий UNIX, включая Solaris. Независимо от того,применяете ли вы какие-либо утилиты или нет, необходимо помнить, чтомассированные попытки сканирования портов, инициируемые каким-либо узлом иликакой-нибудь сетью, могут означать, что кто-то изучает вашу сеть. Всегдаобращайте самое пристальное внимание на такие действия, поскольку за ними можетпоследовать полномасштабное вторжение. И наконец, не забывайте о том, чтоимеется возможность активного противостояния или блокирования попытоксканирования портов. Все эти вопросы рассматриваются в статье, опубликованнойкомпанией Solar Designer (http://www. openwall.com/scanlogd/P53-13.gz). В этойстатье содержатся дополнительные советы по разработке и использованию системвыявления попыток сканирования.
Большинство брандмауэровне только могут, но и должны настраиваться на режим обнаружения попытоксканирования. Однако одни брандмауэры справляются с этой задачей лучше, другиехуже. Например, некоторые брандмауэры умеют выявлять скрытое сканирование.Однако многие из них, поддерживая режим выявления SYN-сканирования, абсолютно игнорируютFiN-сканирование. Самой большой проблемой при выявлении факта сканированияявляется задача анализа огромных системных журналов, накапливаемых приежедневной работе серверов сети. Для упрощения решения этой задачи можновоспользоваться утилитой Psionic Logcheck (http://www.-psionic.com/abacus/logcheck/). Кроме того, мы рекомендуем настроитьутилиты таким образом, чтобы они реагировали на обнаруженные попыткисканирования в реальном времени, отсылая сообщения по электронной почте. Везде,где это только возможно, устанавливайте пороговые значения для количестварегистрируемых событий (threshold logging), чтобы взломщик не завалил вашпочтовый ящик грудой сообщений, в которых будет так же трудно найти информацию,как и в системных журналах. Кроме того, в этом случае может также возникнутьусловие DoS. При использовании пороговых значений все предупреждения будутгруппироваться, а не обрабатываться по одному. Как минимум необходимо настроитьсистему безопасности на выдачу отчетов о самом факте выявленной попыткисканирования. Для брандмауэра Firewall-1 с этой целью можно использоватьутилиту Ланца Спитцнера (Lance Spitzner) alert, sh (http://www.enteract.com/~lspitz/intrusion.html). Эта утилита будет выявлять и отслеживатьпопытки сканирования портов, работая под управлением Firewall-1 в качествесредства защиты, заданного пользователем.
Для платформы Windows NTтакже имеется несколько утилит, предназначенных для выявления попытоксканирования. Прежде всего, необходимо отметить такую утилиту, как Genius 2.0,разработанную компанией Independent Software (http://www. indiesoft.com) дляплатформ Windows 95/98 и Windows NT. Этот программный продукт предоставляетгораздо больше возможностей, чем простое средство обнаружения TCP-сканированияпортов. Однако необходимо отметить, что даже с учетом этого, имеет смысл егоиспользовать. Утилита Genius отслеживает многочисленные запросы к открытымпортам и при обнаружении попыток сканирования отображает на экранепредупреждающее диалоговое окно, в котором содержится IP-адрес взломщика идоменное имя его узла.
Утилита Genius позволяетвыявлять как попытки обычного сканирования, т.е. с установлениемTCP-соединения, так и SYN-сканирования.
Еще одним детекторомсканирования для системы Windows, заслуживающем отдельного упоминания, являетсяпрограмма BlackICE компании Network ICE (http://www.-networkice.com). Даннаяпрограмма представляет первое основанное на использовании агентов средствовыявления вторжений, которое можно использовать как в Windows 9х, так и в NT. Вмомент написания данной книги этот программный продукт был коммерческим, хотя вближайшем будущем компания обещает подготовить свободно распространяемуюверсию. И наконец, программа ZoneAlarm (http://www.zonelabs.com/zonealarm.htm)хорошо подходит для платформы Windows и может применяться в качестве средстваIDS на уровне брандмауэра.
 
Предотвращениесканирования
Вряд ли можно помешатькому-либо предпринять попытку сканирования портов на вашем компьютере, однаковполне реально свести к минимуму связанный с этим риск. Для этого нужнозаблокировать все службы, в работе которых нет необходимости. В среде UNIXданная задача решается с помощью добавления символов комментария всоответствующие строки файла /etc/inetd. corif, а также отключенияавтоматического запуска ненужных служб в сценарии начальной загрузки. В системеWindows NT также целесообразно отключить все ненужные службы. Однако сделатьэто сложнее, поскольку из-за сетевой архитектуры Windows NT по крайней мереПорт 139 должен работать постоянно. Тем не менее, остальные службы можноотключить, запустив аплет Services панели управления. Здесь же стоит упомянутьо том, что компанией Tiny Software (www.tinysoftware.com) распространяетсямодуль ядра, позволяющий выполнять фильтрацию входящих пакетов. С помощью этогомодуля можно защитить большинство важных портов. Что же касается другихоперационных систем и устройств, то нам остается лишь посоветовать как можновнимательнее прочитать соответствующие справочные руководства. Постарайтесьнайти в них информацию о том, какие порты вам действительно необходимы и какотключить остальные, чтобы свести риск к минимуму.
 
Активноеопределение операционной системы
Итак, мы убедились, чтосуществует множество различных приемов и средств сканирования портов.Вспомните, что при сканировании портов преследуется две основные цели.Во-первых, нужно установить, какие TCP- и UDP-порты на исследуемом компьютеренаходятся в состоянии ожидания запросов. Во-вторых, необходимо определить типоперационной системы, используемой на удаленном узле. Информация обоперационной системе понадобится на последующих этапах, при составлении схемыуязвимых участков. Об этом речь пойдет в последующих главах. Важно помнить, чтопри этом необходимо быть особенно точным и внимательным к мелочам. Именнопоэтому очень важно абсолютно правильно установить тип удаленной операционнойсистемы. При определении типа ОС очень полезной оказывается косвеннаяинформация, получаемая, например с помощью сбора маркеров, о которых мыпоговорим в главе 3. При этом будет собрана информация о таких службах, какFTP, telnet, SMTP, HTTP, POP и других. Сбор маркеров — это один из самыхпростых методов определения типа операционной системы, а также версийработающих под ее управлением служб. Нетрудно догадаться, что существуютразличные средства, призванные помочь в решении этой задачи. Среди доступныхможно отметить две утилиты, позволяющие получить самые точные результаты, — ужехорошо нам известная nmар и утилита queso. Точность результатов, выдаваемыхобеими утилитами, объясняется, прежде всего, тем, что обе они предоставляютвозможность исследования стека протоколов TCP/IP (stack fingerprinting).

Заключение
Целью данной курсовойработы было обзорной статьей о передаче информации в локальных сетях и методахеё отслеживания (нахождения).
В ходе курсовой работымною было проанализировано программное обеспечение, которое позволяетосуществлять сканирование ресурсов локальной сети. Так же мной были изученытехнологии, с помощью которых осуществляется сканирование. Вся информация былапредставлена в форме курсового проекта.

Списоклитературы
1. Мурлина В.А. Информатика ипрограммирование. Методическое указание к курсовой работе по дисциплине«Информатика и программирование» для студентов всех форм обучения специальности080801 – «прикладная информатика в экономике» факультета компьютерныхтехнологий и автоматизированных систем.- Краснодар: издательство КубГТУ, 2004.– 49с.
2. С.В. Пеников «Локальные сети»,издательство «АПВ», 2004 — 151 с.
3. Г.Т. Сизов «Системы и сети»,издательство «Интер» 2005 – 204 с.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.