* Глава 1.Взлом с тонки зрения крекера1.1. Кто и зачем взламывает защиту 11
1.2. Что такое руткит 12
1.3. Чем не является руткит 14
1.4. Не всякий скрытый код - это руткит 18
1.5. Аппаратно-программные руткиты 22
1.5.1. Аппаратно-программные руткиты - тяжелая артиллерия 22
1.5.2. Сетевые снифферы 24
1.5.3. Клавиатурные снифферы 25
1.6. Знакомьтесь - руткиты 26
1.6.1. Самые популярные руткиты 26
1.6.2. Общие принципы работы руткита 27
1.6.3. Руткит Hacker Defender 30
* Глава 2.Взлом с точки зрения администратора2.1. Профилактика 34
2.1.1. Создание учетной записи обычного пользователя 35
2.1.2. Установка антивируса 36
2.1.3. Установка брандмауэра 38
2.2. Лечение 43
2.3. Средства обнаружения руткитов 44
Локальные системы обнаружения вторжения 45
Сетевые системы обнаружения вторжения 45
2.4. Детекторы руткитов 46
Black Light 48
RootkitRevealer 49
Полезные утилиты 49
http://www.invisiblethings.org 53
VICE: сканер руткитных технологий 54
ProcessGuard и AntiHook: профилактика вторжения 56
Для криминалистов: EnCase и Ttipwire 57
* Глава 3.Подмена как образ жизни руткита3.1. Подмена кода 61
3.1.1. Модификация исходного кода 61
3.1.2. Патчинг 62
3.2. Перехват на уровне пользователя 64
3.2.1.11ерезапись адреса функции 67
3.2.2. Перезапись самой функции 67
3.3. Внедрение кода руткита в чужой процесс 70
3.3.1. Ключ Applnit DLLs 70
3.3.2. Перехват сообщений Windows 71
3.3.3. Удаленные потоки 74
3.4. Патчинг «на лету» 75
3.4.1. А та ли это функция? 77
3.4.2. Куда возвращаться? 81
3.5. Эксплойт и руткит играют вместе 85
3.5.1. Загрузка руткита на удаленный компьютер 85
3.5.2. Запуск руткита на удаленном компьютере 86
3.5.3. НТА (HTML-приложение): что это такое? 88
* Глава 4. Знакомство с системными таблицами4.1. Режимы работы процессора 96
Реальный режим 96
Защищенный режим 97
Виртуальный режим 97
Режим системного управления 98
4.2. Власть колец 98
4.3. Переход в защищенный режим 99
4.4. Организация памяти в защищенном режиме 100
4.4.1. Введение в сегментную организацию памяти 100
4.4.2. Дескриптор сегмента 102
4.4.3. Таблицы дескрипторов 104
Таблица GDT 104
Таблица LDT 105
4.4.4. Страничная адресация 106
4 4.5. Каталоги и таблицы страниц 108
Структуры данных, управляющие страничной адресацией 108
Вычисление физического адреса 109
Записи PDE и РТЕ 111
4.5. Таблица дескрипторов прерываний (IDT) 113
4.6. Структура SSDT 115
4.7. Ограничение доступа к некоторым важным таблицам 115
4.8. Важнейшие функции ядра ОС 116
4.8.1. Управление процессами 117
4.8.2. Предоставление доступа к файлам 119
4.8.3. Управление памятью 120
4.8.4. Обеспечение безопасности 120
* Глава 5. Пишем первый драйвер5.1. DDK (Driver Development Kit) 124
5.2. Файлы Sources и MakeFile 125
5.3. Сборка драйвера 126
5.4. Отладка. Утилита DebugView 127
5.5. Загрузка драйвера 127
5.6. Пакеты запроса ввода/вывода 136
5.7. Схема двухуровневого руткита 142
* Глава 6. Перехват на уровне ядра6.1. Перехват прерываний (таблица IDT) 149
6.2. Инструкция Sysenter 152
6.3. Сокрытие процессов (таблица SSDT) 153
6.3.1. Защита таблицы SSDT и руткит 154
6.3.2. Изменение SSDT 157
6.4. Сокрытие соединений (таблица IRP) 162
6.5. Многоуровневые драйверы 171
6.5.1. Как Windows работает с драйверами 173
6.5.2. IRP и стек ввода/вывода 174
* Глава 7. Пишем сниффер клавиатуры7.1. Регистрация фильтра клавиатуры 179
7.2. Запуск отдельного потока, протоколирующего нажатия клавиш 181
7.3. Обработка IRP Чтения клавиатуры 184
7.4. Запись перехваченных клавиш в файл 186
7.5. Сборка сниффера 190
7.6. Готовые клавиатурные снифферы 191
* Глава 8. Сокрытие файлов
* Глава 9. Пережить перезагрузку9.1. Обзор способов автоматической загрузки руткита 205
9.2. Секреты РЕ-Файлов 206
9.3. Немного о BIOS 208
9.3.1. Flash-память 210
9.3.2. Неудачный эксперимент. Что делать? 212
* Глава 10. Руткит переписывается с хозяином10.1. Секретные каналы 217
10.1.1. Что мы собираемся передавать? 217
10.12. Ключ к секретности - стеганография 219
10.1.3. Скрываем данные в DNS-запросах 221
10.2. Переходим на уровень ядра. Интерфейс TDI 223
10.2.1. Дескриптор транспортного адреса 225
10.2.2. Открытие контекста соединения 228
10.2.3. Связываем транспортный адрес и контекст соединения 229
10.2.4. Соединяемся 231
10.2.5. Обмениваемся данными 233
10.2.6. Завершаем соединение и освобождаем ресурсы 235
* Глава 11. Интерфейс NDIS. Создание сетевого сниффера11.1. Регистрация протокола в системе 240
11.2. Формирование стека функций протокола 243
11.3. Анализ пакета 248
* Глава 12. Гибридный руткит 25212.1. Что такое гибридный руткит? 253
12.2. Реализация руткита 253
* Глава 13. Технология DKOM13.1. Преимущества и недостатки DKOM 261
13.2. Определение версии Windows 264
13.2.1. Пользовательская API-функция GetVersionEx 264
13.2.2. Функции режима ядра 265
13.2.3. Системный реестр 266
13.3. Взаимодействие драйвера устройства и пользовательского процесса 267
13.4. Сокрытие процессов с помощью DKOM 270
13.5. Сокрытие драйверов устройств 275
13.6. Проблемы синхронизации 277
13.7. Получение дополнительных привилегий 280
13.7.1. Токен привилегий 280
13.7.2. Изменение привилегий 282
13.7.3. Как работает с привилегиями руткит FU 286
13.7.4. Добавление SID в токен 291