Лучшие инструменты пен-тестера: сниферы и работа с пакетами. Анализаторы сетевых пакетов

  1. Помни, что устанавливая себе стороннее приложение, ты сам несешь ответственность за последствия!
  2. Читая чужую переписку, ты нарушаешь его права, а за это предусмотрена уголовная ответственность!
  3. Данная инструкция лишь даёт информацию о том, как злоумышленники читают чужую переписку, но ни в коем случае не призывает тебя к этому действию.

Что такое «сниффер»? На блатном жаргоне это слова означает человека, который может вскрыть сейф чем угодно, даже самой ржавой булавкой. Давай разберемся для чего же нужно такое приложение как WhatsApp Sniffer, для компьютера и телефона, которое к слову, можно загрузить у нас на сайте.

Зачем нужно

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

Итак, по заверению разработчиков сниффер позволяет:

  • полностью завладеть аккаунтов «жертвы», как будто бы это твой личный аккаунт в Воцапе;
  • читать все сообщения пользователя;
  • отправлять сообщения друзьями пользователя от его имени;
  • менять фото на аватаре;
  • менять статус;
  • отправлять файлы и получать их.

Как работает

Работает утилита только на Android. Разработчики также заверяют нас, что это приложение полностью безопасно для телефона.

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

  • СМС. Пришли специальное СМС жертве с ссылкой. Когда жертва откроет ссылку сниффер проникнет в телефон и в программу WhatsApp пользователя, открывая доступ для тебя.
  • Звонок. Приложение звонит на телефон жертвы и когда она отвечает проникает в телефон и в приложение.
  • Wi-Fi. Если ты находишься рядом с жертвой, и вы с ней пользуетесь одним вай-фаем, то тогда нужно просто запустить сниффер на телефоне и указать номер жертвы: уже через секунду доступ к ее WhatsApp будет у тебя.

Для использования сниффера достаточно запустить утилиту, выбрать способ использования и нажать «spoof» — кнопку, которая позволяет обнаруживать телефон интересной тебе персоны.

Где скачать и как установить

Чтобы WhatsApp Sniffer скачать для Андроид нужно набрать в Google: «whatsapp sniffer apk скачать», либо воспользоваться установочным файлом, который ты можешь найти у нас на сайте. К сожалению, Whatsapp sniffer скачать для iphone не получится, т. к. для этой операционной системы его просто нет.

Для того чтобы установить утилиту на телефон выполни следующие действия:

  1. Передай установочный файл на свой смартфон.
  2. Запусти его – он установится в обычном режиме.
  3. При открытии файл запросит разрешение доступа к некоторым функциям, выбери «Разрешить». Вот и все: сниффер установлен на твоем гаджете.


Если не получается установить Sniffer, то тогда рекомендуется хакнуть его для чего нужно скачать бесплатно WhatsApp Hach Sniffer на русском языке.

Как обезопасить себя от WhatsApp Sniffer

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

  • Почистить телефон с помощью любого антивируса;
  • Обратиться к разработчикам Воцап для того чтобы они поставили более серьёзную защиту от проникновения сторонних программ в утилиту.
  • Всегда проверяй насколько Wi-Fi-сеть, которой ты пользуешься, надежна. Так, если у тебя возникли подозрения, что к ней могут быть подключены хакеры, то лучше не подключаться к ней.

Снифферы — это проги, которые перехватывают
весь сетевой трафик. Снифферы полезны для диагностики сети (для админов) и
для перехвата паролей (понятно для кого:)). Например если ты получил доступ к
одной сетевой машине и установил там сниффер,
то скоро все пароли от
их подсети будут твои. Снифферы ставят
сетевую карту в прослушивающий
режим (PROMISC).То есть они получают все пакеты. В локалке можно перехватывать
все отправляемые пакеты со всех машин (если вы не разделены всякими хабами),
так
как там практикуется широковещание.
Снифферы могут перехватывать все
пакеты (что очень неудобно, ужасно быстро переполняется лог файл,
зато для более детального анализа сети самое оно)
или только первые байты от всяких
ftp,telnet,pop3 и т.д. (это самое веселое, обычно примерно в первых 100 байтах
содержится имя и пароль:)). Снифферов сейчас
развелось… Множество снифферов есть
как под Unix, так и под Windows (даже под DOS есть:)).
Снифферы могут
поддерживать только определенную ось (например linux_sniffer.c,который
поддерживает Linux:)), либо несколько (например Sniffit,
работает с BSD, Linux, Solaris). Снифферы так разжились из-за того,
что пароли передаются по сети открытым текстом.
Таких служб
уйма. Это telnet, ftp, pop3, www и т.д. Этими службами
пользуется уйма
народу:). После бума снифферов начали появляться различные
алгоритмы
шифрования этих протоколов. Появился SSH (альтернатива
telnet, поддерживающий
шифрование), SSL(Secure Socket Layer — разработка Netscape, способная зашифровать
www сеанс). Появились всякие Kerberous, VPN(Virtual Private
Network). Заюзались некие AntiSniff’ы, ifstatus’ы и т.д. Но это в корне не
изменило положения. Службы, которые используют
передачу пароля plain text’ом
юзаются во всю:). Поэтому сниффать еще долго будут:).

Windows реализации снифферов

linsniffer
Это простой сниффер для перехвата
логинов/паролей. Стандартная компиляция (gcc -o linsniffer
linsniffer.c).
Логи пишет в tcp.log.

linux_sniffer
Linux_sniffer
требуется тогда, когда вы хотите
детально изучить сеть. Стандартная
компиляция. Выдает всякую шнягу дополнительно,
типа isn, ack, syn, echo_request (ping) и т.д.

Sniffit
Sniffit — продвинутая модель
сниффера написанная Brecht Claerhout. Install(нужна
libcap):
#./configure
#make
Теперь запускаем
сниффер:
#./sniffit
usage: ./sniffit [-xdabvnN] [-P proto] [-A char] [-p
port] [(-r|-R) recordfile]
[-l sniflen] [-L logparam] [-F snifdevice]
[-M plugin]
[-D tty] (-t | -s) |
(-i|-I) | -c]
Plugins Available:
0 — Dummy
Plugin
1 — DNS Plugin

Как видите, сниффит поддерживает множество
опций. Можно использовать сниффак в интерактивном режиме.
Сниффит хоть и
довольно полезная прога, но я ей не пользуюсь.
Почему? Потому что у Sniffit
большие проблемы с защитой. Для Sniffit’a уже вышли ремоутный рут и дос для
линукса и дебиана! Не каждый сниффер себе такое позволяет:).

HUNT
Это
мой любимый сниффак. Он очень прост в обращении,
поддерживает много прикольных
фишек и на данный момент не имеет проблем с безопасностью.
Плюс не особо
требователен к библиотекам (как например linsniffer и
Linux_sniffer). Он
может в реальном времени перехватывать текущие соединения и под
чистую дампить с удаленного терминала. В
общем, Hijack
rulezzz:). Рекомендую
всем для усиленного юзания:).
Install:
#make
Run:
#hunt -i

READSMB
Сниффер READSMB вырезан из LophtCrack и портирован под
Unix (как ни странно:)). Readsmb перехватывает SMB
пакеты.

TCPDUMP
tcpdump — довольно известный анализатор пакетов.
Написанный
еще более известным челом — Вэн Якобсоном, который придумал VJ-сжатие для
PPP и написал прогу traceroute (и кто знает что еще?).
Требует библиотеку
Libpcap.
Install:
#./configure
#make
Теперь запускаем
ее:
#tcpdump
tcpdump: listening on ppp0
Все твои коннекты выводит на
терминал. Вот пример вывода на пинг

ftp.technotronic.com:
02:03:08.918959
195.170.212.151.1039 > 195.170.212.77.domain: 60946+ A?
ftp.technotronic.com.
(38)
02:03:09.456780 195.170.212.77.domain > 195.170.212.151.1039: 60946*
1/3/3 (165)
02:03:09.459421 195.170.212.151 > 209.100.46.7: icmp: echo
request
02:03:09.996780 209.100.46.7 > 195.170.212.151: icmp: echo
reply
02:03:10.456864 195.170.212.151 > 209.100.46.7: icmp: echo
request
02:03:10.906779 209.100.46.7 > 195.170.212.151: icmp: echo
reply
02:03:11.456846 195.170.212.151 > 209.100.46.7: icmp: echo
request
02:03:11.966786 209.100.46.7 > 195.170.212.151: icmp: echo
reply

В общем, снифф полезен для отладки сетей,
нахождения неисправностей и
т.д.

Dsniff
Dsniff требует libpcap, ibnet,
libnids и OpenSSH. Записывает только введенные команды, что очень удобно.
Вот пример лога коннекта
на unix-shells.com:

02/18/01
03:58:04 tcp my.ip.1501 ->
handi4-145-253-158-170.arcor-ip.net.23
(telnet)
stalsen
asdqwe123
ls
pwd
who
last
exit

Вот
dsniff перехватил логин с паролем (stalsen/asdqwe123).
Install:
#./configure
#make
#make
install

Защита от снифферов

Самый верный способ защиты от
снифферов —
использовать ШИФРОВАНИЕ (SSH, Kerberous, VPN, S/Key, S/MIME,
SHTTP, SSL и т.д.). Ну
а если не охота отказываться от plain text служб и установления дополнительных
пакетов:)? Тогда пора юзать антиснифферские пекеты…

AntiSniff for Windows
Этот продукт выпустила известная группа
Lopht. Это был первый продукт в своем роде.
AntiSniff, как сказано в
описании:
«AntiSniff is a Graphical User Interface (GUI) driven tool for
detecting promiscuous Network Interface Cards (NICs) on your local network
segment". В общем, ловит карты в promisc режиме.
Поддерживает огромное
количество тестов (DNS test, ARP test, Ping Test, ICMP Time Delta
Test, Echo Test, PingDrop test). Можно сканить как одну машину,
так и сетку. Здесь имеется
поддержка логов. AntiSniff работает на win95/98/NT/2000,
хотя рекомендуемая
платформа NT. Но царствование его было недолгим и уже в скором
времени появился сниффер под названием AntiAntiSniffer:),
написанный Майком
Перри (Mike Perry) (найти его можно по адресу www.void.ru/news/9908/snoof.txt).Он
основан на LinSniffer (рассмотренный далее).

Unix sniffer detect:
Сниффер
можно обнаружить командой:

#ifconfig -a
lo Link encap:Local
Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP
LOOPBACK RUNNING MTU:3924 Metric:1
RX packets:2373 errors:0
dropped:0 overruns:0 frame:0
TX packets:2373 errors:0 dropped:0
overruns:0 carrier:0
collisions:0 txqueuelen:0

ppp0 Link
encap:Point-to-Point Protocol
inet addr:195.170.y.x
P-t-P:195.170.y.x Mask:255.255.255.255
UP POINTOPOINT PROMISC
RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:3281
errors:74 dropped:0 overruns:0 frame:74
TX packets:3398 errors:0
dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:10

Как
видите интерфейс ppp0 стоит в PROMISC mode. Либо оператор
загрузил снифф для
проверки сети, либо вас уже имеют… Но помните,
что ifconfig можно спокойно
подменить, поэтому юзайте tripwire для обнаружения
изменений и всяческие проги
для проверки на сниффы.

AntiSniff for Unix.
Работает на
BSD, Solaris и
Linux. Поддерживает ping/icmp time test, arp test, echo test, dns
test, etherping test, в общем аналог AntiSniff’а для Win, только для
Unix:).
Install:
#make linux-all

Sentinel
Тоже полезная прога для
отлова снифферов. Поддерживает множество тестов.
Проста в
использовании.
Install: #make
#./sentinel
./sentinel [-t
]
Methods:
[ -a ARP test ]
[ -d DNS test
]
[ -i ICMP Ping Latency test ]
[ -e ICMP Etherping test
]
Options:
[ -f ]
[ -v Show version and
exit ]
[ -n ]
[ -I
]

Опции настолько просты, что no
comments.

MORE

Вот еще несколько
утилит для проверки вашей сети(for
Unix):
packetstorm.securify.com/UNIX/IDS/scanpromisc.c -ремоутный
детектор PROMISC mode для ethernet карт (for red hat 5.x).
http://packetstorm.securify.com/UNIX/IDS/neped.c
— Network Promiscuous Ethernet Detector (нужно libcap & Glibc).
http://packetstorm.securify.com/Exploit_Code_Archive/promisc.c
-сканирует девайсы системы на детект сниффов.
http://packetstorm.securify.com/UNIX/IDS/ifstatus2.2.tar.gz
— ifstatus тестит сетевые интерфейсы в PROMISC mode.

IP Sniffer - программа, которая позволяет следить за пакетами, проходящими через Internet Protocol (IP). Функционал программы включает в себя возможность декодирования пакетов и их фильтрации.

В эпоху современных технологий и интернета на первое место выходит безопасность. С внешним миром компьютер обменивается цифровой информацией посредством специальных протоколов. Internet Protocol (IP) является одним из самых востребованных и популярных благодаря безопасности и высокой скорости передачи данных.

Именно с его появлением, в 1981 году, компьютера получили возможность посылать друг другу сообщения в виде пакетов с данными. Сниффер для Windows предназначен для контроля за трафиком и проверки содержимого пакетов. Таким образом, эта утилита является дополнительным способом обезопасить свой компьютер. Скачать IP Sniffer является лучшим решением, держать под контролем трафик и все потоки информации.



Скачать IP Sniffer бесплатно

(1,4 МБ)

Основные характеристики IP Sniffer:

  • Многофункциональность;
  • Безопасность;
  • Небольшой размер;
  • Интуитивно понятный интерфейс.

Последняя версия сниффер имеет удобный и простой интерфейс. Программа позволяет просматривать, какие IP-адреса чаще всего используются, какие чаще других подключаются к вашей машине. Удобно можно мониторить объем трафика. Также можно принудительно завершать то или иное подключение с помощью функции Netstat. Cкачать сниффер на компьютер рекомендуется если перед пользователем стоит задача перехвата трафика между хостами. Это позволяет делать функция Snoofing, которая в числе многих поддерживает популярный протокол ARP. Также востребованными функциями сниффер на русском языке являются пинг сети, возможность преобразовывать IP-адрес в Hostname и обратно, поиск DHCP серверов. Также с её помощью можно получить данные Netbios для указанного IP адреса.

Скачать бесплатно сниффер рекомендуется, если пользователь хочет получить надежного помощника в деле контроля над трафиком. Программа не нуждается в установке и дополнительной настройке. Использовать её можно сразу после загрузки. Интерфейс программы лаконичен и прост. Окна и вкладки расположены так, чтобы использовать было максимально удобно и комфортно. Разработчик постоянно совершенствует и улучшает свой продукт. Обновления выходят регулярно. Программа отличается высокой устойчивостью к любым злонамеренным воздействиям.

Наш портал всем посетителям предоставляет возможность скачать программу сниффер без регистрации и SMS.

Многие администраторы сетей часто сталкиваются с проблемами, разобраться с которыми поможет анализ сетевого трафика. И здесь мы сталкиваемся с таким понятием, как анализатор трафика. Так что же это такое?

Анализаторы и коллекторы NetFlow - это инструменты, которые помогают отслеживать и анализировать данные сетевого трафика. Анализаторы сетевых процессов позволяют точно определить устройства, из-за которых снижается пропускная способность канала. Они умеют находить проблемные места в вашей системе, и повышать общую эффективность сети.

Термин "NetFlow " относится к протоколу Cisco , предназначенному для сбора информации о трафике по IP и мониторинга сетевого трафика. NetFlow был принят в качестве стандартного протокола для потоковых технологий.

Программное обеспечение NetFlow собирает и анализирует данные потоков, генерируемых маршрутизаторами, и представляет их в удобном для пользователей формате.

Несколько других поставщиков сетевого оборудования имеют свои собственные протоколы для мониторинга и сбора данных. Например, Juniper , другой весьма уважаемый поставщик сетевых устройств, называет свой протокол "J-Flow ". HP и Fortinet используют термин "s-Flow ". Несмотря на то, что протоколы называются по-разному, все они работают аналогичным образом. В этой статье мы рассмотрим 10 бесплатных анализаторов сетевого трафика и коллекторов NetFlow для Windows .

SolarWinds Real-Time NetFlow Traffic Analyzer


Free NetFlow Traffic Analyzer является одним из наиболее популярных инструментов, доступных для бесплатного скачивания. Он дает возможность сортировать, помечать и отображать данные различными способами. Это позволяет удобно визуализировать и анализировать сетевой трафик. Инструмент отлично подходит для мониторинга сетевого трафика по типам и периодам времени. А также выполнение тестов для определения того, сколько трафика потребляют различные приложения.

Этот бесплатный инструмент ограничен одним интерфейсом мониторинга NetFlow и сохраняет только 60 минут данных. Данный Netflow анализатор является мощным инструментом, который стоит того, чтобы его применить.

Colasoft Capsa Free


Этот бесплатный анализатор трафика локальной сети позволяет идентифицировать и отслеживать более 300 сетевых протоколов, и позволяет создавать настраиваемые отчеты. Он включает в себя мониторинг электронной почты и диаграммы последовательности TCP-синхронизации , все это собрано в одной настраиваемой панели.

Другие функции включают в себя анализ безопасности сети. Например, отслеживание DoS/DDoS-атак , активности червей и обнаружение ARP-атак . А также декодирование пакетов и отображение информации, статистические данные о каждом хосте в сети, контроль обмена пакетами и реконструкция потока. Capsa Free поддерживает все 32-битные и 64-битные версии Windows XP .

Минимальные системные требования для установки: 2 Гб оперативной памяти и процессор 2,8 ГГц. У вас также должно быть соединение с интернет по сети Ethernet (совместимой с NDIS 3 или выше ), Fast Ethernet или Gigabit с драйвером со смешанным режимом. Он позволяет пассивно фиксировать все пакеты, передаваемые по Ethernet-кабелю .

Angry IP Scanner


Это анализатор трафика Windows с открытым исходным кодом, быстрый и простой в применении. Он не требует установки и может быть использован на Linux , Windows и Mac OSX . Данный инструмент работает через простое пингование каждого IP-адреса и может определять MAC-адреса , сканировать порты, предоставлять NetBIOS-информацию , определять авторизованного пользователя в системах Windows , обнаруживать веб-серверы и многое другое. Его возможности расширяются с помощью Java-плагинов . Данные сканирования могут быть сохранены в файлы форматов CSV, TXT, XML .

ManageEngine NetFlow Analyzer Professional


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

Бесплатная версия анализатора трафика Linux позволяет неограниченно использовать продукт на протяжении 30 дней, после чего можно производить мониторинг только двух интерфейсов. Системные требования для NetFlow Analyzer ManageEngine зависят от скорости потока. Рекомендуемые требования для минимальной скорости потока от 0 до 3000 потоков в секунду: двухъядерный процессор 2,4 ГГц, 2 Гб оперативной памяти и 250 Гб свободного пространства на жестком диске. По мере увеличения скорости потока, который нужно отслеживать, требования также возрастают.

The Dude


Это приложение представляет собой популярный сетевой монитор, разработанный MikroTik . Он автоматически сканирует все устройства и воссоздает карту сети. The Dude контролирует серверы, работающие на различных устройствах, и предупреждает в случае возникновения проблем. Другие функции включают в себя автоматическое обнаружение и отображение новых устройств, возможность создавать собственные карты, доступ к инструментам для удаленного управления устройствами и многое другое. Он работает на Windows , Linux Wine и MacOS Darwine .

JDSU Network Analyzer Fast Ethernet


Эта программа анализатор трафика позволяет быстро собирать и просматривать данные по сети. Инструмент предоставляет возможность просматривать зарегистрированных пользователей, определять уровень использования пропускной способности сети отдельными устройствами, быстро находить и устранять ошибки. А также захватывать данные в режиме реального времени и анализировать их.

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

Plixer Scrutinizer


Этот анализатор сетевого трафика позволяет собрать и всесторонне проанализировать сетевой трафик, а также быстро найти и исправить ошибки. С помощью Scrutinizer можно отсортировать данные различными способами, в том числе по временным интервалам, хостам, приложениям, протоколам и т.д. Бесплатная версия позволяет контролировать неограниченное количество интерфейсов и хранить данные по 24 часам активности.


Это мощный сетевой анализатор может работать на Linux , Windows , MacOS X , Solaris и других платформах. позволяет просматривать захваченные данные с помощью графического интерфейса, или использовать утилиты TTY-mode TShark . Его функции включают в себя сбор и анализ трафика VoIP, отображение в режиме реального времени данных Ethernet , IEEE 802.11 , Bluetooth , USB , Frame Relay , вывод данных в XML , PostScript , CSV , поддержку дешифрования и многое другое.

Системные требования: Windows XP и выше, любой современный 64/32-битный процессор, 400 Mb оперативной памяти и 300 Mb свободного дискового пространства. Wireshark NetFlow Analyzer - это мощный инструмент, который может существенно упростить работу любому администратору сети.

Paessler PRTG


Этот анализатор трафика предоставляет пользователям множество полезных функций: поддержку мониторинга LAN , WAN , VPN , приложений, виртуального сервера, QoS и среды. Также поддерживается мониторинг нескольких сайтов. PRTG использует SNMP , WMI , NetFlow , SFlow , JFlow и анализ пакетов, а также мониторинг времени бесперебойной работы/простоя и поддержку IPv6 .

Бесплатная версия дает возможность использовать неограниченное количество датчиков в течение 30 дней, после чего можно бесплатно использовать только до 100 штук.

nProbe


Это полнофункциональное приложение с открытым исходным кодом для отслеживания и анализа NetFlow .

nProbe поддерживает IPv4 и IPv6 , Cisco NetFlow v9 / IPFIX , NetFlow-Lite , содержит функции анализа VoIP трафика, выборки потоков и пакетов, генерации логов, MySQL/Oracle и DNS-активности , а также многое другое. Приложение является бесплатным, если вы анализатор трафика скачиваете и компилируете на Linux или Windows . Исполняемый файл установки ограничивает объем захвата до 2000 пакетов. nProbe является полностью бесплатным для образовательных учреждений, а также некоммерческих и научных организаций. Данный инструмент будет работать на 64-битных версиях операционных систем Linux и Windows .

Этот список из 10 бесплатных анализаторов трафика и коллекторов NetFlow поможет вам приступить к мониторингу и устранению неисправностей в небольшой офисной сети или обширной, охватывающей несколько сайтов, корпоративной WAN-сети +4 из 5 4

  • Tutorial

В этой статье мы рассмотрим создание простого сниффера под ОС Windows.
Кому интересно, добро пожаловать под кат.

Введение

Цель: написать программу, которая будет захватывать сетевой трафик (Ethernet, WiFi), передающийся по протоколу IP.
Средства: Visual Studio 2005 или выше.
Подход, который здесь описан, не принадлежит лично автору и успешно применяется во многих коммерческих, а также категорически бесплатных программах (привет, GPL).
Сей труд предназначен прежде всего для новичков в сетевом программровании, которые, однако, имеют хотя бы базовые знания в области сокетов вообще, и windows-сокетов в частности. Здесь я часто буду писать общеизвестные вещи, потому что предметная область специфическая, если что-то пропустить - в голове будет каша.

Надеюсь, Вам будет интересно.

Теория (читать не обязательно, но желательно)

В данный момент подавляющее большинство современных информационных сетей базируются на фундаменте стека протоколов TCP/IP. Стек протоколов TCP/IP (англ. Transmission Control Protocol/Internet Protocol) - собирательное название для сетевых протоколов разных уровней, используемых в сетях. В настоящей статье нас будет интересовать в основном протокол IP - маршрутизируемый сетевой протокол, используемый для негарантированной доставки данных, разделяемых на так называемые пакеты (более верный термин – дейтаграмма) от одного узла сети к другому.
Особый интерес для нас представляют IP-пакеты, предназначенные для передачи информации. Это достаточно высокий уровень сетевой OSI-модели данных, когда можно обстрагироваться от устройства и среды передачи данных, оперируя лишь логическим представлением.
Совершенно логичным является то обстоятельство, что рано или поздно должны были появится инструменты для перехвата, контроля, учета и анализа сетевого трафика. Такие средства обычно называется анализаторами трафика, пакетными анализаторыми или снифферами (от англ. to sniff - нюхать). Это - сетевой анализатор трафика, программа или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа, либо только анализа сетевого трафика, предназначенного для других узлов.

Практика (разговор по существу)

На данный момент создано достаточно много программного обеспечения для прослушивания трафика. Наиболее известный из них: Wireshark . Естественно, пожинать его лавры цель не стоит - нас интересует задача перехвата трафика методом обычного «прослушивания» сетевого интерфейса. Важно понимать, что мы не собираемся заниматься взломом и перехватывать чужой трафик. Нужно всего лишь просматривать и анализировать трафик, который проходит через наш хост.

Для чего это может понадобиться:

  1. Смотреть текущий поток трафика через сетевое соеднинение (входящий/исходящий/всего).
  2. Перенаправлять трафик для последующего анализа на другой хост.
  3. Теоретически, можно попытаться применить его для взлома WiFi-сети (мы ведь не собираемся этим заниматься?).
В отличие от Wireshark, который базируется на библиотеке libpcap/WinPcap, наш анализатор не будет использовать этот драйвер. Чего уж там, у нас вообще не будет драйвера, и свой NDIS(о ужас!) мы писать не собираемся. Про это можно прочитать в . Он будет просто пассивным наблюдателем, использующим только библиотеку WinSock. Использование драйвера в данном случае избыточно.

Как так? Очень просто.
Ключевым шагом в превращении простого сетевого приложения в сетевой анализатор является переключение сетевого интерфейса в режим прослушивания (promiscuous mode), что и позволит ему получать пакеты, адресованные другим интерфейсам в сети. Этот режим заставляют сетевую плату принимать все кадры, вне зависимости от того, кому они адресованы в сети.

Начиная с Windows 2000 (NT 5.0) создать программу для прослушивания сегмента сети стало очень просто, т.к. ее сетевой драйвер позволяет перевести сокет в режим приёма всех пакетов.

Включение неразборчивого режима
long flag = 1; SOCKET socket; #define SIO_RCVALL 0x98000001 ioctlsocket(socket, SIO_RCVALL, &RS_Flag);
Наша программа оперирует IP-пакетами, и использует библиотеку Windows Sockets версии 2.2 и «сырые» сокеты (raw sockets). Для того чтобы получить прямой доступ к IP-пакету, сокет нужно создавать следующим образом:
Создание сырого сокета
s = socket(AF_INET, SOCK_RAW, IPPROTO_IP);
Здесь вместо константы SOCK_STREAM (протокол TCP) или SOCK_DGRAM (протокол UDP), мы используем значение SOCK_RAW . Вообще говоря, работа с raw sockets интересна не только с точки зрения захвата трафика. Фактически, мы получаем полный контроль за формированием пакета. Вернее, формируем его вручную, что позволяет, например, послать специфический ICMP-пакет…

Идем дальше. Известно, что IP-пакет состоит из заголовка, служебной информации и, собственно, данных. Советую заглянуть сюда , чтобы освежит знания. Опишем в виде структуры IP-заголовок (спасибо отличной статье на RSDN ):

Описание структуры IP-пакета
typedef struct _IPHeader { unsigned char ver_len; // версия и длина заголовка unsigned char tos; // тип сервиса unsigned short length; // длина всего пакета unsigned short id; // Id unsigned short flgs_offset; // флаги и смещение unsigned char ttl; // время жизни unsigned char protocol; // протокол unsigned short xsum; // контрольная сумма unsigned long src; // IP-адрес отправителя unsigned long dest; // IP-адрес назначения unsigned short *params; // параметры (до 320 бит) unsigned char *data; // данные (до 65535 октетов) }IPHeader;
Главная функция алгоритма прослушивания будет выглядеть следующим образом:
Функция захвата одного пакета
IPHeader* RS_Sniff() { IPHeader *hdr; int count = 0; count = recv(RS_SSocket, (char*)&RS_Buffer, sizeof(RS_Buffer), 0); if (count >= sizeof(IPHeader)) { hdr = (LPIPHeader)malloc(MAX_PACKET_SIZE); memcpy(hdr, RS_Buffer, MAX_PACKET_SIZE); RS_UpdateNetStat(count, hdr); return hdr; } else return 0; }
Здесь все просто: получаем порцию данных с помощью стандартной функции socket-функции recv , а затем копируем их в структуру типа IPHeader .
И, наконец, запускаем бесконечный цикл захвата пакетов:
Захватым все пакеты, которые попадут на наш сетевой интерфейс
while (true) { IPHeader* hdr = RS_Sniff(); // обработка IP-пакета if (hdr) { // печатаем заголовок в консоли } }
Немного оффтопика
Здесь и далее у некоторых важных функций и переменных автор сделал префкис RS_ (от Raw Sockets). Проект делал 3-4 года назад, и была шальная мысль написать полноценную библиотеку для работы с сырыми сокетами. Как это часто бывает, после получения сколь-нибудь значимых(для автора) результатов, энтузиазм угас, и дальше учебного примера дело не полшло.

В принципе, можно пойти дальше, и описать заголовки всех последующих протоколов, находящихся выше. Для этого необходимо анализировать поле protocol в структуре IPHeader . Посмотрите на пример кода (да, там должен быть switch, чёрт возьми!), где происходит раскрашивание заголовка в зависимости от того, какой протокол имеет пакет, инкапсулированный в IP:

/* * Выделение пакета цветом */ void ColorPacket(const IPHeader *h, const u_long haddr, const u_long whost = 0) { if (h->xsum) SetConsoleTextColor(0x17); // если пакет не пустой else SetConsoleTextColor(0x07); // пустой пакет if (haddr == h->src) { SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_RED | FOREGROUND_INTENSITY); // "родной" пакет на отдачу } else if (haddr == h->dest) { SetConsoleTextColor(BACKGROUND_BLUE | /*BACKGROUND_INTENSITY |*/ FOREGROUND_GREEN | FOREGROUND_INTENSITY); // "родной" пакет на прием } if (h->protocol == PROT_ICMP || h->protocol == PROT_IGMP) { SetConsoleTextColor(0x70); // ICMP-пакет } else if(h->protocol == PROT_IP || h->protocol == 115) { SetConsoleTextColor(0x4F); // IP-in-IP-пакет, L2TP } else if(h->protocol == 53 || h->protocol == 56) { SetConsoleTextColor(0x4C); // TLS, IP with Encryption } if(whost == h->dest || whost == h->src) { SetConsoleTextColor(0x0A); } }

Однако это существенно выходит за рамки этой статьи. Для нашего учебного примера вполне достаточно будет посмотреть ip-адреса хостов, с которых и на которые идет трафик, и посчитать его количество в единицу времени(готовая программа в архиве в конце статьи).

Для того, чтобы отобразить данные IP-заголовка, необходимо реализовать функцию преобразования заголовка (но не данных) дейтаграммы в строку. В качестве примера реализации, можно предложить такой вариант:

Преобразование IP-заголовка в строку
inline char* iph2str(IPHeader *iph) { const int BUF_SIZE = 1024; char *r = (char*)malloc(BUF_SIZE); memset((void*)r, 0, BUF_SIZE); sprintf(r, "ver=%d hlen=%d tos=%d len=%d id=%d flags=0x%X offset=%d ttl=%dms prot=%d crc=0x%X src=%s dest=%s", BYTE_H(iph->ver_len), BYTE_L(iph->ver_len)*4, iph->tos, ntohs(iph->length), ntohs(iph->id), IP_FLAGS(ntohs(iph->flgs_offset)), IP_OFFSET(ntohs(iph->flgs_offset)), iph->ttl, iph->protocol, ntohs(iph->xsum), nethost2str(iph->src), nethost2str(iph->dest)); return r; }
На основании приведенных выше базовых сведений, получается вот такая небольшая программа (жуткое название ss, сокр. от англ. simple sniffer), реализующая локальное прослушивание IP-трафика. Интерфейс ее приведен ниже на рисунке.

Исходный и бинарный код предоставляю как есть, таким как он был несколько лет назад. Сейчас мне на него страшно смотреть, и все же, он вполне читабельный (конечно же, нельзя быть таким самоуверенным). Для компиляции будет достаточно даже Visual Studio Express 2005.

Что у нас получилось в итоге:

  • Сниффер работает в режиме пользователя, однако требует привилегии администратора.
  • Пакеты не фильтруются, отображаясь как есть (можно добавить настраиваемые фильтры - предлагаю подробно рассмотреть эту тему в следующей статье, если интересно).
  • WiFi-трафик тоже захватывается(все зависит от конкретной модели чипа, у Вас может и не работать, как у меня несколько лет назад), хотя есть AirPcap, которая чудесно это умеет делать, но стоит денег.
  • Весь поток дейтаграмм логируется в файл (см. архив, приложенный в конце статьи).
  • Программа работает в качестве сервера на порту 2000. Можно подключиться с помощью утилиты telnet к хосту и произвести мониторинг потоков трафика. Количество подключений ограничено двадцатью (код не мой, нашел на просторах сети и применял для экспериментов; удалять не стал - жалко)
Спасибо за внимание, проздравляю хабровчан и хабровчанок и всех-всех-всех с наступающим Рождеством!
В продолжение темы:
Роутеры

Lenovo Vibe C новинка в стильном тонком корпусе с двумя сим-картами, поддержкой 4G LTE по привлекательно низкой цене. Работает смартфон на операционной системе андроид,...

Новые статьи
/
Популярные