Глава 3. Подавая дугой

Прежде чем мы сможем выманить Strat Jumbo, нам требуется больше узнать о самой компании. Мы проверим её присутствие в Интернете, и найдём несколько скрытых подчинённых доменов. Быстрый поиск в Google показывает, что Strat Jumbo Inc. это базирующаяся в Лондоне фирма, в которой работает около 800 сотрудников, в основном программистов серверных компонентов, работающих в 10 странах. У этой компании достаточно потенциальных целей для обеспечения существенного выхода от затрат в случае проведения фишинговой компании. Мы уже можем представить себе соблазнительные приманки для этой толпы: новое расширение для Chrome, корпоративный опрос по сопоставлению C# и Java, бета- доступ к новой функциональной возможности и тому подобное.

Кража просмотра

Прежде чем составить фишинговое электронное письмо, мы кратко рассмотрим связанные с Интернетом активы Strat Jumbo. Основная идея состоит не в том, чтобы искать уязвимости (хотя мы бы не отказались от их эксплуатации, если наткнёмся на них), а просто посмотреть как выглядят веб- сайты компании и убедиться, что они и в самом деле поставляют G&S Trust своё программное обеспечение.

Мы начнём с просмотра перечня клиентов на предмет упоминания G&S Trust или даже цитат от руководителя, но нам не удастся установить ясную связь между этими двумя компаниями.

Нам требуется проявить больше активности. Мы решили воспользоваться одной из форм продаж на веб- сайтах Strat Jumbo с выгодой: мы отправим им сообщение, в котором в явном виде выражается живой интерес к бухгалтерскому программному обеспечению. Мы заманиваем их получением выгодной сделки и небрежно запрашиваем рекомендации от команды G&S Trust. На Рисунке 3.1 показан их ответ.

 

Рисунок 3.1


Отклик на наш первый контакт через форму продаж Strat Jumbo

Менеджеры по работе с клиентами делают всё возможное чтобы накрыть новых клиентов, а потому, естественно, в течение трёх часов мы получаем электронное письмо с просьбой о возможности звонка и подтверждением того, что G&S Trust на самом деле является самым лояльным клиентом. Не потребовалось практически никакой социальной инженерии. Игра началась!

Этот обмен электронной почтой служил и второй коварной цели: получить шаблон электронной почты данной компании, включая сам формат электронной почты сотрудника, его подпись, цветовую схему, шрифт и тому подобное. Мы воспользуемся этим позднее для создания убедительного фишингового письма. Я не могу не подчеркнуть важность таких мелких деталей. Они помогают создавать достоверную картину в подсознании вашей жертвы; удовлетворите этого дикого зверя и он немедленно подавит любые потенциальные подозрения, исходящие из любой из лобных долей. В результате цель почти инстинктивно вынуждена щёлкнуть ссылку и загрузить вложение, потому как такое электронное письмо кажется доподлинно знакомым.

Выявление подчинённого домена

Нет необходимости торопить события и спешить - мы всё ещё пребываем на этапе разведки. Давайте начнём с того, что проверим наличие демонстрации Strat Jumbo в Интернете. Во- первых, мы получим перечень их развёрнутых в Интернет подчинённых доменов, следуя тем же подходом, который применялся в Главе 2. На этот раз мы будем применять сочетание Censys и DNSRecon:


root@FrontLine:~# ./search_censys.py -d stratjumbo.com
stratextranet.stratjumbo.com
dev-world.stratjumbo.com
showme.stratjumbo.com
strat-bugtracker.stratjumbo.com
innovate.stratjumbo.com
stratextranet.stratjumbo.com
--snip--

root@FrontLine:~# ./dnsrecon.py -d stratjumbo.com -t brt -D subdomains-top1mil.txt
adfs.stratjumbo.com
mdm.stratjumbo.com
dashboard.stratjumbo.com
eoffice.stratjumbo.com
www2.stratjumbo.com
--snip--
		

Здесь параметр -t инициирует атаку перебором, которая испробуем абсолютно всех претендентов на подчинённые домены из перечня слов subdomains-top1mil.txt DNSRecon.

Результатом выступает поток подчинённых доменов, которые были успешно разрешены. О, глоток свежего воздуха! Куча вдохновения для нашего сценария фишинга. Мы сохраняем все подчинённые домены в файле с названием urls.txt.

В отличии от G&S Trust, Strat Jumbo обладает достойным числом интернет приложений. В частности, обратим внимание на запись stratextranet.stratjumbo.com: он подходит на роль потенциального портала, применяемого работниками Strat Jumbo для взаимодействия с внутренними ресурсами, и это та цель, на которую стоит обратить внимание.

Прочёсывание этих сайтов вручную было бы утомительным задачей. Вместо этого мы воспользуемся webscreenshot, занимательным инструментом, который автоматизирует этот скучный процесс, просматривая заданный набор веб- сайтов и выполняя моментальный снимок с главной страницы каждого из них для быстрого просмотра вручную. Сначала мы устанавливаем webscreenshot в виртуальную среду, далее передаём ему список подчинённых доменов, предварительно сохранённых в urls.txt посредством флага -i.


root@FrontLine:~# pip install webscreenshot
root@FrontLine:~# webscreenshot -i urls.txt
webscreenshot.py version 2.94

[+] 84 URLs to be screenshot
[+] 84 actual URLs screenshot
[+] 0 error(s)
		

Рисунок 3.2 показывает пару снимков экрана из этого набора, включая таковой для упомянутого нами ранее extranet.

 

Рисунок 3.2


Пара главных страниц, выцарапанных при помощи webscreenshot

[Замечание]Замечание

Вы также можете воспользоваться выхолощенной функцией Chromium для получения тех же самых результатов через Puppeteer.

Напомним, что теперь у нас имеется шаблон электронного письма Strat Jumbo и нам известны темы с их веб- сайта. Следующим естественным шагом кажется создание поддельного веб- сайта с заманчивым фишинговым электронным письмом, которое жмёт на все педали: временные ограничения, интриги, убедительное притворство, верные ключевые слова, подходящий шаблон электронного письма. Однако прежде чем мы перейдём к делу, я бы хотел остановиться на нескольких ключевых моментах относительно той вражеской линии, которую мы бы хотели пересечь.

Недруги фишинга

Большинство фишинговых компаний, свидетелем которых я являлся, были настолько плохо реализованы, что едва достигали папки со спамом. Они просто отвергаются почтовым сервером предприятия. Конечно, чтобы попасть вовнутрь, теоретически, нам требуется обмануть лишь одного пользователя, но зачем взводить так много предупреждений и рисковать столь низкими шансами, когда несколько незначительных исправлений способны существенно увеличить шансы данной компании на успех?

Помните, что основная цель фишинговой компании состоит в том, чтобы одурачить кого- то на выполнение некого действия, которое поспособствует достижению наших целей. Возможно всё, от того чтобы убедить самого финансового директора перевести нам 17 миллионов долларов, до того чтобы заставить специалиста ИТ запустить, казалось бы, безобидный сценарий PowerShell. Давайте рассмотрим те технические проблемы, с которыми мы сталкиваемся при отправке фишинговых писем.

Спам фильтры

Хотя алгоритмы выявления спама таких гигантов как Gmail и Microsoft Outlook, по большей части, не известны, было проведено большое число исследований того как идентифицировать и блокировать нежелательное содержание.

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

Песочницы электронной почты

Всё большее число компаний добавляют в свои почтовые шлюзы песочницы, которые будут выполнять любые вложения в некой виртуальной среде и отслеживать все их действия для оценки уровня угрозы. Какие ключи реестра они создают? Сколько запросов на память они выдают? С какими доменами они взаимодействуют и какие файлы создают? Существует великое множество надёжных способов вредоносному программному обеспечению напустить туман на попытку обхода песочницы, к примеру, заархивировать реальную полезную нагрузку при помощи пароля (что делает для такой песочницы невозможным имитации выполнения) или встраивать умные проверки в прикрепляемый исполняемый файл для выявления виртуальных сред на основе явных признаков - но знаете что срабатывает лучше всего? Не включать саму полезную нагрузку в качестве вложения. Они не смогут сканировать то чего нет, не так ли?

Вместо того, чтобы включать полезную нагрузку в качестве вложения, гораздо безопаснее включить в само тело письма ссылку для скачивания. Нажимая на такую ссылку, пользователи в конечном счёте выгружают необходимое нам вредоносное ПО через HTTP(S). Хотя некоторые корпоративные среды способны перехватывать на лету обмен HTTP и выполнять подрыв исполняемых файлов в песочницах, такие проверки далеко не столь широко распространены как спам- фильтры. Отправка файла в среду песочницы требует некоторого времени: не менее двух- трёх минут даже для наиболее действенных песочниц, не считая возможных задержек по причине ошибок подключения или продолжительных операций засыпания в попытке обойти тайм- аут песочницы. Большинство сотрудников при получении или отправке писем допускают задержку на пару минут. В конце концов, это не система чата. Но то же самое редко справедливо для HTTP, пользователи следят за индикатором выгрузки и ожидают немедленного доступа к своим файлам. А те немногие компании, которые проходят через головную боль автоматической выгрузки файлов через HTTP(S) в песочницу, постоянно сталкиваются с задачей расшифровки SSL на лету.

Ещё одним преимуществом метода ссылок выступает то, что зачастую компания не способна расшифровать весь инициированный её сотрудниками поток взаимодействия. К примеру, банковские, медицинские и страховые веб- сайты обычно исключаются из перехвата SSL для сохранения права сотрудников на неприкосновенность частной жизни - по крайней мере в тех странах, которые признают такие права. Мы можем воспользоваться этим в своих интересах, удостоверившись, что наш домен, в котором размещается наше вредоносное ПО, классифицируется в качестве конфиденциального ресурса (подробнее об этом когда мы регистрируем свой домен в Главе 4; если кратко, наши домены должны тщательно выбираться и настраиваться!).

Антивирус

Программное обеспечение антивирусов обычно будет сканировать подлежащие выгрузке в выбранную пользователем папку вложения. Хотя это вряд ли нечто новое, но нам придётся иметь с этим дело в тот или иной момент.

Единственный надёжный способ обхода всех антивирусных решений - создать свой собственный дилижанс, вместо того, чтобы слепо полагаться на уже готового к применению мула из популярных инфраструктур C2, уже знакомых поставщикам антивирусов. Такой дилижанс (мул, stager) - это небольшой фрагмент кода, запускающий вредоносную программу целиком и в идеале он выполняет такое вредоносное ПО в памяти. Большинство антивирусных программ не утруждает себя сканированием того что происходит в оперативной памяти, а потому, запуская в памяти вредоносные программы мы в значительной степени обладаем возможностью внедрения всего что пожелаем, причём без обнаружения, в том числе обычные обратные оболочки Meterpreter и Empire. Небольшая загвоздка состоит в том, что, как мы вскоре обнаружим, именно инструменты нового поколения более толковы в этом деле.

[Замечание]Замечание

Я имел беседу с инженерами ведущей антивирусной компании об этой проблеме исполнения в оперативной памяти, указывая им ни тот факт, что их последнее обновление по- прежнему не решает данную задачу. Их ответом были широко распахнутые, сверкающие глаза и агрессивное: "Но никто так не поступает!" Это не правда - а раз они этого не делают, то обязаны.

Пожинаем учётные данные

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

Более того, я обнаружил, что применение мулов, развёртываемых через скачивание или присоединения, создаёт слишком много шума. В зависимости от успеха нашей фишинговой компании мы можем получать сотню машин, которые пингуют один и тот же хост C2 на протяжении, как минимум, 24 часов. Такой тип обмена выделяется для любого приличного аналитика как больной палец. Некоторые аналитики даже способны автоматизировать правила корреляции для выявления в точности такого поведения. Наличие мула в рабочей станции также, в лучшем случае, не надёжно. Это лишает хакера большей части контроля и передаёт его непосредственно в руки своей жертвы; она способна выключить свою рабочую станцию, или перевести её в режим сна, потерять в лифте Wi-Fi или выполнить нечто ещё, отключающее этого мула.

Более того, чтобы мул был способен обеспечить надёжное сохранение, он обязан обладать возможностью быстрого осуществления таких действий как изменение разделов реестра, установку служб и тому подобного. Эти действия слишком заметны при первом погружении в неизвестную чужую среду.

Однако, если мы оглянемся назад к результатам рекогносцировки, выполненным в Выявление подчинённого домена, мы обнаружим, что у нас имеется жизнеспособная альтернатива отброса этапа мула, которая пользуется менее непосредственным подходом и потенциально предоставляет нам полную автономию над целевыми машинами: проникновение в веб- сайт объединяющей внешние филиалы сети (экстрасети).

Наша охота за подчинёнными доменами выявили службу экстрасети Strat Jumbo с адресом stratextranet.stratjumbo.com. Взглянув на полученный для этого сайта снимок экрана (Рисунок 3.3) мы замечаем, что этот сайт позволяет разработчикам с верными учётными данными подключаться к внутренним компьютерам, развёртывать код и просматривать изменения практически из любой точки мира. В действительности, именно это выступает одной из привлекательных особенностей Strat Jumbo для молодых странствующих программистов.

 

Рисунок 3.3


Загрузочная страница extranet Strat Jumbo

Нам всего лишь требуется получить пару допустимых имени пользователя и пароля. Фишинг и пароли - заключённый на небесах союз!

На данный момент наш полный план взлома - без учёта крупных сюрпризов - выглядит примерно так:

  1. Через фишинг собрать учётные данные Strat Jumbo.

  2. Подключиться к вебсайту экстрасети и получить контроль над нашей первой машиной.

  3. Перепрыгнуть во внутреннюю сетевую среду и определить местоположение исходного кода программного обеспечения Strat Accounting.

  4. Добавить некий потайной ход, который включится в рабочих станциях G&S Trust.

  5. Терпеливо дождаться обратной оболочки.

  6. Переместиться во внутреннюю сетевую среду, затем выявить место чувствительных данных и выполнить их выборку.

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