Я прочитал и закончил оба Реверс: Секреты обратного проектирования и Взлом: Искусство эксплуатации . Они оба освещали по-своему, но я все еще чувствую, что многие методы и информация, представленная в них, в какой-то степени устарели.
Когда в 1996 году была написана печально известная статья Phrack, Разбиваю стек ради удовольствия и прибыли , это было как раз перед тем, что я как бы считаю компьютерной безопасностью "золотым веком".
Написание подвигов в последующие годы было относительно легким. Некоторое базовое знание C и Assembly - это все, что требовалось для переполнения буфера и выполнения произвольного кода оболочки на компьютере жертвы.
Проще говоря, все стало намного более сложным. Теперь инженерам по безопасности приходится сталкиваться с такими вещами, как рандомизация разметки адресного пространства (ASLR) , предотвращение выполнения данных (DEP) , стековые куки-файлы , кучевые куки-файлы и многое другое. Больше. Сложность написания эксплойтов возросла как минимум на порядок.
Вы не можете выполнить событие запустить большинство эксплойтов по переполнению буфера в учебных пособиях, которые вы найдете сегодня, без компиляции с набором флагов для отключения современной защиты.
Теперь, если вы хотите написать эксплойт, вам нужно разработать способы отключения DEP, сотрите кучу с вашим шелл-кодом сотни раз и попытайтесь угадать случайное место в памяти рядом с вашим шелл-кодом. Не говоря уже о распространенности используемых сегодня управляемых языков, которые намного более безопасны, когда речь заходит об этих уязвимостях.
Я стремлюсь расширить свои знания в области безопасности за пределы написания игрушечных эксплойтов для десятилетней системы. У меня возникают проблемы с поиском ресурсов, которые помогают решить проблемы написания эксплойтов перед всеми мерами защиты, которые я изложил выше.
Какие наиболее продвинутые и распространенные статьи, книги или другие ресурсы посвящены решению проблем написания эксплойтов для современных систем?