Автор: 0X7C3
Специально для xss.pro
Оглавление:
Часть 1. Разведка
Часть 3. WiFi враг твой, а Bluetooth его помощник
Часть 4. ZeroDay в СКУД как точка входа
Часть 5. HomoSapiens. Взламываем человека
Часть 6. Кодим, строим дрон
Часть 7. Заключительная. А что если?
Предисловие.
Уважаемый читатель, это история об одном корпоративном взломе и тотальном раздолбайстве в отдельно взятой компании (Хотя как показывает практика, экономия на ИБ это своего рода – стандарт). История о том, насколько беззащитны сети крупных компаний перед не самыми хитрыми атаками и инструментами, отнюдь не являющимися "приватными".
И хотя данная история является "белым" примером, но условия были вполне боевые, ведь в курсе планируемых действий был лишь учредитель, он же владелец компании.
Будет 7 частей, постепенно раскрывающие различные векторы атаки и даже обнаружение 0day там, где совсем не ожидалось.
P.S: Данные слишком очевидно указывающие на объект атаки будут заменены на случайные, часть скриншотов, демонстрирующих те или иные этапы может быть "симулирована" из логов. В арсенале не будет никакого особо хитрого оборудования и софта, никаких покупных 0day и прочего. Пара лэптопов с классической Кали на борту, несколько вай-фай адаптеров, пара бюджетных самоделок и не самая навороченная SDR’ка. Ну и конечно же дрон. Куда в наше время без летающей вундервафли?
Небольшой юридический аспект: все манипуляции проводились исключительно на оборудовании заказчика и с его согласия. Сотрудники так или иначе затронутые в данной истории имеют соглашение с работодателем о проведенных действиях.
Помните, повторение Вами подобного может привести к тюремному заключению и/или материальным потерям.
Приятного чтения.
Часть 1. Разведка
Среднего размера компания, филиалы в нескольких регионах РФ. Около 200 сотрудников. Производит некоторое оборудование и соответственно софт для него.
В качестве объекта атаки выбран головной офис.
Любая атака начинается с определения векторов. Поскольку нас интересует скрытное проникновение, условно мы можем их разделить на 3.
- Онлайн - пытаемся проникнуть за периметр через интернет.
- Оффлайн - собираемся и выходим из своей уютной берлоги в направлении офиса запримеченной нами компании с целью найти уязвимые беспроводные сети и любые интерфейсы доступные 3-лицам (например, информационный киоск с доступными портами) и/или же в наглую лезем в кабельный коллектор и врезаемся в их оптику, дабы устроить небольшой хардварный mitm, применив немного магии. (Но об этом в другой раз)
- Сотрудники, они же люди - включает оба предыдущих вектора полностью или частично, требует соц.инженерной магии, но поскольку в любой системе самое уязвимое звено это как правило - человек, выделяем homo sapiens'a в отдельный вектор и ставим приоритет в зависимости от уровня собственной интровертности.
1.1 Онлайн
Сам вектор можно разделить на два подвектора.
- Сканируем интересующие нас подсети на предмет чего-нибудь вкусного и дырявого
- Засылаем нагрузку по условной почте и надеемся, что её откроют, а известный нам эксплойт окажется не очень известен для жертвы и её систем безопастности.
Поэтому переходим к первому и начинаем сканирование... Стоп. А что сканировать? А это мы сейчас и выясним.
Всё что нам известно на данный момент это адрес сайта и юр.лицо компании (полезно получить так же связанные юр.лица, сделать это можно через условный СПАРК или например list-org.com)
Начнём с сайта, попробуем получить ip адрес. Хотя в большинстве случаев это бессмысленно, т.к. обычно только очень большие компании держат свои подсети и хостят свои сайты самостоятельно, у игроков поменьше это обычно либо шаред-хостинг, либо в лучшем случае выделенный сервер с тройкой другой провайдерских адресов.
Но поскольку на данном этапе мы занимается разведкой, нам важно собрать всю доступную информацию,
какой бы маловажной она не казалась в моменте.
Запрос dig к основному домену
И тут нас ждет первое разочарование, ip принадлежит знакомой по опыту подсети, но нужно удостовериться.
Запрос whois
Чёрт, Cloudflare, а соответственно и нужный нам ip становится получить несколько затруднительно. То же самое обнаруживается на международной версии сайта.
Но ведь ip это не единственное, что можно получить от домена.
Поэтому выполняем whois домена, для начала RU
Ага, Private Person, ожидаемо. А что у нас с com?
Вот она, зацепка. Есть данные. Совпадение с юрлицом.
Теперь, попробуем найти подсети, принадлежащие нашей цели, если таковы имеются. Поскольку компания российская, без зарубежных представительств, мало вероятно, что у них есть, например, американские ip, и, хотя поиск осуществлялся по всем RIR, в примере показывается только RIPE NCC, поскольку алгоритм везде схож.
Идём на https://apps.db.ripe.net/db-web-ui/fulltextsearch и выполняем поиск,
Нюансы таковы, поскольку язык базы данных английский - транскрипция с русского на латиницу не всегда
очевидна, нужно пробовать разные варианты. Так же в нашем случае компания — это ООО, иногда встречается
как OOO (латиница), так и llc или Limited Liability Company.
Получаем результат запроса
Далее условно будем обозначать диапазон X1,X2,X3,X4,X5
Заветные сети для сканирования. Но останавливаться рано, вдруг эти сети не используемые, или
компания использует другие, не оформленные на неё?
Так же мы всё ещё не знаем кто интернет-провайдер головного офиса. Вариантов узнать провайдера в целом несколько. Если это бизнес-центр, связаться с администрацией или посмотреть сайт бц, можно воспользоваться условным 2gis.ru, а потом узнав провайдера, проверить принадлежащем ему диапазоны через ту же базу RIPE. Толку от этого будет не очень много, нерелевантных адресов в лучшем случае окажется тысячи, но как мы помним, на этом этапе мы занимаемся разведкой.
В нашем же случае ситуация оказалась одновременно лучше и хуже. Офис находился в пром.зоне, а само здание офиса является собственностью компании и не является бизнес-центром, к тому же вдали от любых других офисных здание, за исключением пары автосервисов и мелких магазинчиков. Можно было бы пообзванивать провайдеров, с целью выяснить у кого вблизи есть линии связи, но лень заставила действовать по другому.
Информация нужна, так почему бы не заставить компанию выдать её?
Открываем сайт компании и сразу видим livechat, отлично, берём на заметку.
Далее видим раздел "Контакты", идём посмотреть, что там интересного.
Потрясающе. Отдел продаж, отдел закупок, отдел кадров, бухгалтерия, приёмная генерального директора и т.д.
Смотрим ниже
Помните в начале я говорил, что компания с филиалами (а где филиалы, там и vpn)? Вот и контакты.
Самое главное, у всех в контактах есть почты. Стоп, почты. Смотрим внимательно, корпоративный домен.
А глянуть ip почтового сервера мы то и забыли.
Выполняем dig mx
Хорошие новости, диапазоны из базы RIPE всё же задействованы, как минимум один.
Возвращаемся к почтам, смышлёные девчата и ребята уже поняли, что мы будем что-то отправлять. Нет, пока ничего зловредного, пока мы занимаемся только разведкой, лишь попробуем вытащить некоторые данные, такие локальный ip, версиибраузеров, плагины и прочую информацию, сливаемую браузером, ну и конечно же внешние внешние айпишники.
Софт и инструкция будут в ч.6
- Livechat на сайте. Прикидываемся дурачками и завязываем небольшой диалог о проблемах на их сайте. В итоге вынуждаем перейти оператора по нашей ссылке со скриншотом описывающем проблему, попутно фиксируя нужные нам данные
- Отдел закупок. Сочиняем небольшое письмо, о том, как круто мы умеем поставлять вкусный кофе в офисы, прикладываем заветную ссылку на наш прайс лист.
- Отдел продаж. Письмо о том, как бы нам получить скидку на их продукцию, несколько «углубленных» вопросов о их продукции, да бы не выглядеть подозрительно и заветная ссылочка на pdf с техническим описанием нашей продукции, с целью оценить сможем ли мы всё это интегрировать. Кто-то скажет, что зачем такие сложности. Объясняю, в данном случае мы делаем расчёт, на то что продажники «перешлют» письмо в другой отдел (контактов которого у нас нет, но он наверняка существует, учитывая размер и профиль компании), способный ответить на наши «технические вопросы». Так же мы создаём задел на будущее, «втираемся в доверие», на случай если решим засылать им какого-нибудь зловреда.
- Бухгалтерия. Одни из моих самых любимых «персонажей». Самая атакуемая категория сотрудников, лучше других знают, что не стоит открывать файлы, присылаемые «неизвестными» и не стоит ходить по ссылкам из писем, но ровно до тех пор, пока заголовок письма не касается какого-нибудь НДС или очередного письма-налоговой. По опыту могу сказать, 7/10 – переходят по ссылкам, плюя на здравый смысл и должностные инструкции. Возможно, потому что есть понимание реалий России, и что очередное письмо-налоговой может запросто сделать уголовно-наказуемым то, что вчера ещё было вполне себе ОК, а бухгалтер всегда первый в очереди на казённое жильё и трёхразовое питание.
Раскидываем похожие письма по другим адресам и ждём.
Как говорилось выше, к железу есть софт и он очень любезно предоставлен на сайте, скачаем и посмотрим, куда он ломится.
Ага, знакомый диапазон X4
Есть результат, по нашем засланцам. Плюс, как и ожидалось, продажники переслали письмо кому-то более компетентному. На данном этапе мы собрали интересные данные. Например, выяснили, что в парке используются машины с не самым свежим софтом. Кое-что поняли про их сеть и про админов.
Админка SimpleTracking
Что это за магия такая, будет объяснено в ч.6
Определимся, что мы выяснили про сеть.
- Отделы продаж, закупок, бухгалтерия, гендиректор (секретарша?) выходят в интернет с IP адреса из диапазона X2 и вероятно сидят в одной сети (слава WebRTC! и утечке внутренних ip)
- Оператор livechat или более вероятно технический отдел, куда было передано сообщение выходят в интернет с IP адреса из диапазона X2
- Предполагаемый технический отдел с такого же адреса как и 2 пункте.
- Мы выяснили предполагаемых интернет провайдеров для головного офиса и филиалов. Так же мы выяснили, что вероятно админы криворукие или как минимум ленивые. Для тех кто не понял, взгляните ещё раз на скриншот выше, секция DNS-leak
1.2 Оффлайн
Переходим к моей любимой части, работа на свежем воздухе.
Предварительная разведка показала, что здание офиса представляет собой советское 3-этажное промышленное здание с железобетонным каркасом, высотой потолков ~4.5 метра и панорамным остеклением (причём не тонированным и не зеркальным, что практически гарантирует отсутствие металлизации, а это крайне полезно для прохождения радиосигналов).
Кто-то сейчас точно подумает «какого чёрта» и пойдет проверять, не попал ли он/она на архитектурный форум. Но не торопитесь, сейчас объясню почему это важно.
В «уличной работе», нас в первую очередь интересуют беспроводные сети, а если точнее — wifi. Так вот, если не вдаваться в школьный курс физики, для 2.4 ГГц чуть ли не решающее значение имеет прямая видимость. Простой пример это любой бытовой роутер средней ценовой категории, на открытой местности условные 100 метров не будут являться проблемой для установления соединения, а 3 стены в хрущёвке — вполне.
Наша же ситуация близка к идеальной, малая этажность вкупе с высотой потолков, даёт очень хорошие шансы увидеть точки доступа в прямой видимости на каждом этаже с одной позиции, а самое главное с «рабочей» дистанции. Конечно можно работать и с 500 метров, используя разные хитрые антенны и балуясь мощностью, только вот допустим захват рукопожатий на такой дистанции — потянет вполне себе на научную работу.
Так же в силу изначальной конструкции здания (отсутствуют несущие стены) и «новомодных» тенденций, весь офис практически — опенспейс.
Открываем гугл мэпс и смотрим местность,нам нужно определить наши позиции.
- Несколько точек поближе, для близкого контакта с офисом. (1)
- Одну рядом с проезжающими сотрудниками, но достаточно отдалённую от офиса, что бы их устройства не подключались автоматически к офисному wifi. (2)
- Одну не слишком далеко для запуска квадрокоптера, чьё полётное время ограничено ~25 минутами. (3)
[SIZE=4]airodump-ng[/SIZE].На данном этапе нам нужно собрать probe request запросы от телефонов сотрудников, дабы выяснить к каким сетям они подключались. В 2022 году эта «атака» конечно менее актуальна, ведь устройства с Android 8/iOS8 и выше транслируют только скрытые ssid. Но как всегда есть «но», в случае с андройдом — всё это зависит от конкретного производителя. Например Samsung Fold 2 транслирует только скрытые сети, а Samsung A32 — все, к которым подключался. От производителя так же зависит и интервал сканирования, одни шлют пробы каждые 5 минут, другие целый день, третьи только при включении экрана. (Если кому то интересна эта информация, напишите — выложу «исследование» по 100+ устройствам 2020-2021)
К 10 утра, когда уже практически все должны быть на своих рабочих местах, было насчитано 87 машин, включая парочку уберов и 56 устройств отправивших пробы хотя бы с одним ssid.
Пример данных.
Зачем нам это всё понадобится, ты, дорогой читатель, узнаешь чуть позже, а пока едем на точку #1
Тут всё стандартно, режим-монитора, быстренько глянем, вдруг есть точки доступа с WPS
wash -s -i wlan0mon
Одна есть, но увы, по названию и слишком хорошему сигналу — становится понятно, что это магазинчик в 15 метрах.
Не унываем и даём команду
sudo airodump-ng --write networks --write-interval 1 --output-format csvНам нужно собрать в файл сети и клиентов.
19 сетей явно нужных нам, но ситуация одновременно плохая и хорошая. Судя по столбцу AUTH, все они psk, нет ни одной mgt. И хотя условный personal несколько проще «ломать» чем enterprise, отсутствие последнего намекает на очень простую «сеть», что лишает нас некоторого количества точек отказа вроде хреново настроенных микротиков (вспомним историю с РЖД!) или криво настроенного сервера radius.
Нужно собирать хендшейки, двигаем на 3 точку и пускаем нашу птичку
[фото нагрузки дрона]
Нагрузка — смартфон с кали, адаптер, пауэрбанк и кастом по питанию. Цена на круг 200 долларов, потерять не жалко.
Сажаем на крышу. Цепляемся по ssh (смартфон подключен по мобильной сети, подробно об этом в ч.6)
Смотрим сети
Где то сигнал стал лучше, где то хуже.
Запускаем наш кастом под сбор хендшейков
wlan_catcher -a -write office -show essid -w AutoTradeSuper wlan1mon
И едем домой. С работой у офиса на сегодня покончено.
1.3 Люди
Эта часть будет короткая, её цель показать, как казалось бы незначительные данные, могут нам помочь.
На данный момент мы знаем несколько ценных вещей о сотрудниках.
- WiFi к которым они подключались вне работы.
- WiFi к которым они подключались на работе
В конкретном примере мы рассмотрим одного единственного человека.
Нас интересует юзер который подключался в течении дня к сетям Lab_Andrey,RACK7,Test2322
Смотрим какие пробы он отправлял
Отлично! Идём на wigle и глянем где такие точки есть.
Выбираем регион на карте, вбиваем ssid HP_Home_24323 жмём Query и вуаля. Имя уникальное, только одна точка на карте. Не называйте дети, свои сети, именами уникальными.
Поехали?
Катаемся, ищем парковку, параллельно поглядывая на запущенный монитор
-57 dbm, отлично!
Пока ждём его возвращения домой, глянем что у него там на вайфае висит
sudo airodump-ng wlan0mon --bssid АДРЕС_ЦЕЛИ
Судя по макам, тв, что-то яблочное и вероятно пк. Надеемся, что он берёт работу домой.
Коротаем время сбором хендшейков с нашего таргета и окружающих сетей
wlan_catcher -a -write home -dbm 70 -d wlan0mon
Нам бы очень не помешал роутер поддерживающий режим монитора. Днём белый и пушистый, ночью наш мост к цели. (Забегая вперёд, такой роутер был найден на другой точке и успешно перепрошит. ч.3)
Отступая от темы, на момент этого взлома, не было такого количества утечек различных данных. В данном случае, используя лишь базу линкедина. и утечку яндекс еды, мы без труда установили адрес этого человека, его фио и должность.
Потренируйтесь в ожидании продолжения сами, если умеете складывать 2+2, вы без труда найдёте огромное количество жирных целей.
Набор различных утечек
magnet:?xt=urn:btih:3b5bb8dc1714fbcaf2a35654822f66de31502c7d&dn=csv&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80%2Fannounce
а это бэкап известного сайта saverudata
magnet:?xt=urn:btih:a1924abc39e826c8bb860f874cd3de7055d9274d&dn=website&tr=udp%3A%2F%2Ftracker.openbittorrent.com%3A80&tr=udp%3A%2F%2Ftracker.publicbt.com%3A80&tr=udp%3A%2F%2Ftracker.ccc.de%3A80&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce
Наша цель успешно доехала до дома, к сети подключились ещё 2 устройства. Отлично, а что дальше спросит читатель. А дальше мы будем эксплуатировать, то что нашли. Но уже в следущей части. Надеюсь данная статья, смогла заинтриговать. До встречи через несколько дней.
Вложения
Последнее редактирование:
