Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #45, АВГУСТ 2004 г.

Живучий код

Крис Касперски aka мыщъх

Спецвыпуск Xakep, номер #045, стр. 045-064-6


Подробно описывать каждую из систем здесь неразумно, так как это заняло бы слишком много места, тем более что это давным-давно описано в "UNIX Assembly Codes Development for Vulnerabilities Illustration Purposes" Last Stage of Delirium Research Group (http://opensores.thebunker.net/pub/mirrors/blackhat/presentations/bh-usa-01/LSD/bh-usa-01-lsd.pdf). Да-да, той самой легендарной хакерской группой, что нашла дыру в RPC. Это действительно толковые парни, и пишут они классно (я только крякал от удовольствия, когда читал).

Shell-код – это машинный код, тесно связанный с особенностями атакуемой системы.

Некоторые уподобляют переносимый shell-код морской свинке – не сказать, что морская, и вроде не свинка :).

Компиляторов shell-кода не существует хотя бы уже потому, что не существует адекватных языков его описания, что вынуждает нас прибегать к ассемблеру и машинному коду, которые у каждого процессора свои.

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

Shell-код должен сохранять работоспособность при любом расположении в памяти и использовать минимум системно-зависимых служебных структур.

Самым простым способом получения базового адреса является анализ PEB.

Назад на стр. 045-064-5  Содержание