Блог Олега Сердюкова

Готовимся анализировать сетевой трафик при помощи Wireshark

Одним из полезнейших инструментов для исследования сетевого трафика является Wireshark. Это кроссплатформенная программа, доступная для MacOS X в частности и для Unix в общем, для Windows. Консольную часть я даже видел на сетевом оборудовании под управлением какого-то проприетарного диалекта Unix. Кроссплатформенность - это огромное достоинство, но для MacOS оно же является и недостатком - для запуска GUI требуется X Window (я его ставлю всегда, но некоторым придётся доставать диски с дистрибутивом MacOS X и его доставлять), и интерфейс программы вызывает отнюдь не самые тёплые эмоции (с внешним видом можно смириться, но есть проблемы с копированием, отработкой клавиатурных комбинаций и прочие мелочи, не дающие нормально работать). Поэтому для MacOS (да и для других Unix) я использую консольную часть, в основном это tshark.

Wireshark даёт много возможностей, перечислю их без перевода:

  • Deep inspection of hundreds of protocols, with more being added all the time
  • Live capture and offline analysis
  • Standard three-pane packet browser
  • Multi-platform: Runs on Windows, Linux, OS X, Solaris, FreeBSD, NetBSD, and many others
  • Captured network data can be browsed via a GUI, or via the TTY-mode TShark utility
  • The most powerful display filters in the industry
  • Rich VoIP analysis
  • Read/write many different capture file formats: tcpdump (libpcap), Pcap NG, Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network General Sniffer® (compressed and uncompressed), Sniffer® Pro, and NetXray®, Network Instruments Observer, NetScreen snoop, Novell LANalyzer, RADCOM WAN/LAN Analyzer, Shomiti/Finisar Surveyor, Tektronix K12xx, Visual Networks Visual UpTime, WildPackets EtherPeek/TokenPeek/AiroPeek, and many others
  • Capture files compressed with gzip can be decompressed on the fly
  • Live data can be read from Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame Relay, FDDI, and others (depending on your platform)
  • Decryption support for many protocols, including IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP, and WPA/WPA2
  • Coloring rules can be applied to the packet list for quick, intuitive analysis
  • Output can be exported to XML, PostScript®, CSV, or plain text

    Например, с помощью Wireshark параноики могут убедиться, что Adium при работе с Google Talk по протоколу Jabber не передаёт пароли в открытом виде и для обмена использует шифрование xmpp-tls, а именно TLSv1 TLS_RSA_WITH_RC4_128_SHA:

    Jabber XML Messaging
    
    
    
        to='gmail.com'
        xmlns='jabber:client'
        xmlns:stream='http://etherx.jabber.org/streams'
        version='1.0'
    
    
            from="gmail.com"
            id="..."
            version="1.0"
            xmlns:stream="http://etherx.jabber.org/streams"
            xmlns="jabber:client"
    
    
    
    xmlns="urn:ietf:params:xml:ns:xmpp-tls"
    
    
    
    xmlns="urn:ietf:params:xml:ns:xmpp-sasl"
    
    X-GOOGLE-TOKEN
    
    
    
    
    
    xmlns='urn:ietf:params:xml:ns:xmpp-tls'
    
    
    xmlns="urn:ietf:params:xml:ns:xmpp-tls"
    
    Secure Socket Layer
    Version: TLS 1.0 (0x0301)
    Handshake Protocol: Client Hello
        Handshake Type: Client Hello (1)
        Version: TLS 1.0 (0x0301)
    
    Handshake Protocol: Server Hello
    Handshake Type: Server Hello (2)
        Version: TLS 1.0 (0x0301)
        Cipher Suite: TLS_RSA_WITH_RC4_128_SHA (0x0005)
        Compression Method: null (0)
    
    
    

    Я планирую написать несколько статей о детальном исследовании трафика, но для начала расскажу, как установить Wireshark (с другой стороны, если Вы добрались до этой фразы, то поставить Wireshark можете без малейшей моей помощи ;-).

    Списать установочный образ можно списать с сайта Wireshark. Берём образ "OS X 10.5 (Leopard) Intel.dmg" (40 MB)

    Как я сказал выше, нужно обязательно иметь установленную поддержку подсистемы X Window (это XQuartz или же X11.app). Она может уже у вас стоять, но если Wireshark не будет запускаться, то нужно будет поставить X11 с дистрибутива MacOS X.

    1. Перетаскиваем Wireshark в Applications.
    2. Открывем Utility, в нём будут такие файлы:

    3. Перетащить содержимое каталога "Command Line" в $HOME/bin, /usr/local/bin, /usr/sbin или же в другой каталог, который есть в $PATH. Я расположил утилиты в /usr/sbin. Этот каталог недоступен через Finder, в него нужно явно перейти, используя меню Finder "Go/Go to Folder...".

    4. Для решения вопроса с доступом к устройствам захвата трафика /dev/bpf* перетащить каталог ChmodBPF на алиас StartupItems.
    5. Программа установлена. Это только начало серии. В следующих статьях я приведу примеры захвата и анализа сетевого трафика на Вашем Маке.

      Сайт программы: Wireshark.

Comments