App - Système
App - System ELF x86 - Stack buffer and integer overflow binary
Bonjour,
Apres quelques tests, je n’arrive pas a comprendre pourquoi mon exploit ne marche pas. J’ai utilisé strace pour trouver l’adresse du shellcode. Voici l’execution :
[+] The pathname is : /1�Ph//shh/bin��PS��
�����������������������������������������������������������������������������������������������������������������������������������������
Segmentation fault
J’ai bien un seg fault mais je retombe sur le shell du ssh sans pouvoir intéragir avec le programme. Lorsque je copie le programme dans tmp et je le lance avec le meme payload, j’obtiens bien un shell :
[+] The pathname is : /1�Ph//shh/bin��PS��
�����������������������������������������������������������������������������������������������������������������������������������������
$ id
uid=1111(app-systeme-ch11) gid=1111(app-systeme-ch11) groups=1111(app-systeme-ch11),100(users)
$
Mais évidemment sans le setuid. Comment se fait il que l’un me drop un shell et pas l’autre ? (leur seul différence étant le setuid et leur localisation)
Par ailleurs lorsque je lance avec strace, il y a aussi un shell à la fin de l’execution mais sans avoir le setuid.
Pour résumer :
./ch11 /tmp/exploit -> pas de shell
/tmp/ch11 /tmp/exploit -> shell mais sans privilege
strace ./ch11 /tmp/exploit -> shell mais sans privilege
Quelqu’un saurait il m’éclairer ?
Merci !!
App - System ELF x86 - Stack buffer and integer overflow binary
Le chemin utilisé pour lancer le binaire est présent dans le PATH et donc sur la pile. Ca peut donc décaller l’adresse de retour. A toi de voir comment tu peux réajuster ou bien faire autrement ;).
App - System ELF x86 - Stack buffer and integer overflow binary
Effectivement ! Merci !