Каковы некоторые передовые и современные ресурсы по написанию эксплойтов? - PullRequest
21 голосов
/ 05 декабря 2009

Я прочитал и закончил оба Реверс: Секреты обратного проектирования и Взлом: Искусство эксплуатации . Они оба освещали по-своему, но я все еще чувствую, что многие методы и информация, представленная в них, в какой-то степени устарели.

Когда в 1996 году была написана печально известная статья Phrack, Разбиваю стек ради удовольствия и прибыли , это было как раз перед тем, что я как бы считаю компьютерной безопасностью "золотым веком".

Написание подвигов в последующие годы было относительно легким. Некоторое базовое знание C и Assembly - это все, что требовалось для переполнения буфера и выполнения произвольного кода оболочки на компьютере жертвы.

Проще говоря, все стало намного более сложным. Теперь инженерам по безопасности приходится сталкиваться с такими вещами, как рандомизация разметки адресного пространства (ASLR) , предотвращение выполнения данных (DEP) , стековые куки-файлы , кучевые куки-файлы и многое другое. Больше. Сложность написания эксплойтов возросла как минимум на порядок.

Вы не можете выполнить событие запустить большинство эксплойтов по переполнению буфера в учебных пособиях, которые вы найдете сегодня, без компиляции с набором флагов для отключения современной защиты.

Теперь, если вы хотите написать эксплойт, вам нужно разработать способы отключения DEP, сотрите кучу с вашим шелл-кодом сотни раз и попытайтесь угадать случайное место в памяти рядом с вашим шелл-кодом. Не говоря уже о распространенности используемых сегодня управляемых языков, которые намного более безопасны, когда речь заходит об этих уязвимостях.

Я стремлюсь расширить свои знания в области безопасности за пределы написания игрушечных эксплойтов для десятилетней системы. У меня возникают проблемы с поиском ресурсов, которые помогают решить проблемы написания эксплойтов перед всеми мерами защиты, которые я изложил выше.

Какие наиболее продвинутые и распространенные статьи, книги или другие ресурсы посвящены решению проблем написания эксплойтов для современных систем?

Ответы [ 4 ]

7 голосов
/ 06 декабря 2009

Вы упомянули «Разбить стек». С точки зрения исследований эта статья устарела еще до того, как была опубликована. Червь Морриса в конце 80-х использовал его (чтобы использовать IIRC). В то время это вызвало огромный переполох, потому что тогда каждый сервер был написан на оптимистичном языке C.

Это заняло несколько (или около того) лет, но постепенно все стали лучше понимать проблемы безопасности, связанные с открытыми серверами.

Серверы, написанные на C, подвергались тщательному анализу безопасности, и в то же время обработка на стороне сервера переходила на другие языки и среды выполнения.

Сегодня все выглядит немного иначе. Серверы не считаются большой целью. В наши дни это клиенты, которые являются большой рыбой. Захватите клиента и сервер позволит вам работать с учетными данными этого клиента.

Пейзаж изменился.

Лично я спорадический фанат игр на ассемблере. У меня нет для них практического применения, но если вы хотите разобраться с этим, я бы порекомендовал проверить источник Metasploit и прочитать их списки рассылки. Они делают много сумасшедших вещей, и все это открыто.

2 голосов
/ 26 января 2010

Я впечатлен, ты хакер Как и я . Вам нужно перейти на веб-приложения. Большинство номеров CVE, выпущенных за последние несколько лет, были в веб-приложениях.

Прочитайте эти две статьи:

http://www.securereality.com.au/studyinscarlet.txt

http://www.ngssoftware.com/papers/HackproofingMySQL.pdf

Получите стек LAMP и установите эти три приложения:

http://sourceforge.net/projects/dvwa/ (php)

http://sourceforge.net/projects/gsblogger/ (php)

http://www.owasp.org/index.php/Category:OWASP_WebGoat_Project (j2ee)

Вы должны скачать w3af и освоить его. Напишите плагины для этого. w3af - отличная платформа для атак, но она глючит и имеет проблемы с DVWA, она порождает оттенки серого. Acunetix - хороший коммерческий сканер, но он дорогой.

1 голос
/ 16 марта 2010

DEP (Data Execution Prevention), NX (No-Execute) и другие улучшения безопасности, которые специально запрещают выполнение, легко обойти, используя другие методы эксплойтов, такие как Ret2Lib или Ret2Esp. Когда приложение компилируется, оно обычно выполняется с другими библиотеками (Linux) или DLL (Windows). Эти методы Ret2 * просто вызывают существующую функцию (), которая находится в памяти.

Например, при обычном эксплойте вы можете переполнить стек и затем взять под контроль адрес возврата (EIP) с адресом салазок NOP, вашим Shellcode или переменной среды, содержащей ваш шелл-код. При попытке использовать этот эксплойт в системе, которая не позволяет стеку быть исполняемым, ваш код не будет работать. Вместо этого, когда вы переполняете адрес возврата (EIP), вы можете указать его на существующую функцию в памяти, такую ​​как system () или execv (). Вы предварительно заполняете требуемые регистры параметрами, которые ожидает эта функция, и теперь вы можете вызывать / bin / sh, не выполняя ничего из стека.

Для получения дополнительной информации смотрите здесь:

http://web.textfiles.com/hacking/smackthestack.txt

1 голос
/ 06 декабря 2009

Я настоятельно рекомендую "Руководство по Shellcoder's". Это просто лучший справочник, который я когда-либо читал, когда дело доходит до написания эксплойтов.

Если вы заинтересованы в написании эксплойтов, вам, вероятно, придется научиться реинжинирингу. Для 99% мира это означает IDA Pro. По моему опыту, нет лучшей книги IDA Pro, чем книга Криса Игла "The IDA Pro Book". Он подробно описывает все, что вам когда-либо нужно будет делать в IDA Pro.

На OpenRCE.org есть довольно большое сообщество разработчиков. Тонны бумаг и различных полезных приложений доступны там. Я узнал об этом сайте на отличной конференции по реинжинирингу, которая проводится раз в два года и называется RECon. Следующее мероприятие будет в 2010 году.

Большинство исследований в эти дни будут "низко висящими фруктами". Большинство выступлений на недавних конференциях по безопасности, о которых я рассказывал, было посвящено уязвимостям на мобильных платформах (iPhone, Android и т. Д.), Где в современных операционных системах практически не существует ни одной защиты.

В общем, не будет ни одной ссылки, которая объяснила бы, как написать современный эксплойт, потому что в ОС встроено множество средств защиты. Например, скажем, вы нашли уязвимость кучи, но эта противная новая функция безопасной отмены ссылок в Windows не дает вам получить выполнение. Вы должны знать, что два гения исследовали эту функцию, и нашел недостаток .

Удачи в учебе. Письмо об эксплойтах чрезвычайно расстраивает и НАСТОЯТЕЛЬНО вознаграждает!

Ба! Спам не позволяет мне публиковать все мои ссылки. Извините!

...