Kali Linux Revealed на русском
Откройте для себя Kali Linux
Освоение дистрибутива по тестированию на проникновение
Рафаэль Херцог, Джим О’Горман и Мати Ахарони
OFFSEC PRESS
******************************************************
Откройте для себя Kali Linux
Освоение дистрибутива по тестированию на проникновение
Рафаэль Херцог, Джим О’Горман и Мати Ахарони
OFFSEC PRESS
******************************************************
Авторское право © 2017 Рафаэль Херцог, Джим О’Горман и Мати Ахарони
Данная книга лицензирована в соответствии с Creative Commons Attribution-ShareAlike 3.0 Unported License.
Ссылка скрыта от гостей
Некоторые разделы этой книги использует содержание следующих трудов “Debian Administrator’s Handbook, Debian Jessie from Discovery to Mastery” написанных Рафаэлем Херцогом и Роландом Масом. Данные книги можно найти здесь:
Ссылка скрыта от гостей
В целях соблюдения лицензии CC-BY-SA, «Откройте для себя Kali Linux» является адаптацией «Debian Administrator’s Handbook».
“Kali Linux” является товарным знаком Offensive Security. Любое использование или распространение этой книги, измененной или нет, должно соответствовать политике товарного знака, определенной здесь:
Ссылка скрыта от гостей
Все права защищены.
ISBN: 978-0-9976156-0-9 (в бумажном переплете)
Offsec Press
19701 Bethel Church Road, #103-253
Cornelius NC 28031
USA
Ссылка скрыта от гостей
Библиотека Конгресса контрольный номер: 2017905895: 2017905895
Информация в этой книге распространяется на основе «как есть» без гарантий. Несмотря на то, что при подготовке этой работы были приняты все меры предосторожности, ни авторы, ни Offsec Press не несет какой-либо ответственности перед любым лицом или организацией в отношении любой утраты или повреждения, причиненного или предположительно вызванного прямо или косвенно информацией, содержащейся в этой книге.
Из-за динамической природы Интернета любые веб-адреса или ссылки, содержащиеся в этой книге, могут измениться после публикации и могут являться недействительными.
Издано в Соединенных Штатах Америки.
Содержание книги Kali Linux Revealed
1. О Kali Linux
Предисловие
Введение
1.1 Немного истории
1.2 Взаимосвязь с Debian
1.2.1 Движение пакетов
1.2.2 Управление различиями с Debian
1.3 Задачи и варианты использования
1.4 Основные особенности Kali Linux
1.4.1 Живая система
1.4.2 Режим криминалистической экспертизы
1.4.3 Пользовательское ядро Linux
1.4.4 Полностью настраиваемая
1.4.5 Надежная операционная система
1.4.6 Используется в широком диапазоне устройств ARM
1.5 Принципы Kali Linux
1.5.1 Один root пользователь по умолчанию
1.5.2 Сетевые службы заблокированы по умолчанию
1.5.3 Кураторский набор приложений
1.6 Подведем итоги
Введение
1.1 Немного истории
1.2 Взаимосвязь с Debian
1.2.1 Движение пакетов
1.2.2 Управление различиями с Debian
1.3 Задачи и варианты использования
1.4 Основные особенности Kali Linux
1.4.1 Живая система
1.4.2 Режим криминалистической экспертизы
1.4.3 Пользовательское ядро Linux
1.4.4 Полностью настраиваемая
1.4.5 Надежная операционная система
1.4.6 Используется в широком диапазоне устройств ARM
1.5 Принципы Kali Linux
1.5.1 Один root пользователь по умолчанию
1.5.2 Сетевые службы заблокированы по умолчанию
1.5.3 Кураторский набор приложений
1.6 Подведем итоги
2. Начало работы с Kali Linux
2.1 Загружаем образ Kali ISO
2.1.1 Где скачать
2.1.2 Что скачивать
2.1.3 Проверка целостности и подлинности
Полагаемся на TLS-защищенные вебсайты
Полагаемся на PGP Web of Trust
2.1.4 Копирование образа на DVD-ROM или USB носитель
Создание Загрузочного USB накопителя Kali на Windows
Создание Загрузочного USB накопителя Kali на Linux
Создание Загрузочного USB накопителя Kali на OS X/macOS
2.2 Загрузка ISO образа Kali в режиме реального времени
2.2.1 На реальном компьютере
2.2.2 На виртуальной машине
Предварительные замечания
VirtualBox
VMware
2.3 Подведем итоги
2.1.1 Где скачать
2.1.2 Что скачивать
2.1.3 Проверка целостности и подлинности
Полагаемся на TLS-защищенные вебсайты
Полагаемся на PGP Web of Trust
2.1.4 Копирование образа на DVD-ROM или USB носитель
Создание Загрузочного USB накопителя Kali на Windows
Создание Загрузочного USB накопителя Kali на Linux
Создание Загрузочного USB накопителя Kali на OS X/macOS
2.2 Загрузка ISO образа Kali в режиме реального времени
2.2.1 На реальном компьютере
2.2.2 На виртуальной машине
Предварительные замечания
VirtualBox
VMware
2.3 Подведем итоги
3. Основы Linux
3.1 Что такое Linux и что он делает?
3.1.1 Запуск оборудования
3.1.2 Объединение файловых систем
3.1.3 Управление процессами
3.1.4 Управление правами
3.2 Командная строка
3.2.1 Как запустить командную строку
3.2.2 Основы командной строки: просмотр дерева директорий и управление файлами
3.3 Файловая система
3.3.1 Стандарт иерархии файловой системы
3.3.2 Домашняя директория пользователя
3.4 Полезные команды Linux
3.4.1 Отображение и изменение текстовых файлов
3.4.2 Поиск файлов и данных внутри файлов
3.4.3 Управление процессами
3.4.4 Управление правами
3.4.5 Получение системной информации и журналов
3.4.6 Обнаружение оборудования
3.5 Подведем итоги
3.1.1 Запуск оборудования
3.1.2 Объединение файловых систем
3.1.3 Управление процессами
3.1.4 Управление правами
3.2 Командная строка
3.2.1 Как запустить командную строку
3.2.2 Основы командной строки: просмотр дерева директорий и управление файлами
3.3 Файловая система
3.3.1 Стандарт иерархии файловой системы
3.3.2 Домашняя директория пользователя
3.4 Полезные команды Linux
3.4.1 Отображение и изменение текстовых файлов
3.4.2 Поиск файлов и данных внутри файлов
3.4.3 Управление процессами
3.4.4 Управление правами
3.4.5 Получение системной информации и журналов
3.4.6 Обнаружение оборудования
3.5 Подведем итоги
4. Установка Kali Linux
4.1 Минимальные системные требования
4.2 Пошаговая установка на жесткий диск
4.2.1 Обычная установка
Загрузка и запуск установщика
Выбор языка
Выбор страны
Выбор раскладки клавиатуры
Обнаружение оборудования
Загрузка компонентов
Обнаружение и определение сетевого оборудования
Настройка сети
Корневой пароль
Настройка часов
Определение дисков и других устройств
Выделение разделов
Копирование живого образа
Настройка диспетчера пакетов (apt)
Установка загрузчика GRUB
Завершение установки и перезагрузка
4.2.2 Установка на полностью зашифрованную файловую систему
Введение в LVM
Введение в LUKS
Настройка зашифрованных разделов
Завершение управляемого разбиения с зашифрованным LVM
4.3 Автоматические установки
4.3.1 Ответы пресидинга
С параметрами загрузки
С Preseed файлом в Initrd
С Preseed файлом в загрузочном носителе
С Preseed файлом, загруженным из сети
4.3.2 Создание Preseed файла
4.4 ARM Установки
4.5 Устранение неполадок во время установки
4.6 Подведем итоги
4.2 Пошаговая установка на жесткий диск
4.2.1 Обычная установка
Загрузка и запуск установщика
Выбор языка
Выбор страны
Выбор раскладки клавиатуры
Обнаружение оборудования
Загрузка компонентов
Обнаружение и определение сетевого оборудования
Настройка сети
Корневой пароль
Настройка часов
Определение дисков и других устройств
Выделение разделов
Копирование живого образа
Настройка диспетчера пакетов (apt)
Установка загрузчика GRUB
Завершение установки и перезагрузка
4.2.2 Установка на полностью зашифрованную файловую систему
Введение в LVM
Введение в LUKS
Настройка зашифрованных разделов
Завершение управляемого разбиения с зашифрованным LVM
4.3 Автоматические установки
4.3.1 Ответы пресидинга
С параметрами загрузки
С Preseed файлом в Initrd
С Preseed файлом в загрузочном носителе
С Preseed файлом, загруженным из сети
4.3.2 Создание Preseed файла
4.4 ARM Установки
4.5 Устранение неполадок во время установки
4.6 Подведем итоги
5. Настройка Kali Linux
5.1 Настройка сети
5.1.1 На рабочем столе с помощью NetworkManager
5.1.2 Через командную строку с помощью Ifupdown
5.1.3 Через командную строку с помощью systemd-networkd
5.2 Управление Unix пользователями и Unix группами
5.2.1 Создание пользовательского аккаунта
5.2.2 Изменение существующей учетной записи или пароля
5.2.3 Блокирование аккаунта
5.2.4 Управление Unix группами
5.3 Настройка служб
5.3.1 Настройка конкретной программы
5.3.2 Настройка SSH для удаленного входа
5.3.3 Настройка базы данных PostgreSQL
Тип подключения и аутентификация клиента
Создание пользователей и баз данных
Управление кластерами PostgreSQL
5.3.4 Настройка Apache
Настройка виртуальных хостов
Общие директивы
5.4 Управление службами
5.5 Подведем итоги
5.1.1 На рабочем столе с помощью NetworkManager
5.1.2 Через командную строку с помощью Ifupdown
5.1.3 Через командную строку с помощью systemd-networkd
5.2 Управление Unix пользователями и Unix группами
5.2.1 Создание пользовательского аккаунта
5.2.2 Изменение существующей учетной записи или пароля
5.2.3 Блокирование аккаунта
5.2.4 Управление Unix группами
5.3 Настройка служб
5.3.1 Настройка конкретной программы
5.3.2 Настройка SSH для удаленного входа
5.3.3 Настройка базы данных PostgreSQL
Тип подключения и аутентификация клиента
Создание пользователей и баз данных
Управление кластерами PostgreSQL
5.3.4 Настройка Apache
Настройка виртуальных хостов
Общие директивы
5.4 Управление службами
5.5 Подведем итоги
6. Получение помощи
6.1 Источники документации
6.1.1 Страницы руководства
6.1.2 Документация в формате Info
6.1.3 Пакетная документация
6.1.4 Вебсайты
6.1.5 Kali документация на docs.kali.org
6.2 Kali Linux сообщества
6.2.1 Веб форумы на forums.kali.org
6.2.2 #kali-linux IRC канал на Freenode
6.3 Подача грамотно составленного отчета об ошибке
6.3.1 Общие рекомендации
Как обращаться
Что необходимо указаывать в отчете об ошибке
Различные советы
6.3.2 Где регистрировать отчет об ошибке
6.3.3 Как регистрировать отчет об ошибке
Создание отчета об ошибке для Kali
Создание отчета об ошибке для Debian
Создание отчета об ошибке для любого другого проекта свободного программного обеспечения
6.4 Подведем итоги
6.1.1 Страницы руководства
6.1.2 Документация в формате Info
6.1.3 Пакетная документация
6.1.4 Вебсайты
6.1.5 Kali документация на docs.kali.org
6.2 Kali Linux сообщества
6.2.1 Веб форумы на forums.kali.org
6.2.2 #kali-linux IRC канал на Freenode
6.3 Подача грамотно составленного отчета об ошибке
6.3.1 Общие рекомендации
Как обращаться
Что необходимо указаывать в отчете об ошибке
Различные советы
6.3.2 Где регистрировать отчет об ошибке
6.3.3 Как регистрировать отчет об ошибке
Создание отчета об ошибке для Kali
Создание отчета об ошибке для Debian
Создание отчета об ошибке для любого другого проекта свободного программного обеспечения
6.4 Подведем итоги
7. Защита и мониторинг Kali
7.1 Определение политики безопасности
7.2 Возможные меры безопасности
7.2.1 На сервере
7.2.2 На ноутбуке
7.3 Защита сетевых служб
7.4 Брандмауэр или фильтрация пакетов
7.4.1 Поведение сетевого фильтра
7.4.2 Синтаксис iptabtes и ip6tabtes
Команды
Правила
7.4.3 Создание правил
7.4.4 Установка правил для каждой загрузки
7.5 Мониторинг и протоколирование
7.5.1 Мониторинг журналов с помощью logcheck
7.5.2 Мониторинг активности в реальном времени
7.5.3 Обнаружение изменений
Проверка пакетов с помощью dpkg –verify
Мониторинг файлов: AIDE
7.6 Подведем итоги
7.2 Возможные меры безопасности
7.2.1 На сервере
7.2.2 На ноутбуке
7.3 Защита сетевых служб
7.4 Брандмауэр или фильтрация пакетов
7.4.1 Поведение сетевого фильтра
7.4.2 Синтаксис iptabtes и ip6tabtes
Команды
Правила
7.4.3 Создание правил
7.4.4 Установка правил для каждой загрузки
7.5 Мониторинг и протоколирование
7.5.1 Мониторинг журналов с помощью logcheck
7.5.2 Мониторинг активности в реальном времени
7.5.3 Обнаружение изменений
Проверка пакетов с помощью dpkg –verify
Мониторинг файлов: AIDE
7.6 Подведем итоги
8. Управление пакетами Debian
8.1 Введение в APT
8.1.1 Взаимосвязь между APT и dpkg
8.1.2 Правильное понимание файла sources.list
8.1.3 Репозитории Kali
Kali-Rolling репозиторий
Kali-Dev репозиторий
Kali-Bleeding-Edge репозиторий
Зеркала Kali Linux
8.2 Основное взаимодействие пакетов
8.2.1 Инициализация APT
8.2.2 Установка пакетов
Установка пакетов с помощью dpkg
Установка пакетов с помощью APT
8.2.3 Обновление Kali Linux
8.2.4 Удаление и очистка пакетов
8.2.5 Проверка пакетов
Запрос dpkg базы данных и проверка файлов .deb
Запрос к базе данных на наличие доступных пакетов с помощью apt-cache и apt
8.2.6 Устранение проблем
Проблемы с обработкой после обновления
Файл журнала dpkg
Переустановка пакетов с помощью apt –reinstall и aptitude reinstall
Использование -force- * для восстановления поврежденных зависимостей
8.2.7 Внешние интерфейсы: aptitude и synaptic
Aptitude
Synaptic
8.3 Дополнителная настройка и использование APT
8.3.1 Настройка APT
8.3.2 Управление приоритетами пакетов
8.3.3 Работа с несколькими дистрибутивами
8.3.4 Автоматическое отслеживание установленных пакетов
8.3.5 Использование поддержки Multi-Arch
Подключение Multi-Arch
Изменения, связанные с Multi-Arch
8.3.6 Проверка подлинности пакета
8.4 Справка по пакетам: углубление в систему пакетов Debian….
8.4.1 Контрольный файл
Зависимости: поле Depends
Pre-Depends – более требовательные зависимости
Поля Recommends, Suggests, и Enhance
Сигнатуры и конфигурационные файлы (conffiles)
Incompatibilities: поле несовместимости
Provided Items: поле снабжения
Замена файлов: Поле Replaces
8.4.2 Скрипты конфигурации
Установка и обновления последовательности скриптов
Удаления пакета
8.4.3 Контрольные суммы, конфигурационные файлы
8.5 Подведем итоги
8.1.1 Взаимосвязь между APT и dpkg
8.1.2 Правильное понимание файла sources.list
8.1.3 Репозитории Kali
Kali-Rolling репозиторий
Kali-Dev репозиторий
Kali-Bleeding-Edge репозиторий
Зеркала Kali Linux
8.2 Основное взаимодействие пакетов
8.2.1 Инициализация APT
8.2.2 Установка пакетов
Установка пакетов с помощью dpkg
Установка пакетов с помощью APT
8.2.3 Обновление Kali Linux
8.2.4 Удаление и очистка пакетов
8.2.5 Проверка пакетов
Запрос dpkg базы данных и проверка файлов .deb
Запрос к базе данных на наличие доступных пакетов с помощью apt-cache и apt
8.2.6 Устранение проблем
Проблемы с обработкой после обновления
Файл журнала dpkg
Переустановка пакетов с помощью apt –reinstall и aptitude reinstall
Использование -force- * для восстановления поврежденных зависимостей
8.2.7 Внешние интерфейсы: aptitude и synaptic
Aptitude
Synaptic
8.3 Дополнителная настройка и использование APT
8.3.1 Настройка APT
8.3.2 Управление приоритетами пакетов
8.3.3 Работа с несколькими дистрибутивами
8.3.4 Автоматическое отслеживание установленных пакетов
8.3.5 Использование поддержки Multi-Arch
Подключение Multi-Arch
Изменения, связанные с Multi-Arch
8.3.6 Проверка подлинности пакета
8.4 Справка по пакетам: углубление в систему пакетов Debian….
8.4.1 Контрольный файл
Зависимости: поле Depends
Pre-Depends – более требовательные зависимости
Поля Recommends, Suggests, и Enhance
Сигнатуры и конфигурационные файлы (conffiles)
Incompatibilities: поле несовместимости
Provided Items: поле снабжения
Замена файлов: Поле Replaces
8.4.2 Скрипты конфигурации
Установка и обновления последовательности скриптов
Удаления пакета
8.4.3 Контрольные суммы, конфигурационные файлы
8.5 Подведем итоги
9. Расширенное использование системы
9.1 Модифицируем пакеты Kali
9.1.1 Получение источников
9.1.2 Установка зависимостей сборки
9.1.3 Производим изменения
Применение патча
Настройка опций сборки
Пакетирование обновленной версии
9.1.4 Запуск сборки
9.2 Перекомпиляция ядра Linux
9.2.1 Введение и необходимые знания
9.2.2 Получение источников
9.2.3 Настройка ядра
9.2.4 Компиляция и создание пакета
9.3 Создание живого пользовательского ISO образа Kali
9.3.1 Установка необходимых компонентов
9.3.2 Создание живых образов с использованием различных сред рабочего стола
9.3.3 Изменение набора установленных пакетов
9.3.4 Использование различных приемов для настройки содержимого образа
9.3.5 Добавление файлов в образ ISO или в файловую систему
9.4 Добавление Persistence к живому ISO с USB ключом
9.4.1 Особенности Persistence: Разъяснения
9.4.2 Настройка Unencrypted Persistence на USB ключе
9.4.3 Настройка Encrypted Persistence на USB ключе
9.4.4 Использование Multiple Persistence хранилищ
9.5 Подведем итоги
9.5.1 Основные рекомендации по модернизации пакетов Kali
9.5.2 Основные рекомендации по рекомпиляции ядра Linux
9.5.3 Основные рекомендации по созданию пользовательского живого ISO образа Kali
9.1.1 Получение источников
9.1.2 Установка зависимостей сборки
9.1.3 Производим изменения
Применение патча
Настройка опций сборки
Пакетирование обновленной версии
9.1.4 Запуск сборки
9.2 Перекомпиляция ядра Linux
9.2.1 Введение и необходимые знания
9.2.2 Получение источников
9.2.3 Настройка ядра
9.2.4 Компиляция и создание пакета
9.3 Создание живого пользовательского ISO образа Kali
9.3.1 Установка необходимых компонентов
9.3.2 Создание живых образов с использованием различных сред рабочего стола
9.3.3 Изменение набора установленных пакетов
9.3.4 Использование различных приемов для настройки содержимого образа
9.3.5 Добавление файлов в образ ISO или в файловую систему
9.4 Добавление Persistence к живому ISO с USB ключом
9.4.1 Особенности Persistence: Разъяснения
9.4.2 Настройка Unencrypted Persistence на USB ключе
9.4.3 Настройка Encrypted Persistence на USB ключе
9.4.4 Использование Multiple Persistence хранилищ
9.5 Подведем итоги
9.5.1 Основные рекомендации по модернизации пакетов Kali
9.5.2 Основные рекомендации по рекомпиляции ядра Linux
9.5.3 Основные рекомендации по созданию пользовательского живого ISO образа Kali
10. Kali Linux в действии
10.1 Установка Kali Linux по сети (PXE Boot)
10.2 Использование управления конфигурацией
10.2.1 Настройка SaltStack
10.2.2 Выполнение команд на Minions
10.2.3 Salt States и другие особенности
10.3 Расширение и настройка Kali Linux
10.3.1 Разветвление пакетов Kali
10.3.2 Создание пакетов конфигурации
10.3.3 Создание репозитория пакетов для APT
10.4 Подведем итоги
10.2 Использование управления конфигурацией
10.2.1 Настройка SaltStack
10.2.2 Выполнение команд на Minions
10.2.3 Salt States и другие особенности
10.3 Расширение и настройка Kali Linux
10.3.1 Разветвление пакетов Kali
10.3.2 Создание пакетов конфигурации
10.3.3 Создание репозитория пакетов для APT
10.4 Подведем итоги
11. Введение в оценку безопасности
11.1 Kali Linux в оценке
11.2 Типы оценок
11.2.1 Оценка уязвимости
Вероятность возникновения
Воздействие
Общий риск
Подведем итоги
11.2.2 Соответствие тестирования на проникновение
11.2.3 Традиционные тестирования на проникновение
11.2.4 Оценка приложения
11.3 Формализация оценки
11.4 Типы атак
11.4.1 DoS атака (Denial of Service)
11.4.2 Повреждение памяти (Memory Corruption)
11.4.3 Веб уязвимости (Web Vulnerabilities)
11.4.4 Взлом пароля (Password Attacks)
11.4.5 Атака на клиента (Client-Side Attacks)
11.5 Подведем итоги
11.2 Типы оценок
11.2.1 Оценка уязвимости
Вероятность возникновения
Воздействие
Общий риск
Подведем итоги
11.2.2 Соответствие тестирования на проникновение
11.2.3 Традиционные тестирования на проникновение
11.2.4 Оценка приложения
11.3 Формализация оценки
11.4 Типы атак
11.4.1 DoS атака (Denial of Service)
11.4.2 Повреждение памяти (Memory Corruption)
11.4.3 Веб уязвимости (Web Vulnerabilities)
11.4.4 Взлом пароля (Password Attacks)
11.4.5 Атака на клиента (Client-Side Attacks)
11.5 Подведем итоги
12. Заключение: Перспективы развития
12.1 Продолжаем следить за обновлениями
12.2 Демонстрируйте в лучшем свете полученные знания
12.3 Движемся дальше
12.3.1 В направлении системного администрирования
12.3.2 В направлении тестирования на проникновения
12.2 Демонстрируйте в лучшем свете полученные знания
12.3 Движемся дальше
12.3.1 В направлении системного администрирования
12.3.2 В направлении тестирования на проникновения