Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 24, средняя оценка - 4.79
TagaBenz
0 / 0 / 1
Регистрация: 04.03.2013
Сообщений: 21
#1

Хакинг. Искусство эксплойта - C++

25.03.2013, 00:58. Просмотров 3902. Ответов 33
Метки нет (Все метки)

Прежде исложить свою проблему хочу спросить, читал ли кто-нибудь и пробовал на практике задачи описанные в книге Джона Эриксона: "Хакинг. Искусство эксплойта" ?
ссылка на книгу: http://www.ozon.ru/context/detail/id...abenz&from=bar
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.03.2013, 00:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Хакинг. Искусство эксплойта (C++):

Дальнейшее чтение после Р.Лафоре искусство ООП программирования С++
Всем привет. Прочел книгу Р.Лафоре искусство ООП программирования С++. И вот...

Wifi хакинг
Всем доброго времени суток! Искал подобную тему на форуме, не нашел, по...

Компьютерное искусство
Всем привет. Кто может помочь решить эту задачу буду очень благодарен

"Искусство схемотехники" П. Хоровиц. У. Хилл.
Есть ли сабж в формате fb2? А то на читалке пдфка мелкая для экрана в 6 дюймов...

искусство сальважинга: экран моторолы3788, какой контроллер?
собственно, субж. ...

Искусство веб-дизайна - где взять информацию для курсовой работы
Привет всем!:) Дали мне курсовую работу по теме "Искусство веб-дизайна". Я...

33
chizz
983 / 500 / 101
Регистрация: 19.03.2013
Сообщений: 3,101
Записей в блоге: 19
Завершенные тесты: 1
26.03.2013, 18:24 #21
Ошибку..
Ты хотел вызвать переполнение буфера - ты его вызвал. Теперь надо что-то с адресами делать, чтобы адрес возврата на шелкод указывал. Как это сделать - без понятия
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
27.03.2013, 06:02 #22
Цитата Сообщение от TagaBenz Посмотреть сообщение
Как я понял шелкод прописывает команду в терминале, которая выводит владельца уязвимой программы, а именно команду whoami
По идее шеллкод грузит системную оболочку от имени владельца уязвимой программы, всё остальное - иные варианты эксплойнтов.
1
TagaBenz
0 / 0 / 1
Регистрация: 04.03.2013
Сообщений: 21
27.03.2013, 11:32  [ТС] #23
Цитата Сообщение от taras atavin Посмотреть сообщение
По идее шеллкод грузит системную оболочку от имени владельца уязвимой программы, всё остальное - иные варианты эксплойнтов.
Крутяк))))
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
27.03.2013, 13:08 #24
Чего крутяг? Он ведь называется шеллкод->shellcode->shell code->код shellа, а shell - это оболочка, а не мессага.

Добавлено через 1 час 24 минуты
Жил-был один парень, назовём его в целях конспирации Лёша. Году эдак в 2001–2002 Лёша очень сильно интересовался всяческим компьютерным хулиганством — началось это с прописывания в автозапуск разных пакостей, а вылилось в желание написать свой Первый Серьёзный Вирус. В качестве учебного пособия использовалось авторитетное печатное издание «Хакер».

Через неделю трудов Лёша написал-таки своего монстра. Задача была простая — убивать исполняемые файлы с расширением «exe». Способ убийства был весьма нехитрым: вирус откусывал определённое количество байтов от конца файла и переносил их в начало. Атакованный файл, разумеется, после этого при попытках запуска выдавал сообщения вроде «Кто я? Где я?», да и вообще вёл себя неадекватно.

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

Наутро обнаружилось, что вирус вышел из под контроля и поел все экзешники, до которых дотянулся. Каким-то чудом комп сохранял некоторую работоспособность, поэтому Лёша решил на скорую руку вылечить подобное подобным. На скорую руку в код вируса были внесены изменения; вторая версия переносила первые байты в конец.

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

Закончилось всё тем, что совместными усилиями первый и второй вирус нашинковали все найденные *.exe в капусту. Как Лёша с этим справился — неизвестно, но меры наверняка были радикальными.
Надеюсь, не надо объяснять, что это и был новичок?
0
TagaBenz
0 / 0 / 1
Регистрация: 04.03.2013
Сообщений: 21
27.03.2013, 14:42  [ТС] #25
Надеюсь, не надо объяснять, что это и был новичок?
К чему ты клонишь?)))
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
27.03.2013, 15:46 #26
К тому, что даже новичку могут быть понятны некоторые защиты, но ни одному новичку не доступен качественный, вдумчивый взлом. Сначала надо изучить предметную область, похулиганить на своём вируталбоксе, до"расти" до эксперта и только тогда можно в серьёз ломать софт.
0
Avazart
Эксперт С++
7676 / 5585 / 542
Регистрация: 10.12.2010
Сообщений: 25,057
Записей в блоге: 17
27.03.2013, 16:00 #27
Цитата Сообщение от taras atavin Посмотреть сообщение
К тому, что даже новичку могут быть понятны некоторые защиты, но ни одному новичку не доступен качественный, вдумчивый взлом. Сначала надо изучить предметную область, похулиганить на своём вируталбоксе, до"расти" до эксперта и только тогда можно в серьёз ломать софт.
Я так не думаю области знаний разнятся и как говорится - "ломать не строить".
0
Tmin100
6 / 6 / 1
Регистрация: 12.10.2012
Сообщений: 71
27.03.2013, 16:03 #28
Не думаю, что без знаний устройства защиты возможно её обойти...
0
TagaBenz
0 / 0 / 1
Регистрация: 04.03.2013
Сообщений: 21
27.03.2013, 16:05  [ТС] #29
А по делу кто-инбудь хочет мне помочь?? На что ругается мой отладчик?
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
27.03.2013, 16:42 #30
Цитата Сообщение от Avazart Посмотреть сообщение
Я так не думаю области знаний разнятся и как говорится - "ломать не строить".
А ты учёл, что не руками? Переполнение заткнуть - много ума не надо. А ты пробуй ломани даже не заткнутую прогу. Для взлома нужен асм, а защита делается походя на плюсах. И если вдруг есть защита от исполнения стека, или просто буфер, которым ты пытаешься ломануть адрес возврата вынесен из стека в кучу, а адрес возврата остался в стеке, или ломаешь кучу. Элементарные различия в прогах, начиная просто с размера буфера и у хакера проблемы, которые надо разбирать с дебагером. А для того, чтоб эксплойнты переполнения буфера отсечь на корню, достаточно сопоставлять размеры копируемых строк с размерами буферов. То есть всего то делов: переписать свой цикл копирования вместо strcpy и вводить/выводить потоками и целый класс эксплойтов становится полностью бесполезным.
0
TagaBenz
0 / 0 / 1
Регистрация: 04.03.2013
Сообщений: 21
28.03.2013, 01:22  [ТС] #31
Цитата Сообщение от taras atavin Посмотреть сообщение
А ты учёл, что не руками? Переполнение заткнуть - много ума не надо. А ты пробуй ломани даже не заткнутую прогу. Для взлома нужен асм, а защита делается походя на плюсах. И если вдруг есть защита от исполнения стека, или просто буфер, которым ты пытаешься ломануть адрес возврата вынесен из стека в кучу, а адрес возврата остался в стеке, или ломаешь кучу. Элементарные различия в прогах, начиная просто с размера буфера и у хакера проблемы, которые надо разбирать с дебагером. А для того, чтоб эксплойнты переполнения буфера отсечь на корню, достаточно сопоставлять размеры копируемых строк с размерами буферов. То есть всего то делов: переписать свой цикл копирования вместо strcpy и вводить/выводить потоками и целый класс эксплойтов становится полностью бесполезным.
Я все это использую исключительно ради добра честно!))) Подкаскажи только мне в чем моя ошибка?)
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
28.03.2013, 05:34 #32
Верю, но подсказать не могу, так как читай мой статус. Все мои хаки были по обезьяньим методам: искать байт со взятым с потолка значением и менять это значение без учёта соседних бюайт на другое потолочное, подсунуть цельнорандомный файл вместо файла, в который игра сохранила, чего налетал.
0
TagaBenz
0 / 0 / 1
Регистрация: 04.03.2013
Сообщений: 21
30.03.2013, 02:11  [ТС] #33
Всем спасибо за многочисленные ответы не по делу в моей теме)) разобрался в проблеме сам)
Ввел команду в терминале $ dmesg | less и увидел вот такую вот строку!: [ 0.000000] NX (Execute Disable) protection: active

Пояснение
Современные процессоры поддерживают функцию NX-защиты (NX - сокращение от No eXecute). Это защита областей памяти, которая используется для предотвращения распространения вирусов. Для более подробной информации гугл в помошь))))
0
taras atavin
4204 / 1763 / 212
Регистрация: 24.11.2009
Сообщений: 27,565
30.03.2013, 12:03 #34
Шеллкод отработал? А теперь попробуй изменить уязвимую программу сначала так:
C++
1
2
3
4
5
6
7
8
9
#include <string.h>
#include <iostream>
int main(int argc, char *argv[])
{
 char buffer[500];
 strcpy(buffer, argv[1]);
 std::cout<<buffer;
 return 0;
}
, а потом так:
C++
1
2
3
4
5
6
7
8
#include <string.h>
int main(int argc, char *argv[])
{
 std::string buffer;
 buffer=argv[1];
 std::cout<<buffer;
 return 0;
}
. Эти две версии функционально идентичны, но первая и уязвима для эксплойта, и может просто сглючить при переполнении, а вторая для данного эксплойта не уязвима и не глючит. Попробуй на них и данные, и эксплойт.
0
30.03.2013, 12:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2013, 12:03
Привет! Вот еще темы с решениями:

где можно скачать книгу Михаил Фленов: DirectX и Delphi. Искусство программирования (+CD)?
добрый вечер, не подскажите где можно скачать книгу Михаил Фленов: DirectX и...

Дональд Кнут "искусство программирования" - насколько применимо на практике?
Когда я что-то изучаю, всегда начинаю с самых основ, что бы понимать все до...

Где достать решения упражнений из "Искусство схемотехники"?
Здравствуйте, порекомендуйте пожалуйста хороший задачник+решебник по...

Алгоритм чтения книги "Искусство программирования" - Кнут
Решил начать читать данную книгу, в самом начале встретил некий алгоритм, для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru