Lord Divius
Сообщений: 188
Оценки: 0
Присоединился: 2005-12-31 15:44:03
|
Захотелось мне на днях помучать assembler. Такая вот задача: прога с битом SUID и own-ом рута, надо вызвать bash. написано под Линуксом для nasm'a
Section .data
shell db '/bin/sh',0
err db 'Error occured!',0xA,0
errlen dd 16
Section .text
global main
main:
; Hack IT!
mov eax, 11
mov ebx, shell
xor ecx, ecx
xor edx, edx
int 0x80
; Were there an error?
mov eax, 4
xor ebx, ebx
inc ebx
mov ecx, err
mov edx, [errlen]
int 0x80
; Exit
xor eax, eax
inc eax
xor ebx, ebx
inc ebx
int 0x80
ret
пускаем из-под обычного юзера. проблема такова: bash пускается, но без рутовских прав. многие проги (теста ради попытался пустить uname) вываливаются с ошибкой сегментирования. не подскажете, в чём проблема?
|