Перехоплення паролів користувачів за допомогою Wireshark

  1. Крок 1. Встановлюємо і запускаємо Wireshark для захоплення трафіку
  2. Крок 2. Фільтрація захопленого POST трафіку
  3. Крок 3. Знаходимо логін і пароль користувача
  4. Крок 4. Визначення типу кодування для розшифровки пароля
  5. Крок 5. Розшифровка пароля користувача
  6. Крок 6. Що робити, якщо трафік зашифрований і використовується HTTPS?
  7. БОНУС

Багато користувачів і не здогадуються, що заповнюючи логін і пароль при реєстрації або авторизації на закритому Інтернет-ресурсі і натискаючи ENTER, ці дані легко можуть перехопити

Багато користувачів і не здогадуються, що заповнюючи логін і пароль при реєстрації або авторизації на закритому Інтернет-ресурсі і натискаючи ENTER, ці дані легко можуть перехопити. Дуже часто вони передаються по мережі не в захищеному вигляді. Тому якщо сайт, на якому ви намагаєтеся авторизуватися, використовує HTTP протокол, то дуже просто виконати захоплення цього трафіку, проаналізувати його за допомогою Wireshark і далі за допомогою спеціальних фільтрів і програм знайти і розшифрувати пароль.

Найкраще місце для перехоплення паролів - ядро ​​мережі, де ходить трафік всіх користувачів до закритих ресурсів (наприклад, пошта) або перед маршрутизатором для виходу в Інтернет, при реєстраціях на зовнішніх ресурсах. Налаштовуємо дзеркало і ми готові відчути себе хакером.

Крок 1. Встановлюємо і запускаємо Wireshark для захоплення трафіку

Встановлюємо і запускаємо Wireshark для захоплення трафіку

Іноді для цього достатньо вибрати лише інтерфейс, через який ми плануємо захоплення трафіку, і натиснути кнопку Start. У нашому випадку робимо захоплення по бездротовій мережі.

У нашому випадку робимо захоплення по бездротовій мережі

Захоплення трафіку почався.

Крок 2. Фільтрація захопленого POST трафіку

Відкриваємо браузер і намагаємося авторизуватися на якому-небудь ресурсі за допомогою логіна і пароля. По завершенню процесу авторизації і відкриття сайту ми зупиняємо захоплення трафіку в Wireshark. Далі відкриваємо аналізатор протоколів і бачимо велику кількість пакетів. Саме на цьому етапі більшість ІТ-фахівців здаються, тому що не знають, що робити далі. Але ми знаємо і нас цікавлять конкретні пакети, які містять POST дані, які формуються на нашій локальній машині при заповненні форми на екрані і відправляються на віддалені сервер при натисканні кнопки «Вхід» або «Авторизація» в браузері.

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

І бачимо замість тисячі пакетів, всього один з шуканими нами даними.

Крок 3. Знаходимо логін і пароль користувача

Швидкий клік правою кнопки миші і вибираємо з меню пункт Follow TCP Steam


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

HTTP / 1.1 302 Found

Date: Mon, 10 Nov 2014 23:52:21 GMT

Server: Apache / 2.2.15 (CentOS)

X-Powered-By: PHP / 5.3.3

P3P: CP = "NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"

Set-Cookie: non = non; expires = Thu, 07-Nov-2024 23:52:21 GMT; path = /

Set-Cookie: password = e4b7c855be6e3d4307b8d6ba4cd4ab91; expires = Thu, 07-Nov-2024 23:52:21 GMT; path = /

Set-Cookie: scifuser = networkguru; expires = Thu, 07-Nov-2024 23:52:21 GMT; path = /

Location: loggedin.php

Content-Length: 0

Connection: close

Content-Type: text / html; charset = UTF-8

Таким чином, в нашому випадку:

Ім'я користувача: networkguru

Пароль: e4b7c855be6e3d4307b8d6ba4cd4ab91

Крок 4. Визначення типу кодування для розшифровки пароля

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

Крок 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-серверу, яким користується користувач, і отримати ключ. Але це є ще більш складним завданням. У корпоративних мережах з метою налагодження додатків або контент фільтрації цей варіант реалізується на легальній основі, але не з метою перехоплення паролів користувачів.

БОНУС

ВІДЕО: Wireshark Packet Sniffing Usernames, Passwords, and Web Pages

Див. також:

6. Що робити, якщо трафік зашифрований і використовується HTTPS?
6. Що робити, якщо трафік зашифрований і використовується HTTPS?

Дополнительная информация

rss
Карта