ESCalator
7.25K subscribers
536 photos
3 videos
18 files
217 links
Tips and tricks от команды экспертного центра безопасности Positive Technologies (PT ESC)
Download Telegram
Опять CFG 👋

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

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

🤔 Далее на ум приходит angr. Попробуем построить CFG с его помощью:

io_wrapper = BytesIO(code)
proj = angr.Project(
io_wrapper,
main_opts={
"backend": "blob",
"arch": "x86",
"base_addr": imagebase,
},
auto_load_libs=False,
)

cfg = proj.analyses.CFGFast(
cross_references=True,
normalize=True,
)


После нескольких экспериментов становится ясно, что скорость — не его сильная сторона: анализ тестового буфера занимал в среднем 45 секунд.

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

config = SmdaConfig()
config.CALCULATE_HASHING = False
config.CALCULATE_SCC = False
# having a valid prologue is enough
config.CONFIDENCE_THRESHOLD = 0.29
config.MAX_IMAGE_SIZE = 5 * 2 ** 20 #
config.TIMEOUT = 60


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

dism = Disassembler(config=config, backend="intel")
report = dism.disassembleBuffer(file_content=code, base_addr=imagebase, bitness=32)
if report.status == "ok":
report.initCodeXrefs()


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

for smda_func in report.getFunctions():
if smda_func.blocks:
for block_instructions in smda_func.blocks.values():
for smda_isnn in block_instructions:
print(f"{smda_func.offset} | {smda_isnn.detailed}")

for smda_out_ref in smda_func.getCodeOutrefs():
print(f"{smda_func.offset} | Out ref {smda_out_ref.to_func}")

for smda_in_ref in smda_func.getCodeInrefs():
print(f"{smda_func.offset} | In ref {smda_in_ref.from_func}")


👀 Пример вывода для одной из функций:

c749b0 | <CsInsn 0xc749b0 [ff742408]: push dword ptr [esp + 8]>
c749b0 | <CsInsn 0xc749b4 [ff742408]: push dword ptr [esp + 8]>
c749b0 | <CsInsn 0xc749b8 [e893feffff]: call 0xc74850>
c749b0 | <CsInsn 0xc749bd [83c408]: add esp, 8>
c749b0 | <CsInsn 0xc749c0 [89c1]: mov ecx, eax>
c749b0 | <CsInsn 0xc749c2 [31c0]: xor eax, eax>
c749b0 | <CsInsn 0xc749c4 [85c9]: test ecx, ecx>
c749b0 | <CsInsn 0xc749c6 [7409]: je 0xc749d1>
c749b0 | <CsInsn 0xc749c8 [83790402]: cmp dword ptr [ecx + 4], 2>
c749b0 | <CsInsn 0xc749cc [7503]: jne 0xc749d1>
c749b0 | <CsInsn 0xc749ce [8b4108]: mov eax, dword ptr [ecx + 8]>
c749b0 | <CsInsn 0xc749d1 [c3]: ret >
c749b0 | Out ref 0xc749b8 (0xc749b0) -> 0xc74850 (0xc74850)


Замерив время анализа, получаем результат около 1 секунды, что является хорошим показателем и подходит для использования на потоке.

✍️ Резюмируя: SMDA — быстрый и удобный инструмент, если задачей является только получение CFG и ссылок. Для других типов черной магии анализа лучше подойдут более тяжеловесные инструменты вроде angr.

#tip #reverse #malware
@ptescalator (X, Max)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥117🤣1🤝1
В последнее время нам на исследование все чаще попадаются устройства, на которые пришло уведомление от Apple о компрометации 📲

Если на ваш девайс в iMessage от пользователя threat-notifications@apple.com пришло сообщение примерно такого содержания:

ALERT: Apple detected a targeted mercenary spyware attack against your iPhone

Apple detected that you are being targeted by a mercenary spyware attack that is trying to remotely compromise the iPhone associated with your Apple Account (ВАШ АККАУНТ). This attack is likely targeting you specifically because of who you are or what you do. Although it's never possible to achieve absolute certainty when detecting such attacks, Apple has high confidence in this warning - please take it seriously.


с большой вероятностью вы подверглись атаке шпионского ПО.

Кроме того, Apple отправляет письмо на вашу электронную почту с адреса threat-notifications@email.apple.com, а при открытии сайта account.apple.com отображается информация о компрометации устройства.

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

🔍 Мы можем помочь в исследовании вашего устройства. Для этого достаточно написать в личные сообщения канала ESCalator.

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

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

⚠️ Отдельно обращаем внимание, что включение режима Lockdown Mode также приводит к перезапуску устройства.

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

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

#ios #dfir #mobile #ios_alert #spyware
@ptescalator (X, Max)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤝19👍10👀8🔥21🐳1
Призрачный Gist 😏

В марте специалисты киберразведки PT ESC зафиксировали активность группировки Rare Werewolf (Rezet, Librarian Ghouls). На этот раз был обнаружен архив data.zip, содержащий следующую структуру файлов:

Структура компании1111.docx
any_svc.exe
clean.ps1
deploy.ps1
hider.exe
monitor.ps1
run.bat
svc.conf

🤔 Кратко разберем назначение каждого из файлов

Структура компании1111.docx — документ-приманка, пример которого можно видеть на скриншоте 1. any_svc.exe — исполняемый файл AnyDesk, а svc.conf — файл с конфигурацией AnyDesk. hider.exe — исполняемый файл NirCmd.

Однако самая интересная часть — цепочка PowerShell-скриптов, которая запускается через скрипт run.bat. Файл clean.ps1 отвечает за удаление уже установленных экземпляров AnyDesk на системе жертвы (пример скрипта можно видеть на скриншоте 2). Код скрипта останавливает все рабочие процессы и пытается найти установленное приложение по стандартным путям в файловой системе и реестре.

После очистки запускается файл deploy.ps1 (скриншот 3). Алгоритм работы скрипта следующий:

1️⃣ Подготовка директорий и конфигурации для закрепления AnyDesk (список директорий будет ниже)

2️⃣ Установка для всех файлов конфигурации прав доступа ReadOnly

3️⃣ Запуск исполняемых файлов any_svc.exe и hider.exe

4️⃣ Получение AnyDesk ID через команду --get-id

5️⃣ Отправка полученного ID в heartbeat-запросе на Gist-страницу на GitHub (скриншот 4) в виде комментария. Для отправки подобного запроса используется API-ссылка https://api.github.com/gists/
<gist-id>/comments
, где gist-id — идентификатор заметки, который находится в скрипте. Сам комментарий можно увидеть далее.

6️⃣ Формирование LNK-файла SystemCheck.lnk в папке автозагрузки, который запускает скрипт monitor.ps1

monitor.ps1 (скриншот 5) — это скрипт, который использует команды NirCmd для сокрытия окон процессов any_svc.exe и AnyDesk.exe. В случае, если процесс any_svc.exe не запущен, hider.exe его запускает. Помимо этого, скрипт используется для автоматического нажатия кнопок в окнах с заголовками «Оповещение системы безопасности», то есть кнопок в окне уведомлений брандмауэра Windows. Примечательно, что в коде скрипта заголовок окна указан на трех языках — русском, английском и украинском.

😲 Остается важный вопрос: откуда вообще взялся data.zip? Не его же отправляют в фишинговом письме. Давайте ответим и на этот вопрос.

На основе поиска схожих с deploy.ps1 скриптов был найден load.ps1, который находился в другом архиве (скриншот 6). И уже по новому архиву был найден родительский файл — исполняемый файл на C# (фрагмент на скриншоте 7), который расшифровывает байты архива и помещает его в систему жертвы.

Расшифровка идет в два этапа. Во-первых, массив байтов проходит через операцию XOR с ключом длиной 8 байтов. Затем в массиве декодированных данных ищется заголовок ZIP-архива, и подменяется байт заголовка, отвечающий за метод сжатия (выставляется метод Deflate). Все действия проходят во временной директории, туда же в отдельный файл ghost_trace.log записываются логи работы дроппера.

NEW TARGET: ID=$cid | PC=$cn | USER=$un
# cid = идентификатор AnyDesk-ID
# cn - имя компьютера ($env:COMPUTERNAME)
# un - имя пользователя ($env:USERNAME)


IoCs

Дроппер:
c6663dec26224dd3566b4967e9440a7c865ee96af898a444771ba90d033afa55

Архивы:
e7302d00c3bef6ff247a37260abdd5ff7eca7c3225b43f56abf3950cc86bf3a8
ca32442aecd8b050dabb5585955df292c4c5b3a9384b90b3377eca3c6200ed21

Powershell-скрипты с обращением на GitHub:
20843993517d8930a56445554b9c93615e4dbaeb6ac66131f2920ea0c966e194
63cf2d21091ca3041f51d3b50f84056909cd44996202557f9161895335e3271c


IOA

%LocalAppData%\GhostExt
%LocalAppData%\GhostExt\svc.conf
%LocalAppData%\GhostExt\service.conf
%LocalAppData%\GhostExt\any_svc.exe
%LocalAppData%\GhostExt\hider.exe

%TEMP%\GhostExt\ghost_trace.log
%TEMP%\GhostExt\data.zip

%AppData%\Microsoft\Windows\Start Menu\Programs\Startup\SystemCheck.lnk


#TI #Malware #APT
@ptescalator (X, Max)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍6👏53😁1
Где заканчивается одна группировка и начинается другая? 🧩

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

Исследование посвящено цепочке доставки вредоносного ПО с использованием SocGholish, связанного с группировкой Mustard Tempest. При этом инфраструктура, задействованная в этой схеме, также использовалась в атаках Cloud Atlas.

🕵️ В статье разбираем:

• полную цепочку атаки
• распределение ролей между операторами MaaS-сервисов
• механику FakeUpdate
• возможные точки пересечения Cloud Atlas и Mustard Tempest

Подробнее — в статье на Хабре.

#APT #TI #Malware
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12🤝109
Пятничная рассылка 🐽

Представьте: вы — сотрудник одной российской организации, и вам в пятницу некая Надежда Артуровна 😌 присылает письмо (скриншот 1) с просьбой пройти опрос. Как всегда, сотрудник федерального предприятия просит все и в кратчайшие сроки. Ваши действия? 🤔

Если вы поверите лжесотруднику и попробуете пройти опрос, то внутри архива вас будет ждать одноименный файл Опросный_лист_ЦРП_ВПК_Предзаполненны.xll (вы же тоже заметили ошибку?). Он является DLL-кой — специальным модулем Microsoft Excel. При открытии xll-файла происходит дроп и запуск вредоносной нагрузки %LOCALAPPDATA%\\Comms\\mspm.exe, в то время как вы, ничего не подозревая, будете видеть только таблицу-приманку %USERPROFILE%\\Documents\\Tablica1.xls (скриншот 2) 😶

Но мы искренне надеемся, что, несмотря на пятницу, вы бдительны 👓. Ведь сама нагрузка является ИИ-сгенерированным бэкдором WarpPlugin, он же EchoGather — известный инструмент GOFFEE. В его основные возможности входит:

🐾 выполнение CMD-команд для управления и изучения компьютера жертвы
🐾 выгрузка файлов с этой системы
🐾 загрузка присланных GOFFEE файлов на эту систему

Подобного рода активность мы наблюдаем с конца прошлого года 😏. GOFFEE рьяно пользуются ИИ-агентами, постоянно генерируя ими новые файлы-приманки и вариации бэкдоров WarpPlugin. Не обходятся злоумышленники и без постоянной генерации новых имен для адресов C2.

IoCs

9c189eb72315960a6bc10d25dc8f8808f9ed13088951bae37ca0d7502fec8e10
1b6dd18db3da8b9df1c3ca99a2de0a0296ce7c5f92c2f6a6a8831d0e4f61aed1
b02c4d355a1c8f3209f62221b2bafcfefa3ab1444461a209fdcd75fa04f4fb1e
f75b3e37c9683d4862e71ef204fd4128169168ce22e2722618b9aed69bf6add0
https://ntp.report/api/v4/projects/report/now


#Malware #TI #APT
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14🆒10👍8👻5
Библиотека-логгер и инфостилер в придачу? Спасибо, не надо 👋

За последнее время произошло немало событий. Например, кто-то решил поиграть в меценатство и опубликовал 30 релизов с именами NPM-библиотек для логирования:

@logcore/pino-pretty-logger
console-loggers
jellyfi-pino-pretty-logger
• jonas-prettier-logger
logger-beauty
pino-logger-utils
pino-pretty-log
pino-pretty-logger
pretty-pino-logger
pretty-ts-logger
ts-moduler
wrapped-logger-utils

Это не просто спам-кампания: эти библиотеки несут в себе инфостилер и бэкдор.

Нам даже удалось в этот раз кому-то уступить в борьбе за звание «самая быстрая рука на диком опенсорсе» — первыми зарепортили лишь 5 из 12 пакетов 🥺

Кампания использует обфускацию. Изначально злоумышленник защищал только имена переменных, но затем стал XOR-ить строки (скриншоты 1, 2).

Вредоносная логика активируется во время импорта библиотеки:

1️⃣Определение ОС жертвы и сбор базовой информации о системе (IP-адрес сетевого устройства, имя пользователя).

2️⃣Параллельное выполнение двух задач:

🔗Быстрая кража: отправление на сервер злоумышленника файла .env, если он есть в текущей рабочей директории.

🔗Обход домашней директории в поисках файлов с расширениями .env / .json. В коде есть небольшая оптимизация — при обходе будут пропущены следующие папки:

'node_modules', 'Library', 'System', 'Windows', 'Program Files', 'ProgramData',
'build', 'dist', 'out', 'output', 'release', 'bin', 'obj', 'Debug', 'Release',
'target', 'target2', 'public', 'private', 'tmp', 'temp', 'var', 'cache', 'log',
'logs', 'sample', 'samples',
'assets', 'media', 'fonts', 'icons', 'images', 'img', 'static', 'resources', 'audio', 'videos', 'video', 'music',
'svn', 'cvs', 'hg', 'mercurial', 'registry',
'__MACOSX', 'vscode', 'eslint', 'prettier', 'yarn', 'pnpm', 'next',
'pkg', 'move', 'rustup', 'toolchains',
'migrations', 'snapshots', 'ssh', 'socket.io', 'svelte-kit', 'vite',
'coverage', 'history', 'terraform'


Пользователям Linux особенно не повезет: им в ~/.ssh/authorized_keys закинут новый публичный SSH-ключ. При работающем сервисе sshd и разрешении использовать ssh-ключ для текущего пользователя позволит злоумышленнику подключаться к устройству 😍

Под Windows помимо обхода домашней директории стилер пройдется по всем подключенным дискам.

3️⃣Отправка всех собранных данных на сервер злоумышленника.

———

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

const ENV_LIKE_FILES = new Set([
'.env', '.env.local', '.env.production', '.env.development',
'.config', '.npmrc', '.pypirc', '.git-credentials', 'wallet.dat', 'id.json', 'key.json', 'keystore/*.json',
]);
const JSON_LIKE_FILES = new Set(['config.json', 'settings.json', 'secrets.json']);


Вероятно, это связано с большим количеством мусора при сборе всех json-файлов.

Также добавилась кража директории tdata, содержащей данные сессии Telegram 🤢

———

Дежурное напоминание: не ослабляйте бдительность при работе с опенсорс-проектами 😑

#npm #ti #scs #pyanalysis
@ptescalator (X, Max)
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍128🔥7🤔2
CHM-оснастка, будильники, ЦИБ МО РФ и биткоин-яйца 🤖

В конце декабря прошлого года команда Threat Intelligence экспертного центра кибербезопасности Positive Technologies обнаружила атаки, которые мы атрибутировали ранее описанной исследователями группировке CapFix.

Злоумышленники использовали PDF-документы, которые маскировались под «повреждtнные» и побуждали пользователей скачать RAR-архив, внутри которого находился скрипт. Этот скрипт скачивал файл a.gif и переименовывал его в dmitry_medvedev.msi 😶, который впоследствии приводил к заражению пользователя вредоносным ПО CapDoor.

Инфраструктура группировки притворялась легитимными доменами, связанными с обновлениями Windows, и регистрировалась через onionmail. Но еще интереснее, что группировка использовала ряд легитимных IP-адресов и доменов, которые, по нашему мнению, злоумышленники взломали примерно за месяц до самих атак с помощью CVE-2025-49113 👨‍💻

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

Как именно злоумышленники развивают CapDoor, как группировка ранее использовала ClickFix и при чем тут биткоин-яйца — читайте в нашем исследовании ⬅️

#TI #APT #Malware
@ptescalator (X, Max)
Please open Telegram to view this post
VIEW IN TELEGRAM
12🔥5👏4
👨‍💻 Пользуетесь электронной почтой по работе? Имейте в виду, что…

... через нее осуществляется до 80% фишинговых атак на организации.

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

Мы описывали множество подобных почтовых атак (#phishing), например:

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

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

3️⃣ В данном исследовании пользователей атаковали с помощью вредоносных вложений, представляющих собой троян удаленного доступа (RAT), функционирующий с использованием блокчейна Solana.

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

Основные инсайты исследования:

▶️ Отправка письма — лишь верхушка айсберга: далее атака развивается через мобильные устройства, мессенджеры, веб-ресурсы или компрометацию пользовательских сессий. Мы описывали множество подобных атак, например:

▶️ ВПО — основной инструмент атаки через электронную почту (70%). Шифровальщики использовались в 49% случаев.

▶️ Традиционные механизмы фильтрации больше не гарантируют безопасность: злоумышленники используют QR-коды, HTML-вложения, короткоживущие домены, цепочки переадресации и AiTM-фишинг.

▶️ Фишинг превратился в сервисную индустрию (PhaaS), где продаются готовые цепочки вредоносных решений.

▶️ Развитому инструментарию фишинга должна противостоять многоуровневая система защиты почты.

Подробнее — на сайте 💌

@ptescalator (X, Max)
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9🔥6👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
😁20🤡8🤣51🐳1😭1