Shellcode как полезная нагрузка для переполнения буфера (или других) эксплойтов, выполняемых от имени root? - PullRequest
2 голосов
/ 15 апреля 2011

Когда я использую шелл-код, такой как предоставленный здесь * в качестве полезной нагрузки для какой-либо уязвимой программы, как оболочка выполняется как root? Я спрашиваю о том, как привилегии повышены до root? Кажется, что шелл-код не вызывает setuid или что-то, что меняет пользователя.

* http://www.tenouk.com/Bufferoverflowc/Bufferoverflow5.html

Ответы [ 3 ]

2 голосов
/ 15 апреля 2011

Эти примеры включают следующее:

     mov $70, %al           #setreuid is syscall 70

Таким образом, они используют системный вызов setreuid(2), который устанавливает действительные и эффективные идентификаторы пользователя процесса:

   int setreuid(uid_t ruid, uid_t euid);
1 голос
/ 15 апреля 2011

Для выполнения шеллкода вам нужна уязвимость, такая как переполнение буфера. Шелкод имеет все права как запущенный процесс. Таким образом, если вы используете бинарный файл, имеющий setuid root, такой как команда passwd или выполняющийся иным образом как root, такой как процесс cupsd daemon, то у злоумышленника будет доступ с правами root. Ядро также может страдать из-за переполнения буфера, и таким образом можно получить доступ с правами root.

0 голосов
/ 07 мая 2011

сначала вам нужно дать программе права суперпользователя (используйте chown и chmod в качестве суперпользователя).и вам нужен setreuid () для вашей полезной нагрузки.это даст вам root, если вы сможете использовать программу другим пользователем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...