Чат codeby в telegram перезагрузка

Обсуждаем вопросы информационной безопасности, методы защиты информации, программирование. Задавайте свои вопросы и комментируйте чужие.

  Подробнее ...

В этом посте я продемонстрирую обход DEP/NX, используя обратно ориентированное программирование.

Однако, в этот раз мы активируем DEP/NX, используя execstack. Если вы компилируете новый исполнимый файл, он уже будет иметь активированный DEP, но убедитесь, что компиляция проведена с использованием опции -fno-stack-protector, т.к. это не обходит stack canaries.

Возвращение к -to-libc атаке (ret2libc)

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

Это заинтересует вас:

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

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

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



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

На 0x08048468 вызывается функция strcpy и в следующей инструкции esp перемещается с помощью символов 0x1c, чтобы загрузить указатель в eax, который показывает, что на буфер длиной в 0x1c или 28 байт. Теперь нам нужно найти адрес памяти системной функции и передать что-то в качестве аргумента к нему. На самом деле, библиотека C содержит строчку «/bin/sh», которую мы можем использовать, чтобы прикрепиться к shell в программе путем применения ее в качестве аргумента для системы.

Теперь, когда у нас есть наш адрес для системы и для «/bin/bash», мы можем сделать новый эксплойт, который обходит DEP и дает нам шелл.

Мы можем написать вышеуказанный пейлоад в более понятной форме также как и python script.

И пользуясь нашей уязвимой программой, мы получаем shell.

В случаях, когда эксплуатация не является прямой, например, отсутствие строки «/bin/sh» в памяти, нам необходимо использовать гаджеты ROP, чтобы создать и хранить строку в доступной локации памяти. ROP гаджет — просто набор инструкций языка ассемблере с последующей командой возврата, который уже загружен в память как часть программы. Эти гаджеты предоставляют особые функции, которые мы можем соединить вместе, чтобы выполнить произвольный код. ROP является Turing complete и может быть использован для имитации любого кода. Вы можете найти дополнительную информацию о ROP по следующим ссылкам: ROP primer by bas here, by Corelan Team here, by b33f here.

Перевод: Анна Давыдова
Источник: tehaurum.wordpress.com


Codeby.net совместно с PHDays 8

Объявляют о проведении грандиозного конкурса с умопомрачительными призами ! Получи бесплатно билет на PHDays 8, деньги, футболку с символикой codeby, а так же всеобщий респект и уважение.

Подробнее ...

Похожие темы

Как взламывать пароль вай фай... Взлом WiFi для новичков (читай "для нубов"). Всем привет! Я думал, что лучше, чем wifite, для новичков не бывает. Я ошибался. Вашему вниманию пр...
Twitter OSINT Инструмент Tinfoleak Перевод: Анна Давыдова Источник: n0where.net Tinfoleak является простым скриптом Python, который позволяет получить детальную информацию о актив...
Безопасность сайтов в Tor и взлом скрытых Tor Serv... Что такое Tor? Tor означает The Onion Route, он направлен на то, чтобы скрыть свои идентификаторы и онлайн-активность от различных алгоритмов анализ...
Читаем вместе: Тестирование на веб проникновение с... Книга авторов Joseph Muniz и Aamir Lakhani «Web Penetration Testing with Kali Linux» выпущена в 2013 году. Книга рассчитана на самых нач...
Как взломать свою сеть и повысить её безопасность ... По материалам сайта http://lifehacker.com Kali Linux - это сфокусированная на безопасности операционная система, способная работать где угодно, ...