![]() |
Wireshark - практика перехвата
1. Введение
В статье рассмотрены некоторые небезопасные протоколы передачи данных, продемонстрированы способы перехвата конфиденциальной информации, передающейся по ним, предложены пути решения этих проблем. Термин снифер происходит от английского «to sniff» – нюхать – и представляет собой программу или программно-аппаратное устройство, предназначенное для перехвата и последующего анализа, либо только анализа сетевого трафика, предназначенного для других узлов. Перехват трафика может осуществляться:
Сниферы применяются как в благих, так и в деструктивных целях. Анализ прошедшего через снифер трафика позволяет:
Как ни странно, в природе существует великое множество сниферов, поэтому их разделяют на категории:
|
2. Wireshark: основы
Wireshark – это анализатор сетевого трафика. Его задача состоит в том, чтобы перехватывать сетевой трафик и отображать его в детальном виде. Анализатор сетевого трафика можно сравнить с измерительным устройством, которое используется для просмотра того, что происходит внутри сетевого кабеля, как например вольтметр используется электриками для того чтобы узнать что происходит внутри электропроводки (но, конечно, на более высоком уровне). В прошлом такие инструменты были очень дорогостоящими и проприетарными. Однако, с момента появления такого инструмента как Wireshark ситуация изменилась. Wireshark – это один из лучших анализаторов сетевого трафика, доступных на сегодняшний момент. Wireshark работает на основе библиотеки pcap. Библиотека Pcap (Packet Capture) позволяет создавать программы анализа сетевых данных, поступающих на сетевую карту компьютера. Разнообразные программы мониторинга и тестирования сети, сниферы используют эту библиотеку. Она написана для использования языка С/С++ так что другие языки, такие как Java, .NET и скриптовые языки использовать не рационально. Для Unix-подобных систем используют libpcap библиотеку, а для Microsoft Windows NT используют WinPcap библиотеку. Программное обеспечение сетевого мониторинга может использовать libpcap или WinPcap, чтобы захватить пакеты, путешествующие по сети и в более новых версиях для передачи пакетов в сети. Libpcap и WinPcap также поддерживают сохранение захваченных пакетов в файл и чтение файлов содержащих сохранённые пакеты. Программы написанные на основе libpcap или WinPcap могут захватить сетевой трафик, анализировать его. Файл захваченного траффика сохраняется в формате, понятном для приложений, использующих Pcap. 2.1 Для чего используется Wireshark?
2.2 Возможности Wireshark
2.3 Установка Установка снифера Wireshark под Windows является тривиальной задачей и производится мастером установки. Если на компьютере отсутствует библиотека WinPcap, то она будет установлена вместе со снифером. На шаге выбора компонентов можно установить некоторые сопутствующие инструменты:
2.4 Интерфейс Wireshark Интерфейс программы Wireshark представлен на рисунке 1. http://img386.imageshack.us/img386/1...terfacegq2.jpg Рисунок 1 – Главное окно программы Wireshark Рассмотрим интерфейс более подробно. Сверху находится стандартные для Windows приложений меню и тулбар, на них подробно останавливаться смысла не имеет. Далее следует фильтр, в нем можно задавать критерии фильтрации пакетов, подробное описание работы с ним рассмотрим позже. Следом идет окошко со списком всех перехваченных пакетов. В нем доступна такая информация как: номер пакета, относительное время получения пакета (отсчет производится от первого пакета; параметры отображения времени можно изменить в настройках), IP адрес отправителя, IP адрес получателя, протокол, по которому пересылается пакет, а также дополнительная информация о нем. Как можно заметить, разные протоколы подсвечены разными цветами, что добавляет наглядности и упрощает анализ. Далее видно окно, в котором представлена детальная информация о пакете согласно сетевой модели OSI (подробнее см. Википедию). Ну, и самое нижнее окно показывает нам пакет в сыром HEX виде, то есть побайтово. Конфигурация интерфейса может быть легко изменена в меню View. Например, можно убрать окно побайтового представления пакета (оно же Packet Bytes в меню View), так как в большинстве случаев (кроме анализа данных в пакете) оно не нужно и только дублирует информацию из окна детального описания. 2.5 Перехват трафика Перехват трафика является одной из ключевых возможностей Wireshark. Движок Wireshark по перехвату предоставляет следующие возможности:
http://img386.imageshack.us/img386/7...pturingmn8.jpg Рисунок 2 – Выбор интерфейса для перехвата После нажатия на одну из этих кнопок появится окно со списком сетевых интерфейсов, доступных в системе (рисунок 3). http://img385.imageshack.us/img385/2...ceslistkq6.jpg Рисунок 3 – Список сетевых интерфейсов На этом списке можно увидеть такую информацию как название интефейса, IP адрес интерфейса, сетевая активность интерфейса (представлена в виде общего количества пакетов с момента появления окна и количество пакетов в секунду). Также из этого окна можно посмотреть настройки перехвата (рисунок 4) и информацию об интерфейсе (рисунок 5). http://img165.imageshack.us/img165/1...optionsya2.jpg Рисунок 4 – Настройки перехвата http://img165.imageshack.us/img165/5...detailsbl7.jpg Рисунок 5 – Информация об интерфейсе В настройках перехвата можно изменять такие параметры как фильтрация пакетов, запись дампа в несколько файлов, прекращение перехвата по разным критериям (количество пакетов, количество мегабайт, количество минут), опции показа пакетов, резолвинг имен. В большинстве случаев эти параметры можно оставить по умолчанию. Итак, всё готово к началу перехвата, осталось нажать кнопку Start. |
3. Практика перехвата
После нажатия на кнопку Start начался перехват пакетов. Если сетевая активность высокая, то можно сразу увидеть массу непонятных входящих или исходящих пакетов. Они нас пока мало волнуют, сейчас мы займемся изучением всем известной утилиты ping. 3.1 Утилита ping Нажмем Win+R и введем в строке выполнить cmd. Откроется консоль, введем там команду ping <IP адрес>, как показано на рисунке 6. IP адрес следует писать, исходя из конфигурации конкретной сети. http://img386.imageshack.us/img386/3346/pingcmdqv5.jpg Рисунок 6 – Выполнение команды ping Теперь, если опрос хоста прошел так же успешно, как показано на рисунке, откроем окно Wireshark, чтобы посмотреть на это более подробно. Там мы скорее всего увидим полный бардак и разбираться в этом нужно будет очень долго. Тут нам на помощь и придут фильтры! Утилита ping работает по протоколу ICMP, поэтому впишем название этого протокола в строку фильтра и нажмем Apply. Должно получиться нечто похожее на рисунок 7. http://img385.imageshack.us/img385/3...resharkts3.jpg Рисунок 7 – Фильтрация по протоколу ICMP Здесь мы можем наблюдать как происходит Echo Request и Echo Reply в протоколе ICMP изнутри: какие тестовые данные посылаются, какие флаги символизируют о том, что это именно Echo Request, и другую не менее важную информацию. 3.2 Перехват FTP трафика В этом пункте рассматривается перехват документа, передающегося по протоколу FTP без шифрования, и убедимся, что при использовании шифрования на основе TLS ничего полезного мы перехватить не сможем. В качестве FTP сервера используется Cerberus FTP Server, в качестве клиента – любой браузер, например, Internet Explorer (в данной работе использовался плагин к Mozilla Firefox под названием FireFTP). Запускаем захват пакетов в Wireshark и делаем фильтр по протоколу FTP для удобства (набираем «ftp or ftp-data» без кавычек). Набираем в строке адреса браузера адрес нашего FTP сервера: ftp://<IP адрес сервера> и жмем Enter. На сервере будет лежать текстовый документ под названием test.txt, скачиваем его. Теперь посмотрим, что произошло в снифере, и какие пакеты мы перехватили. На рисунке 8 можно видеть, что перехватить можно не только данные, которые передаются по протоколу, но и логин с паролем. http://img165.imageshack.us/img165/7...ginpasswm6.jpg Рисунок 8 – Перехват логина и пароля Теперь найдем в перехваченных пакетах содержание нашего документа. Несколько слов о процессе передачи файлов по протоколу FTP: в самом начале сервер посылает клиенту баннер приветствия (в данном случае это 220-Welcome to Cerberus FTP Server), пользователь проходит аутентификацию на сервере с помощью команд USER и PASS, получает список директорий с помощью команды LIST и запрашивает нужный файл с помощью команды RETR. Команду RETR мы и будем искать в списке пакетов. Для этого нужно нажать Ctrl+F, выбрать в опциях поиска Find by String и Search in Packet Bytes, в строке поиска ввести RETR и нажать Enter. Будет найден пакет, в котором клиент посылает эту команду серверу, если файл существует, то сервер пришлет ответ 150 Opening data connection, а в следующем пакете и будет содержимое документа (рисунок 9). http://img165.imageshack.us/img165/4...ocumentia1.jpg Рисунок 9 – Содержимое переданного документа Теперь включим на сервере безопасную передачу данных на основе протокола TLS и повторим процедуру. Для установки безопасного соединения клиент использует команду AUTH TLS. При просмотре списка перехваченных пакетов (рисунок 10) становится ясно, что ничего полезного из них получить не получится. http://img386.imageshack.us/img386/8198/ftptlslb1.jpg Рисунок 10 – Список перехваченных зашифрованных пакетов 3.3 Перехват документа, переданного по протоколу SMB SMB (Server Message Block) – формат сообщений на основе протокола совместного использования файлов Microsoft/3Com, используемый для передачи файловых запросов (open – открыть, close – закрыть, read – прочитать, write – записать и т. п.) между клиентами и серверами. Откроем Wireshark, запустим перехват пакетов и фильтр по протоколу SMB. Затем зайдем на удаленный расшаренный ресурс и скачаем файл test.txt. Остановим перехват пакетов, нажав на кнопочку «Stop the running live capture». Теперь посмотрим на то, что мы получили. В списке пакетов найдем запрос на передачу файла test.txt: Цитата:
Цитата:
http://img385.imageshack.us/img385/826/smbnj2.jpg Рисунок 11 – Перехват документа по протоколу SMB |
4. Заключение
Проблема снифинга была актуальной раньше – в сетях основанных на концентраторах (хабах) – она остается актуальной и сейчас для сетей на коммутаторах (свитчах), благодаря такой технологии как ARP spoofing. Более того, сегодня семимильными шагами развивается технологии беспроводных сетей, где снифинг возможен даже в пассивном режиме. Единственным решением, препятствующим снифингу, является шифрование. Нельзя допускать использования фирменных небезопасных прикладных протоколов или унаследованных протоколов, передающих данные явным образом. Замена небезопасных протоколов (таких как telnet) на их надежные шифрованные аналоги (такие как SSH) представляется серьезным барьером от перехвата. Замена всех небезопасных протоколов в большинстве случаев маловероятна. Вместо прекращения использования протоколов, передающих данные явным образом, остается только одна возможность - шифрование всего сетевого трафика на 3 уровне, используя IPSec. Осуществляя шифрование на 3 уровне, возможно продолжать использовать небезопасные протоколы, поскольку все данные будут инкапсулированы IPSec и зашифрованы при передаче по сети. Таким образом, унаследованные приложения, которые используют старые протоколы, не пострадают. IPSec полностью прозрачен для приложений и пользователей. Это открытый стандарт, поддерживаемый многими вендорами, включая Microsoft и Cisco. Кроме того, многие реализации Unix поддерживают IPSec. Легкая настройка IPSec в Win2k/XP дополнительно увеличивает его доступность. Осуществление технологии шифрования на 3 уровне, таких как IPSec решает проблему снифинга полностью. Масштабируемость, распространенность, доступность IPSec выделяет его как прагматическое решение проблемы перехвата сетевого трафика. |
Статья хороша, но я не понял одного момента:
Он перехватывает все пакеты, но когда ставлю фильтр допустим по FTP Идёт перехват только моих обращений к серверу, но почему нет обращений других IP к FTP? У нас в сети не бывает, что на FTP сервер не заходят. |
Скорее всего тебе надо настроить режим перехватывать пакеты во всей сети, хотя у меня такой режим стоит постоянно.
Есть вопрос: я хочу использовать Wireshark как парсер пакетов: открываю pcap файл и накладываю фильтра. Это все получается, но неполучается автоматически сохранять в другой файл. Делаю что-то такое: Run('C:\Program Files\Wireshark\wireshark.exe -r D:\svn\signatures\test\08015fce43c57886b335f167600 e2be4.pcap -w D:\svn\signatures\test\parsed\08015fce43c57886b335 f167600e2be4.pcap') |
Цитата:
Ставишь снифер у себя на компе или на сервере? Если у себя на компе, то разумеется у тебя отображаются только твои пакеты (я исключаю вариант, что сеть на хабах). Если хочешь все пакеты, то либо ставь его на сервере, либо ARP-spoofing (ettercap). |
еще до прочтения статьи захотелось поиметь одного умника написавшего инвайтер ВК. У инвайтера код рабочий оказался, он отправлял приглашения. Удивился- халявный, рабочий инвайтер ВК, что то новенькое. После жесткого тестирования, удалось его загнуть и он выдал ошибку: "не могу подключиться к SMTP". Выводы- акии отправляются на мыло.
Вспомнилось детство, пинчи, крипты и т.д. Так же вспомнилась статья на ачате "обратная сторона трояна". Статью в скором порядке нашел, бегло пробежался по ней. Побежал скачал Wireshark. получил пароли от почты.... Сидел довольный- похекал мир =))) Теперь более мение полное представление имею о Wireshark. Автору спасибО! |
| Время: 18:49 |