Хакерство: искусство эксплуатации - Hacking: The Art of Exploitation

Hackingexplota.jpg

Хакерство: искусство эксплуатации (ISBN  1-59327-007-0) - это книга Джон "Смибс" Эриксон о компьютерная безопасность и сетевая безопасность.[1][2] Это было опубликовано Пресс без крахмала в 2003 г., второе издание - в 2008 г. Все примеры в книге были разработаны, скомпилированы и протестированы на Gentoo Linux.

Автор и справочная информация

Джон Эриксон - эксперт по компьютерной безопасности с опытом работы в области компьютерных наук. С 2011 года работал уязвимость исследователь и компьютерная безопасность специалист в Калифорнии.

К книге прилагается загрузочный компакт-диск, на котором Linux -основан программирование и отладка среда для пользователей.

Содержание 1-го издания

Содержание Использование перемещается между программирование, сеть, и криптография. В книге не используются сколько-нибудь заметные примеры из реального мира; обсуждения редко поднимают конкретные черви и подвиги.

Программирование

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

Пока Эриксон обсуждает меры противодействия, такие как неисполняемый стек и как избежать их с помощью атаки с возвратом к libc, он не углубляется в более глубокие вопросы без известных гарантированных эксплойтов, таких как рандомизация разметки адресного пространства. Книга также не охватывает Openwall, GrSecurity и PaX проекты или ядро подвиги.

Сети

В сеть сегмент Взлом объясняет основы Модель OSI и основные сетевые концепции, включая анализ пакетов, перехват соединения, отказ в обслуживании и сканирование портов.

Криптология

В криптология раздел Взлом охватывает основы теории информации, в дополнение к симметричный и асимметричное шифрование. Он выходит из строя WEP используя Атака Флюрера, Мантина и Шамира. Помимо основ, в том числе Атаки посредника, словарные атаки, и использование Джон потрошитель; Взлом обсуждает квантовое распределение ключей, Алгоритм квантового поиска Лова Гровера, и Алгоритм квантового факторинга Питера Шора для взлома ЮАР шифрование с использованием очень большого квантовый компьютер.

Другие детали

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

Контент 2-е издание

Хакерство: Искусство эксплуатации, второе издание
Взлом обложки книги второе издание.jpg
АвторДжон Эриксон
СтранаСША (Оригинал)
ЯзыкАнглийский (второе издание)
СерииВторое издание
ЖанрИнформатика
ИздательПресс без крахмала
Дата публикации
Февраль 2008 г.
Тип СМИРаспечатать Мягкая обложка
Страницы488
ISBN978-1593271442

Вступление

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

0x200 Программирование

В главе этой книги, посвященной программированию, различные типы программ описаны и показаны на примерах. Глава охватывает управляющие структуры и другие базовые аспекты программирования. Live CD предоставляет среду, в которой читатель может не только следовать примерам в книге, но и самостоятельно программировать.

0x300 Эксплуатация

Эксплуатации берет код компьютера или набор правил и изменяет их, чтобы компьютер делал то, что вы хотите. Поиск путей или дыр в системе для изменений - важная часть эксплуатации. В этой главе рассматриваются методы использования уязвимостей, такие как повреждение памяти, Буфер переливается и строки формата, особенно используя Perl и шеллкод Bash.

0x400 Сеть

Модель OSI.

Модель OSI
При общении между компьютерами через сеть Модель OSI используется. Модель OSI - это модель, которая обеспечивает стандарты, которые компьютеры используют для связи. Модель OSI состоит из семи уровней: физического уровня, уровня канала передачи данных, сетевого уровня, транспортного уровня, уровня сеанса, уровня представления и уровня приложения. Каждый пакет, который компьютер отправляет другому компьютеру, должен пройти через каждый уровень модели OSI.

Розетки
Стандартный способ связи в сети с использованием компьютерных операционных систем - это разъем. Сокет используется программистом для создания способа отправки и получения данных с использованием уровней OSI. Есть два типа сокетов: сокет потока и сокет дейтаграммы. Потоковые сокеты используют Протокол управления передачей (TCP). Сокет дейтаграмм использует протокол дейтаграмм пользователя (UDP).

Удаление слоев
«Удаление слоев» описывает, как на самом деле работают слои OSI. Модель OSI описана очень подробно с некоторыми изображениями в книге, которые упрощают понимание.

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

Отказ в обслуживании
А отказ в обслуживании представляет собой попытку сделать компьютерный ресурс недоступным для предполагаемых пользователей. Это означает, что атака типа «отказ в обслуживании» отправляет большое количество запросов на связь намеченному ресурсу, чтобы переполнить ресурс и сделать его непригодным для использования в течение определенного периода времени. Эти типы атак обычно направлены на маршрутизаторы или брандмауэры, чтобы отключить их и получить доступ к другим компьютерам в сети. Маршрутизатор очень восприимчив к этим типам атак, но брандмауэр обычно может справиться с атакой и не подвергается воздействию. Распределенная атака отказа в обслуживании - это когда запросы на связь поступают с нескольких компьютеров, что значительно увеличивает количество запросов по сравнению с обычной атакой отказа в обслуживании. Некоторые другие типы DOS-атак включают: Пинг смерти, Слеза, Пинг-флуд, и Атаки усиления.

Взлом TCP / IP
TCP / IP Hijacking - еще один способ, использующий поддельные пакеты чтобы установить соединение между жертвой и хост-машиной. Этот метод в основном используется для сбора паролей, когда хост-машина использует пароль для подключения. Когда происходит этот тип атаки, жертва и злоумышленник должны находиться в одной сети. Другой формой перехвата TCP / IP является перехват RST, при котором вводится поддельный пакет сброса.

Сканирование портов
Сканирование портов это просто способ выяснить, какие порты принимают и прослушивают соединения. Хакер просто использовал бы программу, которая сообщает ему, какие порты открыты, сканируя все порты в сети и пытаясь их открыть. Есть много других типов сканирования, таких как SYN, Idle, FIN, X-Mas и Null.

Протяни руку и взломай кого-нибудь
Эта часть посвящена поиску уязвимостей в приведении типов сети. Использование отладчика для просмотра строк кода, которые используются для сетевых протоколов, является наиболее эффективным способом добиться этого.

0x500 Шелл-код

Шелл-код используется при эксплуатации кода. Это похоже на собственный код хакера, который он хочет запустить, когда получает контроль над программой. Обычно хакер находит эксплойт в программном коде и может вставить часть своего собственного кода (шелл-код) туда, где он нашел эксплойт.

Сборка против C
сборка отличается от C, потому что сборка язык программирования низкого уровня, и при обработке может напрямую связываться с процессором. При использовании C, который является языком программирования высокого уровня, код должен быть скомпилирован и отправлен в ядро ​​путем выполнения системного вызова, а затем вызова процессора. Другими словами, это почти то же самое, что убрать систему, вызывающую ядро, с картинки при использовании сборки.[нужна цитата ]

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

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

Шелл-код привязки порта
Этот тип шелл-кода подключается к сетевому порту. После привязки к порту он будет прослушивать TCP-соединение. После того, как он обнаружит TCP-соединение, потребуется гораздо больше программирования, что наглядно показано в книге.

Шелл-код обратного подключения
Этот тип шелл-кода в основном используется при обходе межсетевых экранов. Большинство брандмауэров будут блокировать работу шелл-кода привязки портов, потому что они настроены так, чтобы разрешать только известные службы через активные порты. Шелл-код Connect-back инициирует обратное соединение с IP-адресом хакера, поэтому он будет выходить из брандмауэра, а не входить в него. И снова код в книге описывает обратное соединение с использованием шелл-кода и способы его выполнения.

0x600 Контрмеры

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

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

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

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

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

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

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

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

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

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

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

Это пример стека и его компонентов.

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

Случайное пространство стека
Рандомизированный стек - это тип контрмеры, используемый для того, чтобы хакер не мог определить, где находится реализованный им шелл-код. Он рандомизирует структуру памяти в стеке. Опять же, есть способ обойти эту контрмеру с помощью некоторых примеров из книги.

0x700 Криптология

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

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

Это пример того, как открытый и закрытый ключи используются в процессе шифрования.

Шифр - это алгоритм шифрования. Комбинация использования симметричного шифра и асимметричного шифра называется гибридным шифром. В книге показаны и описаны способы атаки на шифры и некоторые методы обхода шифрования.

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

Смотрите также

Рекомендации

  1. ^ «Рецензия на книгу: Взлом». 25 июля 2004 г. Архивировано с оригинал 25 июля 2004 г.. Получено 26 июля 2018.
  2. ^ Schaefer, Ed. "Хакерство: искусство эксплуатации, 2-е издание: журнал Linux". Журнал Linux. Получено 26 июля 2018.

Другие источники