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

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

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

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

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

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

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

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

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

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

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


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

HTTP/1.1 302 Found

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: password= ; expires=Thu, 07-Nov-2024 23:52:21 GMT; path=/

Місцезнаходження: loggedin.php

Content-Length: 0

Connection: close

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

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

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

Пароль:

Крок 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. Вводимо дані у всі поля та прописуємо шлях у файлі з ключем

Здрастуйте, цю невелику статтю, скоріше навіть короткий опис я хотів би присвятити найпростішому способу перехоплення cookies файлів у wi-fi мережі. Що таке cookies і навіщо вони потрібні, я тут розповідати не буду, якщо людина задалася ідеєю перехоплення випічки; у бездротовій мережі, я думаю, він повинен знати, що це таке і навіщо йому це треба. Скажу лише одне, за допомогою цих файлів можна отримати доступ до чужих облікових записів на різних сайтах, що вимагають від користувачів проходження процесу аутентифікації (Наприклад mail.ru, vkontakte.ru і т.д.).

Тож приступимо. Для початку нам потрібно знайти саму бездротову мережу, з відкритим шлюзом доступу в інтернет, і бажано, щоб у мережі було досить багато клієнтів. Наприклад, підійде будь-яка мережа у великих торгових центрах, аеропортах, різних кав'ярнях, у таких місцях люди зазвичай користуються wi-fi доступом в інтернет, для читання пошти, перевірки акаунтів на різних сайтах знайомств, перегляд жж та різноманітних форумів. Це все саме те, що нам і потрібно. Визначившись із вибором розташування мережі, вивчивши певний годинник максимальної кількості клієнтів, перейдемо безпосередньо до бойових дій. Для цього нам знадобиться ноутбук, з wi-fi адаптером, та певним набором програм. У моєму випадку я користувався ноутбуком Acer Aspire 3610, клієнтською wi-fi карткою D-Link DWL G650 та встановленою ОС BackTrack3.

Я раджу вам використовувати дану ОС, так як в неї вже включений весь набір програм, який може знадобитися, і найголовніше, те, що вам не обов'язково ставити Backtrack на ваш жорсткий диск, цю ОС ви можете завантажувати безпосередньо з cd-диска або flash накопичувача.

Тепер перейдемо до програмного забезпечення. Я використав kismet для виявлення мереж, та WifiZoo, для перехоплення cookies. Докладно зупинюся на другій програмі. WifiZoo є пасивним сканером ефіру і збирає багато корисної інформації, таку як: pop3, smtp traffic, http cookies/authinfo, msn, ftp credentials, telnet network traffic, nbt, і т.д. Єдиний недолік цієї програми це відсутність режиму Channel hopping, WifiZoo просто прослуховує бездротовий інтерфейс, і не може, якщо можна так висловитися стрибати з каналу на канал. Але цей недолік компенсується за допомогою іншої програми Kismet, яка підтримує цей режим. Для запуску WifiZoo вам знадобиться:

  • python
  • scapy
  • Kismet

Отже запускаємо програму, для початку запустимо Kismet, для підтримки режиму channel hopping, далі запускаємо безпосередньо WifiZoo, перед вами має з'явитися таке вікно:

Тепер залишилося тільки сидіти і чекати поки ви щось перехопите, все що перехоплює програма можна знайти в логах, які знаходяться в директорії з програмою /logs/. Також ви можете запустити GUI інтерфейс, який автоматично піднімається на http за адресою 127.0.0.1:8000

Писати про всі особливості цієї чудової програми я не буду, думаю ви самі розберетеся в інших можливостях, тому що в даний момент нас цікавлять тільки cookies. Натискаємо на посилання з написом cookies і дивимося, що ж ми перехопили:

Чи замислювалися ви коли-небудь про те, як на деяких веб-сайтах відбувається персоніфікація відвідувачів? Це може виражатися, наприклад, у запам'ятовуванні вмісту "візка" (якщо цей вузол призначений для продажу товарів) або у способі заповнення полів будь-якої форми. У протоколі HTTP, що лежить в основі функціонування World Wide Web, немає засобів, що дозволяють відстежувати події від одного відвідування вузла до іншого, тому для зберігання таких "станів" було розроблено спеціальне доповнення. Цей механізм, описаний у документі RFC 2109, забезпечує вставку в запити і відповіді HTTP спеціальних фрагментів даних cookie, що дозволяють Web-вузлам відстежувати своїх відвідувачів.

Дані cookie можуть запам'ятовуватися під час сеансу зв'язку ( per session), залишаючись в оперативній пам'яті протягом одного сеансу і віддаляючись при закритті браузера, або після закінчення заданого проміжку часу. В інших випадках вони бувають постійними. persistent), залишаючись на жорсткому диску користувача як текстового файла. Зазвичай вони зберігаються в каталозі Cookies (%windir% \Cookies - у Win9x і %userprofile%\Cookies - у NT/2000). Неважко здогадатися, що після захоплення файлів cookie в Internet зломщик може видавати себе за користувача даного комп'ютера, або збирати важливу інформацію, що міститься в цих файлах. Прочитавши наступні розділи, ви зрозумієте, як це зробити.

Перехоплення файлів cookie

Найпряміший спосіб полягає в перехопленні файлів cookie при їх передачі через мережу. Потім перехоплені дані можна використовувати під час входу на відповідний сервер. Таке завдання можна вирішити за допомогою будь-якої утиліти перехоплення пакетів, однак однією з найкращих є програма Лаврентія Нікули. Laurentiu Nicula) SpyNet/PeepNet. До складу SpyNet входять дві утиліти, які працюють у комплексі. Програма CaptureNetвиконує захоплення самого пакета та зберігає його на диску, а утиліта PeepNet відкриває цей файл та перетворює його на читабельний формат. Наступний приклад є фрагментом відновленого програмою PeepNet сеансу зв'язку, під час якого файл cookie служить для аутентифікації та управління доступом до сторінок, що переглядаються (для збереження анонімності імена змінені).

GET http://www.victim.net/images/logo.gif HTTP/1.0 Accept: */* Referrer: http://www.victim.net/ Host: www.victim.net Cookie: jrunsessionid=96114024278141622; cuid=TORPM!ZXTFRLRlpWTVFISEblahblah

У наведеному прикладі видно фрагмент cookie, поміщений у запит HTTP, що надходить на сервер. Найважливішим є поле cuid=, в якому задається унікальний ідентифікатор, що використовується під час автентифікації користувача на сайті www.victim.net. Припустимо, що після цього зломщик відвідав вузол victim.net, отримав власний ідентифікатор та файл cookie (передбачається, що вузол поміщає дані cookie не у віртуальну пам'ять, а записує їх на жорсткий диск). Тоді зломщик може відкрити власний файл cookie і замінити в ньому ідентифікатор поля cuid=, взявши його з пакета, що перехопив. У цьому випадку при вході на сервер victim.net він сприйматиметься як користувач, чиї дані cookie були перехоплені.

Здатність програми PeepNetвідтворювати весь сеанс зв'язку або його фрагмент значно спрощує реалізацію атак цього типу. За допомогою кнопки Go get it!Ви можете повторно вийняти сторінки, які переглядалися користувачем, використовуючи дані cookie, перехоплені раніше програмою CaptureNet. У діалоговому вікні утиліти PeepNet можна побачити інформацію про чиїсь виконані розпорядження. При цьому для аутентифікації використовуються дані cookie, перехоплені програмою CaptureNet. Зверніть увагу на кадр, розташований у нижньому правому куті діалогового вікна з даними сеансу зв'язку, та на рядок, який слідує за рядком Cookie:. Це дані cookie, які використовуються під час аутентифікації.

Це досить спритний трюк. Крім того, утиліта CaptureNetможе надати повний запис трафіку у розшифрованому вигляді, що практично рівносильне можливостям утиліт професійного класу, таких як Sniffer Pro компанії Network Associates, Inc. Однак утиліта SpyNetще краще – її можна отримати безкоштовно!

Контрзаходи

Слід остерігатися вузлів, на яких файли cookie використовуються для автентифікації та зберігання важливих ідентифікаційних даних. Одним із інструментів, що допомагають у забезпеченні захисту, є програма Cookie Pal компанії Kookaburra Software, яку можна знайти на веб-сайті http://www.kburra.com/cpal.html. Цей програмний продукт можна настроїти так, щоб для користувача генерувалися попереджувальні повідомлення про спроби веб-сайту скористатися механізмом cookie. При цьому можна "зазирнути за лаштунки" і вирішити, чи дозволяти виконання цих дій. Internet Explorer має вбудований механізм підтримки файлів cookie. Щоб активізувати його, запустіть аплет Internet Options на панелі керування, перейдіть у вкладку Security, виберіть елемент Internet Zone, встановіть режим Custom Level і для постійних і тимчасових даних cookie встановіть перемикач у положення Prompt. Налаштування використання файлів cookie у браузері Netscape виконується за допомогою команди Edit › Preferences › Advancedта установки режиму Warn me before accepting a cookie або Disable cookies (рис. 16.3). Приймаючи файл cookie, потрібно перевірити, чи він записався на диск, і дізнатися, чи збирає Web-вузол інформацію про користувачів.

Відвідуючи вузол, на якому файли cookie служать для аутентифікації, необхідно переконатися, що ім'я та пароль, що спочатку повідомляються, шифруються хоча б за допомогою протоколу SSL. Тоді ця інформація з'явиться у вікні програми PeepNet щонайменше у вигляді простого тексту.

Автори воліли б повністю відмовитися від файлів cookie, якби багато відвідуваних Web-вузлів не вимагали цього режиму. Наприклад, для популярної в усьому світі служби Hotmail компанії Microsoft наявність файлів cookie є обов'язковою для реєстрації. Оскільки ця служба в процесі автентифікації задіює кілька різних серверів, то додати їх до зони надійних вузлів не так просто (цей процес описаний у розділі "Розумне Використання Зон Безпеки: Загальне Рішення Проблеми Елементів Activex"). У цьому випадку допоможе позначення *.hotmail.com. Файли cookie - далеко не ідеальне вирішення проблеми неповноти протоколу HTML, проте альтернативні підходи, мабуть, ще гірші (наприклад, додавання до URL-адреси ідентифікатора, який може зберігатися на proxy-серверах). Поки не з'явиться краща ідея, єдиним виходом залишається контроль над файлами cookie за допомогою перерахованих вище методів.

Захоплення файлів cookie через URL

Уявімо собі щось жахливе: користувачі Internet Explorer клацають на спеціально сконструйованих гіперпосиланнях і стають потенційними жертвами, ризикуючи, що їх файли cookie будуть перехоплені. Беннет Хазельтон ( Bennett Haselton) та Джемі Маккарті ( Jamie McCarthy) з тінейджерської організації Peacefire, яка бореться за свободу спілкування через Internet, опублікували сценарій, що втілює цю ідею в життя. Цей сценарій витягує файли cookie з клієнтського комп'ютера, якщо його користувач натискає посилання на цій сторінці. В результаті вміст cookie стає доступним для операторів Web-вузла.

Цю можливість можна використовувати з непристойною метою, впроваджуючи дескриптори IFRAME в HTML-код Web-сторінки, електронного повідомлення у форматі HTML або повідомлення з групи новин. У наступному прикладі, запропонованому консультантом з питань безпеки Річардом М. Смітом, демонструється можливість використання дескрипторів IFRAME спільно з утилітою, розробленою організацією Peacefire.

Для того, щоб подібні речі не загрожували нашим особистим даним, сам так роблю і всім раджу завжди оновлювати програмне забезпечення, що працює з HTML-кодом (e-mail клієнти, медіа-програвачі, браузери тощо).

Багато хто воліє просто блокувати отримання файлів cookie, проте більшості веб-вузлів для перегляду необхідна підтримка cookie. Висновок – якщо незабаром з'явиться інноваційна технологія, що дозволяє обходитися без cookie, програмісти та адміністратори з полегшенням зітхнуть, а поки cookie залишається ласим шматком для хакера! Це справді так, оскільки якіснішої альтернативи поки що не існує.

Заходи протидії, що виконуються на стороні сервера

У разі рекомендацій щодо забезпечення безпеки сервера фахівці дають одну просту пораду: не використовуйте механізм cookie без особливої ​​необхідності! Особливо необхідно бути обережними під час використання файлів cookie, які залишаються в системі користувача після завершення сеансу зв'язку.

Звичайно ж, важливо розуміти, що файли cookie можуть використовуватися для забезпечення безпеки Web-серверів для здійснення авторизації користувачів. Якщо все ж таки програмі, що розробляється, необхідно використовувати файли cookie, то цей механізм слід налаштувати таким чином, щоб при кожному сеансі використовувалися різні ключі з коротким періодом дії, а також намагатися не поміщати в ці файли інформацію, яка може бути використана хакерами для злому (таку як ADMIN = TRUE).

Крім того, для забезпечення більшої безпеки під час роботи з файлами cookie можна використовувати їх шифрування для запобігання отриманню важливої ​​інформації. Звичайно, шифрування не вирішує всіх проблем безпеки при роботі з технологією cookie, проте цей метод дозволить запобігти найпростішим зламам, описаним вище.