Проводим пентест. Часть 6. Пишем эксплоит::Журнал СА 11.2016
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Контакты
   

  Опросы
1001 и 1 книга  
12.02.2021г.
Просмотров: 13943
Комментарии: 42
Коротко о корпусе. Как выбрать системный блок под конкретные задачи

 Читать далее...

11.02.2021г.
Просмотров: 15045
Комментарии: 15
Василий Севостьянов: «Как безболезненно перейти с одного продукта на другой»

 Читать далее...

20.12.2019г.
Просмотров: 24930
Комментарии: 12
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 17105
Комментарии: 16
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 17745
Комментарии: 10
Анализ вредоносных программ

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Проводим пентест. Часть 6. Пишем эксплоит

Архив номеров / 2016 / Выпуск №11 (168) / Проводим пентест. Часть 6. Пишем эксплоит

Рубрика: Безопасность /  Аудит

Андрей Бирюков АНДРЕЙ БИРЮКОВ, системный архитектор по информационной безопасности, abiryukov@samag.ru

Проводим тест на проникновение
Часть 6. Пишем эксплоит

Что собой представляет эксплоит? Как правильно внедрить шелл-код? Продолжаем тему самостоятельной разработки

В этой статье мы продолжим обсуждение темы самостоятельной разработки эксплоитов к самописному программному обеспечению. В предыдущей статье цикла [1] был рассмотрен процесс поиска уязвимостей (фаззинг) в почтовом сервере SLMail. Мы выяснили значения адресов для регистров ESP и EIP, а также объем блока памяти, который нужен для размещения нашего эксплоита.

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

Простые действия

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

Для лучшего понимания приведу основные шаги, которые необходимо предпринять для разработки эксплоита:

  • Разработка кода эксплоита. Здесь подробно рассмотрим, что собой представляет шелл-код для Windows.
  • Адаптация кода для встраивания его в уязвимую программу. Здесь мы поговорим о том, как обойти ограничения, связанные с использованием нескольких сегментов памяти.
  • Получение адресов, используемых в нашем шелл-коде функций kernel32.dll и генерации кода эксплоита.
  • Обнаружение всех «плохих» байтов в уязвимой программе.
  • Замена найденных bad chars в нашем шелл-коде.
  • Поиск в уязвимой программе команд, необходимых для выполнения перехода на наш шелл-код.
  • Внедрение шелл-кода в уязвимую программу.
  • Автоматизация разработки эксплоита с помощью средств Metasploit.

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

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

Что мы хотим получить

Перед написанием эксплоита нам необходимо четко определиться с тем, что мы хотим получить. В случае с Unix-системами целью злоумышленника является получение доступа (шелл). Но в нашем примере используется сервер SLMail подWindows. Конечной целью нашего эксплоита также будет получение удаленного доступа на почтовый сервер. Реализовать удаленный доступ на ассемблере можно несколькими способами: можно написать код, обрабатывающий сокеты ивзаимодействующий с операционной системой, а можно использовать уже имеющиеся сервисы ОС Windows. Первый вариант требует разработки длинного и сложного кода, тогда как второй достаточно прост для понимания. Мывоспользуемся вторым вариантом и будем получать доступ посредством запуска telnet. Учитывая то обстоятельство, что исследуемая программа SLMail довольно старая (2004 г.) и уязвима она под ОС Windows XP/2003, проблем с запуском сервиса telnet возникнуть не должно.

Статью целиком читайте в журнале «Системный администратор», №11 за 2016 г. на страницах 42-46.

PDF-версию данного номера можно приобрести в нашем магазине.


  1. Бирюков А. Проводим тест на проникновение. Часть 5. Поиск уязвимостей в «самописных» приложениях. // «Системный администратор», №10, 2016 г. – С. 38-43 (http://samag.ru/archive/article/3292).
  2. Бирюков А. Проводим пентест. Часть 4. Используем уязвимости. // «Системный администратор», №7-8, 2016 г. – С. 47-51 (http://samag.ru/archive/article/3237).
  3. Бирюков А. Проводим пентест. Часть 3. Ищем уязвимости. // «Системный администратор», №6, 2016 г. – С. 24-29 (http://samag.ru/archive/article/3211).
  4. Бирюков А. Проводим пентест. Часть 2. Сбор необходимой информации. // «Системный администратор», №5, 2016 г. – С. 27-31 (http://samag.ru/archive/article/3190).
  5. Бирюков А. Проводим пентест. Часть 1. Проникаем в беспроводную сеть. // «Системный администратор», №4, 2016 г. – С. 40-44 (http://samag.ru/archive/article/3171).
  6. Утилита ARWin – http://shinnai.altervista.org/tools/arwin.rar.
  7. Касперски К. Аудит и дизассемблирование эксплоитов. // «Системный администратор», №8, 2006 г. – С.58-66 (http://samag.ru/archive/article/721).
  8. Крис Касперски. Искусство дизассемблирования.
  9. Penetration Testing with Kali Linux – учебные материалы Offensive Security.
  10. Securitytube.com Видеокурс «SecurityTube Linux Assembly Expert» by Vivek Ramachandran.

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru