Хабрахабр

Разбор конкурса «Конкурентная разведка» на PHDays 9

В этом году все задания были сосредоточены вокруг вымышленной ИБ-компании, позиционирующей себя как компанию — эксперта одной уязвимости. Восьмой год традиционный конкурс «Конкурентная разведка» предлагает участникам попробовать свои силы в поиске информации и между делом изучить новые техники OSINT. Участники конкурса должны были найти информацию о людях, связанных с этой организацией, не прибегая ко взлому, а полагаясь исключительно на помощь различных источников с просторов сети и на собственную смекалку.

В этой статье мы разберем, как можно было решить каждое задание. Конкурс включал 19 заданий, за каждое из которых начислялось определенное количество баллов по степени сложности.

Company real name — 10

В начале соревнования участники получили описание некоторой компании: nfsg64ttmvrxk4tjor4q. Для решения первого задания необходимо было воспользоваться поиском Google. На запрос выдавалась информация о домене компании:

image

Она и была ответом к этому заданию. Можно предположить, что строка закодирована, но если перебрать несколько вариантов алгоритмов шифрования (например, с помощью онлайн-декодера), то можно прийти к выводу, что это Base32 от строки Idorsecurity. Был и альтернативный способ решения: можно было перебрать различные варианты имени компании, используемые ее представителями (id канала в Telegram или Facebook). Для того чтобы флаг был принят, ответ на каждое задание нужно было перевести в нижний регистр и затем захешировать с помощью MD5.

Donation wallet number — 20

Если перейти по ссылке, выданной Google, то попадаешь на блог компании на WordPress.

image

А что если обратиться к веб-архиву? На первый взгляд, здесь нет ничего полезного. Wayback Machine выдает два сохраненных состояния сайта, на одном из которых содержится полезная информация: номер кошелька, который является флагом к заданию.

image

IDOR specialist username — 30

На сайте также сказано, что сотрудник компании в связи с ее закрытием продает свое оборудование на eBay. Запомним этот момент.

Одна из таких — метод /wp-json/wp/v2/users/, отображающий список пользователей, публиковавших что-либо на сайте. Так как блог сделан с помощью WordPress, был смысл определить стандартные входные точки этого блога. Его можно обнаружить, если, например, просканировать сайт с помощью утилиты WPScan.

Кстати, на сайте HackerOne, посвященном поиску уязвимостей в инфраструктурах различных компаний, есть репорт, в котором разбирается подобная «утечка».

image

Они соответствуют цепочке заданий на нахождение информации о том или ином человеке. По полученной ссылке (http://nfsg64ttmvrxk4tjor4q.club/wp-json/wp/v2/users/) находился список пользователей с их описанием. Здесь участники могли найти очередной флаг — юзернейм специалиста IDOR.

image

IDOR specialist location — 25

В этом задании как раз и нужна была информация о том, что компания продает свое имущество на eBay. Следующий шаг — поиск по имени пользователя из wp-json-аккаунта компании или одного из сотрудников. Это можно было сделать несколькими способами: пользуясь поиском участников eBay (но для этого требовалось включить mixed content в браузере, так как сайт работал по HTTPS, а капча, выдаваемая скриптом на странице, висела на HTTP) или сайтом namechk.com (он выводит cписок социальных сетей, на которых зарегистрирован введенный юзернейм).

Успешный поиск приводит к странице сотрудника на eBay и флагу к заданию:

image

image

image

IDOR specialist work e-mail — 30

Если пройти по ссылке из описания аккаунта — предстает лот. Судя по всему, тот, о котором шла речь в блоге компании.

image

Здесь важно было внимательно изучить изображения: на одном из них была деталь, которой стоило уделить внимание.

image

Поиск этой компании на LinkedIn выдает ссылку на профиль одного из сотрудников (а именно специалиста IDOR) и его корпоративную почту. На фото видно, что сотрудник, продающий оборудование Idorsecurity, как-то связан с другой компанией — Self-XSS Security.

image

Для обхода этого ограничения есть несколько путей. Участники, которые дошли до этого момента, заметили, что для только что созданного аккаунта не работает детальный просмотр страницы пользователя Abdul Bassur. Один из участников конкурса предложил зарегистрировать аккаунт, где в графе «место работы» указано Self-XSS Security. Например, можно заполнить только что созданный профиль всей необходимой информацией. Там и был флаг к заданию — рабочий email специалиста IDOR. В этом случае алгоритмы LinkedIn распознали новый созданный аккаунт и страницу пользователя из изображения выше как принадлежащие к одной сети контактов и открыли доступ к детальной информации об Abdul Bassur.

IDOR specialist personal e-mail — 70

В этом задании стоило перейти от изучения блога к просмотру DNS-записей домена. Это возможно, например, с помощью утилиты dig.

image

Кроме того, можно найти некоторые IP-адреса — как IPv4, так и IPv6. Тут-то и выясняется: корпоративная почта компании работает с помощью mail.yandex.ru. Сканирование TCP и UDP по некоторым из них с помощью Nmap давала любопытные результаты.

image

image

image

К сожалению, подключение по SNMP к IPv4 не дало бы ничего, что можно было бы сдать как флаг или использовать потом.

image

Его можно было получить, если арендовать сервер с функцией выше и использовать в качестве VPN. При подключении по SNMP к IPv6 у некоторых участников соревнования возникли проблемы, так как они не учли, что для подобного вида подключений требуется выделенный IPv6-адрес. Подобной услугой можно было воспользоваться на DigitalOcean или Vultr.

К примеру, в одном из OID (1. IPv6 даст больше информации, чем IPv4. 6. 3. 2. 1. 1. 1. 0 также называется sysContact и содержит информацию — чаще всего email — чтобы можно было связаться с владельцем сервера). 4. В качестве значения будет лежать личная почта — флаг к заданию.

image

Здесь заканчивается цепочка заданий, связанная со специалистом IDOR.

Secret employee mobile phone — 20

Second employee IM username — 25

Получить первый флаг в заданиях, связанных с secret employee, можно было разными способами. Первый способ: если решить все предыдущие задания, то на руках будет рабочая и личная почта одного из сотрудников Idorsecurity. Также будет информация, что корпоративная почта компании поднята на mail.yandex.ru.

Так как пароль неизвестен, поможет секретный вопрос My private mail, ответ на который был найден в SNMP. Итак, можно перейти на «Яндекс» и попробовать восстановить доступ для почты p@nfsg64ttmvrxk4tjor4q.club.

image

По своей функциональности он является внутренней адресной книгой: в нем есть список сотрудников с их контактными данными и информацией, в каких подразделениях они работают. Так, теперь появился доступ к Яндекс.Коннекту компании. Так, одним махом можно было сдать сразу два флага — номер мобильного телефона сотрудника и еще одни юзернейм. Как раз то, что нужно!

image

image

image

Например, Telegram при поиске по строке nfsg64ttmvrxk4tjor4q покажет следующее: Второй способ получить номер телефона секретного сотрудника лежит через поиск аккаунтов компании в различных соцсетях и мессенджерах.

image

Это и будет ответом на задание «Secret employee mobile phone». По данному id находится канал компании, а в его описании есть аккаунт владельца компании с номером телефона.

image

image

Secret employee username — 40

Так как известен только номер телефона secret employee, то стоило попробовать выжать из этой информации максимум. Следующим этапом решения служит добавления данного номера телефона в контакты своего мобильного и попытка поиска друзей среди списка номеров в различных социальных сетях.

Верным шагом была проверка «Твиттера»: она привела к аккаунту сотрудника компании Idorsecurity и его имени, а значит и к сданному заданию.

image

image

Сотрудник Idorsecurity оставил в своем твите ссылку на резюме, пропущенную через GG. Secret employee birthday — 40
Внимательно изучив аккаунт, можно наткнуться на ответ сотрудника на один из твитов о поиске программиста. GG.

image

Переход по ссылке не давал ничего полезного, но, если заметить опечатку в конечном URL, можно было прийти к ошибке 403 и нестандартному имени файла.

image

Этот ход приводит к аккаунту на vk.com, а в нем можно найти ответ на задание — дату рождения secret employee. Проанализировав имеющуюся информацию о secret employee, можно было прийти к поиску данного сотрудника по соцсетям, так как известно его имя и место работы.

image

image

Secret employee university — 50

Чтобы пройти это задание, нужно было подумать, какая информация еще не была использована, а именно: наличие у сотрудника аккаунта на vk.com, нетипичное имя файла с резюме, а также то, что задание называется «Secret employee university».

Как показывает практика, это полезный трюк для поиска приватной информации: так, например, можно обнаружить даже паспортные данные. Для начала можно было поискать файл с резюме по названию в разделе «Документы» на сайте vk.com. Этот ход дал доступ к резюме, где хранился флаг к заданию.

image

image

Цепочка заданий, связанная с secret employee, завершена.

Nightly programmer private username — 30

Для поиска информации о nightly programmer нужно было вернуться к wp-json.

image

Поиск сотрудника Matumbo Harris по ресурсу давал ссылку на репозиторий — и очки за флаг к заданию. В описании сотрудника содержалась подсказка о том, где его можно было поискать: например, на github.com.

image

What the flag? — 60

В репозитории был код некоего бота. При внимательном изучении кода можно было заметить hardcoded токен. Следующая после него строчка кода или простой запрос в Google давал участникам намек о Slack API.

image

Например, узнать список файлов, которыми обменивались в чате Slack (судя по всему, корпоративный чат компании Idorsecurity). Потратив некоторое время на изучение Slack API, можно было проверить токен на валидность и опробовать некоторые методы.

image

Еще немного изучив Slack API, можно было получить ссылки на доступные файлы:

image

Изучение документа по ссылке дает представление о том, что требовалось в задании «What the flag?».

image

Это был ключик к решению задания «Second employee IM username»: по имени и фамилии легко найти имя нужного пользователя. Помимо этого, Slack API позволял получить список пользователей чата, к которому привязан данный токен.

image

Цепочка с nightly programmer завершена.

IP used in PoC — 40

Здесь нужно было снова обратиться к началу, а именно к блогу компании, и посмотреть, что еще осталось неиспользованным. Там была ссылка на Amazon S3 и задание «IP used in PoC», флаг к которому нужно искать именно на S3.

image

Прямой переход по ссылке не давал ничего полезного, а вот подытог всей имеющейся информации о данном задании приводил к изучению документации Amazon S3.

image

Подключение подобным образом открывало доступ к файлу и флагу от задания «IP used in PoC». В документации среди способов подключения к бакету S3 описана возможность взаимодействия с помощью собственного набора CLI-программ от Amazon под названием AWS CLI.

image

Подробнее можно почитать на странице: docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html. Подобный результат в различных способах доступа по ссылке обусловлен настройкой ACL для данного бакета, а именно наличием canned ACL типа authenticated-read, дающим полный доступ его владельцу и права на чтение только группе AuthenticatedUsers, к которой принадлежат все пользователи, имеющие аккаунт на AWS (поэтому работает подключение по AWS CLI, так как для работы с данным набором программ требуется аккаунт).

Alexander's real lastname — 25

В этом задании снова нужно было вернуться к одному из этапов, а именно к поиску аккаунтов компании в различных социальных сетях. Данный ход также приведет нас к следу Idorsecurity на Facebook.

image

Изучив данные, содержащиеся на странице, можно было наткнуться на номер телефона.

image

Например, если у кого-то из устанавливавших эту программу какой-либо номер был добавлен в контакты и он дал приложению доступ к ним, то вся информация о списке контактов попадет в публичный доступ. Попытка пробить номер телефона ни к чему не приводила, но самые сообразительные вспомнили про приложение GetContact, которое показывает всю информацию о номере. Подобным образом, пробив номер телефона, указанный в контактной информации компании, участники получили фамилию владельца номера, которая была флагом к вопросу о фамилии нужного человека.

image

Peter's primary e-mail We know he's looking for a job — 40

Чтобы выполнить это задание, нужно было вновь обратиться к поиску в Google всей возможной информации о компании. Поиск по Idorsecurity первой ссылкой выдавал страницу на moikrug.ru еще одного сотрудника. Зайдя на moikrug.ru будучи авторизованным, можно было получить почту работника Idorsecurity.

image

image

Peter's secondary e-mail — 20

Почта находится на Mail.ru, можно было попробовать восстановить к ней пароль.

image

Это предположение и приводило к успешно решенному заданию. Достаточно предсказуемо, что два астериска скрывают in.

Peter's password — 60

Последнее задание из цепочки про Петра. Известны два адреса почты, полное имя, возраст и должность. Поиск по социальным сетям ни к чему не приводил, наиболее действенным способом добыть пароль был поиск аккаунтов в утечках. Здесь оказался полезен сайт haveibeenpwned.com: он показал интересную информацию по одному из адресов почты:

image

Поиск по одному из сайтов, где можно получить доступ к утечкам (Weleakinfo, LeakedSource или бесплатно скачать нужную базу с Databases.today, название которой можно узнать на Weleakinfo), привел участников к успешно сданному заданию.

image

Software which was downloaded from IP 77.71.34.171 — 30

Последнее задание из разобранных. В нем требовалось найти название Torrent-файла, одноименного с некоторым ПО, который скачивался с IP-адреса, данного в таске. Для этих целей существует сайт iknowwhatyoudownload.com: он выводит эту информацию, потому что в основе поиска используются алгоритмы, имитирующие полноценных участников DHT-сети, с помощью которой участники файлообмена находят друг друга при скачивании файла.

image

Итоги

К концу соревнования из 599 участников 227 человек решили хотя бы одно задание.

Топ-10:

  1. 550 Noyer_1k — 16 решенных заданий!
  2. 480 Mr3Jane — 15 решенных заданий!
  3. 480 kaimi_ru — 15 решенных заданий!
  4. 480 Lendgale
  5. 480 V88005553535
  6. 425 cyberopus
  7. 420 nitroteamkz
  8. 420 joe1black
  9. 355 breaking_mash
  10. 355 U-45990145

Участники, занявшие первые три места, получили призы:

  • I место: наушники Apple AirPods, инвайт на PHDays и специальный приз от журнала «Хакер» (спонсора конкурса) — годовая подписка на журнал.
  • II место: Wi-Fi-адаптер ALFA Network AWUS036NH, подписка на журнал «Хакер» на полгода, инвайт на PHDays.
  • III место: портативный аккумулятор Xiaomi ZMI QB810, подписка на журнал «Хакер» на 3 месяца, инвайт на PHDays.

После окончания соревнований около трех недель задания оставались доступными, и два участника с именами V88005553535 и romask решили их все и получили максимальные 665 очков.

Разборы соревнований лет: 2012, 2013, 2014, 2015, 2017, 2018. Благодарим всех за участие, увидимся в следующем году!

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть