Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

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

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

25.03.2013, 00:58. Просмотров 3727. Ответов 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 хакинг - Wi-Fi
Всем доброго времени суток! Искал подобную тему на форуме, не нашел, по этому решил создать, а так как речь идет о вафле, то принято...

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

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

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

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

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

33
TagaBenz
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 21
26.03.2013, 13:40  [ТС] #16
Цитата Сообщение от taras atavin Посмотреть сообщение
не юзай strcopy, все переполнения от неё, от scanf и от sprintf: буфер они не создают, а размер измеряют, но не спрашивают.
Не совсем понял что ты пытался до меня донести, можно по подробнее?
0
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
26.03.2013, 13:58 #17
А ты не задумывался, почему TS (topic starter), а не TO (topic owner)? Автор первого поста темы лишь обращает внимание сообщества на тему, но не владеет ею, она может заинтересовать и того, кто раньше о ней не задумывался, возможно, не знал, у него могут возникнуть свои вопросы. Это нормально. Охота владеть обсуждением - веди его в блоге, а здесь я могу присоединиться в качестве второго автора вопросов.

Добавлено через 7 минут
Цитата Сообщение от TagaBenz Посмотреть сообщение
Не совсем понял что ты пытался до меня донести, можно по подробнее?
Я имею ввиду, что тот эксплойнт основан на переполнении, а оно возникает только в функциях scanf, sprintf и strcpy, не проверяющих размер предоставленного им буфера, но измеряющих количество необходимой им памяти и в анологично им написаной кривоотсебятине. Даже printf конкретно на эксплойнт переполнения подцепить не возможно, так как она просто не переполняется. Не используй эти функции. И не передавай в printf то, что ты не можешь контролировать: результат пользовательского ввода, прочитанную из файла строку... Из-за спецификатора %n она тоже опасна.
2
chizz
981 / 498 / 54
Регистрация: 19.03.2013
Сообщений: 3,094
Записей в блоге: 18
Завершенные тесты: 1
26.03.2013, 13:59 #18
TagaBenz, а что делает шелкод?
taras atavin, ТС как раз и пытается выяснить как запустить шелкод, используя уязвимость в strcpy. А вы предлагаете не пользоваться strcpy )))
0
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
26.03.2013, 14:35 #19
Я предлагаю не дать другому читателю взломать написанное TagaBenzом.
0
TagaBenz
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 21
26.03.2013, 18:15  [ТС] #20
Цитата Сообщение от chizz Посмотреть сообщение
а что делает шелкод?
Как я понял шелкод прописывает команду в терминале, которая выводит владельца уязвимой программы, а именно команду whoami

Опыта работы с консольным отладчиком не имею вобше(( помогите разобраться

<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /home/r2d2/exploit...(no debugging symbols found)...done.
(gdb) run
Starting program: /home/r2d2/exploit
Stack pointer (ESP) : 0xbffff358
Offset from ESP : 0x0
Desired return Addr : 0xbffff358
process 9404 is executing new program: /home/r2d2/vuln
*** stack smashing detected ***: vuln terminated

Program received signal SIGSEGV, Segmentation fault.
0xb756cb19 in ?? () from /lib/i386-linux-gnu/libgcc_s.so.1


Что мне делать и как искать ошибку в программе? Что означает строка 0xb756cb19 in ?? () from /lib/i386-linux-gnu/libgcc_s.so.1
0
chizz
981 / 498 / 54
Регистрация: 19.03.2013
Сообщений: 3,094
Записей в блоге: 18
Завершенные тесты: 1
26.03.2013, 18:24 #21
Ошибку..
Ты хотел вызвать переполнение буфера - ты его вызвал. Теперь надо что-то с адресами делать, чтобы адрес возврата на шелкод указывал. Как это сделать - без понятия
0
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
27.03.2013, 06:02 #22
Цитата Сообщение от TagaBenz Посмотреть сообщение
Как я понял шелкод прописывает команду в терминале, которая выводит владельца уязвимой программы, а именно команду whoami
По идее шеллкод грузит системную оболочку от имени владельца уязвимой программы, всё остальное - иные варианты эксплойнтов.
1
TagaBenz
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 21
27.03.2013, 11:32  [ТС] #23
Цитата Сообщение от taras atavin Посмотреть сообщение
По идее шеллкод грузит системную оболочку от имени владельца уязвимой программы, всё остальное - иные варианты эксплойнтов.
Крутяк))))
0
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
27.03.2013, 13:08 #24
Чего крутяг? Он ведь называется шеллкод->shellcode->shell code->код shellа, а shell - это оболочка, а не мессага.

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

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

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

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

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

Закончилось всё тем, что совместными усилиями первый и второй вирус нашинковали все найденные *.exe в капусту. Как Лёша с этим справился — неизвестно, но меры наверняка были радикальными.
Надеюсь, не надо объяснять, что это и был новичок?
0
TagaBenz
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 21
27.03.2013, 14:42  [ТС] #25
Надеюсь, не надо объяснять, что это и был новичок?
К чему ты клонишь?)))
0
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
27.03.2013, 15:46 #26
К тому, что даже новичку могут быть понятны некоторые защиты, но ни одному новичку не доступен качественный, вдумчивый взлом. Сначала надо изучить предметную область, похулиганить на своём вируталбоксе, до"расти" до эксперта и только тогда можно в серьёз ломать софт.
0
Avazart
Эксперт С++
7417 / 5507 / 316
Регистрация: 10.12.2010
Сообщений: 24,595
Записей в блоге: 17
27.03.2013, 16:00 #27
Цитата Сообщение от taras atavin Посмотреть сообщение
К тому, что даже новичку могут быть понятны некоторые защиты, но ни одному новичку не доступен качественный, вдумчивый взлом. Сначала надо изучить предметную область, похулиганить на своём вируталбоксе, до"расти" до эксперта и только тогда можно в серьёз ломать софт.
Я так не думаю области знаний разнятся и как говорится - "ломать не строить".
0
Tmin100
6 / 6 / 0
Регистрация: 12.10.2012
Сообщений: 71
27.03.2013, 16:03 #28
Не думаю, что без знаний устройства защиты возможно её обойти...
0
TagaBenz
0 / 0 / 0
Регистрация: 04.03.2013
Сообщений: 21
27.03.2013, 16:05  [ТС] #29
А по делу кто-инбудь хочет мне помочь?? На что ругается мой отладчик?
0
taras atavin
3883 / 1757 / 92
Регистрация: 24.11.2009
Сообщений: 27,566
27.03.2013, 16:42 #30
Цитата Сообщение от Avazart Посмотреть сообщение
Я так не думаю области знаний разнятся и как говорится - "ломать не строить".
А ты учёл, что не руками? Переполнение заткнуть - много ума не надо. А ты пробуй ломани даже не заткнутую прогу. Для взлома нужен асм, а защита делается походя на плюсах. И если вдруг есть защита от исполнения стека, или просто буфер, которым ты пытаешься ломануть адрес возврата вынесен из стека в кучу, а адрес возврата остался в стеке, или ломаешь кучу. Элементарные различия в прогах, начиная просто с размера буфера и у хакера проблемы, которые надо разбирать с дебагером. А для того, чтоб эксплойнты переполнения буфера отсечь на корню, достаточно сопоставлять размеры копируемых строк с размерами буферов. То есть всего то делов: переписать свой цикл копирования вместо strcpy и вводить/выводить потоками и целый класс эксплойтов становится полностью бесполезным.
0
27.03.2013, 16:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.03.2013, 16:42
Привет! Вот еще темы с ответами:

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


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

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

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