kali linux wireshark обучение перехват паролей

Взлом пароля веб-сайта с использованием WireShark (и защита от этого)

Вы знаете, что каждый раз, когда вы заполняете ваши имя пользователя и пароль на веб-сайте и нажимаете ENTER, вы отправляете ваш пароль. Хорошо, конечно вы это знаете. Как ещё мы собираемся авторизовать себя на веб-сайте?? Но (да, здесь есть маленькое НО) когда веб-сайт позволяет вам авторизоваться используя HTTP (PlainText), очень просто захватить этот трафик от любой машины в локальной сети (и даже в Интернете) и проанализировать его. Это означает, кто-то может хакнуть пароль от любого веб-сайта, использующего HTTP протокол для авторизации. Понятно, чтобы сделать это через Интернет вы должны быть способны сидеть на шлюзе или центральном хабе (BGP роутеры смогли бы — если у вас есть доступ, и трафик проходит через них).

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

Итак, давайте попробуем это на простом веб-сайте. Я это буду делать внутри одной машины. Вы же можете попробовать это между VirtualBox/VMWare/Физическими машинами.

Обратите внимание: некоторые роутеры на делают широковещательную рассылку, в этих отдельных случаях ничего не получится.

Шаг 1. Запуск Wireshark и захват трафик

В Kali Linux вы можете запустить Wireshark проследовав

Приложения > Kali Linux > Top 10 Security Tools > Wireshark

В Wireshark перейдите к пункту меню Capture > Interface и выберите интересующий вас интерфейс, у меня соединение по проводу, поэтому я выбираю eth0, для беспроводного доступа интерфейс может называться wlan0.

В идеале, после нажатия кнопки Start Wireshark должен начаться захват трафика. Если этого не произошло, то перейдите в меню Capture > Start

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

В то время, пока Wireshark прослушивает сетевой трафик и захватывает его. Я открыл браузер и залогинился на веб-сайте, используя имя пользователя и пароль. Когда процесс авторизации был завершён и я вошёл на сайт, я вернулся и остановил захват в Wireshark. Вообще, фильтрацию трафика можно делать и не останавливая захват. После запуска, например, можно установить фильтрацию и просматривать только захват, удовлетворяющий определённым требованиям.

Обычно в Wireshark множество данных. Но нас интересуют только данные, отправленные методом POST.

Почему только POST?

Потому что когда вы печатаете ваше имя и пароль и нажимаете кнопку входа, данные на удалённый сервер отправляются методом POST.

Для фильтрации всего трафика и нахождения данных POST, наберите следующее в окне для ввода фильтра:

Посмотрите скриншот внизу. Он отображает 1 событие событие POST.

Шаг 3: Анализ данных POST на наличие имени пользователя и пароля

Сейчас кликните правой кнопкой на этой линии и выберите Follow TCP Steam

Это откроет новое окно, содержащее что-то вроде такого:

Видите я выделил строчку log=Dimon&pwd=justfortest?

log=Dimon (имя пользователя: Dimon)

pwd=justfortest (пароль: justfortest)

Вот так вот, выдуманный пользователь codeby.net спалил свой пароль.

Как бороться с перехватом трафика WireShark и другими подобными программами

1. Не позволяйте посторонним лицам иметь доступ в вашу сеть. Например, не нужно свой Wi-Fi делать публичным, не нужно сообщать пароль от него посторонним лицам.

2. Когда вы сами пользуетесь публичными точками доступа, то, хотя бы, помните об угрозе перехвата пароля. Даже если вы не производили вход (не вводили логин и пароль), то ваш браузер постоянно обменивается с сайтами, на которых вы авторизованы, данными кукиз. Это не тоже самое что пароль, иногда кукиз просто бесполезны.

Это не значит что нужно прекратить пользоваться публичными точками доступа. Но поменяв пароль, когда вернётесь к «безопасной» сети, вы сделаете бессмысленным захват тех данных, который мог произойти пока вы пользовались публичной сетью.

3. Используйте VPN, эта технология способна решить все проблемы с небезопасными сетями разом.

4. Самый действенный способ — SSL-сертификаты. У меня по этому поводу две новости: плохая и хорошая. Начну с плохой: от нас, от пользователей сайтов, не зависит, установлен ли на веб-сайте SSL-сертификат, если сертификат не установлен, то мы никак не можем это исправить. Хорошая новость: почти все популярные веб сайты (разные твитеры, вконтакте, фейсбуки, гугл-почты, яндекс-почты и т. д.) имеют эти сертификаты. Даже у Википедии теперь есть!

Если вы владелец сайта, то можно задуматься об установлении SSL-сертификата. Кроме уже названного преимущества (невозможность перехвата данных, отправляемых/получаемых на/с вашего сайта), ещё и Гугл обещала учитывать наличие SSL-сертификата при ранжировании (если этот сертификат есть, то позиции в поиске выше). Проблема в том, цена самых дешёвых сертификатов, даже по акции со скидкой, начинается от 400 рублей. За эти деньги можно купить несколько месяцев хостинга, при весьма эфемерной выгоде от наличия SSL-сертификата.

Если вас всё-таки заинтересовали эти сертификаты, то рекомендую обратиться к моей статье «Что такое SSL-сертификаты, для чего они нужны и как сэкономить покупая сертификат». Там и где купить со скидкой, и как установить, и прочее.

Источник

Основы Wireshark. Расшифровка и захват трафика

Привет, друг. В одном из прошлых материалов мы с тобой разбирались как данные передаются в сетях и как разные сетевые элементы взаимодействуют между собой. Если ты пропустил эту статью она ЗДЕСЬ. Всё это нам было нужно, чтобы подготовится к практической части изучения такой непростой темы как перехват и анализ трафика. И начнём мы изучать практическую часть с изучения утилиты Wireshark. Возникает логичный вопрос: почему именно Wireshark? Всё просто, он обладает несколькими особенностями которые выделяют его среди конкурентов:

Установка Wiredhark и первый запуск

Теперь давай запустим Wireshark и начнём с ним работать. Кстати в таких системах как Kali Linux и Parrot Security он уже предустановлен. А для винды и яблока его можно скачать на официальном сайте. Ну, а я буду использовать его на Parrot Security. Кстати есть мнение, в том числе разработчиков Wireshark, что использовать его на Windows — тот ещё тот мазохизм. Особенно для перехвата wi-fi трафика, во первых нужно устанавливать дополнительные драйвера — WinPcap. Но самая главная проблема в том, что режим мониторинга сетевого адаптера в Windows работает максимально криво.

Ну а теперь точно можно запускать Wireshark. Это можно сделать из вкладки «Приложения», а можно из терминала:

сразу после запуска, нам предложат выбрать сетевой интерфейс для запуска захвата. Можем так и сделать. Или, если мы хотим поработать с ранее захваченным трафиком, сохраненным в файл, можем нажать File->Open и выбрать нужный файл.

Выбираем интересующий нас сетевой интерфейс (wlan0mon) и дважды давим на него.

Интерфейс Wireshark

Перед нами появится основное окно программы с которым мы будем проводить больше всего времени. И сразу начнут перехватываться данные. Пока что нажмём «Стоп» (красный квадратик в левом верхнем углу) и порассматриваем интерфейс программы.

Пройдёмся по интерфейсу сверху вниз:

Настройка Wireshark

Общие параметры самого приложения WIreshark находятся во вкладке Edit->Preferences. Их можно настроить в зависимости от своих потребностей или предпочтений. Но я бы, на стадии знакомства с программой, не рекомендовал туда лезть. С опытом использования программы и работы с трафиком, понимание что тебе нужно подкрутить для удобства придет само. А потому просто кратко перечислим какие здесь есть разделы:

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

Перейдем в Edit->Preferences и во вкладке Appearance выберем раздел Columns. Здесь жмем на плюсик и добавляем такие колонки, с такими параметрами:

Расшифровка беспроводного трафика

Когда мы запустили захват трафика на интерфейсе wlan0mon ты наверняка обратил внимание, что в Packet List отображается всё что угодно, кроме того что нужно. А именно из полезной информации там можно найти только название сети (SSID) и MAC адреса (на самом деле кое-что ещё есть), а какой-нибудь интересной информации нет, от слова «совсем». На самом деле она есть, просто она зашифрована. Почему так? Ответ банален — потому что трафик шифруется. Соответственно надо его расшифровать. А для этого надо понимать некоторые процессы которые происходят в wi-fi сетях.

При передаче данных по wi-fi трафик шифруется с использованием ключа PTK (Pairwise Transient Key). При этом этот ключ динамичный, то есть создаётся заново для каждого нового соединения. А соответственно трафик для каждого соединения в одной и той же сети зашифрован разными PTK. Когда какой-нибудь клиент переподключается, то и PTK тоже меняется. Что бы этот самый PTK узнать необходимо перехватить четырёх этапное рукопожатие. Ну и знать пароль, имя (SSID) wi-fi сети и канал на котором она работает.

Перехват handshake

Как узнать пароль wi-fi сети я статью уже писал, поэтому примем за аксиому что он у тебя есть. А SSID и канал мы и так видим в Wireshark, вопрос остаётся только в PTK. Соответственно нужно перехватить рукопожатие и не какое-нибудь, а именно то которое произошло между интересующим нас клиентом и точкой доступа непосредственно перед обменом интересующей нас информацией. Наш адаптер уже в режиме мониторинга, и необходимые нам данные мы видим в Packet Details при нажатии на пакет из интересующей нас сети:

Можем сразу открываем терминал и запускаем перехват рукопожатия:

ждать повторных подключений мы не будем, поэтому помогаем отключится всем устройствам в сети:

и спустя небольшой промежуток времени видим в правом верхнем углу нашего терминала появилась надпись: WPA handshake

это означает, что рукопожатие мы получили, а значит успех близок. Вернемся в Wireshark.

В Filter Toolbar нужно написать:

Это необходимо что бы убедится что рукопожатие действительно у нас, если это так — можем продолжать. Теперь сделаем то, что я чуть раньше предупреждал не делать, а именно поменяем настройки протоколов. Идём Edit-> Preferences и выбираем вкладку Protocols. В ней нам надо найти IEEE 802.11 и поставить галку Enable decryption после чего нажать Edit

в появившемся окне жмём «+» и там где Key type выбрать wpa-pwd. А там где Key нужно ввести через двоеточие «пароль:имя сети». Потом нажать ОК и сохранить изменения в настройках протокола.

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

Анализ трафика в Wireshark

В большинстве случаев (почти всегда) анализ перехваченного трафика происходит в оффлайн-режиме. Т.е. ты сначала перехватываешь трафик, потом сохраняешь его в файл перехвата (File->Save). Потом опять перехватываешь и опять сохраняешь, потом объединяешь все файлы перехвата в один (File->Merge). И только потом, в комфортных условиях, анализируешь весь трафик скопом. И, кстати, эти функции, с сохранением и объединением, ты будешь использовать гораздо чаще чем ты думаешь. С сохранением, потому что получить с первого раза сведения которые тебе нужны удаётся далеко не всегда. Да и если анализировать трафик в онлайне — по любому что-нибудь пропустишь. А с объединением потому, что когда у тебя есть несколько файлов перехвата — разбирать их по отдельности — очень глупая и трудоёмкая идея.

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

Практика анализа трафика беспроводных сетей

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

Схематично принцип действия режимов можно нарисовать так:

Фильтры Wireshark

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

Фильтрация по идентификатору

Wireshark собирает данные всех сетей находящихся в радиусе действия сетевого адаптера, поэтому наиболее логично первоначально отфильтровать трафик конкретной сети, которая нас интересует. Сделать это можно по имени беспроводной сети (SSID):

хотя наиболее корректно будет отфильтровать по bssid. BSSID — это идентификатор базового набора услуг (Basic Service Set Identifier). Он присваивается каждой точке и идентифицирует её, при этом он посылается в каждом беспроводном пакете управления и пакете данных из передающей точки доступа. BSSID записывается в заголовок пакета и это и есть MAC адрес нашей точки доступа. Посмотрев его в заголовке, можем создать фильтр чтобы видеть трафик проходящий только через нужную точку доступа:

Часто используемые фильтры Wireshark

Не менее полезным, в некоторых ситуациях будет отфильтровать трафик по используемому каналу связи:

можно увидеть трафик передаваемый по протоколу ARP, это даст возможность понять какие устройства в данный момент подключены к локальной сети, увидеть их MAC и IP адреса.

Также довольно часто используются такие фильтры:

покажет отправленные dns-запросы, так можно узнать какие сайты посещал пользователь и какими онлайн-ресурсами пользовался.

отфильтрует трафик связанный с конкретным IP (где он был получателем или отправителем).

покажет tcp трафик, по такому же принципу можно отфильтровать трафик по любому другому протоколу, например udp или icmp.

Если мы видим, что соединение с сайтом не защищено т.е. происходит по протоколу http, это открывает перед нами большие возможности. Мы можем увидеть передаваемые данные, в том числе данные авторизации и данные форм, загружаемые и открываемые файлы, передаваемые и установленные cookie,

http отфильтровать http трафик
http.host == «адрес» показать запросы к определённому сайту
http.cookie http-запросы в которых передавались cookie
http.set_cookie запросы в которых были установлены cookie в браузер
http.content_type contains «image» поиск любых переданных изображений, можно конкретизировать заменив «image» на «jpeg» или другие.
http.authorization поиск запросов авторизации
http.request.uri contains «zip» поиск определённого типа файлов. zip — заменить на нужное

Кстати, что бы сохранить какой-нибудь найденный файл надо нажать на него правой кнопкой мыши в окне Packet Details и выбрать Export Packet Bytes и указать место куда его нужно сохранить:

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

Источник

Этичный хакинг с Михаилом Тарасовым (Timcore)

Блог об Этичном Хакинге

#43 Kali Linux для начинающих. Сниффим пароли.

Я надеюсь, Вам понравилось взламывать. Давайте рассмотрим другие инструменты Kali Linux. Мы уже рассмотрели некоторый перечень инструментов, такие как «nmap», «netdiscover», «nessus» и т.д.

Также я упоминал «wpscan», «drupalscan». Мы рассмотрели анализ баз данных, и подобрали имя пользователя и пароль к ней. В рамках данного курса мы не будем рассматривать раздел беспроводных атак, а также реверс-инжиниринг. Это темы для отдельных курсов. Продолжим рассматривать инструменты Kali, и перейдем в раздел сниффинг и спуфинг. В частности нас будет интересовать инструмент для сниффинга, который называется «wireshark»:

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

Для начала выбираем меню «Capture», далее «Options»:

Здесь нужно выбрать сетевой интерфейс, с которого Вы будете перехватывать трафик. Давайте я объясню подробнее. У большинства современных компьютеров или ноутбуков есть несколько сетевых интерфейсов. Как правило, это проводной и беспроводной интерфейс.

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

Если Вы работаете с ноутбука дома, то скорее всего у Вас беспроводной интерфейс.

Обратите внимание, что я использую Kali в качестве виртуальной машины. Виртуальная машина думает, что это проводное соединение, а не беспроводное, т.е. eth0. Мы проговаривали это в лекции по настройке сети. Имейте ввиду, что если бы использовалось беспроводное соединение, то сетевой интерфейс отображался как адаптер «wlan0», но так как у меня проводное соединение, то указан интерфейс «eth0».

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

Нажимаем кнопку «start», чтобы начать мониторить или сниффить сеть:

Итак, я вернулся на сервер TomCat, и авторизировался на нем. Таким образом, появляется сценарий, при котором пользователь admin, т.е. я, авторизируется в панеле управления, а хакер сидит в wireshark, и надеется получить учетные данные TomCat. После авторизации у нас будут появляться пакеты, и так как я использую закрытую сеть, то используется немного пакетов. Однако, если использовать другие инструменты, открытую сеть, то в Wireshark будет использовано больше пакетов.

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

Вспомните, что мы говорили об HTTP, SSH, FTP. Но сетевых протоколов гораздо больше.

Сейчас нас интересует протокол HTTP, потому что я знаю, что в панель управления TomCat зашли через браузер, и эта панель находится на веб-сервере, и, скорее всего, к ней можно получить доступ через HTTP или HTTPS.

HTTPS – это безопасный и зашифрованный HTTP. И если бы мне не повезло, и админ использовал бы зашифрованный протокол HTTPS, я не смог бы расшифровать данные.

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

Нужно пролистать вниз, чтобы найти протокол HTTP:

Обратите внимание на строку фильтра. Она выделена зеленым цветом. Это означает, что WireShark понимает то, что мне нужно. Выберем дополнительный параметр к http. Это contains, в правом верхнем углу:

WireShark не понимает то, что мне нужно. Если остановить курсор мыши на слове «contains», мы получим вывод более полного перечня информации.

Иными словами, нам нужно дополнительно прописать еще значение, чтобы WireShark понимал его. Я хочу, чтобы программа отбрасывала все пакеты, кроме http-пакетов. Дополнительно введем слово manager, чтобы еще сузить список пакетов, которые будут выводиться:

К примеру, если я зайду на какой-либо сайт через HTTPS, то эти пакеты будут проигнорированы, потому что я указал только HTTP. Слово «manager» я указываю для того, чтобы использовать его в фильтре, так как я знаю, что при авторизации в панели управления TomCat, пакет должен содержать слово «manager». Кликаем «Ok» и переходим в основное окно WireShark:

Мы можем поиграться с фильтром, выводя различные пакеты:

И если кликать по выведенным пакетам, то отображается их содержимое.

Например, я ищу TomCat:

Как видим, отображается HTTP-запрос, в котором админ заходил на страницу авторизации. Мы можем просмотреть абсолютно все пакеты и проанализировать их. Мы можем видеть, куда заходил пользователь и т.д.

В этом видео нас интересуют учетные данные (имя пользователя и пароль), который админ использовал при авторизации в панели управления. Они нам нужны для того, чтобы взломать систему.

Давайте проанализируем пакет HTTP 480 GET:

Пользователь, исходя из этих данных успешно авторизировался. Просматривая содержимое этого пакета мы можем увидеть информацию «Authorization: Basic»:

Итак, почему нам нужна именно эта строка? На самом деле – это есть имя пользователя и пароль, который использовал admin. Данная строка не зашифрована, а обфусцированна, и в данном случае она закодирована с помощью base64. Это тип кодирования, который можно определить по символу равно «=» в конце. На самом деле base64 – это один из самых простых методов кодировки, и его очень легко раскодировать.

Копируем данную запись, нажав правую клавишу мыши и далее «Copy» «Value».

В интернете ищем декодер base64:

Как видим, внизу страницы находятся имя пользователя и пароль, которые были закодированы.

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

Нам совершенно не важно какой длины будет пароль, так как мы можем перехватить любую его длину.

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

Источник

Операционные системы и программное обеспечение