Тонкости таргертированных атак на корпоративные сети.

Тонкости таргертированных атак на корпоративные сети.

t.me/it_shniks


Разобьем статью на тонкости и варианты решений.

Стандартный план атаки:

1) Разведка

2) Изучение

3) Реализация

4) Закрепление

5) Чистка следов

В качестве примера рассмотрим наиболее распространенную ОС - MS Windows. После нее по популярности идет MacOS и далее уже Linux.

Тонкость №1 - политика безопасности и ее тех. реализация

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

Из википедии:

Групповая политика — это набор правил или настроек, в соответствии с которыми производится настройка рабочей среды приёма/передачи (Windows, X-unix и другие операционные системы с поддержкой сети). Групповые политики создаются в домене и реплицируются в рамках домена. Объект групповой политики (англ. Group Policy Object, GPO) состоит из двух физически раздельных составляющих: контейнера групповой политики (англ. Group Policy Container, GPC) и шаблона групповой политики

Если говорить простым языком - это программный набор правил, который запретит делать то или иное. Например, вставлять флешки

Что делать?

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

Тонкость №2 - локальные домены

Это такая фигня, которая позволяет объединить все компы в сетке в одну сеть. Например, есть админ домена, а есть локальный юзер. Имея доступ к юзеру, можно получить доступ к админу домена и к другим компам.

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

Что делать?

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

Реальный сценарий:

Админ админит админской силой целую корп. сеть, объединенную в локальный домен PIZZA\ (многие в дедиках видели, что перед логином часто такие префиксы есть - это корпоративная сеть), есть курьерская база, где начальник отдела доставки выдает клиентам заказы, есть комп директора, его секретарши и комп админа, а есть техническая поддержка. Мы заслали в ТП троян, нам надо добраться до директора.

Что мы можем сделать?

Комп ТП - это локальный пользователь PIZZA\support

Комп админа - это админ домена PIZZA\admin

Комп директора - это локальный юзер PIZZA\director

Прикол в том, что PIZZA\admin залогинен на всех этих компах, а в их памяти есть его NTLM-хэш (хэш пасса).

Что мы можем сделать? Мы можем забрутфорсить его с PIZZA\support через meterpreter. Это долго и нудно. На помощь приходят LPE эксплойты - это такой код, который юзает ошибки в винде, чтоб присунуть самой системе и украсть ее хэш в обход системы безопасности и разграничения доступа, мы станем круче админа!

Выглядит это примерно так:

После того, как мы повысили права, при помощи софта типа mimikatz мы можем украсть из памяти пароль админа (она сканит оперативку имея достаточные права). Зная пасс админа мы можем при помощи psexec или wmi-invoke распространиться на другие компы.
Задача выполнена

Тонкость №3 - Software Restriction Policies

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

То есть мы не можем залить ни exe, ни bat, ни js, ни hta ничего, совсем. Иногда даже многие проги винды.

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

Что делать?

Опять эксплойты. Только не LPE, а LCE ( Local Code Execution ) - локальное исполнение кода. Например, мы можем зашить огромный массив внутрь .doc файла, да еще сформированный специальным образом, который при попытке чтения в Microsoft Word вызовет переполнение, перезапись адреса возврата и даст возможность выполнить наш шеллкод в памяти.

Простым языком - просто doc файл, который при включении врубит ваш троян. Можно и jpg, только стоить будет слишком много. Шеллкод, например, может содержать LPE который сбежит из низких прав и отрубит SRP.

Обычно, при грамотном SRP, без дружбы с админом, доступ в сеть практически невозможен.

Тонкость №4 - современные антивирусы, а также EDR-защиты

Современной защите уже давно не интересно, что внутри файла находится, они смотрят по поведению.

Например, кто-то юзает комету. Ок, криптуем комету, зальем на вчм (аналог вирустотала не сливающий), а после на дунчек для проверки рантайма.

Итак, смотрим.

DarkComet:

Скан: viruscheckmate.com/id/BXYHqa8LZm67 ( clearnet, результаты 1/41 криптованной)

Запуск: dyncheck.com/scan/id/7e49ae83f674316ed4e528540300107c (clearnet, результаты 11/22 криптованный)

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

Что делать?

В чем была проблема? А в том, что DarkComet спалился при поведении, WinDef, Nod32, DrWeb спалили то что файл закриптованный по его поведению (!).

Что произошло?

I. Этап крипта:

Запуск софта -> расшифровка в памяти -> инжект расшифрованной части модуля заместо оригинального содержимого

DrWeb запалил на данном этапе инжект

Eset и Windows Defender на этом этапе запустили сигнатурное сканирование памяти процесса - это видно на скринах детектов, они дали сигнатурное название кометы, так как она уже была расшифрована в памяти

II. Этап софта

Комета ведет себя так:

Самокопирование, добавление ключа реестра, запуск notepad.exe и инжект в него

Остальные антивирусы пропалили то, как комета себя вела - это типичный шаблон поведения малвари.

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

Тонкость №5 - закрепление и выживание после аудита

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

Что делать?

Сюда приходят решения нестандартные, вроде добавления к ярлыкам (как делала одна из apt-кампаний, цепляла себя к MS Word) и т.д.

А весь прикол в том, что предыдущие проблемы, которые нам сделал антивирус не появляются если малварь не нативная, то есть написана на скриптах, либо использует встроенные в винду штуки. Типа wsh или powershell.

WSH или Powershell позволяют сделать малварь без основного файла - в одной строке. Мы можем написать на wsh малварь и врубать через mshta передавая ее в аргументах, или передавая закодированной прямиком в powershell из wsh скрипта, запускающего powershell в скрытом режиме.

Мы можем себя записать как 1 строку в реестре, либо в ярлык прикрутить. У нас не будет ни файла - ничего, сигнатурный и эвристический анализ молчит, а проактивки еще не научились подобное видеть, а админы слишком тупые, чтобы увидеть малварь в ярлыке.

Хочешь больше? Больше тут: https://t.me/it_shniks