Что такое Sniffer, икак он работает


lirik@nanko.ru


(информация из Sniffer FAQ )


В отличие от телефонной сети,компьютерные сети используют общиекоммуникационные каналы. Совместноеиспользование каналов подразумевает, что узелможет получать информацию, котораяпредназначается не ему. 'Отлов' этой информации всети и называется sniff'ингом. Наиболее популярныйспособ соединения компьютеров - сети ethernet.
       
Обмен данными по протоколу Ethernet подразумеваетпосылку пакетов всем абонентам сети одногосегмента. Заголовок пакета содержит адресузла-приемника. Предполагается, что только узел ссоотв етствующим адресом может принять пакет.Однако, если какая-то машина в сети принимает всепроходящие пакеты , независимо от их заголовков,то говорят, что она находится в promiscuous mode(смешанном режиме). Так как в обычной сетиинформация о паролях передается в виде простоготекста, но для хакера не сложно перевести одну измашин подсети в promiscuous режим ( предварительнополучив на ней права root'a ) и ,вытягивая ианализируя пакеты, проходящие по сети, получитьпароли к большинству компьютеров сети.

Методыприменения sniff'инга


Sniff'инг - один из наиболеепопулярных видов атаки, используемых хакерами.Наибольшую известность приобрел сниффер Esniff.c -очень маленький, разработанный для работы на SunOS,занимался тем, что вылавливал первые 300 байтовtelnet, ftp и rlogin сессий.

Существует множествоethernet sniff'еров, здесь лишь некоторые из них:

sniffers для систем Unix


SunOS      : Esniff.c |Etherfind | Snoop (ftp://playground.sun.com/)
DEC Unix  : tcpdump
OSF Unix  : faq on BPF suppport
DEC Ultrix : tcpdump | faq on BPF suppport
Solaris      : tcpdump | Snoop ( ftp://playground.sun.com/ ) | solsniffer.c
FreeBSD   : ftp://gatekeeper.dec.com/pub/BSD/FreeBSD/FreeBSD-current/src/contrib/tcpdump/
NetBSD     : ftp://gatekeeper.dec.com/pub/BSD/NetBSD/NetBSD-current/src/usr.sbin/
Linux         : ftp://sunsite.unc.edu:/pub/Linux/system/Network/management/| Linsniffer 0.03.9
SGI Irix     : nfswatch | Etherman | tcpdump
HP/UX      : nettl (monitor) | netfmt (display) | nfswatch

cнифферы, доступные для многихUnix'ов


Новый sniffer Sniffit V.0.3.5 ( работает насистемах IRIX, Linux, SunOS, BSD )
extended for network debugging (UDP, ICMP, netload, etc.) http://reptile.rug.ac.be/~coder/sniffit/sniffit.html

Packetman, Interman, Etherman,Loadman ( SunOS, Dec-Mips, SGI, Alpha, and Solaris). ftp.cs.curtin.edu.au:/pub/netman/[sun4c|dec-mips|sgi|alpha|solaris2]/[etherman-1.1a|interman-1.1|loadman-1.0|packetman-1.1].tar.Z
Packetman разработан для перехвата пакетов, а Interman,Etherman, и Loadman показывают трафик разных типов.

cнифферы под MS DOS


cнифферы под Windows


специфичные снифферы


Детали


Если сниффер запускается на машине,то он переводит сетевой интерфейс в promiscuous mode (смешанный режим ), при котором машина принимаетвсе пакеты, передаваемые по сети. Также естьвозможность запустить sniffer в режиме non-promiscuous, нотогда будет возможность перехватыватьсоединиения только с той машиной, на которой онзапущен.

В открытом виде пароли передаютсяпо сети в реализация протоколов TCP/IP:


Telnet (23 port)
Pop3 (110 port)
Ftp (21 port)
Pop2 (109 port)
Imap2 (143 port)
Rlogin (513 port)
Poppasswd (106 port)
netbios (139 port)
icq (1024-2000 UDP)


Соответственно лог-файл снифферавыглядит следующим образом :


[Starting sniffing .......]victim.net.ru => pop3.net.ru [110]USER victimPASS PaSsWorDSTATQUIT----- [RST]10.0.0.19 => 10.0.0.1 [23]% #'$ANSI!rootr00t9xZx-----+ [Timed Out]

Если наглядно показатьадминистратору или пользователю, насколькопросто перехватывать их brute-force-stable пароли,передаваемые через незащищенные сервисы иканалы связи, то это будет более эффективным, чемтысячу раз убеждать их в необходимостииспользования crypto- средств.

Как опpеделить компьютер сpаботающим в сети сниффеpом


Так как это пассивное устройство, вобщем случае обнаружить его тяжело ( ничего всеть не шлет, только слушает. ) Однако есливпадать в конкретику, то если предполагаемыйсниффер стоит под Linux, то это можно обнаружить (линукс не совсем корректно работает в promiscuous mode.)


[bugtraq]в шелле наберите команды$ arp -s suspecthost 00:de:ad:c0:ff:ee$ ping suspecthostЕсли вы получите ответ , тогдаэто linux, находящийся вpromiscuous режимеНе забудьте очистить ложный MAC address.$ arp -d suspecthost

Проверкаработы сетевого устройства в режиме promiscuous влокальном режиме


Во многих Unix системах есть команда 'ifconfig -a',или аналогичная ( в которой необходимо указатьконкретный интерфейс, узнаваемый командой 'netstat-r' ) которая сообщает вам информацию обо всехсетевых интерфейсах, и о их состоянии.

Информация выглядит следующимобразом:

#ifconfig le0
le0: flags=8863<UP,BROADCAST,NOTRAILERS,RUNNING,PROMISC,MULTICAST          
inet 127.0.0.1 netmask 0xffffff00 broadcast 255.0.0.1

Однако следует принять вовнимание, что хакеры часто подменяют системныекоманды, например ifconfig, чтобы избежатьобнаружения, поэтому следует проверитьконтрольную сумму файла либо заменить binary версиюна заведомо надежную с дистрибутива.

Для проверки интерфейсов на SunOS/BSDможно использовать утилиту cmp

Для системы Ultrixобнаружение запущенного sniffer'a возможно спомощью команд pfstat ( кто может его запустить ) иpfconfig ( проверить интерфейс на promiscuous mode.)

Методы предотвращения перехватаинформации

1) Хороший, но недешевый выход -пользоваться активными интеллектуальнымихабами.
(они посылают каждой системе только те пакеты,которые ей непосредственно и предназначены ).Эффективны для Ethernet типа 10-Base T.

2) Метод, который не позволит начинающим хакерамзапустить sniffer : перекомпилирование ядра системUnix, которые стоят в сети, без поддержки BPF
(Packet Filter support).

3) Полная шифровка трафика


4) Использования системы KERBEROSдля создания защищенного соединения

5) Реализации протокола SSH для сеансов TCP соединений (представлен программой F-secure-SSH на http://www.DataFellows.com )

6 ) Технологии одноразовыхпаролей SKEY.