Reverse shell
Le reverse shell (shell inversé) - appelé aussi reverse tunnel (tunnel inversé) - est une technique informatique qui permet de rediriger sur un ordinateur local l'entrée et la sortie d'un shell vers un ordinateur distant, au travers d'un service capable d'interagir entre les deux ordinateurs. L'un des avantages de cette technique est de rendre un shell local accessible depuis ce serveur distant sans être bloqué par un pare-feu[1].
Description
En informatique, le shell est le moyen le plus simple d'interagir avec le système d'exploitation. Sur Microsoft Windows, selon les versions, le shell est appelé CMD.EXE ou COMMAND.COM. Sur Linux ou Unix, il existe une grande variété de shells : bash, ksh, etc. Un shell accepte des commandes tapées à partir d'une invite de commandes (l'entrée standard) et les exécute, généralement en temps réel, et affiche des résultats des traitements sur la sortie standard, généralement un écran.
Un reverse shell consiste à configurer le shell pour s'exécuter (en général en mode silencieux, sans avertir l'utilisateur de l'ordinateur) en acceptant en entrée des commandes qu'il va lui-même récupérer depuis un système distant et en redirigeant sa sortie vers ce même système ; par ce moyen, l'opérateur du système distant est en mesure d'utiliser l'ordinateur local comme s'il était présent physiquement à ses commandes[2].
Références
- (en) Stuart McClure et Joel Scambray, 'Insideout security' pays attention to your revealing, vulnerable outbound traffic, InfoWorld, , 49 p. (lire en ligne)
- Harold F. Tipton et Micki Krause, Information Security Management Handbook, CRC Press, , 6e Ă©d. (ISBN 978-1-4200-1358-0), p. 2839.
Bibliographie
- (en) Jan Kanclirz, Netcat Power Tools, Burlington, MA, Syngress, (ISBN 978-1-59749-257-7, lire en ligne), p. 170
- (en) Yann Cam, « ASafety » Reverse-shell one-liner Cheat Sheet », sur www.asafety.fr