выполнить шеллкод не в стеке (переполнение буфера) - PullRequest
1 голос
/ 05 марта 2020

Возможно ли выполнить ваш шелл-код не в стеке? Есть ли другой способ выполнить шеллкод? Заранее спасибо

1 Ответ

0 голосов
/ 01 апреля 2020

Да, это возможно, но здесь есть, что сказать.

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

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

Стек является самой распространенной атакой по умолчанию, но шеллкоды могут, например, также использовать переполнение кучи (см. этот ответ для объяснения).

Одна из наиболее распространенных структур атаки:

  1. Использование некоторой уязвимости для доступа к стеку, куче, некоторой другой памяти
  2. Использование ROP для создания этой части памяти исполняемый файл
  3. Наличие шелл-кода, возможно, охотника за яйцами, если есть ограничение памяти, которое найдет основную полезную нагрузку, или загрузит что-нибудь
  4. Выполнение основной полезной нагрузки

Надеюсь, что это отвечает на вопрос

...