Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
1
Добавлен:
20.04.2024
Размер:
11.5 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

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

o

 

 

w

 

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

g

.c

 

 

.

 

 

 

 

g

.c

 

 

 

p

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

декабрь 2022

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

№ 285

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CONTENTS

 

 

 

 

 

 

 

 

 

 

 

Инфосек с ChatGPT

 

 

 

 

 

 

 

 

 

 

 

 

 

Колон­ ка­ главреда­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

GIGANEWS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Самые­

важные­

и интерес­

ные­

события мира безопасности­

за 2022 год

Кунг-фу enumeration

 

 

 

 

 

 

 

 

 

 

 

 

Собира­

ем­

 

информаци­ ю об атакуемой­

сист­ еме

 

 

 

Дельфийские игры

 

 

 

 

 

 

 

 

 

 

 

 

 

Ревер­

­сим 64-разрядные­

приложе­

­ния на Delphi

 

 

 

Ремесло бинарщика

 

 

 

 

 

 

 

 

 

 

 

 

Учимся­

 

анали­ зировать­

программы­

для x86 с нуля

 

 

 

Get your Xojo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ревер­

сим­

приложе­

ние­

на REALbasic

 

 

 

 

 

 

HTB Shared

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Повыша­

ем­

привиле­

гии­

через уязвимос­

ть в Redis

 

 

 

HTB Outdated

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пов­ ышаем­

приви­ легии­

через службу­

обновления­

Windows

 

HTB Support

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проводим­

 

класси­ ческу­ ю атаку­

RBCD для захвата­

домена

 

HTB Carpediem

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сбегаем­

из Docker-контей­

нер­

ов

 

 

 

 

 

 

 

 

Linux на диете

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Уменьшаем­

требова­

ния­

Bodhi Linux к опер­ ативной­

памяти

 

Новогодний переполох

 

 

 

 

 

 

 

 

 

 

 

Изучаем­

электро­

нику­

с Гринчем­

 

 

 

 

 

 

 

 

Титры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кто делае­ т этот журнал­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

C

 

 

E

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

wClick

 

c

 

o m

HEADER

 

 

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

.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

 

 

 

 

КОЛОНКА ГЛАВРЕДА

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

Андрей Письменный

Главный редактор apismenny@gmail.com

Сразу­ хочу предуп­ редить­ : никаких прозрений­ по поводу будущего­ ИИ у меня нет. Как и все, я дивлюсь­ тому, какой путь машинное­ обучение­ прошло­ за пос­ ледние пять лет, и пытаюсь­ прикинуть­ , что будет еще через пять. Поэтому­ просто­ выступлю­ в жанре­ TJournal (светлая­ ему память), где была полезней­ ­ шая, на мой взгляд, рубрика­ : в ней брали­ какой то новый мем и собирали­ из соцсетей­ лучшие­ экземпля­ ры­ творчес­ тва­ на его тему. Только­ вместо­ мемов у нас будут примеры­ использования­ ChatGPT в инфобезе­ .

ChatGPT (Chat Generative Pre-trained Transformer) — это модель языка­ , которая была обучена­ на большом­ корпусе­ текста­ для генерации­ ответов­ в чат ботах. Она была разработа­ на­ OpenAI и является­ разновид­ ностью­ технологии­ пред­ варительно­ обучен­ ных­ трансфор­ меров­ (Pre-trained Transformer).

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

для использования­ в чат ботах.

ChatGPT был разработан­ компани­ ей­ OpenAI. OpenAI — это некоммерчес­ ­ кая организа­ ция­ , которая занимается­ исследова­ нием­ искусствен­ ного­ интеллекта­ и его примене­ ния­ . Она основана­ в 2015 году и считает­ ся­ одним из ведущих игроков­ в области искусствен­ ного­ интеллекта­ . OpenAI разработа­ ла­ множес­ тво­ моделей языка­ , в том числе­ GPT и GPT-2, которые также­ являются­ предваритель­ но­ обучен­ ными­ трансфор­ мерами­ .

Обычно­ люди удивляют­ ­ся тому, насколь­ ­ко хорошо ChatGPT справляет­ ­ся с генерацией­ ответов­ в чат ботах. Она умеет­ отвечать­ на различные­ вопросы­ , выполнять­ команды­ и даже постить­ шутки­ . Часто­ ChatGPT удивляет­ людей сво­ ей способ­ ­ностью генерировать­ текст, который читается­ натурально­ и не отли­ чается­ от текста­ , написанного­ человеком­ .

Текст этой врезки­ сгенери­ рован­ при помощи ChatGPT в ответ на воп-­

росы «Что такое ChatGPT?», «Кто разработал­ ChatGPT?» и «Почему

ChatGPT поражает­ людей?»

Как видишь,

писать рефераты­ ChatGPT умеет­ складно­ . Но

это далеко

не единствен­

ное­

примене­ ние­ . При помощи ChatGPT генерируют­

код на раз­

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

Вот пользователь­ @gf_256 просит­ ChatGPT глянуть­ на исходник смарт кон­ тракта­ , а тот коррек­ тно­ идентифици­ рует­ потенциаль­ ную­ уязвимость­ .

Еще пример­

того же пользовате­ ля­ : ChatGPT показывают­

задачку­ с CTF,

в которой нужно­ забрать­

флаг из приложе­ ния­

на Flask. Нейросеть­

подробно­

расска­ зыва­ ет­ о том, как это можно­ проделать­

при помощи Burp Suite.

А вот пример­ поиска­ уязвимос­ тей­ в веб сервере­ на Python и Flask за авторс­ твом @dyngnosis. На этот раз ChatGPT составил­ подробный­ список­ потен­ циальных­ дыр и сгенери­ ровал­ готовый скрипт с перебором­ нагрузок­ .

Как насчет­ дел бинарных­ ? В примере­ @JusticeRage ChatGPT дают посмотреть­

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

А вот @breakersall исполь­ зует­ ChatGPT для организа­ ции­ фишинговой­ кам­ пании. Нейросеть­ по запросу­ пишет скрипт для деплоя­ evilginx2 в AWS.

Настра­ ивает­ файрвол­ .

И выдает­ скрипт на Python для регистра­ ции­ домена.

Затем­ пишет фишинговое­ письмо­ и скрипт для его рассылки­ . Под конец еще и генерирует­ отчет (картинки­ кликабель­ ные­ ).

Еще мне очень понравилось­ , как ChatGPT придумал­ несуществу­ ющий­ язык программи­ рова­ ния­ Sack, а потом стал писать программы­ на нем.

Но окончатель­ но­ покорила­ история­ с «виртуаль­ ной­ машиной». ChatGPT попросили­ предста­ вить­ , что он терминал­ на машине с Linux, и отвечать­ на пос­ тупающие­ команды­ bash. Дальше­ пользователь­ ходит по каталогам­ , открывает­ файлы­ , запускает­ команды­ , делает­ сетевые запросы­ , а нейросеть­ пытается­ сделать­ вид, что это действи­ тель­ но­ настоящий­ компьютер­ , и дать реалис­ тичный вывод. Такая вот сисадмин­ ская­ версия­ Dungeons & Dragons, где гейм мастер­ — нейросеть­ .

Соосно­ ­ватель и исполнитель­ ­ный директор­ OpenAI Сэм Альтман­ пишет­ :

«ChatGPT сейчас­ невероятно­ ограничен­ , но кое в чем достаточ­ ­но хорош, чтобы­ создать­ ложное­ впечат­ ­ление величия. Будет ошибкой­ сейчас­ на него полагаться­ в чем то важном­ . Это превью прогресса­ : нам пред­- » стоит­ еще много­ работы над гибкостью­ и точностью­ .

Как хороши будут ягодки­ , коль так хороши цветоч­ ки­ ? Да и вообще­ , в хакерском­ деле точный­ инстру­ мент­ иногда­ и не нужен. Бывает­ достаточ­ но­ догадки­ , а уж ее провер­ кой­ пока что займет­ ся­ человек.

Насмотрев­ шись­ примеров­ в интернете­ , я тоже пошел пообщать­ ся­

сChatGPT. Первым­ делом хотелось узнать, насколь­ ­ко хорошо он справляет­ ­ся

сзадачами­ авторов­ «Хакера». Вопрос­ за вопросом­ я стал вытягивать­ из ней­

росетки­ статью про взлом Wi-Fi.

ChatGPT, как видишь, немного­ пококетничал­ , сторонясь­ пикантной­ темы, но под конец таки разговорил­ ­ся и пошел сочинять эксплей­ ­нер про перехват­ хендшей­ ­ков и Aircrack-ng.

Неплохо­ ! Но живые авторы­ нам по прежнему­ нужны­ (кстати­ , если хочешь стать одним из них, шли темы на pismenny@glc.ru). Я же не удержался­ и стал про­ сить нейросеть­ сочинить балладу­ о кротову­ хе­ . На этом работа встала­ .

Продолжение статьи

 

 

 

 

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

До нового года осталось­ всего­ ничего, а значит­ , пора под­ вести итоги­ и вспомнить­ самые интерес­ ­ные, важные­ и странные­ события последних­ двенад­ ­цати месяцев. Мы

уже выбрали­ «призеров­ » в десяти номинациях­ и готовы расска­ ­зать тебе о наиболее­ заметных­ атаках­ , взломах­ , утечках­ , фейлах­ и других­ событиях­ уходяще­ ­го 2022-го.

АТАКА ГОДА

LAPSUS$

От хакерских­ атак постоян­ ­но страдают­ компании­ и организа­ ­ции по всему­ миру, но мало кому удается­ устроить­ такой марафон взломов­ , какой в этом году про­ демонстри­ ­рова­ла хак группа­ Lapsus$. Всего­ за несколь­ ­ко месяцев эти парни­ успели­ скомпро­ ­мети­ровать и пошантажиро­ ­вать Nvidia, слить исходные коды

Ubisoft, Microsoft и Samsung, взломать­ компанию­ Okta.

Лидером­ Lapsus$ считают­ 17-летнего­ подрос­ тка­ из Великобритании­ , которого­ , наряду с другими­ участни­ ками­ группы­ , уже арестовали­ власти­ . Одна­ ко после­ этих задержаний­ атаки­ не прекратились­ , и «список­ заслуг­ » группиров­ ­ ки пополнился­ не менее громкими­ взломами­ Uber и Rockstar Games (из за которого­ в сеть утекли­ десятки­ видео с геймпле­ ем­ GTA VI и куски­ исходных кодов компании­ ).

В настоящий­ момент неясно­ , сколько­ еще участни­ ­ков Lapsus$ могут оста­ ваться­ на свободе­ .

Другие громкие взломы 2022 года

1.Кросс чейн мост Nomad лишился­ 200 миллионов­ долларов­ из за взлома­ . Одна из крупней­ ­ших криптовалют­ ­ных атак года, которую эксперты­ назвали­ «первым­ в истории­ децентра­ ­лизо­ван­ным массовым­ ограблением­ ».

2.Вредонос­ RuRansom уничтожа­ ­ет данные­ в россий­ ­ских системах­ . В отличие­ от обычных­ шифроваль­ ­щиков, которые вымогают­ выкуп, автор RuRansom не просит­ денег, а просто­ стремит­ ­ся причинить­ больше­ ущерба­ .

3.Поезда­ в Дании останови­ ­лись из за кибератаки­ . Работа Государствен­ ­ных железных­ дорог Дании (DSB) оказалась­ парализова­ ­на на несколь­ ­ко часов из за атаки­ на сторон­ ­него поставщи­ ­ка ИТ услуг — компанию­ Supeo.

4.Сотни­ новостных­ сайтов­ в США скомпро­ ­мети­рова­ны и заражены­ вредоно­ ­

сом SocGholish.

Вредонос­ ­ное

ПО обнаружи­ ­ли на сайтах­

более

чем 250 американ­

 

­ских новостных­

агентств.

 

5.Группиров­ ­ка Yanluowang взломала­ компанию­ Cisco. В компании­ заверили­ , что хакеры сумели похитить только­ неконфиден­ ­циаль­ные данные­ .

Год от года мощность­ DDoS-атак бьет всё новые рекорды­ . В 2022 году произош­ ло­ сразу­ нес­ колько­ крупных­ инциден­ тов­ , вновь «повысивших­ планку­ » в этой области.

Клиент­ компании­ Imperva, неназванный­ китайский­ поставщик­ телекоммуника­ ­цион­ных услуг, под­ вергся­ атаке­ , которая длилась­ более четырех­ часов, и за это время­ жертва­ суммарно­ получила­ 25,3 миллиар­ да­ запросов­ . Пиковая мощность­ атаки­ составила­ 3 900 000 зап­ росов в секунду­ .

Специалис­

ты­

Microsoft

расска­ зали­ , что отразили­

масштаб­

ную­

DDoS-атаку­ , нацеленную­

на неназванно­

го­ клиента­

Azure из Азии. Мощность­

атаки­ составила­

рекордные­

3,47 Тбит/с.

УТЕЧКА ГОДА

РОССИЙСКИЕ

КОМПАНИИ

К сожалению­ , в этом году бесспор­ ными­ лидерами­ по количеству­ утечек­ данных­ стали­ россий­ ские­ компании­ . Посуди сам: за год в сеть попали личные­ данные­ пользовате­ лей­ Яндекс­ Еды и Delivery Club, «Почты­ России­ », провай­ дера­ «Дом.ру», сервиса­ покупки­ билетов «Туту­ .ру», онлайн магазинов­ «Вкусвилл­ », DNS и «Онлайн­ трейд», кикшерин­ га­ Whoosh, медицинской­ лаборатории­ «Ге­ мотест», сервисов­ CDEK.Shopping и «СДЭК.Маркет­ », сайта­ Pikabu, участни­ ков­ программы­ лояльнос­ ти­ Tele2 — и на этом список­ не исчерпывает­ ся­ .

Отдель­ ного­ упомина­ ния­ также­ стоит­ серия­ утечек­ , которую специалис­ ты­ Минцифры­ связыва­ ют­ с «Почтой­ России­ », а хакеры заявляют­ , что украли­ дан­ ные пользовате­ лей­ «Госуслуг­ », якобы­ полученные­ из Единой­ системы­ иден­ тификации­ и аутентифика­ ции­ .

Недав­ но­ эксперты­ Group-IB и вовсе­ сообщили­ , что только­ за три летних­ месяца 2022 года в сеть попало 140 баз россий­ ских­ компаний­ , а общее количество­ строк в этих сливах­ равняет­ ся­ пример­ но­ 304 миллионам­ .

На фоне участивших­ ­ся утечек­ Минцифры­ рассмат­ ­рива­ет возможность­ ввес­ ти оборот­ ­ные штрафы­ для компаний­ в размере­ 3% от оборота­ . Глава­ минис­ терства­ Максут­ Шадаев­ считает­ , что это будет стимули­ ­ровать бизнес­ вкла­ дываться­ в безопасность­ данных­ .

Другие утечки 2022 года

1.Хакеры­ похитили­ информацию­ и хранили­ ща­ паролей пользовате­ лей­ LastPass. Злоумыш­ ленни­ ки­ проник­ ли­ в облачное хранили­ ще­ компании­ ,

и теперь пароли пользовате­ ­лей в теории могут быть взломаны­ .

2.Данные­ 5,4 миллиона­ пользовате­ ­лей Twitter попали в открытый­ доступ­ . Информация­ , украден­ ­ная с помощью уязвимос­ ­ти API, бесплат­ ­но рас­ пространяет­ ­ся в сети.

3.Произош­ ­ла утечка­ документации­ и BIOS для процес­ ­соров Intel Alder Lake. У произво­ ­дите­ля украли­ исходный код, приват­ ­ные ключи­ , журналы­ изме­ нений и инстру­ ­мен­ты компиляции­ для UEFI BIOS.

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

5.Утекшие­ исходники­ шифроваль­ ­щика Conti используют­ ­ся для атак на рос­ сийские­ компании­ . Раскол­ в хак группе­ привел­ к утечке­ исходных кодов опасной­ малвари­ .

Даже­ в 2022 году список­ самых распростра­ нен­ ных­ и ненадеж­ ных паролей по прежнему­ возглав­ ляет­ password, а за ним сле­

дуют 123456, 123456789, gest и qwerty.

На взлом таких паролей требует­ ­ся от < 1 до 11 секунд.

ИССЛЕДОВАНИЕ ГОДА

ВЗЛОМ CAPTCHA

В ДАРКНЕТЕ

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

В прошед­ шем­ году интерес­ ных­ ресерчей­ было немало. Например­ , группа­ исследова­ телей­ из универ­ ситетов­ Аризоны­ , Джорджии­ и Южной Флориды­ соз­ дала мощный­ инстру­ мент­ DW-GAN для решения CAPTCHA на ресурсах­ даркне­ ­ та. По утвержде­ нию­ авторов­ , DW-GAN может обойти­ 94,4% защитных­ механиз­ мов на андеграундных­ сайтах­ .

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

Другие исследования 2022 года

1.К зашифрован­ ­ным архивам­ ZIP подходят­ два разных­ пароля. Оказалось­ , у запаролен­ ­ных архивов­ может быть сразу­ два правиль­ ­ных пароля, причем­ оба дадут одинако­ ­вый результат­ при извлечении­ файлов­ .

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

3.Продемонс­ ­три­рова­на атака­ «браузер­ в браузе­ ­ре», позволя­ ­ющая под­

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

4.Mozilla: на YouTube практичес­ ­ки не работают­ кнопки­ «Не нравит­ ­ся» и «Не интерес­ ­но». Инженеры­ Mozilla долго­ изучали­ алгорит­ ­мы YouTube и пришли­ к выводу, что кнопки­ обратной связи­ на платформе­ практичес­ ­ки не работа­ ют.

5.Угнать­ за 130 секунд: баг позволя­ ­ет добавить новый NFC-ключ для авто­ мобиля­ Tesla. Член хакерско­ ­го исследова­ ­тель­ско­го коллекти­ ­ва Trifnite Group, занимающе­ ­гося проблемами­ BLE, продол­ ­жает изучать­ и ломать про­

дукцию­ Tesla.

Хакеры­ ломают­ хакеров: за последние­ 12 месяцев мошенники­ выманили­ у своих­ «коллег­ » более 2 500 000 долларов­ только­ на трех отдельных­ хак форумах: Exploit, XSS и BreachForums.

УЯЗВИМОСТЬ ГОДА

PROXYNOTSHELL

В этой номинации­ хочется­ порадовать­ ся­ тому, что не каждый­ год специалис­ ­ там приходит­ ся­ сталкивать­ ся­ с проблемами­ масшта­ ба­ Heartbleed, Meltdown

иSpectre или WannaCry. Среди­ багов «калибром­ » поменьше­ в этом году явно выделялись­ уязвимос­ ­ти ProxyNotShell, родствен­ ­ные старому­ багу ProxyShell

иблагода­ ­ря этому­ получившие­ название­ .

Уязвимос­ ти­ в Microsoft Exchange вызвали­ такой интерес­ среди­ злоумыш­ ­ ленников­ , что в сети даже пытались продавать­ фейковые­ экспло­ иты­ для них.

Другие уязвимости 2022 года

1.Уязвимость­ Follina превратили­ в оружие­ , но Microsoft не торопится­ с патчем­ . Проблема­ нулевого­ дня в Microsoft Ofce стала­ настоящим­ подарком­ для хакеров, а патч разрабаты­ ­вали несколь­ ­ко месяцев.

2.Смартфо­ ­ны Xiaomi с чипами MediaTek уязвимы­ перед подделкой­ платежей­ . Пользовате­ ­лям посоветова­ ­ли отказать­ ­ся от мобильных­ платежей­ и свести­ к минимуму­ количество­ установ­ ­ленных на устройстве­ приложе­ ­ний.

3.В OpenSSL патчат­ уязвимость­ , сравнимую­ с Heartbleed по степени­ серь­ езности. Проблема­ представ­ ­ляла угрозу­ для 64-разрядных­ систем­ с под­

держкой­ Intel AVX-512 (Advanced Vector Extensions 512).

4.В антивиру­ ­сах Avast и AVG нашли­ баги десятилет­ ­ней давности­ . Хакеры с ограничен­ ­ными привиле­ ­гиями могли­ выполнить­ код в режиме ядра и в итоге­ получить полный­ контроль­ над устройством­ .

5.Apple M1 уязвим­ для атаки­ PACMAN, и это нельзя­ исправить­ . Баг носит аппарат­ ­ный характер­ и связан­ с аутентифика­ ­цией указате­ ­ля (pointer authentication), позволяя­ выполнять­ произволь­ ­ный код на уязвимом­ устрой­ стве.

В Qrator Labs считают­ , что отказоус­ той­ чивость­ Рунета ухуд­

шается­ : в этом году Россия­ потеряла­ сразу­ 8 позиций, смес­ тившись на 10-е место­ в общемиро­ вом­ топ-20.

БЛОКИРОВКА ГОДА

СОЦИАЛЬНЫЕ СЕТИ

Пожалуй­ , это будет самый грустный­ раздел­ нашего дайджес­ та­ . О блокиров­ ках­ , с которыми­ россий­ ские­ пользовате­ ли­ столкну­ лись­ в 2022 году, можно­ написать цикл статей­ и все равно­ упустить­ из вида что нибудь важное­ . Ведь в реестр запрещен­ ных­ сайтов­ в 2022 году было внесено­ 247 492 ссылки­ на сайты­ или конкрет­ ные­ страницы­ в интернете­ .

Наибо­ лее­ знаковым­ «баном» этого­ года, по нашему мнению­ , стала­ бло­ кировка­ социаль­ ных­ сетей Twitter, Facebook* и Instagram*, а также­ признание­ деятельнос­ ти­ компании­ Meta Platforms** экстре­ мист­ ской­ с последу­ ющим­ зап­ ретом на территории­ России­ .

Теперь­ Facebook* и Instagram* ежедневно­ пользуют­ ­ся лишь 0,2% и 8% населения­ .

Вчисле­ прочего­ в РФ были отключены­ и рекламные­ инстру­ ­мен­ты YouTube

иGoogle Ads, из за чего россий­ ­ские блогеры­ потеряли­ 80–90% своего­ дохода,

а лидерство­ среди­ соцсетей­ в РФ теперь держат­ «Вконтакте­ » и Telegram, чей трафик­ заметно­ увеличил­ ся­ за прошед­ ший­ год.

Другие блокировки 2022 года

1.Арестованы­ двое россиян­ , которых обвиняют­ в управлении­ теневой биб­ лиотекой­ Z-Library. Американ­ ­ские власти­ начали борьбу­ с Z-Library: Минюст и ФБР конфиско­ ­вали более 130 доменов библиоте­ ­ки, а также­ арестовали­

 

предполага­ емых­

админис­ тра­ торов­

ресурса­ .

 

 

 

 

2. Россий­ ским­

пользовате­ лям­

заблокиро­ вали­

обновление­

до

Windows

 

11 22H2. Загрузить­

с официаль­

ного­

сайта­

Microsoft образы­

Windows

 

 

 

 

 

 

 

10 и 11, а также­ другие­ файлы­ тоже не получается­

без VPN.

 

 

3.Американ­ ­ские власти­ наложили­ санкции­ на криптовалют­ ­ный миксер­ Tornado Cash. Разработ­ ­чик сервиса­ арестован­ , а предста­ ­вите­ли криптоин­ ­дус­трии считают­ это неправомер­ ­ным и подали в суд на Министерс­ ­тво финансов­ США.

4.Роскомнад­ ­зор заявил о блокиров­ ­ке VPN-сервисов­ , включая­ Proton VPN. В этом году было забанено­ множес­ ­тво VPN-сервисов­ , но Proton VPN стал одной из самых значимых­ потерь.

5.GitHub блокиру­ ­ет аккаунты­ россий­ ­ских банков­ и разработ­ ­чиков. К сожале­ нию, такие проблемы­ давно­ возника­ ­ют у разработ­ ­чиков из стран, находя­ щихся­ под санкци­ ­ями США.

Вымога­ тель­ ские­ группиров­ ки­ снижают­ свои запросы­ : по срав­ нению с прошлым­ годом величина­ выкупов снизилась­ более

чем в 20 раз, а цены на шифроваль­ ­щики в даркне­ ­те упали­ в 10– 12 раз.

НАРУШИТЕЛЬ ПРИВАТНОСТИ ГОДА

IPHONE

В прошлом­ году мы назвали­ главным­ нарушителем­ приват­ ­ности Android, одна­ ко устройства­ Apple тоже таят в себе немало проблем­ . К примеру­ , специалис­ ­ты из Дармштадтско­ ­го техничес­ ­кого универ­ ­ситета обнаружи­ ­ли, что для iPhone можно­ создать­ вредонос­ ­ное ПО, которое будет работать даже на выключен­ ­ ном устройстве­ . И хотя такая малварь­ существу­ ­ет лишь в качестве­ исследова­ ­ тельско­ ­го концепта­ , в мобильных­ устройствах­ под управлением­ iOS действи­ ­ тельно­ есть ряд чипов, продол­ ­жающих работать, даже когда­ питание отсутс­ твует­ . Теоретичес­ ­ки это может превратить­ выключен­ ­ный телефон в устройство­ для слежки­ за его владель­ ­цем.

Среди­ других­ проблем­ с приват­ ­ностью, обнаружен­ ­ных в этом году в iOS, можно­ отметить­ атаку­ NoReboot, которая помогает­ имитиро­ ­вать процесс­ вык­ лючения устройства­ , хотя на самом деле iPhone по прежнему­ работает­ , и баг, который позволял­ подслу­ ­шивать разговоры­ пользовате­ ­лей с Siri и записывать­ аудио диктовки­ текста­ .

Другие новости приватности 2022 года

1.Пользовате­ ­ли Android смогут­ отключить­ 2G и защититься­ от атак перех­ ватчиков­ . Google наконец предос­ ­тавила людям возможность­ не разрешать­ соединения­ 2G на своих­ устройствах­ .

2.Обновлен­ ­ный Tor Browser автомати­ ­чес­ки обходит­ ограниче­ ­ния. Поль­ зователям­ больше­ не придет­ ­ся вручную­ перебирать­ конфигура­ ­ции мостов­ .

3.Google: шпионское­ ПО атакует­ пользовате­ ­лей iOS и Android при поддер­ ­жке интернет провай­ ­деров. Легальная­ спайварь­ RCS Lab полагается­ на помощь интернет провай­ ­деров в некоторых­ странах­ .

4.Браузер­ DuckDuckGo разрешал­ работу трекеров­ Microsoft. После­ скандала­ разработ­ ­чики объяви­ ­ли, что их браузер­ все же будет блокиро­ ­вать все сто­ ронние­ следящие­ скрипты­ Microsoft, хотя ранее это было невозможно­ из за соглашения­ о поиске­ , заключен­ ­ного между­ компани­ ­ями.

5.Иссле­ ­дова­тели говорят, что VPN в iOS по прежнему­ не работает­ нормаль­ ­ но. VPN-приложе­ ­ния всё так же не могут шифровать­ весь трафик­ в iOS.

В среднем­ на исправление­ 0-day-багов у компаний­ уходит­

52 дня, тогда­ как еще три года назад для этого­ требова­ ­лось в среднем­ 80 дней.

Продолжение статьи

 

 

 

 

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

 

n

 

 

 

 

 

 

 

 

ha

 

 

 

 

 

← Начало статьи

МАЛВАРЬ ГОДА

RASPBERRY ROBIN

 

 

 

 

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

 

 

 

 

 

В «Хакере» мы каждый­ день расска­ зыва­ ем­ о новой малвари­ , угрозах­ , дар­ кнет сервисах­ и вредонос­ ных­ кампани­ ях­ . Выбирать «победителя­ » в этой категории­ всегда­ трудно­ , ведь нельзя­ с точностью­ сказать­ , что хуже: появление­ новой версии­ известно­ го­ шифроваль­ щика­ LockBit 3.0 (авторы­ которого­ к тому же запустили­ собствен­ ную­ программу­ bug bounty) или появление­ в продаже­ нового UEFI-буткита­ Black Lotus.

Так как многочис­ ­ленные вымогатели­ и стилеры­ уже давно­ никого не удив­ ляют, на общем фоне заметно­ выделился­ дроппер­ Raspberry Robin, обла­ дающий функци­ ­ональ­ностью червя­ . Его авторы­ продают­ доступы­ к скомпро­ ­ метирован­ ­ным сетям вымогатель­ ­ским группиров­ ­кам и операто­ ­рам другой­ малвари­ .

Raspberry Robin заразил тысячи­ организа­ ­ций по всему­ миру, что особен­ ­но примеча­ ­тель­но, так как распростра­ ­няет­ся он с помощью USB-накопителей­ (заражает­ устройства­ вредонос­ ­ным ПО после­ клика­ по файлу­ .LNK).

Экспер­ ты­ связыва­ ют­ его с такими небезызвес­ тны­ ми­ хак группами­ , как FIN11 и Clop, а также­ с распростра­ нени­ ем­ полезных­ нагрузок­ вредоно­ сов­

Bumblebee, IcedID и TrueBot.

Другие заметные вредоносы 2022 года

1.Сервис­ Parrot TDS использует­ 61 000 сайтов­ для распростра­ ­нения малвари­ . Parrot опирает­ ­ся в работе на взломан­ ­ные серверы­ , где размеща­ ­ются сайты­ универ­ ­ситетов, муниципаль­ ­ных органов­ власти­ , контент­ для взрослых­ и лич­ ные блоги­ .

2.Хакеры­ злоупот­ ­ребля­ют возможнос­ ­тями Brute Ratel C4. В сети обнаружи­ ­ли взломан­ ­ную версию­ red team инстру­ ­мен­та Brute Ratel. Не Cobalt Strike’ом единым­ …

3.За рекордны­ ­ми DDoS-атаками­ на клиентов­ Cloudfare стоял­ ботнет­ Mantis. Всего­ за 30 дней наблюдений­ Mantis запустил­ более 3000 DDoS-атак, которые были направле­ ­ны против­ почти­ 1000 клиентов­ Cloudfare.

4.Вымога­ ­тель­ская группиров­ ­ка Conti прекратила­ работу и распалась­ на нес­ колько­ групп поменьше­ . Хотя бренда­ Conti больше­ не существу­ ­ет, экспер­ ты уверены­ , что этот преступный­ синдикат­ еще долго­ будет играть важную­ роль в вымогатель­ ­ской «индустрии­ ».

5.Ботнет­ Emotet возобновил­ активность после­ пяти месяцев простоя­ . Emotet по прежнему­ жив и продол­ ­жает массовые­ рассылки­ вредонос­ ­ного спама­ .

По данным­ Роскомнад­ ­зора, с начала специаль­ ­ной военной­ операции­ на Украине­ произош­ ло­ более 140 утечек­ персональ­ ­ ных данных­ и в сеть попали пример­ но­ 600 миллионов­ записей

о россиянах­ .

ХАРДВЕРНЫЙ ВЗЛОМ ГОДА

ТЕРМИНАЛ SPACEX

Специалист­ из Левенско­ ­го католичес­ ­кого универ­ ­ситета Леннерт­ Воутерс (Lennert Wouters) в деталях расска­ ­зал, как ему удалось­ осущес­ ­твить один из первых­ взломов­ терминалов­ Starlink с помощью самодельного­ мод чипа стоимостью­ 25 долларов­ . Воутерс заявил, что намерен сделать­ этот инстру­ ­ мент полностью­ доступным­ для копирования­ .

Хотя­ SpaceX выпустила­ обновление­ , чтобы­ затруднить­ потенциаль­ ­ные атаки­ (в ответ Воутерс изменил­ свой мод чип), основная проблема­ не может быть исправлена­ , пока компания­ не обновит­ железо. По этой причине­ все поль­ зовательские­ терминалы­ Starlink по прежнему­ уязвимы­ , хотя после­ патча­ реализовать­ атаку­ стало­ заметно­ труднее­ .

Другие «железные» новости 2022 года

1. Песня­ Джанет­ Джексон­ выводила­ из строя жесткие­ диски­ в старых­ ноут­ буках. Музыкальный­ клип на песню­ Rhythm Nation негативно­ влиял­ на некоторые­ жесткие­ диски­ со скоростью­ вращения­ 5400 об/мин. Виноват

в этом был обычный­ резонанс.

2.Вышла­ обновленная­ версия­ хакерско­ ­го инстру­ ­мен­та USB Rubber Ducky. Авторы­ обновили­ DuckyScript (язык, который использует­ ­ся для создания­ команд), научили­ устройство­ определять­ , подклю­ ­чено оно к Windowsмашине или Mac, а также­ генерировать­ псевдослу­ ­чай­ные числа­ .

3.Появил­ ­ся PoC-экспло­ ­ит для PlayStation 5. Он срабаты­ ­вает лишь в 30% слу­ чаев. Разработ­ ­чики заявляют­ , что это важный­ шаг на пути к полному­ взлому­ консоли­ .

4.Кабель­ O.MG Elite получил расширен­ ­ные сетевые возможнос­ ­ти. Новинка­

способ­ ­на поддержи­ ­вать двухсто­ ­рон­нюю связь со своим­ операто­ ­ром

и может похвастать­ ­ся увеличен­ ­ным хранили­ ­щем для полезных­ нагрузок­ .

5.Создано­ устройство­ TickTock, способ­ ­ное обнаружи­ ­вать прослушку­ . Девайс, постро­ ­енный на базе Raspberry Pi 4 Model B, может проверить­ , не исполь­ зуется­ ли микрофон­ ноутбука­ или смартфо­ ­на для тайной­ записи разговоров­ пользовате­ ­ля.

Опрос­ StackOverfow показал: в 2022 году 40,23% разработ­ ­ чиков предпочли­ использовать­ Linux в качестве­ основной ОС. Однако­ первое­ место­ все равно­ удержива­ ­ет Windows с резуль­ татом в 62,33%.

СТРАННОСТЬ ГОДА

ДОБРЫЙ

ШИФРОВАЛЬЩИК

Далеко­ не все события, происхо­ дящие­ в областях ИТ и инфосека­ , можно­ отнести к разряду­ серьезных­ , а некоторые­ инциден­ ты­ и вовсе­ напоминают­ то ли первоап­ рель­ скую­ шутку­ , то ли нарочито­ абсурдные­ фальшивые­ новости­ в стиле­ ИА «Панорама­ ».

Один из ярких примеров­ — вымогатель­ GoodWill, который не требует­ у пос­ традав­ ших­ деньги­ , но заставля­ ет­ их совершать­ добрые­ дела в обмен на дешифрование­ файлов­ . К примеру­ , операто­ ры­ вредоно­ са­ велят раздавать­ одежду­ бездомным­ или оплачивать­ медицинские­ счета­ тем, кто нуждает­ ся­ в срочной­ медицинской­ помощи, но не может себе этого­ позволить­ .

GoodWill распростра­ ­няет­ся преиму­ ­щес­твен­но в Индии и, судя по всему­ , был создан­ в этой же стране­ . Исследова­ ­тели считают­ , что шифроваль­ ­щик явля­ ется чьим то эксперимен­ ­том.

Другие странные новости 2022 года

1.Школьники­ нашли­ баг в терминалах­ самообслу­ ­жива­ния «Вкусно­ — и точка­ »

иели гамбурге­ ­ры бесплат­ ­но. Отключение­ питания терминала­ автомати­ ­чес­ ки возвра­ ­щало деньги­ за последний­ заказ.

2.Француз­ случай­ ­но лишил интернета­ целый город, пытаясь­ отключить­ интернет своим­ детям. Отец семейства­ использовал­ «глушил­ ­ку», чтобы­ заблокиро­ ­вать своим­ детям доступ­ к сети, а в итоге­ оставил­ без связи­ всех соседей.

3.Взломан­ аноним­ ­ный сайт для рассылки­ фекалий по почте­ . Скучающий­ хакер взломал­ ShitExpress и опубликовал­ несколь­ ­ко особен­ ­но забавных­ посланий­ , которыми­ клиенты­ сервиса­ сопровож­ ­дали свои «заказы».

4.Создатель­ Oculus Rift показал VR-гарнитуру­ , которая убьет­ пользовате­ ­ля, если тот умер в игре. Палмер­ Лаки вдохновил­ ­ся идеями­ из Sword Art Online

исконстру­ ­иро­вал по настояще­ ­му убийствен­ ­ный гаджет­ .

5.Google отправила­ инженера­ в оплачива­ ­емый отпуск, когда­ тот заявил, что ИИ компании­ обрел сознание­ . Программист­ Google опубликовал­ интервью с чат ботом LaMDA (Language Model for Dialogue Applications), в котором ИИ признался­ , что испытыва­ ­ет чувство­ одиночес­ ­тва и жаждет­ духовных­ знаний­ .

Самым­ популярным­ языком­ программи­ рова­ ния­ на GitHub по прежнему­ остается­ JavaScript. Второе­ место­ занимает­ Python, третье — Java. Эти лидеры не меняются­ уже несколь­ ко­ лет.

ФЕЙЛ ГОДА

FTX

Осенью 2022 года криптовалют­ ­ное сообщес­ ­тво пережило­ серьезное­ пот­ рясение — неожидан­ ­ный крах биржи­ FTX, которая еще недавно­ считалась­ одной из крупней­ ­ших в мире наряду с Binance и Coinbase и оценива­ ­лась в 32 миллиар­ ­да долларов­ . Крах и банкротс­ ­тво FTX оказали­ огромное влияние­

на всю индустрию­ , а последс­ ­твия произо­ ­шед­шего еще долго­ будут сказывать­ ­ ся на всем рынке­ в целом.

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

Бывший­ глава­ и основатель­ FTX Сэм Бэнкман­ Фрид уже экстра­ ­диро­ван в США после­ ареста­ на Багамских­ островах­ . Правда­ , на родине его сразу­ же освободи­ ­ли под залог в размере­ 250 миллионов­ долларов­ и отправили­ под домашний­ арест.

Теперь­ Бэнкма­ ну­ Фриду­ и другим­ бывшим­ руководите­ лям­ FTX и фонда­ Alameda Research грозит­ тюремное­ заключение­ сроком­ 110–115 лет.

Другие провалы 2022 года

1.Инфотей­ ­мент системы­ в автомоби­ ­лях Mazda отключились­ после­ прос­ лушивания­ радиостанции­ в Сиэтле­ . Радиостанция­ трансли­ ­рова­ла через HD Radio файлы­ изображений­ , не имевшие­ расширений­ , а инфотей­ ­мент сис­ темы автомоби­ ­лей 2014–2017 годов выпуска­ обязатель­ ­но должны­ «знать» расширение­ файла­ .

2.Японские­ компании­ оказались­ не готовы к отключению­ Internet Explorer. Прекращение­ поддер­ ­жки IE спровоци­ ­рова­ло настоящий­ хаос в Японии­ , где браузер­ по прежнему­ в ходу у многих­ компаний­ и госструк­ ­тур.

3.В Telegram аннулиро­ ­вали подписки­ Premium, полученные­ обманным путем. Трое школьников­ нашли­ способ­ создания­ бесплат­ ­ных Premium-подписок­ , стали­ продавать­ их и довели этот «бизнес­ » до абсурда.

4.Акции­ фармацев­ ­тичес­кой компании­ подешевели­ из за фальшивого­ твита­ про бесплат­ ­ный инсулин­ . Из за фейковой­ новости­ компания­ Eli Lilly потеря­ ла больше­ 16 миллиар­ ­дов рыночной­ капитализа­ ­ции.

5.Мошен­ ­ники обманули­ банкоматы­ «Альфа­ банка­ » с помощью купюр «банка­ приколов­ ». Преступни­ ­ки внесли­ в банкоматы­ фальшивые­ купюры на общую сумму­ более 60 миллионов­ рублей­ , после­ чего сняли­ уже настоящие­ день­ ги.

ЧЕМ ЕЩЕ ЗАПОМНИТСЯ 2022 ГОД

Разработ­ ­чики Winamp, о которых в 2022 году вряд ли вспомина­ ­ло много­ людей, сдержали­ свое обещание­ и все же выпус­ ­тили новую версию­ легендарно­ ­го плеера­ (Winamp 5.9). Подготов­ ­ка к обновлению­ и перезапус­ ­ку Winamp велась с 2018 года.

В начале года ФСБ РФ заявила­ , что члены­ нашумевшей­ хак группы­ REvil арестованы­ по запросу­ властей­ США. Это сообщение­ посеяло­ настоящую­ панику в рядах хакеров, но к ноябрю­ дело окончатель­ но­ зашло­ в тупик, так как, по данным­ СМИ, американ­ ская­ сторона­ «в односторон­ нем­ порядке­ вышла­ из переговор­ ного­ процес­ са­ ».

Националь­ ный­ институт­ стандартов­ и технологий­ США (NIST) сообщил­ об отказе­ от исполь­ зования криптогра­ фичес­ кого­ алгорит­ ма­ SHA-1 и рекомендовал­ полностью­ перейти­ на более безопасные­ SHA-2 и SHA-3 до 31 декабря­ 2030 года.

Илон Маск купил­ компанию­ Twitter за 44 миллиар­ ­да долларов­ , сразу­ же уволил­ весь топ менеджмент­ , две трети­ сот­рудни­ков и теперь так активно модернизиру­ ­ет соцсеть­ , что Twitter лишился­ многих­ крупных­ рекламода­ ­телей, а пользовате­ ­ли массово­ переходят­

в Mastodon.

15 июня 2022 года Microsoft

окончатель­

но­

«похоронила­ » Internet Explorer, отказав­

шись­

от использования­

устарев­ шего­

браузе­ ра­ . Теперь пользовате­

лей­

сразу­ переадре­

суют­

в Edge,

хотя специаль­

ный­

режим IE в

Microsoft Edge будет поддержи­ вать­

ся­ по меньшей­

мере

до 2029 года, что даст разработ­

чикам­

долгих­

восемь лет на модернизацию­

устарев­ ших­

при­

ложений­ .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

* Принад­ ­лежат компании­ Meta, деятельность­ которой признана­ экстре­ ­-

мистской­ , организа­ ­ция запрещена­ в России­ .

** Meta Platforms Inc. признана­ экстре­ ­мист­ской организа­ цией­ и зап­-

рещена в РФ.

 

 

 

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

 

 

 

 

СОБИРАЕМ ИНФОРМАЦИЮ ОБ АТАКУЕМОЙ СИСТЕМЕ

Разведка­ и сбор данных­ при пентесте­ — не одно и то же. Recon (разведка­ ) — это пассивные­ действия­ , а Enum (сбор данных­ ) — активные. Разведка­ подразуме­ ­ вает работу исключитель­ но­ с открытыми­ источниками­ (OSINT), при этом целевая система­ никак не затрагива­ ется­ , то есть все действия­ выполняют­ ся­ аноним­ но­ . А вот когда­ наступа­ ет­ этап enumeration, или сбора­ данных­ , мы начинаем­ взаимо­ ­ действо­ вать­ с целями. Об этом важном­ этапе­ тестирова­ ния­ на проник­ новение­ мы сегодня­ и поговорим­ .

s0i37

Lead cybersecurity analyst at USSC t.me/s0i37_channel s0i37@ya.ru

Фраза­ «Enumeration is the key» широко известна­ в среде­ пентесте­ ­ров. Вначале­

пентесте­ ры­ обычно­ сканиру­

ют­ порты­ , определяя­

службы­ и выполняя­

спе­

цифичные­

тесты­ для каждого­ . И тут начинающие­

часто­ допускают­

грубые­

ошибки­ , ведь сканиро­ вание­

портов­

может быть расценено­

удален­ ной­

сто­

роной как сетевая атака­ .

 

 

 

 

 

 

 

 

 

 

 

Enumeration — это целое искусство­ . Оно заключа­ ется­

в умении­

легитимно­ ,

без использования­

каких либо уязвимос­ тей­ , а

полагаясь­

 

исключитель­

но­

на поведение­

приложе­ ния­

вытащить из исследуемо­ го­ сервиса­

или открытого­

порта­ столько­ информации­ , сколько­ возможно­ . И чем больше­ такой информа­ ции получит хакер, тем проще­ ему будет на следующих­ этапах­ .

Сегод­ ня­ на серверах­ крутит­ ся­ столько­ разнооб­ разных­ служб, что описания­ всех приемов­ для каждой­ из них хватило­ бы на целую книгу­ . Поэтому­ сегодня­ мы коснемся­ самых основ, того, на чем работает­ каждый­ сервис­ , — стека­ про­ токолов­ TCP/IP. Думаю, ты крайне­ удивишь­ ся­ , узнав, сколько­ информации­ реально­ достать­ , не поднима­ ясь­ выше уровня­ L2/L3/L4 и не имея доступа­

к удален­ ­ному серверу­ , а просто­ зная его IP-адрес и отправляя­ ему те или иные пакеты. Большинс­ ­тво приемов­ примени­ ­мо абсолют­ ­но к любым узлам интерне­ та.

Итак, используя­ только­ лишь протоко­ ­лы сетевого­ и транспортно­ ­го уровней­ (IP, TCP и ICMP), мы сможем­ определить­ :

операци­ ­онную систему­ ;

сетевую­ активность (speed rate);

время­ непрерыв­ ­ной работы операци­ ­онной системы­ (uptime);

время­ на удален­ ­ном сервере­ ;

сколько­ серверов­ реально­ находятся­ за IP-адресом­ ;

сколько­ балансировоч­ ­ных серверов­ на порте­ ;

принад­ ­лежат ли порты­ одному­ серверу­ ;

сколько­ IP-адресов­ у сервера­ ;

тополо­ ­гию маршру­ ­та до цели;

ложные­ открытые­ порты­ .

Встатье я буду показывать­ все примеры­ двумя­ способа­ ­ми: с помощью базового­ инстру­ ­мен­тария и с использовани­ ­ем собствен­ ­ного набора скриптов­ .

Вкоде этих скриптов­ ты найдешь­ полезные­ примеры­ использования­ библиоте­ ­

ки для крафтинга­ пакетов scapy, чтобы­ при необходимос­ ти­ кастомизи­ ровать­ их под свою задачу.

ARP

Обычно­ с ARP ассоциируют­ ­ся атаки­ перехвата­ трафика­ , но мы взглянем­ на этот протокол­ с другой­ стороны­ .

В каждом­ ARP-пакете есть поле с src_mac.

И именно­ по содержимому­ этого­ поля мы сможем­ ответить­ на ряд вопросов­ .

Выявление хостов за файрволом

Думаешь­ , если удален­ ный­ узел не отвечает­ на ping, то его там нет? Когда­ ты инициируешь­ любое обращение­ к узлу из текущего­ сетевого­ сегмента­ , будь то команда­ ping или обращение­ через браузер­ , твоя ОС сначала­ выполняет­ ARPзапрос­ , чтобы­ узнать MAC-адрес удален­ ного­ хоста­ . И обычно­ файрво­ лы­ (даже если они настро­ ены­ на полную­ блокиров­ ку­ всего­ входяще­ го­ трафика­ ) не тро­ гают канальные­ протоко­ лы­ (Ethernet), а также­ ARP, посколь­ ку­ из за этого­ может быть нарушена­ работоспособ­ ность­ сети.

Например­ , имеется­ хост из текущего­ сетевого­ сегмента­ . Этого­ хоста­ вроде­ как нет, посколь­ ­ку на ping он не отзывает­ ­ся. Тем не менее в кеше присутс­ ­тву­ет его MAC-адрес, следова­ ­тель­но, сетевой узел существу­ ­ет.

Чтобы­ обнаружить­ подобные­ скрытые­ узлы во всем сетевом сегменте­ , можно­ использовать­ скрипт, который автомати­ чес­ ки­ выполняет­ описан­ ные­ выше дей­ ствия.

Эта информация­ может быть также­ полезна­ в сетях, где нет DHCP, но тебе нужно­ аккурат­ но­ занять IP-адрес. Кроме­ того, она просто­ дает понимание­ , что тот или иной сервер­ не выключен­ , а находится­ за файрво­ лом­ .

Обнаружение хостов с несколькими IP

То, что в сетевом сегменте­ мы можем видеть MAC-адреса­ удален­ ­ных узлов, позволя­ ­ет выявить системы­ с несколь­ ­кими IP-адресами­ .

Все просто­ : если несколь­ ким­ IP-адресам­ соответс­ тву­ ет­ один MAC, с большой­ долей вероятности­ находится­ узел, сетевой карте­ которого­ присвоено­ нес­ колько­ IP-адресов­ (alias). Стоит­ отметить­ , что так мы не увидим­ dual-homed- машины (несколь­ ко­ сетевых карт). Как их можно­ обнаружить­ , я расска­ жу­ чуть позже­ .

Определение аппаратной части удаленного хоста

Первые­ три октета­ MAC-адреса­ резервиру­ ­ются за произво­ ­дите­лями оборудо­ ­ вания и потому достаточ­ ­но точно­ могут идентифици­ ­ровать железо.

Хорошо­ видно­ , что рядом с нами в сети присутс­ ­тву­ют четыре IP-камеры

ичетыре сетевых устройства­ . Информация­ об этом находится­ в OUI-базах:

/usr/share/arp-scan/ieee-oui.txt;

/usr/share/airgraph-ng/oui.txt.

В зависимос­ ­ти от MAC-адреса­ удален­ ­ного узла мы можем сделать­ еще и дос­ таточно­ точный­ вывод о том, физический­ перед нами сервер­ или виртуаль­ ­ный. Например­ , популярная­ в Enterprise-секторе­ VMware по умолчанию­ использует­

MAC-адреса­ вида 00:50:56:xx:xx:xx.

Stale Network Address Configurations

С ARP связана­ еще одна не столь очевид­ ­ная атака­ под названи­ ­ем SNAC, которая выявляет­ устарев­ ­шие информацион­ ­ные потоки. Учитывая­ , что для непосредс­ ­твен­ной коммуника­ ­ции узлов в локальных­ сетях требует­ ­ся зап­ рашиваемый­ по ARP MAC-адрес, и при этом запрашива­ ­емый широковеща­ ­ тельно­ (так что его слышат­ все), мы можем узнать, а все ли запрашива­ ­емые узлы реально­ существу­ ­ют.

Так как ARP-ответ уже не идет широковеща­ тель­ но­ , а отправляет­ ся­ непосредс­ ­ твенно­ запрашива­ емой­ стороне­ , его мы не услышим­ . Поэтому­ скрипт выпол­ няет повторный­ ARP-запрос­ , чтобы­ проверить­ , реально­ ли существу­ ет­ в текущем сетевом сегменте­ запрашива­ емый­ хост. Если да, он подсве­ чива­ ­ ется зеленым, как действу­ ющий­ информацион­ ный­ поток, если нет — красным­ , как недейству­ ющий­ . Во время­ работы скрипт постоян­ но­ обновляет­ граф, визу­ ализиру­ ющий­ эти самые информацион­ ные­ потоки.

Просто­ анализи­ руя­ ARP, можем видеть, что некто­ (через шлюз 192.168.8.1), расположен­ ный­ в другом­ сетевом сегменте­ , пытался­ соединить­ ся­ с несущес­ твующи­ ми­ хостами­ . Или например­ , что сразу­ три узла (82, 79 и 83) связыва­ ­

ются с хостом­ 192.168.8.73.

Вполне­ очевид­ ­ным действи­ ­ем будет занять свобод­ ­ный, но запрашива­ ­емый IP-адрес, присвоив­ своей­ сетевой карте­ сколько­ нужно­ адресов­ . Результатом­ может стать абсолют­ ­но что угодно­ , любой информацион­ ­ный поток вплоть до разгла­ ­шения паролей (например­ , если присвоен­ ­ный адрес принад­ ­лежит серверу­ MS SQL) или хешей (если это адрес сетевого­ диска­ ). Впрочем­ , это уже отдельная­ история­ .

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

SNAC просто­ незаменим­ при атаках­ на так называемые­ стенды­ , когда­ исследуемые­ узлы просто­ выдергива­ ­ются из продук­ ­тивных сетей, разрывая­ информацион­ ­ные потоки.

АНАЛИЗ IP.TTL

В любом IP-пакете есть поле ttl.

Его особен­ ность­ заключа­ ется­ в том, что каждое­ сетевое устройство­ , которое доставля­ ет­ твой IP-пакет до цели, вычитает­ из значения­ этого­ поля единицу­ . Если устройств­ по пути до цели много­ , значение­ IP.ttl будет уменьшать­ ся­ по мере удлинения­ маршру­ та­ следова­ ния­ пакета. Как только­ содержимое­ поля IP.ttl станет­ равным­ нулю, пакет удалит­ ся­ . Так реализова­ на­ защита от зацик­ ливания пакетов на пути следова­ ния­ . Отправляющая­ сторона­ вольна­ устанав­ ­ ливать любое значение­ ttl, a удален­ ная­ сторона­ при этом ответит­ пакетом со своим­ IP.ttl.

Определение ОС

Отправ­ ­ляющая сторона­ (твой ПК) устанав­ ­лива­ет определен­ ­ное начальное­ зна­ чение IP.ttl. Точно­ так же удален­ ­ная сторона­ в ответ отправит­ тебе пакет со своим­ начальным­ IP.ttl (значение­ которого­ может уменьшить­ ­ся на длину­ трассиров­ ­ки). И это значение­ специфич­ ­но для ОС.

Сущес­ тву­ ет­ четыре популярных­ начальных­ значения­ IP.ttl, достаточ­ но­ точно­ описыва­ ющих­ семейство­ ОС удален­ ного­ узла:

255 — Cisco;

128 — Windows;

64 — Linux, Android, BSD, macOS;

32 — embedded-системы­ .

Так что даже обычной­ командой­ ping мы можем определить­ тип операци­ онной­ системы­ .

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

А для защищающей­ ­ся стороны­ повод насторожить­ ­ся, если в пользователь­ ­ ском сегменте­ , где все компьюте­ ­ры работают­ под управлением­ Windows, вдруг появляет­ ­ся Linux (возможно­ даже Kali).

Зато­ в глобаль­ ной­ сети на ping (ICMP) полагаться­ особо­ не стоит­ . Пакет на пути следова­ ния­ преодо­ леет­ множес­ тво­ межсетевых­ экранов­ со своими­ правила­ ми­ и может попросту­ не дойти­ до цели, даже если на целевом IP слу­ шаются­ порты­ , работают­ службы­ . Именно­ поэтому­ Nmap нужно­ всегда­ запус­ кать с флагом­ -Pn, если ты уверен­ , что IP живой.

Поле­ ttl относит­ ­ся к протоко­ ­лу IP, а под ним, помимо ICMP (ping), работа­ ют наши любимые TCP- и UDP-транспор­ ­ты. Так что анализи­ ­ровать IP.ttl мож­ но прямо­ с TCP-порта­ .

Если­ на удален­ ном­ IP имеется­ ряд открытых­ портов­ , то далеко не факт, что все порты­ будут иметь одинако­ вый­ IP.ttl. Нужно­ иметь в виду, что в интернете­ не всегда­ весь сервер­ относит­ ся­ к одному­ IP-адресу­ . На деле это может быть некое сетевое устройство­ , отправляющее­ часть портов­ на один сервер­ в DMZ, а часть на другие­ .

В данном­ случае­ , судя по IP.ttl, мы можем заключить­ , что за IP-адресом­ реально­ скрывает­ ­ся четыре системы­ . Причем­ одна из них — это Windows и три — Unix. Чуть позже­ мы научимся­ определять­ принад­ ­лежность портов­

к системам­ более точно­ .

Выявление помех

То, что IP.ttl будет уменьшать­ ­ся с удлинени­ ­ем маршру­ ­та, мы можем использовать­ для определе­ ­ния помех при сканиро­ ­вании — ложных­ срабаты­ ­ ваний. Достаточ­ ­но часто­ при сканиро­ ­вании из «цензуриру­ ­емых» сетей (кор­ поративные­ сети, VPN и подобное­ ) часть трафика­ не выходит наружу. Чаще всего­ ты этого­ даже не заметишь, но иногда­ это проявля­ ­ется в наличии ложных­ открытых­ портов­ . Так получается­ из за того, что определен­ ­ные соединения­ заворачива­ ­ют на тот или иной внутренний­ узел, например­ Proxy-, DNSили SMTP-сервер­ . На иллюстра­ ­ции ниже показан наглядный­ пример­ такой ситуации­ .

Но если посмотреть­ на IP.ttl ответных пакетов, то мы заметим нечто­ стран­ ное.

Продолжение статьи

 

 

 

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.

 

 

c

 

 

 

 

 

 

.co

 

 

 

 

to

BUY

 

 

 

 

 

w Click

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-x ha

 

 

 

 

СОБИРАЕМ ИНФОРМАЦИЮ ОБ АТАКУЕМОЙ СИСТЕМЕ

Вспомина­ ­ем про начальные­ значения­ IP.ttl: 255, 128, 64, 32, и картина­ начинает­ прояснять­ ­ся. У двух портов­ IP.ttl изменил­ ­ся на 6, что в общем похоже на правду­ , но у одного­ из портов­ значение­ изменилось­ только­ на 1. Иными­ словами­ , между­ тобой и целью (сервером­ Google) одно сетевое устройство­ , словно­ вы оба находитесь­ в Кремниевой­ долине, а не на разных­ континен­ ­тах. В результате­ мы понимаем­ , что сетевое оборудо­ ­вание твоего­ провай­ ­дера, корпоратив­ ­ного офиса­ или VPN заворачива­ ­ет эту часть трафика­ .

Понима­ ­ние этого­ сильно­ упростит жизнь при исследова­ ­нии сети.

Обнаружение пути

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тот факт, что каждое­

сетевое устройство­ , пересылающее­

твой трафик­ , умень­

шает IP.ttl на 1, и то, что ты можешь установить­

произволь­

ное­

начальное­

значение­

IP.ttl, можно­ использовать­

для хитрого­ , но достаточ­ но­ известно­ го­

трюка­ — traceroute.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Суть трассиров­ ки­ в том, что мы сперва­ отправляем­

пакет с очень коротким­

IP.ttl=1. Такой пакет не пройдет­

дальше­ первого­

хопа и будет удален­

им,

но при удалении­

вежливое­

сетевое устройство­ , как правило­ ,

 

уведом­

ляет­

об этом

отправите­ ля­ специаль­

ным­

ICMP-пакетом.

 

Фиксируя­

такой пакет,

а именно­ IP-адрес отправите­ ля­ , мы вычисляем­

адрес первого­

хопа. Потом мы

отправляем­

тот же пакет с IP.ttl=2 и получаем­ ответ от второго­

хопа. И так

далее. В конце­ концов­ мы вычислим­

IP-адреса­ всех сетевых устройств­ на пути

движения­

пакета до цели.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тонкость­ в том, что по умолчанию­ Windows и Linux выполняют­ трассиров­ ку­ по разному­ . Windows использует­ для этого­ протокол­ ICMP, а Linux — UDP. И это может привес­ ти­ к разному­ результату­ . Нужно­ понимать, что разные­ пакеты могут использовать­ разные­ маршру­ ты­ . Проверить­ это мы можем, выполнив­ три разные­ трассиров­ ки­ с TCP, UDP и ICMP на один и тот же IP-адрес.

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

Нужно­ иметь в виду, что для одного­ и того же пакета существу­ ет­ сразу­ нес­ колько­ возможных­ путей, по которым пакет может пойти­ с той или иной сте­ пенью вероятности­ . Это можно­ заметить опять же по изменению­ IP.ttl при неизменных­ условиях­ .

Путь движения­ пакета периоди­ чес­ ки­ меняется­ на 13 хопов. Подобное­ изме­ нение IP.ttl свидетель­ ству­ ет­ об изменении­ маршру­ та­ (исходный IP. ttl=128). И иногда­ это может служить­ сигналом­ , что трафик­ глобаль­ но­ перех­ ватывается­ .

Если­ же IP.ttl периоди­ чес­ ки­ меняется­ на ttl\<64 или 128\<ttl\<255, это свидетель­ ству­ ет­ о смене­ обслужива­ юще­ го­ сервера­ (то есть о балансиров­ ­ ке). Чуть позже­ мы научимся­ более точно­ определять­ балансировоч­ ные­ сер­ веры.

Анализ­ движения­ трафика­ множес­ ­тва пакетов уже требует­ некоторой­ визу­ ализации­ :

msf> services -c port,proto sudo ./path_discover.py 8.8.8.8 53 tcp

8.8.8.8 53 udp ^D

На этом простом­ примере­ мы видим, на каком узле расходят­ ся­ маршру­ ты­ . Используемый­ нами инстру­ мент­ любезно­ группиру­ ет­ информацию­ по авто­ номным­ зонам, проще­ говоря — ответствен­ ным­ компани­ ям­ .

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

Трассиров­ ­ка может быть еще более информатив­ ­ной, если привязать­ IPадреса­ к геолокации­ . Тогда­ движение­ трафика­ станет­ еще нагляднее­ .

Забав­ но­ , но если верить geoip, то пакет, наверное­ , мог бы не покидать страну­ . Далее в этой статье мы вернемся­ к geoip traceroute, добавив к этому­ инстру­ ­ менту­ еще несколь­ ко­ полезных­ вещей.

АНАЛИЗ IP.ID

В каждом­ IP-пакете есть поле identification.

Это своего­ рода порядковый­ номер. Посколь­ ку­ пакеты к цели могут прийти­ не в том порядке­ из за времен­ ных­ задержек­ , это поле использует­ ся­ для вос­ станов­ ления­ коррек­ тной­ последова­ тель­ нос­ ти­ IP-пакетов.

Определение использования трафика

У многих­ ОС, включая­ некоторые­ Unix и, конечно­ же, Windows, есть особен­ ­ ность. Изменение­ IP.id может иметь глобаль­ ­ный характер­ . То есть если удален­ ­ ный узел отправлял­ пакеты кому то еще, кроме­ тебя, то поле IP.id в его пакетах изменит­ ­ся более чем на единицу­ . Эту простую­ особен­ ­ность мы можем использовать­ для определе­ ­ния сетевой активности­ хоста­ .

Мы видим, что IP.id в ответе­ изменил­ ­ся более чем на единицу­ , значит­ , между­ нашим запросом­ и ответом­ удален­ ­ный узел успел что то скачать­ или, наобо­ рот, что то качали с него.

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

На самом деле возможность­ видеть активность любого хоста­ в интерне­ те — это большая­ сила, особен­ но­ если хост бездей­ ству­ ет­ (IP.id ++1), тогда­ можно­ отслеживать­ моменты­ , в которые к нему происхо­ дит­ обращение­ . Нап­ ример, если это SMTP-сервер­ , то мы можем проверить­ факт доставки­ письма­ по небольшому­ всплеску­ сетевой активности­ . Конечно­ , это не полноцен­ ный­ сетевой сниффер­ , зато работает­ он незаметно­ и почти­ везде­ . И тут мы плавно­ подходим­ к так называемым­ корреляци­ онным­ атакам­ , сложной­ , но мощной­ технике­ для деанона­ . Но это уже другая­ история­ ... Словом­ , в зависимос­ ти­ от ситуации­ и фантазии­ описан­ ный­ прием­ позволя­ ет­ найти­ ответы­ на многие­ вопросы­ .

Но что нам мешает­ увидеть­ сетевую активность сразу­ ряда машин по опре­ деленному­ TCP-порту­ ?

Мы видим, что какие то серверы­ «отдыхают­ », а на какие то приходят­ запросы­ . Некоторые­ работают­ под управлением­ Windows (ttl=128), на других­ стоит­ Linux (ttl=64), и один шлюз — устройство­ Cisco (ttl=255). Изменения­ тра­ фика на шлюзе­ в разы меньше­ , чем изменения­ на всех устройствах­ , вместе­ взятых­ , — значит­ , большая­ часть сетевого­ взаимо­ дей­ ствия­ с серверами­ про­ исходит­ в пределах­ одного­ сетевого­ сегмента­ , то есть без участия­ шлюза­ .

Посколь­ ку­ id и ttl находятся­ в IP-слое пакета, мы можем анализи­ ровать­

их, комбинируя­ с трассиров­ ­кой (TCP, UDP, ICMP). Так можно­ увидеть­ сетевую активность каждого­ устройства­ , через которое проходит­ пакет на пути к цели.

Вполне­ предска­ ­зуемо по IP.ttl видно­ , что трафик­ шел главным­ образом­ через устройства­ Cisco. По изменению­ же IP.id мы можем анализи­ ­ровать заг­ руженность­ сетевых устройств­ и определять­ , сколько­ чужого трафика­ проходит­ этими­ путями. Однако­ такое поведение­ встречает­ ­ся не в каждом­ случае­ .

Стоит­ помнить­ , что поле IP.id — это всего­ лишь два байта­ , а значит­ , оно обнулит­ ­ся после­ 65 535 пакетов. Следова­ ­тель­но, если значение­ IP.id изме­ нилось будто­ бы случай­ ­ным образом­ , скорее­ всего­ , это из за того, что зна­ чение IP.id успевает­ сделать­ полный­ круг, возможно­ даже несколь­ ­ко раз. Зна­ чит, удален­ ­ный узел отправляет­ больше­ 65 тысяч пакетов за секунду­ . Тогда­ можно­ использовать­ меньший­ интервал между­ отправками­ пакетов для более точных­ замеров изменения­ IP.id.

Теперь­

мы видим, что прираще­ ние­

IP.id имеет­ более внятный­

характер­

и именно­ столько­ пакетов за 100 мс успевает­

отправить­

удален­ ный­

хост.

 

Для режима трассиров­ ки­ подобное­

будет сложно­ реализовать­

базовыми­

средства­ ми­ , так как для каждого­

хопа требует­

ся­ выставлять­

свое значение­

IP.

ttl и отправлять­

сразу­ два пакета почти­ сразу­ друг за другом­ , после­ чего

сравнивать­

дельту­ IP.id. Это реализова­ но­

только­

в моем

 

скрипте­

traceroute.py.

Idle scan

Предска­ ­зуемое значение­ IP.id может быть использовано­ даже для взаимо­ ­ действия­ с целью при сканиро­ ­вании через промежу­ ­точ­ный узел.

Подоб­ ный­ прием­ позволя­ ет­ аноним­ но­ «прощупы­ вать­ » удален­ ный­ хост, под­ ставляя­ вместо­ IP-адреса­ отправите­ ля­ некий третий­ хост с предска­ зуемым­ изменени­ ем­ IP.id при условии­ , что он «отдыхает­ ».

Мы видим, что IP.id не менялся­ более чем на единицу­ , пока не был отправ­ лен еще один пакет. Именно­ так выполняет­ ся­ поиск зомби­ хостов­ , а само ска­ нирование­ реализова­ но­ во всем известном­ Nmap как режим idle scan.

Стоит­ только­ иметь в виду, что подделка­ IP-адреса­ отправите­ ля­ возможна­ далеко не во всех сетях.

TCP.OPTIONS

В транспортном­ протоко­ ле­ TCP содержится­ поле options.

Получение uptime

Один из параметров­ в этом поле — запрос­ uptime удален­ ­ного узла. Запросить­ его вполне­ легально­ мы можем абсолют­ ­но для любого удален­ ­ного хоста­ .

Например­ , в локальной­ сети мы можем увидеть­ , когда­ пользовате­ ли­ пос­ ледний раз выключали­ свои ПК или как долго­ работают­ серверы­ .

Именно­ так атакующий­ определя­ ­ет роль хоста­ — сервер­ (высокий uptime) или рабочая станция­ (низкий­ uptime).

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

Выявление ОС

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

Чтобы­ узнать, какие порты­ соотносят­ ­ся с различны­ ­ми системами­ , можно­ запросить­ uptime с каждого­ порта­ и сгруппировать­ по нему результаты­ ска­ нирования­ . К примеру­ , основыва­ ­ясь только­ на анализе­ IP.ttl, мы можем зак­ лючить, что за исследуемым­ IP-адресом­ «прячут­ ­ся» две системы­ , посколь­ ­ку в пакетах содержатся­ разные­ ttl.

То, что за данным­ IP скрывает­ ся­ не один сервер­ , также­ подтвержда­ ет­ анализ­ uptime, однако­ хостов­ выявлено­ еще больше­ — три.

Продолжение статьи

 

 

 

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

df

 

 

 

e

 

 

 

 

 

g

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

-x ha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

NOW!

o

← НАЧАЛО СТАТЬИ w.

 

 

BUY

 

 

 

to

 

 

 

.co

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

p

df

 

c

 

 

e

 

 

 

 

 

 

g

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

-x ha

 

 

 

 

 

СОБИРАЕМ ИНФОРМАЦИЮ ОБ АТАКУЕМОЙ СИСТЕМЕ

Такой­ анализ­ полезен, если на удален­ ном­ хосте­ обнаруже­ ны­ порты­ неизвес­ ­ тного­ назначения­ , в то время­ как информация­ о некоторых­ портах­ у нас есть. Когда­ IP-адрес один, провес­ ти­ такой анализ­ не составит­ труда­ , но, если перед нами множес­ тво­ целей, разобрать­ ся­ с ними поможет дополнитель­ ная­ визуали­ зация­ :

sudo ./path_discover_group.py 8.8.8.8 53 tcp

8.8.8.8 443 tcp

Умение­ выявлять­ подобные­ особен­ ности­ позволя­ ет­ подмечать­ общие черты­ у разных­ адресов­ . Например­ , один и тот же сервер­ вполне­ может оказать­ ся­ на разных­ IP, но на одном порте­ и так далее.

Если­ в интернете­ за одним IP могут скрывать­ ся­ несколь­ ко­ серверов­ , то в локальной­ сети чаще наблюда­ ется­ обратное — когда­ у одного­ сервера­ нес­ колько­ адресов­ (alias или dual-homed). Группиров­ ка­ результатов­ сканиро­ вания­

по uptime может выявить такие узлы.

Мы видим, что, вероятнее­ всего­ , два отмечен­ ных­ на скриншоте­ IP-адреса­ на самом деле являются­ одним и тем же сервером­ , у которого­ несколь­ ко­ IPадресов­ на сетевой карте­ (alias) либо же несколь­ ко­ сетевых карт (dual-homed). В локальной­ сети информация­ о множес­ твен­ ности­ IP-адресов­ у сетевых узлов может быть также­ полезна­ , например­ , при проведе­ нии­ relay-атак.

Определение количества балансировочных серверов

В интернете­ не только­ за одним IP-адресом­ может скрывать­ ­ся множес­ ­тво сис­ тем, но и за одним портом­ может прятать­ ­ся несколь­ ­ко серверов­ . Это называ­ ется «балансиров­ ­ка», и встречает­ ­ся она, как правило­ , на высоконаг­ ­ружен­ных сервисах­ . Если мы какое то время­ будем подклю­ ­чать­ся к удален­ ­ному порту­ и анализи­ ­ровать его uptime, то, сгруппировав­ результаты­ , мы получим пример­ ­ ное количество­ балансировоч­ ­ных серверов­ .

На приведен­ ном­ выше скриншоте­ мы видим, что 36 раз ответ пришел­ от сер­ вера с uptime 29 дней, а 19 раз — с uptime 11 дней и так далее. Полагаясь­ на факт, что идентичный­ uptime у разных­ серверов­ редко­ встречает­ ся­ , можно­ заключить­ , что этот сайт обслужива­ ют­ пример­ но­ пять серверов­ .

Знание­ того, сколько­ серверов­ обрабаты­ вают­ запросы­ , может оказать­ ся­ очень кстати­ , например­ для расчета­ мощности­ при DDoS-атаке­ . Также­ , если на удален­ ном­ узле вдруг обнаружи­ лась­ RCE, стоит­ обратить­ внимание­

на балансиров­ ­ку, ведь так можно­ приумно­ ­жить количество­ захвачен­ ­ных сер­ веров.

ICMP.TYPE=13

Сетевой­ протокол­ ICMP поддержи­ вает­ множес­ тво­ типов запросов­ .

Получение локального времени UTC

С помощью одного­ из запросов­ мы можем получить timestamp, который использует­ ­ся для определе­ ­ния локального­ времени­ удален­ ­ного хоста­ . В ICMPпакете оно представ­ ­лено в поле Transmit timestamp в виде числа­ мил­ лисекунд, прошед­ ­ших от полуночи­ по UTC.

Видно­ , что между­ originate (текущая система­ ) и transmit (удален­ ­ная) есть расхожде­ ­ние. Оно как раз и показывает­ , что наши локальные­ часы и часы на удален­ ­ном сервере­ не совпада­ ­ют.

Windows отдает­ timestamp в противо­ ­полож­ном порядке­ байтов­ (big endian), в то время­ как Unix — в little endian. В скрипте­ icmp_ts.py предус­ ­мотре­но отличие­ Windows от Linux по IP.ttl, так что теперь можно­ определить­ время­ на любых узлах в сети.

Знание­ времени­ поможет как с относитель­ ной­ идентифика­ цией­ ОС (по ана­ логии с uptime), так и при попытке­ использовать­ протокол­ , который требует­ синхро­ низа­ ции­ (например­ , SSL/TLS или Kerberos).

TCP.FLAGS

У транспортно­ го­ протоко­ ла­ TCP существу­ ет­ поле flags.

Это поле использует­ ся­ для управления­ состоянием­ соединения­ .

Выявление помех

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

Сущес­ ­тву­ют некоторые­ особен­ ­ности того, как операци­ ­онные системы­ дол­ жны обрабаты­ ­вать не совсем­ обычные­ последова­ ­тель­нос­ти флагов­ в TCPсоединени­ ­ях. Таких особен­ ­ностей достаточ­ ­но много­ , некоторые­ из них ОС специфич­ ­ны. Однако­ общей является­ реакция­ протоко­ ­ла TCP на ACKпакет, на который любая система­ должна­ ответить­ , неважно­ , открыт порт или закрыт­ .

Сетевые­ экраны­ далеко не всегда­ способ­ ны­ настоль­ ко­ точно­ соответс­ тво­ вать­ поведению­ ОС, что, в общем то, и не особо­ нужно­ . Поэтому­ если между­ тобой и целью есть файрвол­ , то ответа­ от цели на такие специаль­ ные­ пакеты пос­ тупать уже не будет.

Таким­ образом­ мы можем определить­ наличие брандма­ ­уэра между­ ата­ кующим и целевой системой­ .

Определение ОС

Было­ бы странно­ не упомянуть­ известный­ инстру­ ­мент p0f, который определя­ ­ет OS fngerprint подобно­ тому, как мы делали это по IP.ttl, но использует­ более широкий набор свойств­ и, следова­ ­тель­но, делает­ это точнее­ . В IP- и TCP-слоях­ пакета содержится­ целый ряд дополнитель­ ­ных полей, дефолтные­ значения­ которых специфич­ ­ны для разных­ ОС. И если по IP.ttl мы лишь определя­ ­ли семейство­ ОС Windows, Unix или Cisco, то, анализи­ ­руя TCP, можно­ более точно­ предска­ ­зать даже версию­ ОС удален­ ­ного узла. По сути, это целая база данных­ , сам инстру­ ­мент можно­ отыскать­ по пути /usr/share/p0f/p0f. fp или /etc/p0f/p0f.fp. Тулза­ работает­ полностью­ пассивно­ , просто­ слушая­ трафик­ , который требует­ ­ся самостоятель­ ­но иницииро­ ­вать.

IP.OPTIONS

У сетевого­ протоко­ ла­ IP также­ есть поле options.

Разглашение хопов

В давние­ времена­ , когда­ память активного­ сетевого­ оборудо­ ­вания была невелика­ , обратный маршрут­ следова­ ­ния пакета записывал­ ­ся прямо­ в IPзаголовок­ . Именно­ для этого­ была придума­ ­на IP-опция record route. Информация­ , получаемая­ из record route, содержит­ больше­ сведений­ , нежели в классичес­ ­ком traceroute.

Record route не просто­ записывает­ адреса­ хопов на пути следова­ ­ния сетево­ го пакета, он фиксиру­ ­ет адреса­ всех сетевых интерфейсов­ , как входящих­ , так и исходящих­ , через которые пакет шел до цели. В то время­ как трассиров­ ­ка покажет только­ IP-адрес на исходящем­ интерфейсе­ , смотрящем­ в сторону­ отправите­ ­ля.

Изучив­ представ­ ­ленный выше скриншот­ , мы можем сделать­ следующие­ выводы:

пакет­ сперва­ пришел­ на сетевое устройство­ с 10.0.1.4, после­ чего с это­ го устройства­ , с интерфейса­ 10.0.1.6, пошел дальше­ , на 192.168.255. 17;

затем­ он покинул устройство­ с интерфейса­ 192.168.27.1;

в конечном­ счете­ пакет достиг­ цели 192.168.27.61, так сказать­ , раз­ вернулся­ , и пошел ответ с того же адреса­ 192.168.27.61, о чем сви­ детельству­ ­ют две одинако­ ­вые записи;

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

То же самое можно­ провер­ нуть­ и с помощью Nmap.

Для дальнейших­ эксперимен­ тов­ с Record Route можно­ использовать­ мой пример­ на scapy (rr_test.py). Восста­ нов­ ление­ хопов с помощью Record Route или того же traceroute, в принципе­ , может быть использовано­ для пос­ троения­ топологии­ сети, что реализова­ но­ , например­ , в открытом­ инстру­ мен­ те­ zenmap или ряде платных­ продук­ тов­ .

ВЫВОДЫ

Мы узнали­ , как много­ самых разнооб­ разных­ и неочевид­ ных­ фактов­ о целях можно­ получить, только­ изучив­ самые верхние­ сетевые и транспортные­ про­ токолы­ . А сколько­ информации­ можно­ вытащить, спустившись­ до уровня­ при­ ложений­ ?

Enumeration — это даже еще не начало поиска­ изъянов­ в защите, ведь мы не запускали­ разнооб­ разные­ активные тесты­ на уязвимос­ ти­ и мисконфи­ ги­ , не успели­ проверить­ пароли или пассивно­ проверить­ версии­ . Но мы уже соб­ рали о целях довольно­ большой­ объем­ информации­ . Ведь никогда­ не знаешь­ , какие уязвимос­ ти­ будут найдены­ на следующем­ этапе­ и в какой пазл это в ито­ ге сложит­ ся­ . Вполне­ вероятно­ , что крошеч­ ная­ недостающая­ крупица­ информа­ ции превратит­ ся­ в рабочий attack chain и система­ окажет­ ся­ пробитой­ .

Даже­ если та или иная особен­ ­ность не представ­ ­ляет опасности­ сама по себе, собранные­ сведения­ злоумыш­ ­ленник может использовать­ для реали­ зации последу­ ­ющих атак.

 

 

 

hang

e

 

 

 

 

 

 

C

 

 

E

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

wClick

 

BUY

o m

ВЗЛОМ

 

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

 

 

 

 

РЕВЕРСИМ 64-РАЗРЯДНЫЕ ПРИЛОЖЕНИЯ НА DELPHI

Программы­

на Delphi пусть и нечасто­ ,

 

но все же попадают­ в руки любителей­

 

поковырять­ ся­ в чужом софте­ . Сегодня­ мы

 

разберем­

методы реверса­ и отладки таких

 

приложе­ ний­ . А заодно­ запасемся­ нужными­

МВК

 

 

 

 

инстру­ мен­ тами­

.

 

Хороше­ го­ хакера от хорошего­ кодера отличает­

то, что первый­

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

ком со всеми­ необходимы­

ми­ для выполнения­

текущей задачи инстру­ мен­ тами­

и умеет­ ими пользовать­

ся­ ,

 

но также­ понимает­ их внутреннее­

устройство­

и принципы­

работы. Чтобы­ при необходимос­ ти­ обойтись­

без них, просто­

руками выполнив­

действие­ ,

под которое инстру­ мент­

по каким то причинам­

не был заточен.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Одна­ из самых благодат­

ных­

тем для хакеров — реверс приложе­ ний­

на Delphi. Об этом написано­ множес­ тво­ статей­

(в том числе­ и в «Хакере»),

а также­ создано­

множес­ тво­

удобных­

инстру­ мен­ тов­ , облегчающих­

хакерам

жизнь. Однако­ тема настоль­

ко­ обширна, что даже эти инстру­ мен­ ты­ не охва­

тывают­ ее полностью­ : всегда­ найдут­ ся­ случаи­ , когда­ все тулзы­ бессиль­

ны­

и приходит­

ся­ проявлять­

хакерскую­

смекал­ ку­ .

 

 

 

 

 

 

 

 

 

 

Итак, сформулиру­

ем­ задачу. Имеется­

64-битное­

приложе­ ние­ , первичный­

анализ­ которого­ при помощи DIE выдает­ его родство­ с Delphi.

 

 

 

 

 

Вроде­ бы все хорошо, однако­ на приведен­ ном­ выше скриншоте­ нетрудно­ заметить взаимоис­ клю­ чающие­ параметры­ : предлага­ емый­ анализа­ тором­ Delphi не может быть 64-битным­ . Переключив­ режим сканиро­ вания­ с автомати­ чес­ ­ кого на Nauz File Detector, проясня­ ем­ возникшее­ недоразуме­ ние­ .

Конеч­ но­ же, это гораздо­ более поздняя­ версия­ Embarcadero Delphi 35.0 (28.0.44500.8973). Естествен­ но­ , перед нами не XE7+, а целый XE11+. Данное­ открытие­ совсем­ нас не радует­ — общеизвес­ тные­ инстру­ мен­ ты­ DeDe и IDR не то что столь свежую­ версию­ не понимают­ , они вообще­ не умеют­ работать с 64-битным­ Delphi.

Есть робкая­ надежда­ на зачаточную­ бета­ версию­ IDR64, однако­ и она не признает­ наш модуль родным­ . Не откладыва­ ем­ ее далеко, она нам еще пригодит­ ся­ , гуглим­ дальше­ .

Находим­ занятный­ проект­ питонов­ ­ско­го скрипта­ под IDA. Его авторы­ обна­ ружили­ в Delphi и успешно эксплу­ ­ати­руют интерес­ ­ную фичу. При выходе из внутренне­ ­го метода (Event Constructor) регистр EDX будет содержать­ ссылку­ на имя обработ­ ­чика события. Адрес обоабот­ ­чика будет находиться­ в регистре­ EAX, пример­ ­но так, как показано­ на следующем­ скриншоте­ .

Проана­ лизи­ ровав­

код 32-битных­

хендле­ ров­ , они выделили­ общий паттерн­

для поиска­ 80 E3 DF 75 ?? 49 75 ?? 8B 46 02 ?? ?? 5B C3 (соответс­ тву­ ­

ющие ему байты­ помечены­ плюсиком­

):

 

 

.text:00408DB8

 

loc_

 

 

 

 

 

 

 

 

408DB8:

 

 

 

; CODE XREF: sub_408D68+67↓j

.text:00408DB8 8A 5C 31 06

 

 

mov

 

 

bl, [ecx+esi+6]

 

 

 

 

 

 

.text:00408DBC F6 C3 80

 

 

test

bl, 80h

 

.text:00408DBF 75 E1

 

 

jnz

short loc_

 

408DA2

 

 

 

 

 

 

.text:00408DC1 32 1C 11

 

 

xor

bl, [ecx+edx]

 

.text:00408DC4 F6 C3 80

 

 

test

bl, 80h

 

.text:00408DC7 75 D9

 

 

jnz

short loc_

 

408DA2

 

 

 

 

 

 

.text:00408DC9 80+ E3+ DF+

 

 

and

bl, 0DFh

 

.text:00408DCC 75+ D0

 

 

jnz

short loc_

 

408D9E

 

 

 

 

 

 

.text:00408DCE 49+

 

 

dec

ecx

 

.text:00408DCF 75+ E7

 

 

jnz

short loc_

 

408DB8

 

 

 

 

 

 

.text:00408DD1

 

 

 

 

 

 

.text:00408DD1

 

loc_

 

 

408DD1:

 

 

 

; CODE XREF: sub_408D68+4C↑j

 

.text:00408DD1 8B+ 46+ 02+

 

 

mov

eax, [esi+2]

 

.text:00408DD4

 

 

 

 

 

 

.text:00408DD4

 

loc_

 

 

408DD4:

 

 

 

; CODE XREF: sub_408D68+34↑j

 

.text:00408DD4 5F

 

 

pop

edi

 

.text:00408DD5 5E

 

 

pop

esi

 

.text:00408DD6 5B+

 

 

pop

ebx

 

.text:00408DD7 C3+

 

 

retn

 

 

Аналогич­ ­ный код хендле­ ­ра для 64-битной­ версии­ находится­ по паттерну­ 80 ?? ?? 00 74 ?? E8 ?? ?? ?? ?? 48 8B ?? ?? 48 8D ?? ?? ?? ?? ?? ?? C3.

Например­ , вот как это выглядит­ для версии­ 31 (10.1).

Код будет таким (соответс­ тву­ ющие­ паттерну­ байты­ тоже помечены­ плюсиком­ ):

55

 

 

 

 

 

 

push

rbp

 

 

 

 

57

 

 

 

 

 

 

push

rdi

 

 

 

 

56

 

 

 

 

 

 

push

rsi

 

 

 

 

53

 

 

 

 

 

 

push

rbx

 

 

 

 

48

83

EC 48

 

 

sub

rsp, 48h

 

 

 

 

48

8B

EC

 

 

 

 

mov

rbp, rsp

 

 

 

 

48

89

CB

 

 

 

 

mov

rbx, rcx

 

 

 

 

4C

89

C6

 

 

 

 

mov

rsi, r8

 

 

 

 

48

8B

0A

 

 

 

 

mov

rcx, [rdx]

 

 

 

48

89

F2

 

 

 

 

mov

rdx, rsi

 

 

 

 

E8

94

89

E5

FF

call

sub_40E690

 

 

 

48

89

45

38

 

 

mov

[rbp+var_s38], rax

 

 

 

48

83

7D

38

00

cmp

[rbp+var_s38], 0

 

 

 

0F

94

C0

 

 

 

 

setz

al

 

 

 

 

88

45

37

 

 

 

 

mov

[rbp+var_s37], al

 

 

 

48

83

7B

68

00

cmp

qword ptr [rbx+68h], 0

 

 

74

1D

 

 

 

 

 

jz

short loc_5B5D2F

 

 

 

48

8D

7B

68

 

 

lea

rdi, [rbx+68h]

 

 

 

48

8B

4F

08

 

 

mov

rcx, [rdi+8]

 

 

 

48

89

DA

 

 

 

 

mov

rdx, rbx

 

 

 

 

49

89

F0

 

 

 

 

mov

r8, rsi

 

 

 

 

4C

8D

4D

38

 

 

lea

r9, [rbp+var_s38]

 

 

 

48

8D

45

37

 

 

lea

rax, [rbp+var_s37]

 

 

 

48

89

44

24

20

mov

[rsp+var_s20], rax

 

 

 

FF 17

 

 

 

 

 

call

qword ptr [rdi]

 

 

 

80+ 7D 37 00+

cmp

[rbp+var_s37], 0

 

 

 

74+ 05

 

 

 

 

 

jz

short loc_5B5D3A

 

 

 

E8+ B6 F9 FF FF

call

sub_5B56F0

 

 

 

48+ 8B+ 45 38

mov

rax, [rbp+var_s38]

 

 

 

48+ 8D+ 65 48

lea

rsp, [rbp+48h]

 

 

 

5B

 

 

 

 

 

 

pop

rbx

 

 

 

 

5E

 

 

 

 

 

 

pop

rsi

 

 

 

 

5F

 

 

 

 

 

 

pop

rdi

 

 

 

 

5D

 

 

 

 

 

 

pop

rbp

 

 

 

 

C3+

 

 

 

 

 

 

retn

 

 

 

 

Легко­ убедить­

ся­ ,

что при останове­

в конце­ этой функции­

адресу­ метода

в регистре­

RAX соответс­ тву­

ет­ его имя в регистре­

RDI (да да, в коде скрипта­

ошибка­ , не RDX, а RDI).

Но это мелочь, посколь­

ку­ недостатки­

данного­

метода видны­ невоору­ жен­ ным­

глазом­ . Трассировать­

программу­

ради того, чтобы­ получить весьма­ ограничен­

­

ный список­

 

методов, довольно­ тоскли­ во­ , да и вообще­ если программа­

под­

лежит запуску­ и трассиров­ ке­ , то это большое­

везение. И наконец, самая глав­

ная беда — в нашей целевой версии­

XE11 аналогич­ ного­

кода нет и быть

не может, посколь­

ку­ там весь этот процесс­ , судя по всему­ , проходит­

в недрах­

библиоте­ ки­ rtl280.dll.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Подума­ ем­ , чем еще нам может пригодить­

ся­ IDR64. Я немного­

покривил­

душой, упомянув­

ее отказ от родства­ с нашим модулем. Конечно­ , у нее отсутс­

твует­ база знаний­

по XE11. По сути, она только­ три версии­

и знает­ . Поэтому­

при открытии­

в режиме автодетек­

та­ сомнева­ ется­

в «дельфовос­ ти­ » нашей

программы­

. Однако­ если немного­

схитрить­

и попробовать­

открыть ее

как Delphi XE4, а затем согласить­

ся­ с native knowledge base, то IDR64 вовсе­

не противит­

ся­ этому­ и после­ очень долгих­ раздумий­

 

кое как загружа­ ет­ прог­

рамму в себя.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Конеч­ но­ , она полноцен­

но­

не

восста­ нав­ лива­ ет­

всю структуру­

модулей

и классов­ , однако­ из восста­ нов­ ленно­ го­ ею кода можно­ почерпнуть­

значитель­

но­

больше­

информации­ , чем из IDA. В частнос­ ти­ , мы получим список­

имен

методов и классов­ , не говоря уже о том, что IDA чертов­ ски­ не любит паскалев­ ­

ские строки­ со счетчиком­

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

И в заключение­

я, как и обещал­ , немного­

расска­ жу­ о пример­ ной­ внутренней­

структуре­

дельфов­ ско­ го­ кода и принципах­

его анализа­

«голыми руками». Когда­

мы анализи­ рова­ ли­ дельфов­ ские­

приложе­ ния­ при помощи IDR, то заметили­ , что

для каждого­

скомпилиро­ ван­ ного­

класса­ присутс­ тву­ ет­ своя характерная­

струк­

тура данных­ , называемая­

VMT. Структура­

не документирова­ на­ , однако­ , погуг­

лив, можно­ найти­ старую­

 

статью с ее описани­ ем­ . В ней эта структура­

описыва­ ­

 

 

 

 

 

 

 

 

 

 

 

ется (как тип в синтакси­ се­ дельфи­ ) следующим­

образом­ :

 

 

 

 

 

 

 

type

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PClass = ^TClass;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PSafeCallException = function

(Self: TObject; ExceptObject:

 

 

 

TObject; ExceptAddr: Pointer): HResult;

 

 

 

 

 

 

 

 

 

PAfterConstruction = procedure (Self: TObject);

 

 

 

 

 

 

 

PBeforeDestruction

 

= procedure (Self: TObject);

 

 

 

 

 

 

 

PDispatch

 

 

 

 

 

 

= procedure (Self: TObject; var Message);

 

 

 

PDefaultHandler

 

 

= procedure

(Self: TObject; var Message);

 

 

 

PNewInstance

 

 

 

 

 

= function

(Self: TClass) : TObject;

 

 

 

 

 

PFreeInstance

 

 

 

= procedure (Self: TObject);

 

 

 

 

 

 

 

PDestroy

 

 

 

 

 

 

 

 

= procedure (Self: TObject; OuterMost:

 

 

 

 

ShortInt);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PVmt = ^TVmt;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TVmt = packed record

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SelfPtr

 

 

 

 

 

 

 

 

: TClass;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IntfTable

 

 

 

 

 

 

 

: Pointer;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

AutoTable

 

 

 

 

 

 

 

: Pointer;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

InitTable

 

 

 

 

 

 

 

: Pointer;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

TypeInfo

 

 

 

 

 

 

 

 

: Pointer;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FieldTable

 

 

 

 

 

 

 

: Pointer;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MethodTable

 

 

 

 

 

: Pointer;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DynamicTable

 

 

 

 

: Pointer;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ClassName

 

 

 

 

 

 

 

: PShortString;

 

 

 

 

 

 

 

 

 

 

 

 

 

InstanceSize

 

 

 

 

: PLongint;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Parent

 

 

 

 

 

 

 

 

 

 

: PClass;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SafeCallException : PSafeCallException;

 

 

 

 

 

 

 

 

 

AfterConstruction : PAfterConstruction;

 

 

 

 

 

 

 

 

 

BeforeDestruction

 

 

: PBeforeDestruction;

 

 

 

 

 

 

 

 

 

Dispatch

 

 

 

 

 

 

 

 

: PDispatch;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DefaultHandler

 

 

 

 

: PDefaultHandler;

 

 

 

 

 

 

 

 

 

 

NewInstance

 

 

 

 

 

: PNewInstance;

 

 

 

 

 

 

 

 

 

 

 

 

 

FreeInstance

 

 

 

 

: PFreeInstance;

 

 

 

 

 

 

 

 

 

 

 

 

Destroy

 

 

 

 

 

 

 

 

: PDestroy;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{UserDefinedVirtuals: array[0..999] of procedure;}

end;

Как видишь, она содержит­ исчерпывающую­ информацию­ о классе­ , в которой нас в первую­ очередь­ интересу­ ют­ его методы. Для понимания­ этого­ покурим немного­ исходники­ IDR64. Бегло­ просмотрев­ их, находим два основных модуля, ответствен­ ных­ за разбор­ кода на классы­ : Threads.cpp и Misc.cpp. Первый­ содержит­ методы для поиска­ таблиц­ VMT в скомпилиро­ ван­ ном­ коде, второй­ служит­ для извлечения­ информации­ из них. В двух словах­ коснусь­ реализации­ этих процес­ сов­ . В модуле Threads.cpp есть метод с соответс­ тву­ ­ ющим названи­ ем­ :

// Collect information from VMT structure

void __fastcall TAnalyzeThread::FindVMTs()

{

...

if (Adj0Count > Adj24Count)

Adjustment = 0;

else

{

Adjustment = -24;

Vmt.AdjustVmtConsts(Adjustment);

}

for (int i = 0; i < TotalSize && !Terminated; i += 8)

{

...

if (idr.IsFlagSet(cfCode | cfData, i)) continue;

DWORD adr = *((ULONGLONG*)(Code + i)); // Points to

vmt0 (VmtSelfPtr)

if (IsValidImageAdr(adr) && Pos2Adr(i) == adr + Vmt.

SelfPtr)

{

DWORD classVMT = adr;

...

Фактичес­ ки­ он перебирает­ все 64-битные­ слова­ в файле­ , проверяя­ , указыва­ ет­ ли каждое­ на самое себя (если его интерпре­ тиро­ вать­ как адрес со смещени­ ем­

+ Vmt.SelfPtr (-0xBO)+ Adjustment (-24)). Например­ , на рисунке­ выделенный­ красным­ длинный­ указатель­ по адресу­ 0x3A806F48 полностью­ проходит­ данный­ магический­ тест, посколь­ ку­ его содержимое­ имеет­ вид

0x3A807010=0x3A806F48+0xB0+0x18.

Этой особен­ ностью­ , в частнос­ ти­ , объясня­ ется­ весьма­ неприят­ ное­ тор­ можение IDR при загрузке­ больших­ файлов­ .

Итак, найдя­ начало таблицы­ VMT, можно­ начинать разбирать­ ее содержимое­ . Модуль Misc.cpp содержит­ множес­ тво­ методов для этого­ : GetParentAdr,

GetChildAdr, GetClassSize, GetClsName и так далее. Устроены­ они,

в общем то, однотип­ ­но: в них выполняет­ ­ся обращение­ к соответс­ ­тву­ющим полям структуры­ VMT относитель­ ­но указате­ ­ля Vmt.SelfPtr:

String __fastcall GetClsName(DWORD adr)

{

if (!IsValidImageAdr(adr)) return "";

DWORD vmtAdr = adr - Vmt.SelfPtr;

DWORD pos = Adr2Pos(vmtAdr) + Vmt.ClassName;

...

Vmt.SelfPtr, Vmt.ClassName — это констан­

ты­ относитель­

ных­

смещений­

до полей данной­

структуры­

, инициали­ зиру­

ющих­ ся­ в методах DelphiVmt::

SetVmtConsts и DelphiVmt::AdjustVmtConsts. Они зависят от версии­

Delphi,

и нам сильно­ повезло­ , что они не менялись с 2014 года. Проана­ лизи­ ровав­

их,

составим­

схему­ блока­ VMT для класса­ , приведен­

ного­

на предыду­

щем­

скрин­

шоте:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SelfPtr

 

DQ

3A807010h

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

IntfTable

DQ

3A806f10h

 

 

 

 

 

 

 

 

 

AutoTable

DQ

0

 

 

 

 

 

 

 

 

 

 

 

InitTable

DQ

3A807010h

 

 

 

 

 

 

 

 

 

TypeInfo

 

DQ

3A807A10h ; TMkManager

 

 

 

 

 

 

FieldTable

DQ

3A80702Bh

 

 

 

 

 

 

 

 

 

MethodTable

DQ

3A80716Bh

 

 

 

 

 

 

 

 

 

DynamicTable

 

DQ

0

 

 

 

 

 

 

 

 

 

ClassName

DQ

3A8072D9h ; TMkManager

 

 

 

 

 

 

InstanceSize

 

DQ

0B8h

 

 

 

 

 

 

 

 

 

Parent

 

DQ

3A813848h

 

 

 

 

 

 

 

 

 

Equals

 

DQ

3A801080h

 

 

 

 

 

 

 

 

 

GetHashCode

DQ

3A801090h

 

 

 

 

 

 

 

 

 

ToString

 

DQ

3A8010B0h

 

 

 

 

 

 

 

 

 

SafeCallException

DQ

3A8010A0h

 

 

 

 

 

 

 

 

 

AfterConstruction

DQ

3A807B50h

 

 

 

 

 

 

 

 

 

BeforeDestruction

DQ

3A8012F0h

 

 

 

 

 

 

 

 

 

Dispatch

 

DQ

3A8010D0h

 

 

 

 

 

 

 

 

 

DefaultHandler

 

DQ

3A801300h

 

 

 

 

 

 

 

 

 

NewInstance

DQ

3A801020h

 

 

 

 

 

 

 

 

 

FreeInstance

 

DQ

3A807FE0h

 

 

 

 

 

 

 

 

 

Destroy

 

DQ

3A801030h

 

 

 

 

 

 

 

 

 

Как видим, расклад­ ­ка 64-битной­ структуры­ вполне­ соответс­ ­тву­ет приведен­ ­ ному выше описанию­ . Не буду утомлять­ читателей­ подробным­ разбором­ структуры­ всяких­ полезных­ таблиц­ , ссылки­ на которые можно­ получить из содержимого­ полей. При желании ты можешь разобрать­ ­ся в этом сам, изу­ чив исходники­ IDR. Тем более что в реальной­ жизни­ столь подробный­ разбор­ кода обычно­ и не нужен, если только­ пользователь­ не желает­ написать свой собствен­ ­ный декомпилятор­ покруче­ IDR. Рассмот­ ­рим практичес­ ­кий способ­ примене­ ­ния этой информации­ для анализа­ дельфов­ ­ско­го кода без специаль­ ­ ных инстру­ ­мен­тов, прямо­ во время­ отладки приложе­ ­ния в нашем любимом отладчике­ x64dbg.

Итак, ковыряя приложе­ ­ние в этом отладчике­ , мы набрели­ на некий класс TMkManager, ответствен­ ­ный за связь приложе­ ­ния с ключом­ MetroKey. Для наг­ лядности­ : в classwiever IDR64 список­ методов данного­ класса­ выглядят­ при­ мерно­ так.

Рассмот­ рим­ организа­ цию­ этого­ класса­ в памяти загружен­ ного­ в отладчик про­ цесса­ на основе­ анализа­ таблицы­ MethodTable.

Красным­ цветом­ выделено­ имя класса­ TMkManager, синим — имена­ его методов и их адреса­ , оранжевым­ — указате­ ли­ на тип возвра­ щаемо­ го­ значения­ , а фиолетовым­ — параметры­ каждого­ метода, их имена­ и типы. Как видишь, значения­ возвра­ щают­ только­ два из семи присутс­ тву­ ющих­ на экране­ методов, хотя параметры­ есть у всех (как минимум Self).

Работа­ ет­ это так: допустим­ , в какой то момент мы при отладке процес­ са­ зашли­ в процеду­ ру­ по адресу­ 5E4AB020, и она нас так заинтересо­ вала­ , что мы решили узнать о ней подробнос­ ти­ . Для этого­ мы ищем ссылку­ на нее. Простой­ референс наверняка­ не найдет­ ся­ , а вот если искать его как последова­ тель­ ­ ность байтов­ 20,B0,4A,5E,00,00,00,00, то будет найден­ указатель­ по адресу­ 5E4A72E6 (выделено­ синим).

За ним следует­ строка­ со счетчиком­ , имя этого­ метода — GetKeyServerIP. Если полученная­ информация­ заинтересо­ ­вала нас еще сильнее­ , то следующий­ указатель­ 5E4B3958 (выделено­ оранжевым­ ) ссылает­ ­ся на другой­ указатель­ (в нашем примере­ по стрелке­ 59913С0), который, в свою очередь­ , указыва­ ­ет на имя типа возвра­ ­щаемо­го значения­ — string.

Двигаясь­ дальше­ , мы обнаружи­ ваем­ выделенное­ фиолетовым­ имя первого­ параметра­ этого­ метода Self и указатель­ на его тип — 5E4A7A08. Так же как и в предыду­ щем­ случае­ , через два переиме­ нова­ ния­ мы выходим на имя типа, точнее­ , класса­ — искомый­ TMkManager, который по понятным­ причинам­ явля­ ется родительским­ классом­ и для нашего метода.

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

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