Edit : l’ensemble des commandes one-liner sont à présents centralisées au sein de la page Reverse-shell oneliner Cheat Sheet.
Dans le cadre d’audit de sécurité, d’évaluation et de “pentesting“, il peut arriver qu’une vulnérabilité d’exécution de commande soit découverte (RCE – Remote Command Execution). L’auditeur nécessite rapidement de disposer d’un shell complet interactif en fonction de la complexité/difficulté d’exploiter le RCE découvert.
Certains RCE sont soumis à des filtres de caractères, de la sanitization de données entrantes ou bien encore à l’exécution de commande unique. L’évaluateur tente dans un premier temps de créer un nouveau compte système, d’ajouter une nouvelle clé SSH ou un fichier .rhosts pour se connecter à distance sur la machine. Si de telles actions s’avèrent infructueuses, le pentesteur peut s’orienter vers l’obtention d’un reverse-shell interactif au travers du RCE découvert.
Cet article qui est une compilation de diverses sources et d’analyses/tests personnels permet de faciliter la récupération d’un reverse-shell, le tout via des commandes uniques et “one-line”.
L’obtention d’un reverse-shell dépend fortement de la distribution/OS déployée sur la machine cible. Pour l’ensemble des exemples qui suivent, ceux-ci sont compatible Windows/Linux en remplaçant “/bin/sh -i” par “cmd.exe” et vice-versa.
Edit du 11/11/2015 :
Cet article a donné naissance à un “cheat-sheet” à part entière, qui sera maintenu dans le temps avec de nouveaux vecteurs et syntaxes. Pour le consulter, suivre le lien qui suit.
Reverse-shell oneliner Cheat Sheet