Вы знаете, что каждый раз, когда вы заполняете ваши имя пользователя и пароль на веб-сайте и нажимаете 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, наберите следующее в окне для ввода фильтра:
http.request.method == "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-сертификаты, для чего они нужны и как сэкономить покупая сертификат». Там и где купить со скидкой, и как установить, и прочее.
хрень понаписана. для ламаков.