, Атакующий код запуска оболочки с нуля

Атакующий код запуска оболочки с нуля

Ришалин Пиллэй

 

Первая публикация на английском языке: Май 2022

Ссылка на продукт: 1090322

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

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

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

Опубликовано Packt Publishing Ltd.

Livery Place

35 Livery Street

Birmingham B3 2PB, UK

ISBN 978-1-80324-742-7

www.packtpub.com

2022-04-21

 Состав исполнителей

Автор
Ришалин Пиллэй
Менеджер группы продуктов
Виджин Бориша
Менеджер издания продукта
Шрилекха Малпани
Главный редактор
Эйрун Нэйдар
Редактор разработки содержимого
Суланья Моханти
Технический редактор
Арджун Варма
Литературный редактор
Safis Editing
Редактор поддержки языка
Safis Editing
Координатор проекта
Шагун Шайни
Корректор
Safis Editing
Составитель указателя
Теджал Сони
Технолог
Апарна Бхагат
Координатор по маркетингу
Нимиша Дуа

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

Также я бы хотел выразить благодарность всем своим рецензентам, Джону Стоуну и Хамзе Мегахеду, за их потрясающие отзывы и поддержку. И последнее, но не менее важное: большое спасибо рок- звёздам, моей команде в Packt, за всю их поддержку и потрясающую работу, проделанную для написания этой книги со мной.

- Ришалин Пиллэй

 Об авторе

Ришалин Пиллэй эксперт по наступательно кибербезопасности, обладатель ряда наград и сертификатов от ряда компании в отрасли кибербезопасности. Он хорошо известен своим вкладом в интернет- курсы обучения, относящиеся к Красным командам, и как автор Learn Penetration Testing. Он обладает золотыми и платиновыми наградами Content Publisher за свой вклад в отрасль кибербезопасности, в том числе награду Event Speaker Gold за влиятельные выступления на мероприятиях Уровня-1.

 Рецензенты

Хамза Мегахед опытный специалист по информационной безопасности с более чем 10 летним опытом проверок на проникновение, исследований в области безопасности, поиска угроз и проведения обучения по безопасности как для частного, так и для государственного секторов. Он обладает степенью бакалавра наук в вычислительной и системной инженерии, а также множеством сертификатов, включая, CISSP, CISM, GXPN, eCRE, eWAPTX и CRTP. Он является автором книги Penetration Testing with Shellcode.

Джон Стоун официально приступил к своей карьере в области информационной безопасности в 2002 году. От синей до красной команды и некоторых промежуточных цветов Джон в течение своей карьеры занимал различные должности, в том числе вверх и вниз по всему стеку, от глубоких технических реализаций до управления бизнес- направлением безопасности. Его опыт накоплен в различных секторах, таких как финансовые услуги, розничная торговля, цифровые технологии, телекоммуникации и производство. Помимо различных сертификатов безопасности, Джон также обладает опытом работы с данными и, по слухам, когда-то даже был MSCE по NT. В настоящее время Джон работает в команде CISO крупного поставщика технологий.

 www.PacktPub.com

 Предисловие

 Для кого эта книга

 Что охватывает эта книга

Глава 1. За и против шеллкода

Глава 2. Язык ассемблера

Глава 3. Инструменты и ресурсы шеллкода

Глава 4. Разработка шеллкода для Windows

Глава 5. Разработка шеллкода для Linux

Глава 6. Противостояние и обходные пути

 Как получить максимальную выгоду от этой книги

 Выгрузка цветных изображений

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

 Соглашения

На протяжении этой книги имеется ряд соглашений о применении текста в книге.

CodeInText: указывают на кодовые слова в тексте, имена таблиц базы данных, имена папок, имена файлов, модели URL-адресов, ввод пользователя, и обработчики Twitter. Вот некий образец: "Системой именуется операционная система и обозначает сферу своей роли: управление платформой, в которой запущено приложение.

Любая командная строка или вывод записывается следующим образом:


$ lvcreate -l 100%FREE -n lv_data vg1
 	   

Жирно: выделяются новые термины и важные слова или слова, которые вы видите на экране. Например, слова в меню или блоках диалогов появляются в тексте следующим образом: "По мере нашего продвижения в изучении Системного адмиистрирования Linux, будет становиться всё более и более ясной основня головная идея и действительно более глубокое погружение в роли и функции задания".

[Замечание]Замечание

Предостережения или важные замечания появляются в блоках подобных этому.

[Совет]Совет

Советы и ловкие приёмы возникают таким образом.

 Обратная связь с читателями

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

Для отправки обычного отклика просто пошлите электронное письмо на адрес feedback@packtpub.com с упоминанием заголовка книги в теме вашего сообщения.

Если у вас существует тема, в которой у вас имеется опыт и вы заинтересованы либо в написании, либо во вкладе в книгу, обратитесь к руководству по адресу www.packtpub.com/authors.

 Поддержка пользователей

Теперь, когда вы являетесь гордым владельцем книги Packt, у нас есть целый ряд моментов для помощи вам в получении максимальной выгоды от вашей покупки.

 Опечатки

Хотя мы и предприняли все меры чтобы обеспечить точность нашего содержимого, ошибки всё- таки возможны. Если вы обнаружили ошибку в нашей книге - возможно, ошибку в тексте или в коде - мы будем признательны если вы сообщите об этом нам. Сделав это, вы можете предостеречь остальных читателей от разочарования и помочь нам улучшить последующие версии данной книги. Если вы обнаружили ошибку, пожалуйста, сообщите о ней посетив www.packtpub.com/submit-errata, выбрав вашу книгу, кликнув на ссылку Errata Submission Form, и заполнив подробности найденной вами ошибки. Когда ваша ошибка будет проверена, вы получите уведомление и ошибка будет выложена на наш веб- сайт или добавлена в какой- нибудь перечень существующих ошибок с заголовком раздела Errata.

Для просмотра ранее выявленных ошибок посетите www.packtpub.com/books/content/support и введите название нужной книги в поле поиска. Необходимая информация появится в разделе Errata.

 Незаконное тиражирование

Пиратство, защищённых авторским правом материалов в Интернете является постоянной проблемой во всех средствах массовой информации. В Packt мы подходим к защите наших авторских прав и лицензий очень серьёзно. Если вы столкнётесь с какой-либо незаконной копией наших работ в любой форме в Интернете, пожалуйста, предоставьте нам сразу адрес местонахождения или имя веб-сайта, чтобы мы могли принять меры. {Прим. пер.: Согласно закону об авторском праве РФ, авторские права на перевод принадлежат авторам этого перевода. Данным переводом, по нашему мнению, мы служим популяризации основных стратегических направлений развития тем Packt. В случае наличия конструктивных предложений, готовы к тесному сотрудничеству.}

Пожалуйста, обратитесь по адресу copyright@packtpub.com со ссылкой на материалы содержащие признаки нарушения авторских прав.

Мы выражаем вам признательность в защите наших авторов и нашей возможности доносить до вас имеющего ценность содержимого.

 Вопросы

Если у вас есть проблемы по любым сторонам данной книги, вы можете контактировать с нами по адресу questions@packtpub.com и мы предпримем все меры в отношении ваших проблем.

 Содержание

Предисловие
Что охватывает эта книга
Как получить максимальную выгоду от этой книги
Для кого эта книга
Соглашения
Обратная связь с читателями
Поддержка пользователей
Опечатки
Незаконное тиражирование
Вопросы
Раздел 1. Шеллкод
Глава 1. За и против шеллкода
Что такое шеллкод?
Примеры шеллкода
Сопоставление шеллкода и полезной нагрузки
Разбираем шеллкод по частям
Изучение обычных видов шеллкода
Локальный шеллкод
Шеллкод execve
Переполнение буфера
Охота за яйцами
Внедрение DLL с отражением в шеллкоде
Удалённый шеллкод
Bindshell
Выгрузить и исполнить
Выводы
Дальнейшее чтение
Глава 2. Язык ассемблера
Технические требования
Срываем покров с языка ассемблера
Типы языка ассемблера
Выявляем основные элементы языка ассемблера
Регистры и флаги
Регистры общего назначения
Просмотр регистров bin/bash
Регистры указателя
Индексные регистры
Управляющие регистры
Сегментные регистры
Инструкции перемещения данных
Инструкции перемещения для общих целей
Инструкции манипуляции со стеком
Арифметические инструкции
Условные инструкции
Условный переход
Безусловный переход
Выводы
Дальнейшее чтение
Глава 3. Инструменты и ресурсы шеллкода
Технические требования
Интерпретаторы, компиляторы и ассемблеры
Интерпретаторы
Компиляторы
Лексический анализ
Синтаксический анализ
Семантический анализ
Промежуточный генератор кода
Оптимизатор кода
Генератор кода
Сопоставление интерпретаторов и компиляторов
Ассемблеры
Инструменты и ресурсы для разработки шеллкода
Netwide Assembler (NASM)
Установка NASM в Linux
Установка NASM в Windows
Microsoft Assembler (MASM)
Visual Studio
Компилятор GNU
IDA Pro
x64dbg
Инструменты создания шеллкода
MSFvenom
Различные инструменты
Shellnoob
Donut
Интернет- ресурсы шеллкода
Выводы
Раздел 2. Написание шеллкода
Глава 4. Разработка шеллкода для Windows
Технические требования
Настройка среды
Установка Mona
Анатомия памяти
Технологии шеллкода
Атаки переполнения буфера
Потайные ходы файлов PE при помощи шеллкода
Пещеры кода
Поиск пасхальных яиц
Выводы
Дальнейшее чтение
Глава 5. Разработка шеллкода для Linux
Технические требования
Настройка среды
Основы ELF
Технологии шеллкода
Базовый шеллкод Linux
Шеллкод поиска пасхальных яиц
Обратный шеллкод TCP
Написание шеллкода для x64
Уязвимости формата строк
Выводы
Дальнейшее чтение
Раздел 3. Противостояние и обходные пути
Глава 6. Противостояние и обходные пути
Технические требования
Противостояние и обходные пути для Windows
Перемешивание схемы адресного пространства
Препятствие исполнению данных
Куки стека
Структурная обработка исключительных ситуаций
Обход мер противодействия
Противостояние и обходные пути для Linux
NoExecute
Перемешивание схемы адресного пространства
Передислокация области только для чтения
Выводы
Дальнейшее чтение
Указатель