🧐 Особенности чтения карантина Microsoft Defender
А те, кто хотят и могут, делают это, помимо всего прочего, с использованием скрипта defender-dump.py. В описании к скрипту авторы честно указали, что работают с единственным типом записей — file. Однако при ближайшем рассмотрении оказывается, что типов записей несколько больше.
Декодируем по описанной в скрипте схеме файлы из папки:
Как минимум можно встретить записи типов regkey, runkey, regkeyvalue и service, причем одному событию детектирования может соответствовать несколько записей одновременно (что соответствует записям EVTX канала Microsoft-Windows-Windows Defender/Operational c кодом 1117, где в одном событии фигурирует достаточно много путей).
В большинстве случаев все достаточно прозрачно — обнаруживаемые записи, имеющие отличный от file тип, соответствуют фрагментам реестра и иногда позволяют выявить закрепление ВПО:
Файлы карантинов описываются соответствующими ID и располагаются в папках:
Такие файлы практически всегда соответствуют записям типа file, и извлечь содержимое карантина можно согласно схеме, описанной в вышеупомянутом скрипте: после расшифрования RC4 два смещения вычитываются из структуры, и фрагмент буфера можно смело сохранять в качестве трофея.
Однако из любого правила существуют исключения — при ближайшем рассмотрении оказывается, что, в частности, для записей типа service:
1️⃣ ID начинается с «волшебного слова» 0x0000000014000A40, после обнаружения которого можно найти настоящий ID.
2️⃣ Схема декодирования карантина перестает работать — значением параметра, определяющего максимальный размер извлекаемого фрагмента, часто оказывается число, многократно превышающее размер самого буфера.
В таких случаях стоит игнорировать прочитанные смещения и рассматривать в качестве извлекаемого карантина весь декодированный буфер, который имеет магическое число REGF и оказывается фрагментом реестра. Разобрать фрагмент, как правило, уже не составляет труда.
@ptescalator
А те, кто хотят и могут, делают это, помимо всего прочего, с использованием скрипта defender-dump.py. В описании к скрипту авторы честно указали, что работают с единственным типом записей — file. Однако при ближайшем рассмотрении оказывается, что типов записей несколько больше.
Декодируем по описанной в скрипте схеме файлы из папки:
C:\ProgramData\Microsoft\Windows Defender\Quarantine\Entries
Как минимум можно встретить записи типов regkey, runkey, regkeyvalue и service, причем одному событию детектирования может соответствовать несколько записей одновременно (что соответствует записям EVTX канала Microsoft-Windows-Windows Defender/Operational c кодом 1117, где в одном событии фигурирует достаточно много путей).
В большинстве случаев все достаточно прозрачно — обнаруживаемые записи, имеющие отличный от file тип, соответствуют фрагментам реестра и иногда позволяют выявить закрепление ВПО:
HKLM\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSI
HKLM\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUN\\netcat runkey 3F005C0043003A005C00770069006E0064006F00
C:\Windows\System32\nc.exe file 7305273EFC20E59A96E8AAFA2068ABD47693F773
Файлы карантинов описываются соответствующими ID и располагаются в папках:
C:\ProgramData\Microsoft\Windows Defender\Quarantine\ResourceData\<Первый байт ID>\<ID>
Такие файлы практически всегда соответствуют записям типа file, и извлечь содержимое карантина можно согласно схеме, описанной в вышеупомянутом скрипте: после расшифрования RC4 два смещения вычитываются из структуры, и фрагмент буфера можно смело сохранять в качестве трофея.
Однако из любого правила существуют исключения — при ближайшем рассмотрении оказывается, что, в частности, для записей типа service:
В таких случаях стоит игнорировать прочитанные смещения и рассматривать в качестве извлекаемого карантина весь декодированный буфер, который имеет магическое число REGF и оказывается фрагментом реестра. Разобрать фрагмент, как правило, уже не составляет труда.
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5👏3❤1🐳1
В ходе реагирования на инцидент у нашего клиента на одном из Linux-узлов мы обнаружили файл с названием scrond, «накрытый» UPX (Ultimate Packer for eXecutables).
Файл оказался бэкдором, написанным на языке Go и по своим функциям напоминающим компоненты фреймворков Sliver и Cobalt Strike. Распаковав его, мы нашли пути к пакетам, содержащие подстроку:
red.team/go-red/
Она тонко намекает на название инструмента (GoRed) и его создателей в лице red[.]team. Предположительно, у них есть сайт, который больше напоминает визитку, чем что-то значимое и относящееся к атаке. По нашим данным, инструмент активно дорабатывается по меньшей мере с 2023 года: при реагировании на один из прошлых инцидентов мы встретили версию 0.0.1 (сейчас — 0.1.4).
В процессе дальнейшего исследования мы убедились, что инструмент используется группой ExCobalt: есть инфраструктурные пересечения с индикаторами, которые описаны в нашем предыдущем отчете.
💡 Что это за группировка
ExCobalt — киберпреступная группа, сосредоточенная на шпионаже. Некоторые ее члены активны как минимум с 2016 года и, предположительно, состояли в небезызвестной группе Cobalt.
Cobalt атаковала кредитно-финансовые организации с целью кражи денежных средств. Отличительной особенностью группировки было использование инструмента CobInt, который в 2022 году в некоторых атаках начала применять и ExCobalt.
🎯 На кого нацелены атаки
За последний год специалисты PT ESC фиксировали атаки и расследовали инциденты, связанные с группой ExCobalt, в российских организациях из следующих отраслей экономики:
• Металлургия
• Телекоммуникации
• Горная промышленность
• Информационные технологии
• Государственные учреждения
• Разработка ПО
Полное техническое описание инструмента GoRed, а также индикаторы компрометации можно найти на нашем сайте.
#APT
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👏4🤯3❤1👍1
utmpdump двойного назначения
В дефолтных никсах мало форензик информации (vs win) и очень много полезных утилит. Например, есть «прекрасная» утилита, позволяющая дампить информацию с [ubw]tmp файлов в ASCII файлы, а также, дословно из мана:
Так что если в логи попал какой-то «кривой» айпишник, то нелегитимные «администраторы систем» могут его просто удалить, с чем мы и сталкивались на кейсах:
Дампинг:
Через пайп грепаются строки с исключением в виде «кривого» айпишника и выхлоп в темпфайл:
Результат импортируется обратно:
Затем удаляется темповый файл:
Ну и конечно же, как написано в мане:
Детекты описаны уже очень давно, можно освежить их в памяти.
#tool #detect #hunt #nix #dfir
@ptescalator
В дефолтных никсах мало форензик информации (vs win) и очень много полезных утилит. Например, есть «прекрасная» утилита, позволяющая дампить информацию с [ubw]tmp файлов в ASCII файлы, а также, дословно из мана:
...which can then be edited to remove bogus entries, and reintegrated using:
utmpdump -r < ascii_file > wtmp
Так что если в логи попал какой-то «кривой» айпишник, то нелегитимные «администраторы систем» могут его просто удалить, с чем мы и сталкивались на кейсах:
Дампинг:
utmpdump /var/log/wtmp
Через пайп грепаются строки с исключением в виде «кривого» айпишника и выхлоп в темпфайл:
| grep -v $EYE_PEE >/tmp/.wt
Результат импортируется обратно:
&& utmpdump -r </tmp/.wt >/var/log/wtmp
Затем удаляется темповый файл:
&& rm -f /tmp/.wt
Ну и конечно же, как написано в мане:
But be warned, utmpdump was written for debugging purposes only.
Детекты описаны уже очень давно, можно освежить их в памяти.
#tool #detect #hunt #nix #dfir
@ptescalator
👍6👏4❤2🔥2🤔1
Метаморфоза Lazy Koala. Была Koala 🐨 — стала Capybara 😎
В мае этого года были зафиксированы новые атаки группировки Lazy Koala на Азербайджан, Беларусь и Узбекистан.
В случае атак на Азербайджан и Беларусь изменился формат отправляемых в бот сообщений, также хакеры отказались от использования единого аккаунта в атаках и изменили ник с Koala на Capybara.
Традиционно при запуске ВПО группы происходит открытие встроенного документа, который отвлекает внимание жертвы и содержит актуальную региональную новость (пример — на скриншоте).
Немного изменился и LazyStealer, теперь PYD-файлы (в которых хранится приманка) называются по-новому:
Также в имени основного скрипта указывается сокращение названия атакуемый страны:
Помимо протектора Pyarmor, был добавлен еще один уровень защиты: теперь данные закодированы в base64 и сжаты zlib; после снятия всей обфускации скрипт запускается через exec. Деобфусцированный скрипт имеет ту же функциональность, но его структура и сами имена функций немного изменены.
В случае атак на Узбекистан изменения были следующие:
• Теперь в инфраструктуре C2 вместо телеграм-бота используется хостинг.
• В качестве приманки вместо PDF-файла злоумышленники отправляют DOCX-файл.
IoCs:
@ptescalator
В мае этого года были зафиксированы новые атаки группировки Lazy Koala на Азербайджан, Беларусь и Узбекистан.
В случае атак на Азербайджан и Беларусь изменился формат отправляемых в бот сообщений, также хакеры отказались от использования единого аккаунта в атаках и изменили ник с Koala на Capybara.
Традиционно при запуске ВПО группы происходит открытие встроенного документа, который отвлекает внимание жертвы и содержит актуальную региональную новость (пример — на скриншоте).
Немного изменился и LazyStealer, теперь PYD-файлы (в которых хранится приманка) называются по-новому:
CapybaraPDF.cp39-win_amd64.pyd
Также в имени основного скрипта указывается сокращение названия атакуемый страны:
bls.py, az.py
Помимо протектора Pyarmor, был добавлен еще один уровень защиты: теперь данные закодированы в base64 и сжаты zlib; после снятия всей обфускации скрипт запускается через exec. Деобфусцированный скрипт имеет ту же функциональность, но его структура и сами имена функций немного изменены.
В случае атак на Узбекистан изменения были следующие:
• Теперь в инфраструктуре C2 вместо телеграм-бота используется хостинг.
• В качестве приманки вместо PDF-файла злоумышленники отправляют DOCX-файл.
IoCs:
601f11b308286673d9022df4e875cf86be71235b6a413d63dfd0d0f553c4bed8
42f79b6ede5e6d048a9bf419f5751ff1d4046e7a656a84fab4e97fdfb1ed4f0d
da91f1f8279edae524ce98df0b6d1aca52336f723e3b8bcb7c8a0933c4b2eb0d
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👏3❤1☃1👍1💩1
📬 Exchange_SSRF
Наша практика показывает, что достаточно большое количество организаций все еще не установили обновления на свои публичные почтовые серверы Microsoft Exchange.
Вследствие этого у злоумышленников есть возможность получить в этих компаниях доступ к почтовой переписке. Для этого атакующие используют open-source-проект Exchange_SSRF.
Exchange_SSRF — это общедоступный Python-скрипт, который позволяет выгрузить почтовые ящики пользователей (по умолчанию 100) с сервера Microsoft Exchange жертвы. Фактически скрипт эксплуатирует две уязвимости (CVE-2021-34473 и CVE-2021-34523) из цепочки ProxyShell.
Для выгрузки файлов почтовых ящиков применяются методы FindItem, GetItem, GetAttachment, которые выполняются не под пользовательской учетной записью, а под системной NT AUTHORITY\SYSTEM, что хорошо видно в журналах Exchange Web Services (EWS):
Как правило, атакующие не модифицируют скрипт и используют его с заданным по умолчанию в исходном коде User-Agent с точкой в конце.
User-Agent:
Стоит также отметить, что почти все зафиксированные атаки с применением этого скрипта были осуществлены с латвийских VPN-адресов сервиса Mullvad VPN.
Примеры опубликовали в Telegraph.
С2:
#tool #detect #hunt #win #dfir
@ptescalator
Наша практика показывает, что достаточно большое количество организаций все еще не установили обновления на свои публичные почтовые серверы Microsoft Exchange.
Вследствие этого у злоумышленников есть возможность получить в этих компаниях доступ к почтовой переписке. Для этого атакующие используют open-source-проект Exchange_SSRF.
Exchange_SSRF — это общедоступный Python-скрипт, который позволяет выгрузить почтовые ящики пользователей (по умолчанию 100) с сервера Microsoft Exchange жертвы. Фактически скрипт эксплуатирует две уязвимости (CVE-2021-34473 и CVE-2021-34523) из цепочки ProxyShell.
Для выгрузки файлов почтовых ящиков применяются методы FindItem, GetItem, GetAttachment, которые выполняются не под пользовательской учетной записью, а под системной NT AUTHORITY\SYSTEM, что хорошо видно в журналах Exchange Web Services (EWS):
C:\Program Files\Microsoft\Exchange Server\V15\Logging\EWS
Как правило, атакующие не модифицируют скрипт и используют его с заданным по умолчанию в исходном коде User-Agent с точкой в конце.
User-Agent:
Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36.
Стоит также отметить, что почти все зафиксированные атаки с применением этого скрипта были осуществлены с латвийских VPN-адресов сервиса Mullvad VPN.
Примеры опубликовали в Telegraph.
С2:
31.170.22.18
31.170.22.20
31.170.22.22
31.170.22.26
31.170.22.5
31.170.22.6
#tool #detect #hunt #win #dfir
@ptescalator
👍13🔥6❤1⚡1👏1
Рапид-расшифровка данных из NSIS-скрипта 🗄
Когда нет времени на идентификацию алгоритма шифрования и реализацию алгоритма дешифрования, на помощь приходит отладчик. Но как быть со скриптовым языком для установщика?
В качестве примера взят загрузчик XDigo
• Для начала извлечем скрипт, расширение которого — .nsi. Воспользуемся специальной версией 7-Zip.
• После этого нам нужен компилятор .nsi-скриптов — скачаем и установим NSIS. Откроем компилятор и загрузим в него извлеченный скрипт. Базовые возможности программы ограничены: он позволяет только скомпилировать скрипт в исполняемый файл и запустить его.
• Для того чтобы расширить функциональность компилятора, нам понадобится Debug Plug-In. Набор его функций не очень широк, но их вполне хватит, чтобы динамически расшифровать данные.
• После установки плагина откроем исходный вредоносный скрипт и в конце функции дешифрования, после операции передачи расшифрованных данных в стек, добавим строку:
• В результате перекомпиляции скрипта и тестового запуска исполняемого файла каждый раз после выполнения функции дешифрования в отдельном окне будет демонстрироваться состояние стека на момент выполнения строки Debug::Stack, в данных которого и будут находиться расшифрованные данные.
#reverse #tips #malware #XDigo #TI
@ptescalator
Когда нет времени на идентификацию алгоритма шифрования и реализацию алгоритма дешифрования, на помощь приходит отладчик. Но как быть со скриптовым языком для установщика?
В качестве примера взят загрузчик XDigo
• Для начала извлечем скрипт, расширение которого — .nsi. Воспользуемся специальной версией 7-Zip.
• После этого нам нужен компилятор .nsi-скриптов — скачаем и установим NSIS. Откроем компилятор и загрузим в него извлеченный скрипт. Базовые возможности программы ограничены: он позволяет только скомпилировать скрипт в исполняемый файл и запустить его.
• Для того чтобы расширить функциональность компилятора, нам понадобится Debug Plug-In. Набор его функций не очень широк, но их вполне хватит, чтобы динамически расшифровать данные.
• После установки плагина откроем исходный вредоносный скрипт и в конце функции дешифрования, после операции передачи расшифрованных данных в стек, добавим строку:
Debug::Stack
• В результате перекомпиляции скрипта и тестового запуска исполняемого файла каждый раз после выполнения функции дешифрования в отдельном окне будет демонстрироваться состояние стека на момент выполнения строки Debug::Stack, в данных которого и будут находиться расшифрованные данные.
#reverse #tips #malware #XDigo #TI
@ptescalator
🔥10👍3❤2
C:\Windows\SysWOW64\smb_context.log — журнал событий smb от одного именитого антивирусного вендора.
Механизм работы пока не исследован нами до конца, но мы выяснили: анализируя данный журнал, можно обнаруживать факты выполнения команд, в частности, с использованием утилиты smbexec, а также факты доступа к файлам на диске.
Журнал может содержать следующие события:
PDMSmbFileAccessed
PDMSmbCreateFile
PDMSmbRenameFile
Пример:
<BeginStream>
PDMSmbFileAccessed("$windir\__1715675753.48",00000011000000000010010100100000,1399528814);
PDMSmbFileAccessed("$system32\cmpspy.dll",00001011110000000010001100100001,1399106043);
PDMSmbFileAccessed("$system32\reg.bat",00001011110000000010001100100001,1399106043);
<EndStream>
<BeginStream>
PDMSmbFileAccessed("$windir\psexesvc.exe",00001010100000000010001100100001,405741904);
<EndStream>
#tool #detect #hunt
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍4😱4
Проактивный хантинг C2-серверов 👨💻
В процессе хантинга C2-серверов появляется важный вопрос — какие артефакты использовать для лучшей результативности и точности: искать по WHOIS-записям, регулярным выражениям для субдоменов, по NS-серверам, DDNS, резолвам на один IP-адрес и т. п. С этой точки зрения лучшим чаще всего является фингерпринт SSL-сертификата, используемого на C2-сервере.
Благодаря мониторингу фингерпринта сертификата через Censys,
который мы ранее видели на C2-сервере, используемом GoRed в атаках на российские организации, в июне этого года был обнаружен новый C2-сервер GoRed, а также дополнительные сетевые индикаторы.
IoC:
#TI #ExCobalt #GoRed #C2
@ptescalator
В процессе хантинга C2-серверов появляется важный вопрос — какие артефакты использовать для лучшей результативности и точности: искать по WHOIS-записям, регулярным выражениям для субдоменов, по NS-серверам, DDNS, резолвам на один IP-адрес и т. п. С этой точки зрения лучшим чаще всего является фингерпринт SSL-сертификата, используемого на C2-сервере.
Благодаря мониторингу фингерпринта сертификата через Censys,
services.tls.certificate.fingerprint_sha256: "aea6e20b6abcf58c27eab43de08d7b1cd988fc68c471b5cdcc812851df8c8748"
который мы ранее видели на C2-сервере, используемом GoRed в атаках на российские организации, в июне этого года был обнаружен новый C2-сервер GoRed, а также дополнительные сетевые индикаторы.
IoC:
passwade.ru
dnslan.ru
wglan.ru
mskde.ru
mskde.online
myldap.ru
#TI #ExCobalt #GoRed #C2
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥15👍4👏1