Настройка среды для изучения переполнения буфера
В настоящее время я читаю несколько книг по безопасности (моя страсть) относительно безопасного программирования, однако либо дистрибутивы, которые они предоставляют на диске, неисправны, либо их нет. Книги: хакерство Искусство эксплуатации 2nEd, серая шляпа хакерство 2nEd Проблема в том, что когда я пытаюсь следовать примерам, очевидно, что в более новых дистрибутивах реализована защита стека и другие функции безопасности, чтобы предотвратить такие ситуации, и я попытался вручную настроить среду Хакинг предоставил искусство эксплуатации, но у меня ничего не вышло. Также я пробовал DVL(Dam Vulnerable Linux), но он слишком раздут, я просто хочу минимальную среду, которую я могу иметь в небольшом разделе и выбрать из загрузчика ИЛИ в маленькой виртуальной коробке.
Поэтому мой вопрос заключается в следующем: как мне настроить среду (старое дистрибутивное ядро), в которой я могу следовать большинству этих примеров. Возможно, если кто-то скажет мне версию ядра и GCC DVL, я смогу получить большую часть настроек. себя.
3 ответа
Вам нужно пересобрать ядро без защиты стека и кучи, включая неисполняемый стек. Затем вам нужно скомпилировать, используя флаги gcc, чтобы отключить защиту, одной из которых будет "-fno-stack-protector". Кроме того, поскольку вы скоро столкнетесь с этим, вы, вероятно, захотите статически скомпилировать свою программу, потому что это будет немного легче понять, когда вы будете отлаживать свою полезную нагрузку 0x41414141.
Также, в зависимости от вашего определения "раздувать", может быть проще всего скачать старый дистрибутив linux, redhat 5 или старый slackware и установить и использовать его с помощью стандартного набора инструментов.
Если у вас все еще есть доступный DVL, вы можете использовать команды:
$ uname -r
$ gcc --version
выяснить для себя.
Редактировать: согласно distrowatch.com ядро Linux - 2.6.20, а gcc - 3.4.6.
На сайте sevagas есть статья, которая связана с вашим вопросом: Как настроить среду тестирования переполнения буфера