ESCalator
5.43K subscribers
325 photos
1 video
8 files
142 links
Tips and tricks от команды экспертного центра безопасности Positive Technologies (PT ESC)
Download Telegram
Вредоносы в SYSVOL: ищем источник 😐

Допустим, мы расследуем инцидент с шифровальщиком. Для запуска шифровальщика хакеры использовали групповую политику (например, прописали задачу планировщика). Сам вредонос они положили в папку SYSVOL на контроллере домена (DC).

🥷 Как понять, откуда действовал хакер? В этом посте сфокусируемся на файловом следе.

Логика простая: чтобы положить файл в SYSVOL, хакер должен был так или иначе «зайти» на DC. Поэтому смотрим, когда был создан файл (кстати, поэтому важно сначала собрать данные для расследования, а потом уже зачищать системы), и соотносим эту информацию с входами в систему.

Кажется, все просто, но есть нюанс: содержимое каталога SYSVOL реплицируется между DC с помощью DFSR (Distributed File System Replication). То есть хакеру достаточно положить вредоносный файл на один DC, а дальше система автоматически распространит его по всем остальным. Как понять, какой DC был исходным, особенно если DC много?

Посмотрим отладочные логи DFSR на произвольном DC из тех, на которых вредонос попал в папку SYSVOL. Обычно эти логи находятся в папке %systemroot%\debug, имена файлов имеют вид Dfsrxxxxx.log и Dfsrxxxxx.log.gz (.gz в Windows? Да!). Логи текстовые, вполне поддаются грепу, но при этом некоторые события имеют многострочный формат, — учитывайте это, если не хотите потерять контекст.

Поищем в логах имя нашего вредоноса (пусть это будет badfile.exe). Если мы нашли исходный DC с первого раза, мы должны найти в логах подобное сообщение:

20250526 02:44:24.906 5628 USNC  2871 UsnConsumer::CreateNewRecord LDB Inserting ID Record:
+ <...>
+ name badfile.exe


Если коротко, то оно свидетельствует о появлении нового файла в реплицируемой папке, то есть искомый файл был изначально размещен на этом DC. В этом случае можно переходить к последнему абзацу в посте ниже 🙂

Можно на всякий случай перепроверить это в журнале $UsnJrnl:$J:

badfile.exe,.exe,132035,6849,257939,4,.\Windows\SYSVOL\domain\scripts,52168700184,2025-05-25 23:44:23.6245532,FileCreate,Archive,436154648

Видно, что файл создается на файловой системе (FileCreate).

Если бы файл был реплицирован, это выглядело бы так:

2025-03-25 23:44:25 +0000 UTC,badfile-{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456.exe,System Volume Information\DFSR\Private\{F0285778-7EF8-4808-85D7-68223AA11FB5}-{24DC8227-6461-4D16-96D5-537D78549536}\Installing\badfile-{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456.exe,FILE_CREATE,archive,7|109885

2025-05-25 23:44:25 +0000 UTC,badfile-{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456.exe,System Volume Information\DFSR\Private\{F0285778-7EF8-4808-85D7-68223AA11FB5}-{24DC8227-6461-4D16-96D5-537D78549536}\Installing\badfile-{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456.exe,RENAME_OLD_NAME,archive,7|109885

2025-05-25 23:44:25 +0000 UTC,badfile.exe,Windows\SYSVOL\domain\scripts\badfile.exe,RENAME_NEW_NAME,archive,5|269425


Видно, что файл сначала создается в папке DFSR, а потом уже переносится в SYSVOL.


Если же вредонос был реплицирован на исследуемый DC, мы увидим в логах DFSR подобное сообщение:

20250526 02:44:24.949 4452 INCO  3065 InConnection::ReceiveUpdates Received: uid:{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456 gvsn:{D5B54C1C-F832-4838-ABC8-C5027E7F9F51}-v123456 fileName:badfile.exe session:86382 connId:{C62DFB26-63FA-4E9F-B533-0F487BF8E043} csId:{F0285778-7EF8-4808-85D7-68223AA11FB5} csName:SYSVOL Share


Очень интересно, но ничего не понятно.

Продолжение в следующем посте 🔽

#ir #dfir #DFSR
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
👍16127🔥4
Продолжаем искать файловый след из поста выше 🐾

Чтобы понять, с какого DC реплицировался файл, нужно узнать, какому хосту соответствует указанный connId (это значение статично и соответствует однонаправленной связи между двумя машинами).

Как это сделать

1️⃣ Можно посмотреть таблицу соответствия в файле \System Volume Information\DFSR\Config\Replica_<GUID группы репликации>.XML. Поищем в нем наш connId и увидим примерно следующее:

<DfsrConnection>
<ConnectionGuid>C62DFB26-63FA-4E9F-B533-0F487BF8E043</ConnectionGuid>
<...>
<PartnerName>DC02</PartnerName>
<...>
<PartnerDns>dc02.corp.local</PartnerDns>
<...>
</DfsrConnection>


2️⃣ Можно поискать в логах DFSR события, содержащие одновременно интересующий нас connId и слова "partnerDns", "partnerName" или "partnerAddress". Можем обнаружить что-то типа:

20250314 01:22:31.307 6304 DOWN  3959 [ERROR] DownstreamTransport::EstablishConnection EstablishConnection failed. Check that the connection partner is valid. If not then recreate the connection with valid partner. connId:{C62DFB26-63FA-4E9F-B533-0F487BF8E043} rgName:Domain System Volume partnerName:DC02 partnerDns:dc02.corp.local


3️⃣ Если DC «живы», то информацию о GUID’ах можно извлечь с помощью утилиты Dfsradmin. Этот способ разбирать не будем — более подробно про логи DFSR можно почитать по ссылке.

Итак, в ходе расследования мы выяснили, что изначально вредоносный файл был размещен на DC02.

Дело за малым — узнать, кто и откуда заходил на этот DC и положил туда этот файл. Журналы ОС и SUM в помощь — никто не обещал, что будет легко! 🙂

#ir #dfir #DFSR
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
👍24👏87🔥43
Нефритовый металл: уже не новая группа Telemanmilconfav атакует военные организации? 🪖

В марте исследователи из F6 опубликовали материал о группировке Telemancon, атаковавшей промышленные организации. Группа была названа в честь использования сервиса telegra.ph, man — от слова manufactory, con — из-за сохранения нагрузки в %userprofile%\Contacts\.

Нами были обнаружены несколько файлов, связанных с этой группой. Один из них — Письмо_в_АО_УАПО_запрос_РКМ_и_закл_ВП.scr 📬

При запуске, как и в случае с семплами, описанными F6, SCR-скрипт открывал decoy-документ PDF и вредоносный PowerShell-скрипт в той же %userprofile%\Contacts\, в честь которой назвали эту группу: тематика decoy-документа была связана с войсками национальной гвардии и оборонными заказами

Но больший интерес представляет обнаруженный архив Гуманитарная_помощь_накладные_июнь_2025_1.zip. Он содержит пять SCR-скриптов: четыре из них маскируются под XLSX-файлы, один — под картинку (скриншот 1).

После запуска каждый из них дропает два файла: PowerShell-скрипт (в папку %userprofile%\Favorites\) и легитимный XLSX-файл (в одном из пяти случаев это картинка). Excel-документы и картинка отсылали к информации о гуманитарной помощи для военных (скриншот 2).

🫤 Сами инструменты претерпели изменения: их стало сложнее анализировать и они повысили устойчивость к защитным механизмам. Основные изменения коснулись TMCDropper. Раньше код имел структуру с отдельными зашифрованными модулями, а в новой версии используется VM-based obfuscation.

Сам же TMCShell не претерпел больших изменений: в него добавили дополнительную проверку на наличие файлов с расширением .ps1, чтобы избежать автозапуска на виртуальных машинах.

Ключевым изменением является использование глобальной переменной, например $qvwml (для каждого скрипта они разные), которая управляет процессом расшифровки полезной нагрузки. Изначально $qvwml = 0, но после успешных проверок (включая .ps1 и отключение AMSI) ее значение увеличивается:

$qvwml += 2


Эта переменная влияет на regex-маску в цикле расшифровки:

foreach($ucbxt in $cjzuc){
"$ucbxt -replace ('.(.'+'.'*$qvwml+')'),('$'+$(h)+55/55)"|iex|iex
}


После изменения $qvwml повторно запустить скрипт невозможно, так как regex-маска больше не соответствует исходному шаблону.

TMCShell получает содержимое страницы c telegra.ph и из первой строки декодирует адрес С2, а из второй — цифровую подпись (скриншот 3; ответ, который парсит TMCShell). Сам C2-сервер на момент анализа имел IP-адрес 212.80.206.125, который принадлежит израильской AS 44709 (O.m.c. Computers & Communications Ltd), как почти во всех зафиксированных случаях, связанных с этой группировкой.

🏮 Самый интересный момент заключается в том, что Excel-документы содержали метаданные, которые указывают, что документ редактировался последний раз (вероятно, и создан) в системе с китайской локалью в WPS Office, аналоге Microsoft Office, созданной китайской компанией Kingsoft. Сам WPS Office поддерживает несколько языков, включая русский и английский, но в русской или английской версии в поле Heading Pairs должно быть указано Лист1 или Sheet1, в то время как во всех четырех документах-приманках поле Heading Pairs содержало 工作表, 1, где 工作表 означает «рабочий лист» (скриншот 4).

IoCs:

f8f096d2e94bbdbfd20aae45432af58a7bdf3406fa4dde568154b930cac855ca
20b0faa0f058cd71be39075ed1a0294e2a9e7c2f670b7ba5e3e35e6581907122
37bff1efb37a61f1e4d9f9fda43f33db852da01b22b623faedcef20173ee78fa
7c29891b5eacc464620db0a23b2e05b47373b98524aebba05cf3bd8c2b5f42fe
63b7073a8b74dd7810493700881b9afea3627126cbcb1d942e7a01d573207129
4102a0bec73711e754a5ad067d1779cb8c71628b0c38384e41b2041e64ffddba
5df092a5f3d088043cd5724197b63ba239b12edc8cd6dbcf7e3f9d7ce8594426

212.80.206.125


#TI #APT #malware #ioc
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🔥118👏2
Собеседование → ПО на iPhone от «работодателя» → у вас больше нет смартфона 👋

Новая старая схема блокировки iPhone через «режим пропажи» снова в ходу. Только теперь она стала изощреннее: в начале поста — реальный пример многоходовочки, который мы подробно описали в статье на Хабре.

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

😎 Бонус: мы подготовили наглядную схему восстановления доступа к iPhone. Она доступна в формате PDF с кликабельными ссылками — скачивайте и сохраняйте на разные устройства (на всякий случай).

#ios #dfir #mobile
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥16👍8👏7🏆31😈1
HTML-вложения как инструмент фишинга 🤑

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

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

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

В начале JavaScript-кода (скриншот 1) определяются константы P и W, являющиеся ключом шифрования и зашифрованным текстом, а также функция дешифрования k. Полученные дешифрованные инструкции помещаются в константу Y и имеют вид, представленный на скриншоте 2.

Как можно понять по этим инструкциям, они создают элемент iframe, содержимое которого получено из фишингового URL-адреса (его значение закодировано в base64); также установлены CSS-стили, позволяющие полученному контенту занять всю доступную область экрана. Кроме того, в этих инструкциях видим вызов метода document.write для размещения полученного контента на вкладке браузера.

Пока что это просто набор текста. Отдельно остановимся на способе запуска инструкций из константы Y. Для этого из вложения вызывается следующая часть скрипта (скриншот 3).

При определении константы H создается ссылка на глобальный объект o, которым в JavaScript-коде является window. Вызов o[X]X просто закодировано слово Function) эквивалентен вызову у глобального объекта свойства Function, при передаче параметров в которое они будут исполнены как новые функции. Как мы видим далее по коду, в объект передаются декодированные инструкции из константы Y.

Чтобы дополнительно усложнить детектирование исполнения вредоносного кода скрипта, злоумышленники создают пустую функцию y, переопределяют для нее метод toString, дополняя его вызовом вышеупомянутого глобального объекта window. Далее выполняется строчка U = ${y}: y преобразуется в строку, вызывая переопеределенный toString, внутри которого уже запускается загрузка контента.

Подозрительные маркеры при анализе подобных образцов — переопределение стандартных методов (вроде toString); маппинг слов из числового массива через вызов функции fromCharCode (в константе X), а также определение длинных числовых и текстовых констант с дальнейшим определением функций по их декодированию.

2️⃣ Еще один заинтересовавший нас образец содержит интересные методы «антидебага», но о них чуть попозже. Он представляет собой форму ввода учетных данных для открытия заблюренного pdf-документа.

HTML-образец содержит два скрипта. Первый после простой валидации наличия email-адреса в поле ввода содержит POST-метод, отправляющий учетные данные на сторонний сервер (скриншот 4).

Как можем видеть, в качестве query-параметра у URL-ссылки есть количество попыток. Естественно, никакой аутентификации по введенным в форму данным не производится, они просто утекают по указанному адресу. При этом параметр attempt инкрементируется, и при третьей попытке ввести в форму какие-то данные производится перенаправление на легитимный веб-ресурс. Спасибо авторам за комментарии к коду, позволившие понять, что вообще происходит.

Второй скрипт, о котором мы упомянули ранее, имеет следующий вид, представленный на скриншоте 5.

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

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

#phishing #detect #tip
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
23🔥17👍12
Страсти вокруг PyPI: 🪰🐘?

На прошлой неделе CNews выпустили новость: "Россиян погнали из сообщества Python. Пока только избранных, но критерии отбора до предела странные". В ней выясняется, что Python Package Index (PyPI), крупнейшее хранилище пакетов Python, запретила регистрацию новых пользователей с указанием почты на домене inbox.ru.

В официальном заявлении сказано, что с почтовых ящиков inbox.ru пришла волна спама – пользователи с такой почтой создали 250 профилей и добавили к ним свыше полутора тысяч проектов, которые якобы «обманывают пользователей и представляют угрозу безопасности» (leading to end-user confusion, abuse of resources, and potential security issues).


Блокировка россиян в различных комьюнити — животрепещущая тема. Её процитировали и другие издания.

@banksta
:
Россиян изгоняют из сообщества программистов Python. Им запретили пользоваться репозиторием PyPI с пакетами для Python. Ограничения коснулись только тех, кто создает новый аккаунт с привязкой почты на inboxru и тех, кто хочет добавить такую почту в уже существующий профиль. Домен принадлежит Mailru.


@imaxairu:
Россиянам запретили пользоваться репозиторием PyPI с пакетами для Python

Ограничения коснулись только тех, кто создает новый аккаунт с привязкой почты на inbox .ru и тех, кто хочет добавить такую почту в уже существующий профиль

Домен принадлежит Mail .ru. На другие домены компании лимиты пока не распространяются


Команда Supply Chain Security активно сотрудничает с PyPI в области обнаружения троянов. Мы решили провалидировать, были ли действия администрации репозитория обоснованными.

#ti #pypi #pyanalysis #scs
@ptescalator
Пост 1/4
Продолжение⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍9🔥6🤝1
Даём оценку официальным заявлениям

CNews ссылаются на статью в блоге PyPI, выпущенную 15 июля 2025. В ней говорится, что, руководствуясь практикой блокировки мусорных почтовых доменов, они закрывают регистрацию новых пользователей в Python Package Index с использованием почты на домене inbox.ru.

Схожее решение администрация PyPI выносила и год назад, 16 июня 2024, в отношении доменов outlook.com и hotmail.com (принадлежат Microsoft) — они стали излюбленным решением для злоумышленников из-за простоты массовой регистрации доменов.

Следует уточнить, что для скачивания пакетов не требуется регистрация. Учётная запись нужна для публикации своих проектов.

PyPI приводит статистику:
9 июня: появилась первая учётная запись кампании.
11 июня: за 3 часа было создано 46 учётных записей.
24 июня: за 4 часа было создано 207 учётных записей.
С 26 июня по 7 июля ими было создано 1525 проектов:
2025-06-26 9
2025-06-27 295
2025-06-28 39
2025-06-29 119
2025-06-30 740
2025-07-01 249
2025-07-02 46
2025-07-10 16
2025-07-11 12


По нашему мнению не существует легитимного сценария, в котором одному пользователю потребуется столько учёток. Создавать большое количество проектов имеет смысл в борьбе с неймсквоттингом (на примере Яндекса), но для этого достаточно и одной учётки.

Обращаем внимание на последний абзац поста на PyPI (ниже перевод):
Надеемся, что мы сможем отменить это решение в будущем, когда будем более уверены в способности этого провайдера электронной почты предотвращать злоупотребления. Если вы работаете в этом провайдере, пожалуйста, напишите нам по адресу [email protected], чтобы обсудить это решение.


Давайте разберемся с кампанией.

#ti #pypi #pyanalysis #scs
@ptescalator
Пост 2/4
Продолжение⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
12👍8🤝7
Характер кампании

Изучим проекты, выпустившие свой первый релиз в рамках действия кампании 26 июня — 7 июля, захватив слева и справа дополнительное время для наглядности: с 12 июня по 15 июля.

Разработчик, публикуя проект, может по желанию оставить email для обратной связи. В этот промежуток было опубликовано всего 4 пакета с явным указанием почты на @inbox.ru, все легитимные.

График 1 (см. ниже) демонстрирует, принял ли решение разработчик указать email в первом релизе своего проекта.
Наблюдаем:
1. Снижение общей активности разработчиков в выходные (видны двухдневные ямы, чередующиеся с пятидневными буднями).
2. Всплески пакетов без email, выпущенные 27 июня (378), 30 июня (662), 1 июля (509).

Второе наблюдение соотносится со статистикой PyPI: 27 июня выпущено 295 пакетов на @inbox.ru, 30 июня — 740, 1 июля — 249, с поправкой на часовые пояса.

В рамках периода активности есть 1403 проекта без email с одинаковым описанием: "Minimal package created automatically" — и версией 0.0.1 (график 2). Они совпадают с периодом активности кампании, которой были недовольны администраторы PyPI.

Названия пакетов из этой пачки — явный тайпсквоттинг (атака на то, что разработчик опечатается в названии пакета при установке или поведется на хорошее название — и поставит себе троян):
🟢avoid 🐱
🟢common-io
🟢win32crypt
🟢win32com
🟢pywintypes
🟢jsap
🟢webdav2
🟢arbuzmining 🍉
🟢requirements-cpu-txt
🟢requirements-cuda-txt
🟢dl-pivot-pandas
🟢steambaselib 💀
🟢catboost-spark
🟢numpynumpy
🟢antlr4-runtime
🟢celery-telegram
🟢exllama-kernels
🟢booking-api

Некоторые из названий тагретят разработчиков российских компаний:
🟢youla-spark-session 🐱
🟢ipy-kaspersky 💀
🟢vkads
🟢vkpay
🟢vkplay-sync 😺
🟢vkplay-metrics

На этих названиях становится понятно, что администрация PyPI пресекла кампанию, от которой могли пострадать наши соотечественники 🥺

#ti #pypi #pyanalysis #scs
@ptescalator
Пост 3/4
Продолжение⬇️
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍10🤝6🤯1
Оправдано ли внесение почты @inbox.ru в чёрный список?

В настоящее время при создании почтового ящика на @inbox.ru требуется номер телефона или учётная запись VK. Есть упоминание, что два года назад можно было обойтись без почты. Также можно создать до 10 анонимных ящиков к своей основной почте в рамках официального функционала mail.ru.

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

Зарегистрированных на PyPI разработчиков, привязавших почту @inbox.ru, "репрессии" не касаются — были заблокированы только "пользователи", участвовавшие в кампании. Нельзя создавать новые учётные записи или привязывать эти ящики к существующим аккаунтам.

Подводя итог

Ограничение создания новых учётных записей с использованием почты на @inbox.ru — закономерная реакция на кампанию, в рамках которой пара сотен учётных записей, зарегистрированных за короткое время, начинает творить беспредел.

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

Получился опенсорсный myth busters 👀

#ti #pypi #pyanalysis #scs
@ptescalator
Пост 4/4
Please open Telegram to view this post
VIEW IN TELEGRAM
22👍16🤝10👀1
All Hackers Go To Cloud ☁️💻

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

Времени с момента установки туннеля прошло много, а из лог-файлов у нас только запись в логе auth, говорящая о том, что за пару минут до установки GSocket злоумышленник зашел в систему с учетной записью root, используя локальную консоль:

login[1206]: ROOT LOGIN  on '/dev/tty1'


💡 Cервер находился в инфраструктуре одного из российских провайдеров облачных сервисов на базе VMware Cloud Director.

Что можно запросить у провайдера и какие ценные данные для расследования можно получить? Давайте разбираться.

1. Лог-файлы доступа к веб-консоли управления vCloud. Обычно расположены в каталогах:

/opt/vmware/vcloud-director/logs
/opt/vmware/var/log/


Имеют имя YYYY_MM_DD.request.log и формат стандартного APACHE-лога (подробнее о лог-файлах можно почитать тут).

При их анализе можно получить идентификатор нужной нам ВМ (обычно имеет вид vm-xxxx-xxxx-xxxx-xxxxx-xxxxxxxxxxxx), IP-адрес запрашивающего клиента и его User-Agent.

Пример события:

[IP-Address] - - [11/Jan/2025:05:36:17 +0000] "GET https://vcloudsite.com/cloudapi/1.0.0/sessions/current HTTP/1.1" 200 309 "https://vcloudsite.com/tenant/org_162736/vdcs/bg85164f-8df3-4df8-ed78-gt489521657a/vapp/bg85164f-8df3-4df8-ed78-gt489521657a/vcd-vapp-vms/vm-8700-5797-076e-582e-a4a9-e82919a8864c/general" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36" 118


2. Лог-файлы событий (заданий), происходивших на нужной нам ВМ. Их можно выгрузить через интерфейс портала управления vCloud или запросить у провайдера по идентификатору ВМ (можно найти в свойствах ВМ на портале).

В этих логах нас интересует событие jobAcquireScreenTicket, которое фиксирует обращение пользователя к ВМ через веб-консоль управления (tenant portal):

https://vcloudsite.com/api/task/a983bdce-ee6f-4a7b-b36d-d079be22c7a8;a658adcd-dd5e-4d1d-b25d-d083be31c2a6;;;;2024-11-25T22:42:42.547Z;jobAcquireScreenTicket;https://vcloudsite.com/api/vApp/vm-8700-5797-076e-582e-a4a9-e82919a8864c;www-srv;vm;Acquired Screen Ticket of Virtual Machine www-srv(e3380056-ac0d-22a0-76d3-2888eeb8efb2);https://vcloudsite.com/api/org/8561881b-ef74-438b-a526-2e56473d0eb6;org_262549;user;;com.vmware.vcloud;2024-11-25T22:42:42.547Z;success;


3. Лог-файлы балансировщиков VMware NSX Edge Gateway, которые расположены перед гипервизором vCloud и распределяют запросы пользователей. В них также можно найти IP-адрес пользователя, запрашивающего доступ к консоли или порталу управления, сопоставив запросы с ключевыми словами GET / LOGIN / Tenant и время обращения к ВМ из логов выше.

Вот пример подобного события:

Nov 25 22:42:42 NSX-edge-2-0 loadbalancer[10058]: [default]: {ip-адрес} - - [25/Nov/2024:22:42:42 +0000] "GET /login?service=tenant:org_141783&redirectTo=%2Ftenant%2Forg_171438 HTTP/1.1" 302 182 "" "" 25165 801 "VCD-HTTPS~" "vcd-https" "a99vcd99" 0 0 5 0 5 ---- 6 5 0 0 0 0 0 "" ""


📌 В нашем кейсе с помощью сопоставления по временным меткам данных, полученных таким образом, удалось установить IP-адреса злоумышленников, с которых осуществлялся доступ в инфраструктуру.

Happy Investigating! 🛡

#DFIR #Tips #Detect
@ptescalator
🔥15👍1312
Уязвимости типа Pass Back: что это такое и насколько опасны 🧐

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

Примером такой уязвимости является LDAP Pass Back (CVE-2024-32122), которую зарегистрировал ведущий специалист отдела наступательной безопасности PT ESC Владислав Дриев совместно со специалистом по анализу защищенности УЦСБ Олегом Лабынцевым.

Эта уязвимость позволяет получить учетные данные (УД) от LDAP в открытом виде (зачастую это УЗ AD), злоумышленнику нужно лишь частично изменить конфигурацию коннектора. Уязвимость встречается в разных видах и в самых разных устройствах и программных продуктах.

Атакующий может получить УД в открытом виде или в виде хеша с захваченного устройства или софта. Ярким примером таких устройств, конечно, являются МФУ, но точно не ограничиваемся только ими. Уязвимыми также могут быть домофоны, камеры, сетевое оборудование. Если говорить про ПО, то чаще всего это CMS.

В чем конкретно проблема 🤔

Проблема в том, что атакующий может влиять на конфигурацию устройства, в которой есть УД. Чтобы было еще понятнее, приведем пример. Настроили МФУ, чтобы оно могло отправлять сообщения по SMTP на почту, также настроили аутентификацию по LDAP, чтобы динамически загружался список контактов, а еще — SMB, чтобы сразу можно было складывать отсканированные документы в сетевую папку.

Далее рассмотрим ситуацию, когда атакующий смог получить доступ к веб-интерфейсу с помощью УД по умолчанию. В таком случае он может попробовать изменить IP-адрес конфигурации, которая содержит УД, поменяв в ней IP-адрес на подконтрольный ему. Что это даст и почему это вообще возможно? Опыт показывает, что в большинстве случаев смена только IP-адреса в конфигурации разрешена. Соответственно, УД будут использованы валидные. Таким образом, злоумышленник сможет получить обращение с корректными учетными данными на свой IP-адрес, где сможет достать их из трафика либо в открытом виде, либо в виде хеша.

SMTP (без TLS) зачастую позволяет получить УД в открытом виде.
LDAP позволяет получить данные в открытом виде.
SMB позволяет получить хеш (часто NetNTLMv1, с которого можно выполнить NTLM Relay).
другое (УД для IP-телефонии, которые обернуты в Base64).

Что здесь небезопасного, ведь доступ ко всем конфигам скрыт за аутентификацией? Да, но не всегда все так. Способы получения доступа к конфигурациям:

УД по умолчанию.
IDOR (выделен отдельно от уязвимостей, потому что встречается часто).
Уязвимость для получения доступа к веб-интерфейсу администратора.

Еще есть случаи, когда на устройстве работает несколько администраторов, у них разные роли, но при этом каждый может получить доступ к УД коннекторов через такой нехитрый способ.

Так или иначе атакующий получит доступ к устройству. После этого скомпрометирует УД и начнет развивать атаки на смежные сервисы, в частности на AD. Кроме того, среди этого всего бывают уникальные и выдающиеся случаи:

CMS работает с учетной записью администратора домена.
МФУ работает с учетной записью администратора домена.

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

Итак, как этого избежать 🧐

Самый простой способ — при любом изменении конфигурации УД запросить ввести их заново. Если конфигурацию меняет администратор, для него это не будет проблемой. А если атакующий, то он ничего не получит. Понятно, что на софт не всегда можно повлиять, тогда перед тем, как войти под своей УЗ на какое-то новое устройство, можно самостоятельно проверить, как оно ведет себя с разными конфигурациями, нет ли возможности извлечь УД из него.

Более того, такие УЗ следует ограничивать в правах, брать на мониторинг. Если от имени УЗ началась разведка в домене — это явный признак компрометации устройства. Ну и конечно, нужно защищать устройства и ПО: менять пароли по умолчанию, регулярно устанавливать обновления.

#CVE #offensive
@ptescalator
Please open Telegram to view this post
VIEW IN TELEGRAM
15🤝9👾8👍6