Sniffer

Sniffer

Мы из Тени

Когда обычный пользователь слышит термин «сниффер», он сразу же начинает интересоваться тем, что это такое и зачем оно нужно. Мы постараемся объяснить все простым языком. Впрочем, данная статья будет предназначена не только для начинающих юзеров, но и для опытных веб-мастеров. Если вы знакомы с понятием интернет-трафика, то уже само определение позволит вам понять, о чем идет речь. Но то, каким образом оно применяется, как реализуется и как от него защититься, будет интересно всем.


Определение

Сниффер – это анализатор трафика. В свою очередь, трафик – это вся информация, которая проходит через компьютерные сети.

Этот анализатор смотрит, какая информация передается. Для этого ее необходимо перехватить. Фактически, это незаконная вещь, ведь таким образом люди часто получают доступ к чужим данным. Это можно сравнить с ограблением поезда – классический сюжет большинства вестернов. Вы передаете какую-то информацию другому пользователю. Ее везет «поезд», то есть сетевой канал. Придурки из банды кровавого Джо перехватывают состав и грабят его до нитки. В нашем случае информация идет дальше, то есть злоумышленники не крадут ее в прямом смысле этого слова. Но, допустим, что эта информация представляет собой пароли, личные записи, фотографии и тому подобное. Злоумышленники могут просто переписать и сфотографировать все это. Таким образом они получат доступ к секретным данным, которые вы хотели бы скрыть. Да, у вас будет вся эта информация, она к вам дойдет. Но вы будете знать, что все то же самое знают и совершенно посторонние люди.

А ведь в XXI веке больше всего ценится именно информация!

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

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


Принцип работы

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

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

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

Дело в том, что конечный пользователь все равно заметит, что в каком-то месте имеет место разрыв канала.

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

Собственно, это и называется кибератаками и хаккерством! Кстати, если грамотно установить эти самые коммутаторы, то можно полностью защитить сегмент от всевозможных кибератак. Существуют и другие методы защиты, о которых мы еще поговорим в самом конце.


Применение

Разумеется, в первую очередь, данное понятие имеет то применение, о котором шла речь выше, то есть хаккерские атаки и незаконное получение пользовательских данных.



Перехват паролей с помощью Wireshark

Многие пользователи и не догадываются, что заполняя логин и пароль при регистрации или авторизации на закрытом Интернет-ресурсе и нажимая ENTER, эти данные легко могут перехватить. Очень часто они передаются по сети не в защищенном виде. Поэтому если сайт, на котором вы пытаетесь авторизоваться, использует HTTP протокол, то очень просто выполнить захват этого трафика, проанализировать его с помощью Wireshark и далее с помощью специальных фильтров и программ найти и расшифровать пароль.

Лучшее место для перехвата паролей – ядро сети, где ходит трафик всех пользователей к закрытым ресурсам (например, почта) или перед маршрутизатором для выхода в Интернет, при регистрациях на внешних ресурсах. Настраиваем зеркало и мы готовы почувствовать себя хакером.


Шаг 1. Устанавливаем и запускаем Wireshark для захвата трафика

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


Шаг 2. Фильтрация захваченного POST трафика

Открываем браузер и пытаемся авторизоваться на каком-либо ресурсе с помощью логина и пароля. По завершению процесса авторизации и открытия сайта мы останавливаем захват трафика в Wireshark. Далее открываем анализатор протоколов и видим большое количество пакетов. Именно на этом этапе большинство ИТ-специалистов сдаются, так как не знают, что делать дальше. Но мы знаем и нас интересуют конкретные пакеты, которые содержат POST данные, которые формируются на нашей локальной машине при заполнении формы на экране и отправляются на удаленные сервер при нажатии кнопки «Вход» или «Авторизация» в браузере.

Вводим в окне специальный фильтр для отображения захваченных пакетов: http.request.method == “POST”

И видим вместо тысячи пакетов, всего один с искомыми нами данными.


Шаг 2. Фильтрация захваченного POST трафика

Открываем браузер и пытаемся авторизоваться на каком-либо ресурсе с помощью логина и пароля. По завершению процесса авторизации и открытия сайта мы останавливаем захват трафика в Wireshark. Далее открываем анализатор протоколов и видим большое количество пакетов. Именно на этом этапе большинство ИТ-специалистов сдаются, так как не знают, что делать дальше. Но мы знаем и нас интересуют конкретные пакеты, которые содержат POST данные, которые формируются на нашей локальной машине при заполнении формы на экране и отправляются на удаленные сервер при нажатии кнопки «Вход» или «Авторизация» в браузере.

Вводим в окне специальный фильтр для отображения захваченных пакетов: http.request.method == “POST”

И видим вместо тысячи пакетов, всего один с искомыми нами данными.


Шаг 3. Находим логин и пароль пользователя

Быстрый клик правой кнопки мыши и выбираем из меню пункт Follow TCP Steam

После этого в новом окне появится текст, который в коде восстанавливает содержимое страницы. Найдем поля «password» и «user», которые соответствуют паролю и имени пользователя. В некоторых случаях оба поля будут легко читаемы и даже не зашифрованы, но если мы пытаемся захватить трафик при обращении к очень известным ресурсам типа: Mail.ru, Facebook, Вконтакте и т.д., то пароль будет закодирован:

Таким образом, в нашем случае:

Имя пользователя: networkguru

Пароль: e4b7c855be6e3d4307b8d6ba4cd4ab91


Шаг 4. Определение типа кодирования для расшифровки пароля

Заходим, например, на сайт http://www.onlinehashcrack.com/hash-identification.php#res и вводим наш пароль в окно для идентификации. Мне выдан был список протоколов кодирования в порядке приоритета:

  • MD5
  • NTLM
  • MD4
  • LM
  • Шаг 5. Расшифровка пароля пользователя

На данном этапе можем воспользоваться утилитой hashcat:

~# hashcat -m 0 -a 0 /root/wireshark-hash.lf /root/rockyou.txt

На выходе мы получили расшифрованным пароль: simplepassword

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

  • Протокол POP и фильтр выглядит следующим образом: pop.request.command == "USER" || pop.request.command == "PASS"
  • Протокол IMAP и фильтр будет: imap.request contains "login"
  • Протокол SMTP и потребуется ввод следующего фильтра: smtp.req.command == "AUTH"
  • и более серьезные утилиты для расшифровки протокола кодирования


Шаг 6. Что делать, если трафик зашифрован и используется HTTPS?

Для ответа на этот вопрос есть несколько вариантов.

Вариант 1. Подключиться в разрыв соединения между пользователем и сервером и захватить трафик в момент установления соединения (SSL Handshake). В момент установки соединения можно перехватить сеансовый ключ.

Вариант 2. Вы можете расшифровать трафик HTTPS, используя файл журнала сеансовых ключей, записываемый Firefox или Chrome. Для этого браузер должен быть настроен на запись этих ключей шифрования в файл журнала (пример на базе FireFox), и вы должны получить этот файл журнала. По сути, необходимо похитить файл с ключом сессии с жесткого диска другого пользователя (что является незаконным). Ну а далее захватить трафик и применить полученный ключ для его расшифровки.

Уточнение. Мы говорим о веб-браузере человека, у которого пытаются украсть пароль. Если же мы подразумеваем расшифровку нашего собственного HTTPS трафика и хотим потренироваться, то эта стратегия будет работать. Если вы пытаетесь расшифровать HTTPS трафик других пользователей без доступа к их компьютерам, это не сработает – на то оно и шифрование, и личное пространство.

После получения ключей по варианту 1 или 2 необходимо прописать их в WireShark:

  1. Идем в меню Edit – Preferences – Protocols – SSL.
  2. Ставим флаг «Reassemble SSL records spanning multiple TCP segments».
  3. «RSA keys list» и нажимаем Edit.
  4. Вводим данные во все поля и прописываем путь в файлу с ключом

WireShark может расшифровывать пакеты, которые зашифрованы с использованием алгоритма RSA. В случае если используются алгоритмы DHE/ECDHE, FS, ECC, сниффер нам не помощник.

Вариант 3. Получить доступ к web-серверу, которым пользуется пользователь, и получить ключ. Но это является еще более сложной задачей. В корпоративных сетях с целью отладки приложений или контент фильтрации этот вариант реализуется на легальной основе, но не с целью перехвата паролей пользователей.

Наш канал в телеграм: https://t.me/WeFromTheShadows


Report Page