Comment upgrader un reverse_shell vers un TTY pleinement interactif

Vous venez d’obtenir l’accès à une machine via un RCE. Magnifique!!!! pour autant tout ne l’est pas. 

En effet, de nombreuses commandes ne fonctionnent pas ou pire encore vous font perdre l’accès au système victime.

Il m’est arrivé très souvent de faire par accident crtl +c et de voir le shell se ferme… Et d’avoir à recommencer les manipulations pour retourner sur la victime.

mettre une photo

Il faut savoir que les commandes suivantes ne fonctionnent pas : 

  • su 
  • mysql ( connexion à une db ) 
  • pas de complétion 
  • pas de touches flèches ( haut, bas, droite, gauche ) 
  • pas d’utilisation de Vim correcte
  • pas de STDERR

Méthode pour l'upgrader

Tout d’abord je vous conseille de recherche quelles versions sont installées sur le système.

Commande : 

whereis python

Ensuite il faut exécuter python -c ‘import pty; pty.spawn(« /bin/bash »)’ selon la version de python trouvé avec la première commande 

Commande :

python3 -c 'import pty; pty.spawn("/bin/bash")'

Le shell est en partie amélioré mais on peut encore faire mieux. On va passer le shell en arrière-plan.

Commande :

ctrl + z 

Maintenant que le reverse_shell est en arrière-plan, et que l’on est revenu sur le shell de notre système. Nous allons faire cette commande : 

stty raw -echo

Aucune réaction ou message. C’est normal. Ensuite, nous allons rappeler notre shell en premier plan.

Commande :

fg

La commande est effectuée à l’aveugle. Elle ne s’affiche pas sur le terminal. En validant par entrée, on se retrouve avec un prompt un tronqué. Il ne fait pas en tenir compte. 

Il faut simplement taper

reset 

Enfin, une dernière commande est nécessaire :

 xterm 

Voilà, c’est terminé. Le shell est interactif à souhait. Vous pouvez faire toutes les commandes que vous souhaitez, et même le redouté ctrl + c

Pour sortir du shell, il faut maintenant faire exit

 

Et après

Eh ben, il n’y a plus qu’a rooté la machine…

Blague à part, il est encore possible d’aller plus loin dans l’amélioration du shell. Mise à part dans certains cas, comme pour tumx, les commandes suivantes ne sont pas obligatoires. 

Modifier le PATH pour bash s’il est manquant : 

export SHELL=bash

Pour afficher le shell avec plus de couleur : 

export TERM=xterm256-color

Changer la taille du shell : 

stty rows  columns