Райтап по CYBAR OSINT CTF 2020
@osint_mindset6 июня проводилось соревнование CYBAR OSINT CTF от австралийских энтузиастов инфобеза. Вместе с осинтерами из HowToFind и нетсталкерами из Точки Сбора мы составили команду CTF_ru и заняли почетное призовое 5 место!

Всего в соревновании участвовала 161 команда со всего мира. Мы решили все задания в числе первых, но не получили бонусных баллов по разнообразным ачивкам.
Подробнее о соревновании, победителях и даже о прохождении можно прочесть в официальном источнике. А мы ниже расскажем о нашем опыте прохождения.
Содержание
1) Tutorial
2) Категория Social
2.1) WFH (EoM)
2.2) Contact Tracing
2.3) By A Thread
3) Категория General
3.1) Финальное задание
Tutorial
Формат соревнования был простым и ожидаемым -- для каждого задания необходимо найти и сдать флаг в формате CYBAR{banana}. Первое задание Tutorial Island объясняло эти правила и предлагало найти исполнителя по строчке из песни: "In the name of the Spam God, that's what's up".
Простой поиск в Google давал результат YTCracker. Voila, 50 баллов.
После этого задания можно было начать решать задачи категорий General и Social. Почти все они были доступны сразу (кроме заключительного в первой категории) -- об этом будет в конце.

Категория Social
Основной сюжетной линией CTF был поиск информации о Roombas: группе людей, пытающихся "захватить мир". Группа заданий социального направления была полностью посвящена поиску информации о них.
You've heard of elf on the shelf, but what about the proliferation of COVID-19?
Мы узнаём, что Roombas -- это близкие друзья, к тому же все они заражены COVID-19. Необходимо отследить их, и у нас есть зацепка: некий Marc Hevis, совладелец Hevis Properties Pty Ltd. Какой его твиттер-аккаунт?
Очевидный поиск в Google выдаёт нам страничку и очередные 50 баллов. После этого задания открывались все последующие.
Clocking Overtime
Найдите локацию, где расположено основное место работы Marc.
Ответ на этот вопрос не столь очевиден. В твитах Марка есть посты, явно претендующие на роль ключей, но этой информации нигде нет. Где её искать?
В первую очередь вспоминаем, что есть ещё и ответы на другие твиты, которые видны на соответствующей вкладке после залогина. Проходимся по ней и видим интересное:

Итак, Marc работает на конечной линии метро Werribee, пригород Мельбурна. Пробуем это в качестве ответа, и бинго! +225 баллов.
К слову, подсказка в этом задании есть прямо в названии. Как мы дальше увидим, создатели CTF не скупились на такие "хинты".
Pretty Fly for a WiFi
По некоторым сведениям, у Marc также есть второй, новый офис. Нам нужно вычислить его, причём только по информации из Twitter. Что же, мы уже приметили интересный пост в его аккаунте, а из названия всё становится ясно.

У нас на руках название WiFi и даже его BSSID. Вспоминаем, что есть некоторое количество сервисов, которые агрегируют такие данные, отображают на карте и даже позволяют искать. Один из таких сервисов -- Wigle.
Забиваем в фильтр по известные нам данные и быстро находим нужную точку в Австралии. Увеличиваем масштаб и получаем город Ballarat, а вместе с ним 250 баллов.

WFH (EoM)
WFH (EoM) - Part 1
Необходимо найти место проживания Marc, чтобы эвакуировать его соседей из-за риска заражения COVID-19. Где он живёт?
Итак, из предыдущих тасков нам удалось выяснить местоположение офисов Marc'a в Мельбурне и Балларате, поэтому логично предположить что и проживает он где-то там. Находим пост в твиттере с коротким видео, снятым из места изоляции, и приступаем к работе.

Можно было не полагаться на Яндекс.Картинки и вбить описание видимого объекта в два запроса "Melbourne art on building" "portrait building melbourne". Искомый объект быстро находился -- это William Barak building по адресу 150 State Route 32 у Swanston Square apartment.
Мы ищем многоэтажное здание, по левую сторону которого располагаются небоскребы, и непонятное красное здание под углом справа.

Переходим в Google Street View, находим белое здание @-37.806871,144.9644073 на 308 часов и красное здание на 55 часов соответственно.

Рассчитав угол обзора, напрашивался вывод о том, что балкон Marc'а находится в здании QV1. Заслуженные 350 баллов!
WFH (EoM) - Part 2
Сколько этажей в здании, в котором проживает Marc?
Очевидным вариантом было поискать информацию о высоте здания на вики, но при поиске также нашелся сайт архитектурного бюро, в котором указывались 44 этажа. Получаем двойное подтверждение флага и 100 баллов.
Задание открывалось только после прохождения WFH (EoM) - Part 1.
WFH (EoM) - Part 3
Нам нужно узнать, когда Marc мог въехать в это здание. Для этого необходимо понять, когда завершилась постройка здания.
Период постройки можно было узнать на том же сайте. Нас интересовал год окончания строительных работ -- это 2005. +50 баллов.
Задание открывалось только после прохождения WFH (EoM) - Part 1.

Contact Tracing
Contact Tracing - Part I
Есть подозрение, что Roomba нацелились на Alycee, знакомую Marc, чтобы заразить её COVID-19. Так как она часто летает по миру и связана с критической инфраструктурой (нефтегазовая отрасль), то нам надо отследить потенциальные зоны заражения. Чтобы понять, где она была, нужно найти аккаунт, где выкладывается её творчество.
Возвращаемся в Twitter и находим в друзьях Marc некую Alycee Palmer - девушку в каске и с нефтебуровой вышкой на фоне аккаунта. Очевидно, это она.
Гуглим никнейм alyceedoesstem и находим аккаунт в DeviantArt, в котором действительно опубликованы рисунки. Довольно просто. Сдаём его и получаем 75 баллов.
Contact Tracing - Part II
Как называется вулкан, который посещала Alycee?
Нам намекнули, что рисунки девушки очень важны. Просматриваем их и натыкаемся на что-то вулканоподобное с подписью HAWAII.

Быстрый поиск даёт название вулкана на этом острове -- Kilauea, и это правильный ответ на 100 баллов.
Нужно упомянуть, что была ещё одну подсказка -- извержение. Название рисунка было "The day it all changed", а на нём самом был изображён поток лавы + дата, спрятанная в буквах: Apr 30 2018.
Можно было проверить, что в этот день действительно было извержение вулкана Kilauea, но нам это не понадобилось.
Contact Tracing - Part III
Как называется парк, который любит посещать Alycee?
Продолжаем прочёсывать аккаунт на DeviantArt. Обращаем внимание на идиллическую картину: домик, грунтовая дорожка, луг, деревья.

Очевидно, это должен быть парк, но где он? По предыдущему заданию мы заметили привычку Alycee оставлять сведения в рисунке, и здесь тоже так -- внезапно мы замечаем координаты прямо на рисунке.
Списываем их as is -- 38°01'27.8"S 145°20'29.0"E -- и вбиваем в Google Maps.
Сразу же открывается парк, который называется Wilson Botanic Park. 125 баллов наши.
Contact Tracing - Part IV
Необходимо найти, в каком пригороде живёт друг Alycee по имени Marcel.
Возвращаемся в Twitter и находим подходящий аккаунт в друзьях: Marcel Balkins. И в био есть информация, что проживает он в Австралии, штат VIC, но нам этого недостаточно.
Обращаем внимание на фон аккаунта:

Схема в MULTIPROG с названием phd-apax. К сожалению, нам это ничего не говорит.
Прочёсываем посты и ничего не находим. В подписчиках есть интересный аккаунт:

Но, видимо, это чья-то шутка -- координаты указывают прямо в Индийский океан. Вспоминаем предыдущие кейсы и идём в раздел "Твиты и ответы".
Там мы и натыкаемся на любопытный диалог:

Итак, у Marcel есть кот Tyrone, которого он чуть не отдал в местное отделение RSPCA (Королевское общество по предотвращению жестокого обращения с животными) для лечения. Но остановил его громкий случай, про который писали в блогах -- это отделение эвтаназировало больных лишаем кошек.
Конечно же, это очевидная зацепка, и через местоположение RSPCA мы выйдем на место жительства Marcel.
Ссылки на новость он не даёт, но упоминает, что было это 6-8 лет назад, кота звали как вид оленя или болезнь, а ещё была петиция. Настраиваем Google на поиск в диапазоне дат, используем ключевые слова cats, ringworm, RSPCA, euthanazing и ищем!
Исходную статью в блоге так и не удалось найти, к сожалению, но петиция нашлась быстро. Из первых строк выхватываем название пригорода Burwood, и сдаём его -- 275 баллов.
Contact Tracing - Part V
Необходимо найти, где живёт друг Alycee по имени Pong.
Идём проторенной дорожкой: в друзьях находим аккаунт Li "Pong" Weiqi, сразу видим любопытный фон аккаунта и первый пост.

При поиске по изображению с фона в Яндекс.Картинках находим город Blackall. Флаг и 125 баллов.
Contact Tracing - Part VI
Мы узнали, что у Pong есть машина, и что он мог посещать соседние города в последние месяцы. Нам нужно вычислить его машину и назвать её точную модель.
Что ж, в Twitter оперативно находим номер машины и кусок уведомлении о штрафе в посте с возмущением сабжа.

Видим, что это седан, и что нам теперь известен его регистрационный номер. Что дальше?
Разумеется, в голову приходит поиск полной информации о штрафе на специальном сайте (в Австралии же тоже есть своя ГИБДД, верно?).
В боте @HowToFind_RU_bot есть целый раздел про поиск по номеру Авто, в том числе для Австралии. Понимаем, что есть отдельные сайты для каждого штата. Где же искать? К счастью, в био аккаунта в Twitter указан штат: QLD aka Queensland.
Заходим на соответствующий портал и вводим известные нам данные. Вот и подробные сведения о штрафе!

Правильный ответ -- KIA Stinger, и 75 баллов у нас.
Contact Tracing - Part VII
Pong также путешествовал в другие страны. В каком городе он недавно был?
Смотрим на первый пост в аккаунте:

Быстрый поиск подсказывает, что это здание в Шри-Ланка, Colombo. 50 баллов.
By A Thread
By A Thread - Part I
Итак, продолжаем составлять профиль Alycee. Нам нужен её ABN (Australian Business Number). У нас есть информация о связанном с ней бухгалтере на сайте AirTasker -- возможно, он нам даст информацию о её налоговой декларации, где будет ABN?
Собственно, это единственное задание с социальной инженерией. В профиле на сайте видим, что Paul N. начнёт работу, если мы ему отправим логин:пароль на почту taxteamtechs@gmail.com от нашего аккаунта (интересно, это общая практика?).

Внимательно просматриваем аккаунт Alycee в Twitter и натыкаемся на фото рисунка из рук. Интересно, что на заднем фоне есть записка, на которой что-то похожее на логин/пароль.

И правда похоже -- Palycee89@gmail.com:Dog5!Xxx.
Отправляем это по указанной выше почте и получаем ответ:

А внутри документа находим "ABN: 546 877 954", и сдаём в качестве флага. +125 баллов.
By A Thread - Part II
Когда родилась Alycee? Нужна дата в формате xx/xx/xxxx.
Решение довольно простое: в аккаунте из DeviantArt указана дата рождения 1 января, а почтовый ящик выше намекает, что год 1989.
Также дата была в налоговой декларации, так что дойти до решения можно было двумя путями.
01/01/1989 - 50 баллов.
Категория General
Задания этой и предыдущей категории можно было решать параллельно, что мы, собственно, и делали. Но решать их было в целом куда более сложно, так что самое интересное в райтапе впереди.
Where in the world is Wuhan - Part I
Subject: Possible compromise - Facebook superadmin account Message: We've received an alert from CERT Australia of a possible superadmin compromise within Facebook's backend servers. As you know, they control a number of global node servers and if the roombas get access to pushing content....who knows what they might do. But we're currently looking at Roombas trying to learn the genetic structure and makeup of the novel coronavirus...from various supercookies tracking scientists browser history research. Of course, this can all be found out via the GraphQL API. Facebook being facebook, they're not providing any word at this point. However, combining this with the thousands of Federal Police ACORNS reports we've had in the past few days, it's possible. Let's start from the top. Find Mark Zuckerbergs email address and submit it into the portal; we'll run some automated checks to see if it's appeared in any 3rd party breach sites.
TL;DR: Найдите утёкший email Марка Цукерберга.
Третья строчка Google -- zuck@fb.com, 75 баллов.
Trojan Horse

В общем, ничего сложного: нужно найти лошадку рядом с заправочной станцией BP Petrol в Mansfield на пути в сторону горы Mount Buller.
Для начала заходим в maps.google.com находим гору Mount Buller и город рядышком, после чего начинаем поиск заправок BP Petrol. И двигаемся по шоссе в сторону горы, включив панорамы Google. Вуаля!

Проходим немного дальше и видим ту самую лошадь.

Отправляем предполагаемое "имя" лошади SWAGS и получаем 125 баллов.
Static on the Wire
Само задание, в вольном переводе с английского звучит так: "Повсюду Roombas используют социальные сети, чтобы попытаться распространить пропаганду COVID о заражении населения посредством 5G... в основном, о том, что люди начнут излучать Wi-Fi радиацию.
Однако, новая тактика только что попала в поле зрения нашего радара. Мы только что получили сообщения о распространении пропаганды через любительское радио. Мы не уверены в позывном, но звонивший сообщил следующее утверждение:
"Я разговаривал по телефону со своей женой во Флоренции, штат Алабама. На фоне ее радио HAM я слышал, как кто-то назвал себя "Скотти" каким-то странным роботизированным голосом, кричащим о том, что "демик дает всем 5G и тому подобное".
Пока это все, что нам нужно сделать. Найдите позывной и отправьте его нам, чтобы мы могли начать отслеживать их домашний адрес. "
Что у нас есть: Любительское радио, Алабама, Флоренция, радио HAM, Скотти.
Пытаемся понять, что такое НАМ. "Ветчина", как дословно переводится, вряд ли нас интересует. Тем более, это скорее всего аббревиатура. Google говорит нам: "НАМ - это любительская радиосвязь".
Уже теплее. Ищем какой-либо учет любителей радиосвязи во Флоренции, штат Алабама. Google по запросу "florence alabama ham radio" выдает рекламные предложения, всякую ерунду, которая нас вряд ли заинтересует. НО! Оказывается, (ожидаемо, в принципе) есть некий реестр радиолюбителей Алабамы, по ссылке http://www.city-data.com/aradio/lic-Florence-Alabama.html он и открывается. Ищем Scotty, но не находим.
Но стоп, Scotty -- то уменьшительно-ласкательное от Scott! Ищем... Что-то похожее есть. Scott, Florence, Al (Alabama). Пытаемся сдать позывной KG4RFV как флаг... Гоооооол! Флаг принят, мы молодцы! 175 баллов.

Lies and Treason
Из Франции пришла новость, что удалось отследить компанию, которой владеет Roombas - CYBAR PROPERTY PTY. LTD. Вдобавок в руки спецагентов попал заблокированные ноутбук. Подсказка к паролю гласит, что это должно быть "my middle name ". Пока нам известно только, что владелец компании -- некая Lillie. Нужно найти про неё больше информации.
Итак, пробиваем имя компании в Google и сразу же находим австралийский реестр юр. лиц. Но, к несчастью, там не работает поиск по ID-номеру -- профилактические работы, какое совпадение...
Проводим небольшой ресерч в Google Maps по адресу юр. лица: собираем все названия улиц и районов поблизости. Немного сократив само название компании и добавив туда все возможные адреса юр. лица для поиска источников с более полной информацией, а также изменив дату в ключе поиска результатов на 2017 год, находим сторонний ресурс, который успел вовремя собрать и сохранить всю нужную информацию о компании. Там же видим полные имена всех руководителей компании, которые оказались родственниками.
Сдаём имя Theresa и получаем 450 баллов.

Интересно, что официальное решение при этом предполагало покупку сведений за 9$. :)
Fake News

В The Daily News опубликовали статью о том, что на Southern Cross Station было зафиксировано 40 человек, больных COVID-19. Мы уверены, что это фейк за авторством Roombas, чтобы посеять панику.
Довольно многословное задание сводилось к "простой" задаче -- найти количество человек, прошедших через Southern Cross Station в 4 утра 28 февраля.
Формулировка заставляла задуматься -- что может быть таким точным источником данных?
Может быть, искать чекины по социальным платформам? Но сайты вроде Foursquare не подходят -- там просто нет подробной информации.
Возможно, это должны быть данные о фактических пассажирах, прошедших через станцию. Однако, Southern Cross Station -- это пересадочный узел, там и поезда, и автобусы, и трамваи. К тому же, беглый поиск по расписаниям и транспортным аккаунтам в соцсетях дал понять, что такой информации не публикуется.
Выяснилось, что есть интерактивная платформа для подсчета статистики по транспорту на базе Microsoft Power BI. Но, к сожалению, данных о людях там не было.

Также удалось найти датасеты, выложенные на сайте транспорта штата Victoria, но все данные были там слишком старые.
Ещё раз присматриваемся к формулировке и замечаем, что речь идёт о пешеходах - pedestrians. Что бы это значило? Что мы копаем не в том направлении? Тогда берём это слово и используем его в дальнейших поисках как обязательное.
И вот мы находим статью о том, как изменился трафик в городах из-за коронавируса. И в ней действительно есть очень подробные данные!

Обращаем внимание на график "Pedestrian counts in the City of Melbourne" и смотрим на источник этих чисел. Мгновение ступора, затем поиск по точному названию -- и вот мы находим адрес системы подсчета пешеходов Мельбурна, в котором можно выбрать произвольный день, час, одну и точек на карте, и увидеть нужную статистику!

Таким образом определилось количество -- 14 человек. 650 баллов и чувство собственного удовлетворения.
Where in the world is Wuhan - Part II
У нас есть изображение некого места, и нужно найти, где это.

Формулировка задания немного менялась, сдавать его надо было через модераторов -- называешь ответ, а они тебе дают флаг для сдачи.
Итак, обращаем внимание на застройку -- ровная, квартальная. Местами даже чрезвычайно ровная. Из достопримечательностей -- некий канал (вряд ли река, устье очень чёткое), берег (реки, озера, океана?), парк, полукруглая дорога.
Поиск по изображению даёт мало похожих результатов. Даже по полукруглой улице мало похожего. Ручной поиск по известным городам выходит малоэффективен.

Внезапно поиск по картинкам приводит на Pinterest. Да, изображения идентичные, а название категории не оставляет сомнений. Однако, модераторы не принимают эту ссылку в качестве ответа! Мол, нужно найти источник изображения.
Продолжаем искать, и натыкаемся на что-то очень похожее.

Картинка приводит нас на страницу Github с утилитой MapGenerator для процедурной генерации фейковых карт городов.
Переходим на её сайт, смотрим примеры и находим что-то до боли похожее:

Очевидно, это и есть наш источник -- инструмент MapGenerator. Сообщаем это модератору и получаем флаг itsfake, который и сдаём. +675 баллов!
Curious Case of COVID
Это финальное задание открывалось дополнительно после того, как несколько команд решили все первые задания.
Были получены сведения, что Roombas путешествовали по штату Техас. Известно только, что они были где-то между Хьюстоном, Сан-Антонио и Остином.
Но есть видео, снятое изнутри машины во время поездки. Надо определить, по какой дороге они ехали.
Видео: https://mega.nz/folder/E1lXzZYa#lZawGxAgr57-IKJPR8znhQ

Пожалуй, действительно, самое сложное задание.
У вас есть видео на 13 секунд, снятое с телефона с рук в движущейся машине. Человек перед камерой закрывает лицо шариком, играет какая-то музыка, на фоне проносятся деревья. Как найти местоположение?
Начинаем систематически отрабатывать теории. Для этого разбираем видео на кадры и просматриваем всё в поисках зацепок.
Метаинформация
Смотрим информацию о видеофайле -- дата создания, модификации и другое. Ничего примечательного.
Мост
Замечаем мелькнувшую в кадре конструкцию, напоминающую мост. По центру зигзаг.

Расплывчато, но похоже на зацепку. Идём дальше.
Эмблема
Видим на одежде некую эмблему с надписью National. К сожалению, полностью её не видно, но также оставляем на потом.
Музыка
Шазамим трек на фоне -- это Buy U A Drank от T-Pain feat Yung Joc. Гуглим и узнаём, что у них недавно был концерт в Сан-Антонио. Вот так кстати! Кажется, мы уточнили город.
В качестве самой многообещающей зацепки берём "мост" и начинаем его отрабатывать.
Поиск достопримечательностей в городах не даёт похожих результатов. Быстрый поиск по панорамам даёт похожий объект, но это оказывается поле для гольфа, и ни с какого ракурса нет зигзага.

Мелькает идея о том, что это не мост, а аттракцион (американские горки, они же roller coaster). Прочёсываем интернеты и находим Техасского гиганта. Что ж, очень похоже, но далеко от нужных нам мест. Целенаправленно просматриваем все дороги вокруг американских горок у Сан-Антонио.
Успеваем несколько раз разочароваться, но всё же находим подозрительно похожий ракурс:

Действительно, зигзаг и аркообразная конструкция! А дорога, стало быть, это 151 Access Road.
Проверяем флаг и... ликуем! 725 баллов, и финальное задание CYBAR OSINT CTF выполнено.
Заключение
Что хотелось бы сказать в итоге?
Умейте правильно гуглить. :)
Нет, серьёзно, это очень важное умение.
Обращайте внимание на любые мелочи -- они бывают довольно важны. Даже если это переписки в Твиттере.
Никогда не забывайте логиниться в сервисы, в которых ищете информацию. Так уж это устроено: чем больше вы "играете по правилам сервиса", тем больше он вам показывает.
В подобных CTF обращайте внимание на бонусные баллы за разные ачивки и нацельтесь в пару из них, если рассчитываете выигрывать. Например, можно накинуться в начале соревнования на одну категорию всей командой, и в итоге затащить за счёт дополнительных баллов.