App - Système

vendredi 29 mai 2020, 03:43  #1
App - System ELF x86 - Stack buffer and integer overflow binary
leseminariste
  • 7 posts

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 !!

dimanche 31 mai 2020, 19:41  #2
App - System ELF x86 - Stack buffer and integer overflow binary
Cerveza
  • 30 posts

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 ;).

lundi 1er juin 2020, 20:30  #3
App - System ELF x86 - Stack buffer and integer overflow binary
leseminariste
  • 7 posts

Effectivement ! Merci !