Содержание статьи
Я думаю, об актуальности социальной инженерии говорить не приходится. О действиях APT-группировок и об эпидемиях рансомвари, распространяемой по почте, ты и так, скорее всего, постоянно читаешь в новостях: Carbanak, Buhtrap, BlackOasis, GHOUL — за примерами таких атак далеко ходить не нужно.
WWW
- Новая операция кибершпионажа FinFisher: атаки MitM на уровне провайдера?
- Carbanak (Wikipedia)
- BlackOasis APT and new targeted attacks leveraging zero-day exploit
- «Лаборатория Касперского» обнаружила кампанию кибершпионажа, проведенную с помощью готового вредоносного ПО
- Kaspersky exposes apparent Russian cyber-espionage operation amid U.S. criticism
Цели тестирования
Когда договариваешься с заказчиком, первым делом нужно убедиться, что вы оба верно представляете себе цели тестирования. Заказчик обычно хочет:
- подготовить или оценить работу центра реагирования на инциденты (CERT, SOC);
- оценить осведомленность сотрудников;
- корректно настроить спам-фильтры, песочницы и антивирусы.
В любом из этих случаев твоя задача будет заключаться в том, чтобы узнать, как пользователи реагируют на фишинговые рассылки, но недопонимания все равно случаются. Бывало, что после нашей рассылки заказчик просил расследовать инцидент, забыв о том, что заказывал пентест. Или ИТ-отдел заказчика, видя аномалию почтового трафика, блокировал наши рассылки.
Но что в таком случае протестировал заказчик? Группу реагирования? Мониторинг? Точно — не реакцию пользователей. Так что нужно обговаривать подобные моменты и понимать, какие цели мы преследуем. В зависимости от них можно будет определить, как проводить дальнейшую рассылку.
В итоге если заказчик хочет от нас, чтобы мы тестировали именно пользователей, то письма можно слать всем им, договорившись, чтобы рассылки не блокировали. Но если ставится задача не только проверить реакцию сотрудников, но и протестировать спам-фильтры, мы обычно выбираем небольшое количество пользователей, которые наименее осведомлены в вопросах безопасности, например бухгалтерию, административный отдел или юристов — в общем, всех, кто не связан с ИТ. И рассылаем только им: с задержкой по времени и индивидуальным подходом к каждому.
Также нужно помнить, что наши цели не те же самые, что у настоящих злоумышленников. Для них главное — заразить рабочие станции пользователей и развить атаку, попав во внутреннюю инфраструктуру организации, чтобы, например, получить конфиденциальную информацию. Для нас же важно лишь узнать, как среагировал пользователь: открыл ли вложение, в какое время, какие у него ОС и браузер — в общем, все, что может помочь заказчику устранить проблемы.
Что роднит пентест с настоящей атакой — это обход всех возможных политик безопасности. Нам точно так же, как и злоумышленнику, нужно доставить фишинговую ссылку или пейлоад до рабочей станции пользователя.
Модель нарушителя
Существует несколько моделей нарушителя, которые делятся на две части: внутренний нарушитель и внешний. Внутренний либо обладает инсайдерской информацией, либо даже находится внутри сети. У внешнего имеется минимальный набор знаний: название организации, отрасль и другая публичная информация.
Точно так же делятся и рассылки. Если ты находишься в роли внешнего нарушителя, то будешь, например, рассылать письма от имени какой-то сторонней организации с просьбой посмотреть выписку по счету, открыв вложение или перейдя по ссылке. Я, кстати, такие рассылки не очень люблю из-за их низкой результативности. Чтобы ее повысить, нужно как можно больше внимания уделить разведке и по возможности найти максимум информации о компании: адреса email сотрудников, географическое положение, структура компании и другие подобные вещи.
Если использовать модель внутреннего нарушителя, всю эту информацию можно узнать у заказчика. Причем здесь уже можно попросить и сами адреса сотрудников для рассылки.
Разведка: пассивный сбор
Утилит для автоматизированного сбора информации просто огромное количество — примерно по одной на каждого жителя Земли. 🙂 Вот несколько наиболее известных: SpiderFoot, intrigue core, DataSploit, Maltego, theHarvester. Но большинство из них дают крайне посредственные результаты при работе в русском сегменте.
Для себя я выбрал несколько утилит, лишенных этого недостатка. Среди них: SimplyEmail, ePochta Extractor и FOCA. По личному опыту могу сказать, что SimplyEmail хорошо зарекомендовал себя в работе по СНГ и поиску email-адресов. FOCA же помогает структурировать и быстро анализировать разные документы из поисковых систем и сайтов заказчика, искать адреса и другую информацию.
Кроме того, такую же разведку я делаю по всей инфраструктуре заказчика, как при обычном пентесте. Анализирую DNS, ищу поддомены, смотрю, какие используются IP, и так далее. Большинство нужных для этого утилит перечислены на osintframework.com. Вот краткий список того, чем я чаще всего пользуюсь:
Много результатов обычно дает и анализ социальных сетей: ВК, «Одноклассники», Facebook, LinkedIn и прочие. Все они позволяют указать место работы, по которому мы и будем искать. Для парсинга существуют разные утилиты. Например, linkedin_profiles.py и corpint, также посмотри репозиторий aleph data, там много утилит для анализа информации из социальных сетей.
Не стоит упускать возможность порыскать и по Instagram и ВК, где доступен поиск по геолокации. Если ты точно знаешь, где расположена компания, то можешь посмотреть фотографии, которые делают сотрудники на своем рабочем месте. Например, попадаются кадры с экранами мониторов, а на них — внутренние номера и почтовые адреса, иконки программ. Одно знание о версии Outlook может оказаться очень ценным (об этом — ниже). Иногда я слышу истории о том, что сотрудники на стикерах пишут свои пароли, но, честно, за всю свою практику я такого не встречал.
Полезно бывает и анализировать лайки в «Фейсбуке». Часто компании во внутренних рассылках пишут что-нибудь вроде «вот наша страница в Facebook, поставьте ей лайк и подпишитесь, пожалуйста». Такой лайк может быть косвенным признаком того, что человек работает в компании.
Кроме этого, существуют отличные ресурсы вроде databases.today: mmnt.ru, ftplike.com, metabot.ru, rapid-search-engine.com, alluc.ee и так далее. Там можно найти слитые базы данных и искать адреса локально. Ну и конечно, есть всем известный leakedsource.ru, где собираются утекшие базы данных. Правда, на нем всего три миллиарда учетных записей. Есть ресурс круче — с пятью миллиардами, это weleakinfo.com. Там можно сделать поиск по маске и найти адреса с определенного домена (то есть все адреса какой-то конкретной компании), что чаще всего дает внушительный результат.
Если у компании «странные» политики безопасности и принудительная смена пароля вовсе отсутствует, то бывает так, что модель внешнего нарушителя становится внутренней (с разрешения заказчика, конечно), потому что пароль учетной записи подходит и можно зайти в его почту и рассылать письма с внутреннего адреса. Почти всегда результаты потрясающие.
Продолжение доступно только участникам
Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее
Вариант 2. Открой один материал
Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.
Я уже участник «Xakep.ru»