Настройка среды для изучения переполнения буфера - PullRequest
3 голосов
/ 03 октября 2009

В настоящее время я читаю несколько книг по безопасности (моя страсть) относительно безопасного программирования, однако либо дистрибутив, который они предоставляют на диске, неисправен, либо отсутствует. Книги: Взломать Искусство Эксплуатации 2nEd, Серая Шляпа взломать 2nEd Проблема в том, что когда я пытаюсь следовать примерам, очевидно, что в более новых дистрибутивах предусмотрена защита стека и другие функции безопасности, реализованные для предотвращения таких ситуаций, и я попытался вручную настроить среду, предоставляемую с помощью Hacking art of эксплуатирующую, но у меня не получилось. Также я попробовал DVL (Dam Vulnerable Linux), но он слишком раздут, я просто хочу минимальную среду, которую я могу иметь в небольшом разделе и выбрать из загрузчика ИЛИ в маленькой виртуальной коробке.

Итак, мой вопрос заключается в следующем: как мне настроить окружение (дистрибутив старого ядра), в котором я могу следовать большинству этих примеров. Возможно, если кто-нибудь скажет мне версию ядра и GCC DVL, я смогу получить больше всего. это настроить сам.

Ответы [ 3 ]

2 голосов
/ 05 октября 2009

Вам нужно пересобрать ядро ​​без защиты стека и кучи, включая неисполняемый стек. Затем вам нужно скомпилировать, используя флаги gcc, чтобы отключить защиту, одной из которых будет "-fno-stack-protector". Кроме того, поскольку вы скоро столкнетесь с этим, вы, вероятно, захотите статически скомпилировать свою программу, потому что это будет немного легче понять, когда вы отлаживаете в полезную нагрузку 0x41414141.

Также, в зависимости от вашего определения «раздувать», может быть проще всего просто загрузить более старый дистрибутив linux, redhat 5 или старый slackware и установить и использовать его со стандартным набором инструментов.

1 голос
/ 03 октября 2009

Если у вас все еще есть доступный DVL, вы можете использовать команды:

$ uname -r
$ gcc --version

чтобы выяснить это для себя.

Редактировать: в соответствии с distrowatch.com ядро ​​Linux - 2.6.20, а gcc - 3.4.6

0 голосов
/ 03 января 2011

На сайте sevagas есть статья, связанная с вашим вопросом: Как настроить среду тестирования переполнения буфера

...