Множество советов и приемов для сбора информации из открытых источников подразумевают исследование веб-страниц, в частности, просмотр их "сырого" содержимого. Вспомните идентификатор пользователя в Facebook или URL изображения, на которое вы не можете нажать. Иметь опыт верстки на HTML, при этом, не обязательно, однако, каждый сетевой разведчик должен уметь просматривать исходный код страниц и искать на них ключевые строки, - это один из ключевых навыков в данной области.
На самом деле, это довольно просто: на компьютерах с Windows, во всех основных браузерах, достаточно нажать сочетание Ctrl+Shift+U, чтобы открыть новую вкладку с необработанным HTML-кодом, а в Mac OS - Cmd+Option+U или Cmd+U для Firefox). Также можно воспользоваться контекстным меню (ПКМ на свободной области).
Иногда просмотра исходного кода бывает недостаточно, для таких случаев в браузерах есть инструменты, предназначенные для отладки веб-страниц, которые мы также можем использовать. Например, чтобы обойти защиту в Instagram (когда появляется модальное окно авторизации на всю страницу и отключается прокрутка) при просмотре чужого профиля неавторизировавшись, откройте инструменты разработчика при помощи F12 или горячих клавиш Ctrl+Shift+I, наведите мышь на модальное окно, удалите его кнопкой Delete и уберите свойство с Body "
Я не могу здесь описать подробно каждый инструмент разработчика. Не потому, что мне лень, а потому, что я не донца знаю, как использовать их все эффективно. Есть несколько хороших руководств, которые научат вас этому, при этом, скорее всего, вы будете использовать лишь пару описанных в этих статьях трюков (как и я), однако всегда интересно посмотреть, как работает магия осинта на разных страницах. Вы можете начать с OSINT Curious и их краткого экскурса в инструменты разработчика. Затем пойти дальше и перейти к ускоренному курсу по Google Chrome Developer Tools, ну а потом переключиться на Джастина Зейтца и ознакомиться с его видео о расширенном анализа веб-сайтов для OSINT.
Интересно, что вы также можете использовать инструменты разработчика в Chrome для отладки «удаленного» браузера на устройствах, работающих под Android. Все, что вам нужно, это USB-кабель, установленные драйверы Android Debug Bridge (adb) на вашей рабочей машине и Google Chrome на обоих устройствах. Как это все правильно настроить можно найти в официальной документации от Google. Я все еще не уверен, как бы я использовал эту функцию в моей работе и OSINT исследованиях, хотя ...
Инструменты разработчика также дают вам возможность эмулировать мобильное устройство и визуализировать веб-сайт в точности, будто он открыт в нем. Эта функция называется «Режим адаптивного дизайна».
«Время стать мобильным»
Люди все меньше времени проводят за работой на ноутбуке и у настольного ПК, и все чаще сидят за мобильными устройствами. Особенно много времени они тратят в приложениях (посмотрите статистику «US Time Spent with Mobile 2019»). Мы еще не пережили смерть компьютерного браузера, и, даже если у многих существующих мобильных приложений существует обычный веб-интерфейс, он не является панацеей, на которой мы можем остановиться. Как правило, приложения хранят в себе множество тайн, которые невозможно найти в их браузерных альтернативах. Стоит также отметить, что некоторые разработчики вообще не создают веб-интерфейс. Это особенно актуально для приложений социальных сетей, таких как Snapchat или TikTok. Приложения, которые чрезвычайно популярны и поэтому чрезвычайно интересны для OSINT-исследователей.
Итак, что мы можем сделать, когда нужно исследовать приложение, которое доступно только на смартфоне (или на ПК, но в виде отдельного клиента)?
Во-первых, загуглить! Сообщество OSINT/Infosec обычно делится обширными знаниями, и если кто-то уже пытался «хакнуть» искомое приложение, вероятно, вы сможете обнаружить новости об этом. Не забудьте проверить анонсы разработчиков. Проверьте, сделали ли они какие - нибудь функции доступными через браузеры, проверьте API, а также бета-версии. Вы также можете прошерстить сабреддиты или темы на форумах.
Ничего не нашли? Да начнется веселье!
Большинство мобильных приложений используют протокол HTTP(S), чтобы общаться с серверами. TikTok использует HTTP, Snapchat использует HTTPS, Tinder использует смесь HTTPS и HTTP. Вы поняли мою мысль.
HTTP - это протокол, с которым достаточно просто работать, при этом, используя прокси. Прокси-сервер - «это промежуточный сервер в компьютерных сетях, выполняющий роль посредника между пользователем и целевым сервером. Когда компьютер отправляет запросы на сайты и службы в Интернете, прокси-сервер перехватывает эти запросы и затем связывается с веб-серверами, как посредник» (источник: https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/)
На компьютере можно использовать множество прокси-серверов: WinGate или FreeProxy в Windows, SquidMan в MacOS. Но есть и другое решение, которое объединяет мощь прокси-сервера и инструментов разработчика: Fiddler, «бесплатный прокси-сервер для отладки веб-страниц для любого браузера, системы или платформы», созданный в 2003 году Эриком Лоуренсом.
Fiddler
Перво-наперво: установите Fiddler на компьютер, который вы хотите использовать при анализе. Затем возьмите смартфон или запустите виртуальную машину, которую вы будете использовать для манипуляций с приложениями. Обе системы должны быть в одной сети.
Моя настройка проста: я использую смартфон на Android с 4G-подключением, параллельно синхронизируя его с ноутбуком, на котором установлен Fiddler, через WiFi.
Следующий шаг - найти IP-адрес компьютера, который будет служить прокси-сервером. Для этого, в командной строке Windows введите
После этого запустите Fiddler, перейдите в «Инструменты», «Параметры…» и остановитесь на вкладке «Подключения». Установите флажок «Разрешить подключение удаленным компьютерам». Обратите внимание, что после сохранения настроек, Fiddler будет прослушивать порт 8888.
Далее мы должны настроить свой телефон / виртуальную машину для использования прокси. На моем старом Samsung я открываю настройки, нажимаю «Wi-Fi», удерживаю соединение, которое используется в данный момент и выбираю «Изменить настройки сети», после этого ставлю галочку «Показать дополнительные параметры», перехожу чуть ниже и выбираю «Вручную» в разделе «Прокси». Здесь я вписываю IP-адрес, найденный ранее, на компьютере. И указываю порт 8888.
Остался последний шаг. Его необходимо выполнить, чтобы можно было работать с HTTPS трафиком. Вернитесь к Fiddler и посмотрите в левый нижний угол - черное поле ввода с зеленым текстом. Это поле «QuickExec». Введите в этом поле следующую команду и нажмите «Enter».
На правой панели появится список переменных. Добавьте в этот список:
и присвойте значение 820. Это изменит дату истечения срока действия сертификата, который мы установим далее. Мы делаем это, чтобы в дальнейшем избежать ошибок на Android.
Теперь давайте установим сертификат на смартфон. Запустите на нем браузер и откройте
Загрузите и установите сертификат FiddlerRoot. Настройка окончена, теперь весь HTTP (S) трафик с вашего телефона будет проходить через Fiddler.
Проверьте настройки, посерфив какие-нибудь веб-сайты на телефоне.
Теперь, когда прокси работает, давайте настроим Fiddler, чтобы скрыть тот трафик, который мы не хотим видеть. Перейдите на вкладку «Фильтры» и в раскрывающемся списке «Нет фильтра хоста» выберите «Скрыть следующие хосты». Введите IP-адрес прокси, установите флажок «Использовать фильтры» и в «Действиях» выберите «Запустить набор фильтров сейчас».
Опять же, я не являюсь веб-разработчиком или тестировщиком приложений, поэтому идея в том, чтобы упростить действия, как будто это низкоуровневый реверс. Очистите сессии, которые Fiddler собрал, нажав «X» в строке меню.
Запустите приложение, которое вы хотите исследовать. Давайте начнем с TikTok в качестве примера. При запуске приложения отображается несколько подключений к api2–16-h2.musical.ly и другим поддоменам в домене music.ly. Выберите вкладку «Инспекторы» и перейдите в «TextView». Когда вы выбираете сеанс, Fiddler декодирует и показывает его как текстовый объект.
Советую начинать с любого известного вам профиля: любая учетная запись, о которой вы знаете какую-либо информацию, которая может быть скрыта. К примеру, давайте поищем аккаунт «Лорен Грей» или «самый успешный аккаунт за пределами Китая». При любой активности, Fiddler будет заполняться "звонками" с разных URL-адресов.
Так как запросов множество, из этого множества нам нужно найти только те, которые будут относиться к искомой учетной записи. Один из простых способов сделать это - переключиться на «ImageView» и перемещаться вверх и вниз до тех пор, пока не найдете нужные изображения, относящиеся к актуальной информации.
Мне потребовалось просмотреть 6 запросов, чтобы найти "тот самый". Информация поступила с поддомена api2–16-h2.musical.ly, - это краткая сводка о «Лорен Грей». Уже неплохо, а еще лучше то, что она отформатирована в формате JSON (вы также можете переключиться на вкладку «JSON» для более удобного просмотра) и содержит интересные поля, такие как:
Как можно заметить, мы получили ссылку на YouTube-канал, URL аватарки в высоком разрешении и URL-адрес видео. Некоторые из этих элементов не были доступны при просмотре страницы профиля в приложении, да и в веб-интерфейсе (да, у TikTok есть веб-интерфейс!). И этот JSON дает нам данные, не доступные обычному пользователю.
Следующий запрос в списке - это еще один JSON-ответ, но на этот раз, гораздо больше. Он содержит поле aweme_list с описанием каждого видео.
Теперь вы знаете, что приложение TikTok отправляет запросы к api2–16-h2.musical.ly для получения ответов в формате JSON. Вы знаете, что за имя пользователя отвечает параметр
Вечеринка окончена
Теперь давайте посмотрим на то, как работает Snapchat.
Сначала я выйду из TikTok, дождусь, пока запросы к его серверам TikTok прекратятся, и очищу сеансы, нажав «X» и выбрав «Удалить все». Когда все будет готово, можно запускать Snapchat.
Snapchat делает много запросов к
Snapchat и многие другие приложения используют систему для защиты пользователя от перехвата и дешифрования «посредником», certificate pinning.
Таким образом, приложение доверяет только определенным сертификатам. Добавление ненадежного сертификата в систему, такого как тот, который поставляется с Fiddler, не работает, приложение не сможет установить соединение.
Можно ли обойти эту защиту? Да, такие инструменты, как Frida, помогут это сделать, но это выходит за рамки данной статьи.
Плохая новость заключается в том, что во многих приложениях реализована система работы только с доверенными сертификатами, чтобы прокси-сервер не работал с HTTPS-трафиком.
Хорошая новость заключается в том, что certificate pinning не позволяет белым хакерам и исследователям находить ошибки в приложениях (и это плохо). Поэтому разработчики приложений ввели дополнительные «Настройки для Whitehat», чтобы разрешить перехват и расшифровку трафика HTTPS.
Facebook применил эти настройки для приложений Facebook, Messenger и Instagram.
Вывод
Мобильные приложения являются хорошим источником информации о людях для различных расследований, и чтобы оптимизировать поиск, необходимо уметь работать с трафиком и распознавать в нем полезные детали. В этой статье я показал на практический примерах то, как правильно это делать и то, какие проблемы можно встретить на своем пути.
оригинал этого материала на английском можно здесь.
автор перевода Moody
На самом деле, это довольно просто: на компьютерах с Windows, во всех основных браузерах, достаточно нажать сочетание Ctrl+Shift+U, чтобы открыть новую вкладку с необработанным HTML-кодом, а в Mac OS - Cmd+Option+U или Cmd+U для Firefox). Также можно воспользоваться контекстным меню (ПКМ на свободной области).
Иногда просмотра исходного кода бывает недостаточно, для таких случаев в браузерах есть инструменты, предназначенные для отладки веб-страниц, которые мы также можем использовать. Например, чтобы обойти защиту в Instagram (когда появляется модальное окно авторизации на всю страницу и отключается прокрутка) при просмотре чужого профиля неавторизировавшись, откройте инструменты разработчика при помощи F12 или горячих клавиш Ctrl+Shift+I, наведите мышь на модальное окно, удалите его кнопкой Delete и уберите свойство с Body "
overflow: hidden", чтобы вернулась возможность прокрутки.
Я не могу здесь описать подробно каждый инструмент разработчика. Не потому, что мне лень, а потому, что я не донца знаю, как использовать их все эффективно. Есть несколько хороших руководств, которые научат вас этому, при этом, скорее всего, вы будете использовать лишь пару описанных в этих статьях трюков (как и я), однако всегда интересно посмотреть, как работает магия осинта на разных страницах. Вы можете начать с OSINT Curious и их краткого экскурса в инструменты разработчика. Затем пойти дальше и перейти к ускоренному курсу по Google Chrome Developer Tools, ну а потом переключиться на Джастина Зейтца и ознакомиться с его видео о расширенном анализа веб-сайтов для OSINT.
Интересно, что вы также можете использовать инструменты разработчика в Chrome для отладки «удаленного» браузера на устройствах, работающих под Android. Все, что вам нужно, это USB-кабель, установленные драйверы Android Debug Bridge (adb) на вашей рабочей машине и Google Chrome на обоих устройствах. Как это все правильно настроить можно найти в официальной документации от Google. Я все еще не уверен, как бы я использовал эту функцию в моей работе и OSINT исследованиях, хотя ...
Инструменты разработчика также дают вам возможность эмулировать мобильное устройство и визуализировать веб-сайт в точности, будто он открыт в нем. Эта функция называется «Режим адаптивного дизайна».
«Время стать мобильным»
Люди все меньше времени проводят за работой на ноутбуке и у настольного ПК, и все чаще сидят за мобильными устройствами. Особенно много времени они тратят в приложениях (посмотрите статистику «US Time Spent with Mobile 2019»). Мы еще не пережили смерть компьютерного браузера, и, даже если у многих существующих мобильных приложений существует обычный веб-интерфейс, он не является панацеей, на которой мы можем остановиться. Как правило, приложения хранят в себе множество тайн, которые невозможно найти в их браузерных альтернативах. Стоит также отметить, что некоторые разработчики вообще не создают веб-интерфейс. Это особенно актуально для приложений социальных сетей, таких как Snapchat или TikTok. Приложения, которые чрезвычайно популярны и поэтому чрезвычайно интересны для OSINT-исследователей.
Итак, что мы можем сделать, когда нужно исследовать приложение, которое доступно только на смартфоне (или на ПК, но в виде отдельного клиента)?
Во-первых, загуглить! Сообщество OSINT/Infosec обычно делится обширными знаниями, и если кто-то уже пытался «хакнуть» искомое приложение, вероятно, вы сможете обнаружить новости об этом. Не забудьте проверить анонсы разработчиков. Проверьте, сделали ли они какие - нибудь функции доступными через браузеры, проверьте API, а также бета-версии. Вы также можете прошерстить сабреддиты или темы на форумах.
Ничего не нашли? Да начнется веселье!
Большинство мобильных приложений используют протокол HTTP(S), чтобы общаться с серверами. TikTok использует HTTP, Snapchat использует HTTPS, Tinder использует смесь HTTPS и HTTP. Вы поняли мою мысль.
HTTP - это протокол, с которым достаточно просто работать, при этом, используя прокси. Прокси-сервер - «это промежуточный сервер в компьютерных сетях, выполняющий роль посредника между пользователем и целевым сервером. Когда компьютер отправляет запросы на сайты и службы в Интернете, прокси-сервер перехватывает эти запросы и затем связывается с веб-серверами, как посредник» (источник: https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/)
На компьютере можно использовать множество прокси-серверов: WinGate или FreeProxy в Windows, SquidMan в MacOS. Но есть и другое решение, которое объединяет мощь прокси-сервера и инструментов разработчика: Fiddler, «бесплатный прокси-сервер для отладки веб-страниц для любого браузера, системы или платформы», созданный в 2003 году Эриком Лоуренсом.
Fiddler
Перво-наперво: установите Fiddler на компьютер, который вы хотите использовать при анализе. Затем возьмите смартфон или запустите виртуальную машину, которую вы будете использовать для манипуляций с приложениями. Обе системы должны быть в одной сети.
Моя настройка проста: я использую смартфон на Android с 4G-подключением, параллельно синхронизируя его с ноутбуком, на котором установлен Fiddler, через WiFi.
Следующий шаг - найти IP-адрес компьютера, который будет служить прокси-сервером. Для этого, в командной строке Windows введите
ipconfig. В терминале MacOS / Linux: ifconfig. Затем, запишите или сфотографируйте его.После этого запустите Fiddler, перейдите в «Инструменты», «Параметры…» и остановитесь на вкладке «Подключения». Установите флажок «Разрешить подключение удаленным компьютерам». Обратите внимание, что после сохранения настроек, Fiddler будет прослушивать порт 8888.
Далее мы должны настроить свой телефон / виртуальную машину для использования прокси. На моем старом Samsung я открываю настройки, нажимаю «Wi-Fi», удерживаю соединение, которое используется в данный момент и выбираю «Изменить настройки сети», после этого ставлю галочку «Показать дополнительные параметры», перехожу чуть ниже и выбираю «Вручную» в разделе «Прокси». Здесь я вписываю IP-адрес, найденный ранее, на компьютере. И указываю порт 8888.
Остался последний шаг. Его необходимо выполнить, чтобы можно было работать с HTTPS трафиком. Вернитесь к Fiddler и посмотрите в левый нижний угол - черное поле ввода с зеленым текстом. Это поле «QuickExec». Введите в этом поле следующую команду и нажмите «Enter».
Код:
about:config
На правой панели появится список переменных. Добавьте в этот список:
Код:
fiddler.certmaker.ValidDays
Теперь давайте установим сертификат на смартфон. Запустите на нем браузер и откройте
http://ipv4.fiddler:8888.
Загрузите и установите сертификат FiddlerRoot. Настройка окончена, теперь весь HTTP (S) трафик с вашего телефона будет проходить через Fiddler.
Проверьте настройки, посерфив какие-нибудь веб-сайты на телефоне.
Теперь, когда прокси работает, давайте настроим Fiddler, чтобы скрыть тот трафик, который мы не хотим видеть. Перейдите на вкладку «Фильтры» и в раскрывающемся списке «Нет фильтра хоста» выберите «Скрыть следующие хосты». Введите IP-адрес прокси, установите флажок «Использовать фильтры» и в «Действиях» выберите «Запустить набор фильтров сейчас».
Опять же, я не являюсь веб-разработчиком или тестировщиком приложений, поэтому идея в том, чтобы упростить действия, как будто это низкоуровневый реверс. Очистите сессии, которые Fiddler собрал, нажав «X» в строке меню.
Запустите приложение, которое вы хотите исследовать. Давайте начнем с TikTok в качестве примера. При запуске приложения отображается несколько подключений к api2–16-h2.musical.ly и другим поддоменам в домене music.ly. Выберите вкладку «Инспекторы» и перейдите в «TextView». Когда вы выбираете сеанс, Fiddler декодирует и показывает его как текстовый объект.
Советую начинать с любого известного вам профиля: любая учетная запись, о которой вы знаете какую-либо информацию, которая может быть скрыта. К примеру, давайте поищем аккаунт «Лорен Грей» или «самый успешный аккаунт за пределами Китая». При любой активности, Fiddler будет заполняться "звонками" с разных URL-адресов.
Так как запросов множество, из этого множества нам нужно найти только те, которые будут относиться к искомой учетной записи. Один из простых способов сделать это - переключиться на «ImageView» и перемещаться вверх и вниз до тех пор, пока не найдете нужные изображения, относящиеся к актуальной информации.
Мне потребовалось просмотреть 6 запросов, чтобы найти "тот самый". Информация поступила с поддомена api2–16-h2.musical.ly, - это краткая сводка о «Лорен Грей». Уже неплохо, а еще лучше то, что она отформатирована в формате JSON (вы также можете переключиться на вкладку «JSON» для более удобного просмотра) и содержит интересные поля, такие как:
Код:
user
uid=934514
unique_id=lorengray
avatar_larger
url_list
http://p16.muscdn.com/img/musically-maliva-obj/1660343861335046~c5_1080x1080.jpeg
video_icon
url_list
http://p16.muscdn.com/img/musically-maliva-obj/1660344574058502~tpl-1_q65.webp
youtube_channel_id=UCRYe4G08okte96rmocFNU1g
youtube_channel_title=Loren Gray
Следующий запрос в списке - это еще один JSON-ответ, но на этот раз, гораздо больше. Он содержит поле aweme_list с описанием каждого видео.
Теперь вы знаете, что приложение TikTok отправляет запросы к api2–16-h2.musical.ly для получения ответов в формате JSON. Вы знаете, что за имя пользователя отвечает параметр
unique_id и что изображения хранятся по адресу http://p16.muscdn.com/img в формате jpeg od webp.Вечеринка окончена
Теперь давайте посмотрим на то, как работает Snapchat.
Сначала я выйду из TikTok, дождусь, пока запросы к его серверам TikTok прекратятся, и очищу сеансы, нажав «X» и выбрав «Удалить все». Когда все будет готово, можно запускать Snapchat.
Snapchat делает много запросов к
* .snapchat.com HTTP (S) серверам. Я буду действовать точно также, как и раньше, и перейду к панели поиска. На этот раз я постараюсь найти «Короля Snapchat», DJ Khaled. Но у меня не получится это сделать. Приложение пытается подключиться к http://aws.api.snapchat.com:443, но не получает ответа. Что-то мешает ему получить доступ к серверам: Fiddler.Snapchat и многие другие приложения используют систему для защиты пользователя от перехвата и дешифрования «посредником», certificate pinning.
Таким образом, приложение доверяет только определенным сертификатам. Добавление ненадежного сертификата в систему, такого как тот, который поставляется с Fiddler, не работает, приложение не сможет установить соединение.
Можно ли обойти эту защиту? Да, такие инструменты, как Frida, помогут это сделать, но это выходит за рамки данной статьи.
Плохая новость заключается в том, что во многих приложениях реализована система работы только с доверенными сертификатами, чтобы прокси-сервер не работал с HTTPS-трафиком.
Хорошая новость заключается в том, что certificate pinning не позволяет белым хакерам и исследователям находить ошибки в приложениях (и это плохо). Поэтому разработчики приложений ввели дополнительные «Настройки для Whitehat», чтобы разрешить перехват и расшифровку трафика HTTPS.
Facebook применил эти настройки для приложений Facebook, Messenger и Instagram.
Вывод
Мобильные приложения являются хорошим источником информации о людях для различных расследований, и чтобы оптимизировать поиск, необходимо уметь работать с трафиком и распознавать в нем полезные детали. В этой статье я показал на практический примерах то, как правильно это делать и то, какие проблемы можно встретить на своем пути.
оригинал этого материала на английском можно здесь.
автор перевода Moody