У попередній статті ми досліджували файлову систему операційної системи IOS. У цій статті ми будемо аналізувати мережевий трафік, що генерується програмами у Вашому пристрої на платформі IOS.
Автор: Пратика Джіанчандані (Prateek Gianchandani)
У попередній статті ми досліджували файлову систему операційної системи IOS. У цій статті ми будемо аналізувати мережевий трафік, що генерується програмами у Вашому пристрої на платформі IOS. Аналіз мережевого трафіку додатків в багатьох випадках може бути корисний, оскільки можна з'ясувати схему управління сесіями користувачів, схему взаємодії з користувачами, з якими здійснюється з'єднання і внутрішній устрій додатки. Також ми розглянемо способи аналізу мережевого трафіку, що передається через SSL.
Існує два методи прослуховування трафіку в мережі: активний і пасивний. Якщо ви хочете проаналізувати мережевий трафік конкретного пристрою дистанційно, зверніть увагу на утиліту wireshark. Відкрийте Wireshark і почніть прослуховувати трафік, вказавши будь-якої фільтр (наприклад, ip-адреса == 192.168.1.2), щоб побачити трафік, який надсилав або отримується тільки на вашому пристрої, де встановлена операційна система IOS. Можливо втрата деяких пакетів, в разі, якщо у вас не зовсім хороша безпровідна карта.
Якщо ви хочете аналізувати трафік, що проходить через SSL, то, як варіант, можете використовувати комбінацію утиліт Arpspoof і SSLStrip. Однак оскільки нас цікавить аналіз мережевого трафіку для конкретного додатка, ми будемо використовувати інший підхід. Внесу невелике уточнення. У цій статті основну увагу буде приділено аналізу мережевого трафіку, а не його захоплення (hijacking). Ми будемо аналізувати як Wi-Fi трафік, так і трафік мобільного пристрою, і оскільки нас цікавить тільки аналіз трафіку для конкретного додатка, не так важливий вибір кошти того, як цієї зробити.
Використання TCPDump
Використання TCPDump - один з найбільш поширених способів перехоплення трафіку з пристрою. Для початку необхідно встановити цю утиліту на ваш пристрій.
Малюнок 1: Процедура установки tcpdump на пристрій
Тепер почнемо перехоплювати дані з конкретного інтерфейсу і записувати їх в файл.
Малюнок 2: Команда для перехоплення трафіку з інтерфейсу en0 з подальшим записом даних в файл capture.pcap
Для перехоплення даних з мобільного пристрою просто поміняйте ім'я інтерфейсу, вказавши IP-адреса, що використовується при з'єднанні з мобільним пристроєм.
Щоб дослідити дані, записані в файл, вам необхідно скопіювати файл на комп'ютер і проаналізувати його за допомогою Wireshark. Однак, виконавши ці операції, ви можливо помітили, що весь цей процес нудний і стомлює. Для спрощення процесу можна скористатися засобом Pipes . Інформація, що отримується за допомогою tcpdump, занадто низького рівня, яка в багатьох випадках нам малоцікава, оскільки ми аналізуємо дані на рівні додатку. Більш вдалі альтернативи: Burpsuite і Snoop-it.
Використання Snoop-it
Розглянемо аналіз мережевого трафіку за допомогою Snoop-it. Перед цим рекомендую вам ознайомитися з дев'ятої статті з цієї серії, де я розповідав про цей інструмент. Для того щоб побачити мережеву активність відкрийте додаток в Snoop-it і зайдіть в розділ Network (зліва). На малюнку нижче показана мережева активність додатки Snapchat.
Малюнок 3: Мережева активність додатки Snapchat
Якщо ми кликнемо на конкретний мережевий запит, то побачимо вміст цього запиту (рядок запиту, тіло і т. Д.).
Малюнок 4: Приклад вмісту конкретного мережевого запиту
Використання Burpsuite через HTTP
Серед всіх утиліт для аналізу трафіку виділяється Burpsuite, яка дозволяє набагато краще відображати мережеві запити / відповіді. Burpsuite можна завантажити з офіційного веб-сайту. Безкоштовної версії буде досить для вирішення задач, які пропонуються в цій статті. Якщо ви не знайомі з Burpsuite, рекомендую ознайомитися з моєю статтею . Наше головне завдання - використовувати Burpsuite в якості проксі-сервера і маршрутизація трафіку.
Відкрийте Burpsuite, зайдіть в Proxy -> Options.
Малюнок 5: Список проксі-серверів
Натисніть на проксі-сервер, зазначений галочкою, і натисніть на кнопку Edit. У опції Bind to Address виставте значення All Interfaces.
Малюнок 6: Параметри проксі-сервера
Тут ми також можемо змінити порт проксі-сервера або додати новий проксі-сервер. У Burp також можна прив'язати сертифікат для сайтів, які працюють через протокол SSL. За замовчуванням під час установки створюється самоподпісанний certificate authority сертифікат (CA-сертифікат). В налаштуваннях проксі-сервера обрана опція Generate CA-signed per-host certificates, і під час з'єднання з хостом буде створений сертифікат, підписаний CA-сертифікатом, який створений під час установки Burp.
Малюнок 7: Установка параметрів сертифікату
Під час налаштування проксі-сервера з'явиться вікно з попередженням. Натисніть на Yes. Ми вибираємо прив'язку до всіх інтерфейсів, оскільки хочемо, щоб iPhone використовував наш комп'ютер в якості проксі, і прив'язки тільки до локального інтерфейсу буде недостатньо.
Малюнок 8: Вікно з попередженням
Тепер зайдіть в Proxy -> Intercept і переконайтеся в тому, виставлено Intercept is off, оскільки, скоріше, за все у вас не буде необхідності форвардинга кожного пакету, що проходить через проксі.
Малюнок 9: Установка опції Intercept is off
Тепер необхідно налаштувати пристрій для маршрутизації трафіку через ваш проксі-сервер. Зайдіть в Настройки (Settings), клікніть на Wifi і виберіть мережу, до якої ви під'єднані, і в настройках мережі перейдіть, де ви побачите налаштування проксі-сервера. Встановіть IP-адреса комп'ютера, де запущено Burpsuite, і номер порту.
Малюнок 10: Встановлення параметрів проксі-сервера на пристрої
Коли проксі-сервер разом з мобільним пристроєм налаштовані, відкрийте будь-який додаток, яке не використовує SSL (про SSL ми поговоримо далі в цій статті), і спробуйте зробити що-небудь, що спровокує мережеву активність. Потім ви побачите, що запити йдуть через Burpsuite. На малюнку нижче показаний трафік додатка NASA TV.
Малюнок 11: Трафік, що проходить через проксі-сервер
Примітною особливістю Burpsuite є те, що ми можемо бачити пакети в необробленому (raw) і шістнадцятковому форматі. Також ми можемо переглядати параметри і заголовки кожного запиту і відповіді на запит.
Малюнок 12: Налаштування пошуку
Також ми можемо побачити відповідь, відповідний конкретному запиту.
Малюнок 13: Відповідь, відповідний конкретному запиту
Інформація про трафік додатка дозволяє нам в деталях дізнатися про тип приймача запитів від програми, про формат відповідей і інших параметрах схеми комунікації додатки.
Використання Burpsuite через HTTPS
Техніки аналізу мережевого трафіку, згадані вище, не будуть працювати в разі, якщо додаток використовує SSL. Деякі додаток спроектовані таким чином, що вирішуються тільки SSL-з'єднання. Наприклад, якщо ви захочете використовувати Snapchat через ваш проксі-сервер, то така спроба закінчується невдачею. Однак в деяких додатках виникне вікно з попередженням про підтвердження або скасування з'єднання. На малюнку нижче показано вікно з попередженням, яке виникає при спробі запуску браузера Safari через проксі-сервер.
Малюнок 14: Вікно з попередженням, що виникає при спробі використовувати Safari через проксі-сервер
Якщо клікнути на кнопку Continue, то ви зможете побачити трафік цього додатка. Зверніть увагу, що при спробі зайти на новий веб-сайт попередження виникне знову, оскільки Burpsuite генерує підроблений SSL-сертифікат для кожного хоста.
Малюнок 15: Трафік, що генерується Safari і проходить через проксі-сервер
Кожен раз, коли ми єднаємося з веб-сайтом по протоколу HTTPS через Burpsuite, Burp генерує SSL сертифікат для кожного хоста, що підписується CA-сертифікатом. Для того щоб при відвідуванні веб-сайтів попередження не виникали, ми повинні затвердити CA-сертифікат на пристрої як достовірний кореневий сертифікат. Як тільки на пристрої буде достовірний кореневий сертифікат, за допомогою нього можна буде підписувати всі інші сертифікати та, відповідно, розцінювати їх як валідність. Зверніть увагу, що секретний ключ для кореневого сертифіката зберігається на вашому комп'ютері, і Burp може розшифровувати дані за допомогою секретного ключа при проходженні трафіку через проксі-сервер. Кореневої CA-сертифікат створюється один раз під час установки Burp.
Перед установкою кореневого сертифіката в системі, налаштуйте браузер для роботи через проксі-сервер Burpsuite.
Малюнок 16: Налаштування браузера для роботи через проксі-сервер Burpsuite
Тепер зайдіть на будь-який сайт, який працює через SSL. Ви побачите наступне попередження.
Малюнок 17: Вікно з попередженням, що виникає при відвідуванні сайту gmail.com
Зараз нам необхідно експортувати кореневий сертифікат, який використовується для підпису інших сертифікатів. Для домену gmail.com немає можливості експортувати кореневої CA-сертифікат, оскільки ми не можемо додати виняток для домену gmail. Кожен домен може використовувати подібну політику. Однак домен facebook дозволяє нам додати виняток. Зайдіть на сайт facebook.com, використовуючи Firefox. З'явиться вікно з попередженням. Натисніть на кнопку Add an Exception.
Малюнок 18: Вікно з попередженням, яке з'являється при відвідуванні сайту facebook.com
Потім клікніть на View.
Малюнок 19: Вікно, що з'являється при натисканні на кнопку Add an Exception
Зайдіть у вкладку Details і виберіть самий верхній сертифікат дерева. Це і є кореневої CA-сертифікат. Потім клікніть на Export і збережіть файл з розширенням .crt.
Малюнок 20: Вибір і експорт кореневого сертифіката
Та ж сама послідовність дії описана в документації для Burp. Нижче наводиться витяг з цієї документації (розділ IPhone).
IPhone
Для установки CA-сертифіката, створеного Burp, на iPhone або будь-яке інше пристрій з платформою IOS виконайте наступні кроки.
- Для початку вам необхідно експортувати CA-сертифікат, створений Burp, використовуючи браузер (Internet Explorer або Firefox). Виконайте кроки зі встановлення CA-сертифікату у вашому браузері, а потім відвідайте будь-який сайт, який працює через HTTPS. Натисніть на замок / SSl-іконку для перегляду параметрів SSL-сертифіката. Потім виберіть кореневий сертифікат в дереві (PotrSwigger CA) і при перегляді детальної інформації з цього сертифікату клікніть на кнопку Export. Збережіть сертифікат на вашому комп'ютері з розширенням .crt.
- Скопіюйте збережений сертифікат на iPhone. Найпростіший спосіб зробити це - надіслати електронного листа на той акаунт, на який налаштований ваш IPhone. У листі прикладіть збережений сертифікат.
- Прийміть електронного листа на IPhone і клікніть на вкладення.
- У діалоговому вікні клацніть на кнопку Install і далі пройдіть всі кроки в майстра по установці сертифіката (якщо необхідно, введіть PIN-номер).
Ви можете завантажити CA-сертифікат, створений Burp, безпосередньо на пристрій, відвідавши адреса http: // burp / cert , Використовуючи ваш пристрій, сконфигурированное для використання Burp в якості проксі-сервера.
Слідуючи вказівкам вищезгаданої документації, скопіюйте файл на пристрій. Використовуючи методи соціальної інженерії, зловмисник може встановити цей сертифікат на пристрої жертви без її відома про можливі наслідки такої установки. Нижче показано вікно з попередженням, що виникає при відкритті сертифіката на пристрої. Натисніть на Install.
Малюнок 21: Вікно з попередженням, що виникає при відкритті файлу сертифіката на пристрої
Виникає ще одне вікно з попередженням. Знову натисніть Install.
Малюнок 22: Ще одне вікно з попередженням
По завершенні установки натисніть Done.
Малюнок 23: Завершення установки сертифіката
Тепер, коли у нас є достовірний кореневий сертифікат, кожен сертифікат, підписаний кореневим сертифікатом, буде розцінюватися як достовірний, і додатки будуть передавати інформацію без будь-яких зволікань. Якщо ви відкриєте додаток Snapchat, яке в минулий раз не дозволяло нам передавати дані (коли використовувався підроблений сертифікат) тепер працює на ура, і тепер цей трафік буде перехоплений Burpsuite. Як видно з малюнка нижче, в запиті ми бачимо як ім'я користувача і пароль, що передаються додатком, так і інші api-виклики.
Малюнок 24: Запити, що генерується додатком Snapchat, який перехоплений Burpsuite
укладення
У цій статті ми розглянули різні способи аналізу трафіку, який генерується пристроєм на платформі IOS. Знаючи про заголовках і параметрах запитів і відповідей можна значно просунутися у вивченні внутрішнього устрою додатки.
посилання