Что такое Sniffer, и как он работает. (информация из 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

  • *NEW* SUPER MINI! BUTTSniffer V 0.9.3.
    Продукция известной группы Cult of the Dead Cow
    Размер: 139Kb. Поддерживается плагин для BO
    main distro site или скачать версию с моего сервера
    недоработки : у меня работает только в режиме e (encapsulation)
    Автор пишет, что к версии 1.0 выложит исходники
    buttsnif.exe -d 0 dump.log e 21-110
  • Session Wall-3 ( www.abirnet.com),
  • LANAlyzer
  • *PacketBoy v1.2 for Win95/NT и кряк к нему
  • Lan Trace (www.intellimax.com) ( 6,5 Mb)
  • Shomiti Surveyor (www.shomiti.com) ( 8 Mb )
  • Sniffer Ballista/NT ( www.securenetworks .com.)

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

  • web_snif.cWeb sniffer для Linux - перехватывает пароли на web basic auth (типа .htaccess)
  • readsmb.c Перехватывает пароли на SAMBA соединения по NetBEUI
  • icq-spof.c Позволяет читать сообщения ICQ и перехватывать пароли
  • C2MyAzz - tricks Microsoft networking clients to send their passwords
    as clear text. Displays usernames and their passwords as they attach to NT Server resources
    Главное - поставляется с исходниками под WinNT, в которых переводит карточку в promisc. режим!


Детали

Если сниффер запускается на машине, то он переводит сетевой интерфейс в 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  victim
PASS  PaSsWorD
STAT
QUIT
----- [RST]

10.0.0.19 => 10.0.0.1 [23]
% #'$ANSI!root
r00t9xZx

-----+ [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.