
PyRat, un RAT tramite python xmlrpc
PyRat, progetto open source di controllo remoto basato su Python XmlRPC, include client e server (chiamato anche pannello di controllo, successivamente indicato come server).
Dichiarazione: il progetto è solo per scambio tecnico, non utilizzarlo per scopi commerciali o illegali. Qualsiasi controversia legale derivante non è di mia responsabilità!
Client
> python .\pyratcli.py localhost 80
Server
> python pyratsvr.py 80
--------------------Python RAT-----------------------
--------------------anhkgg---------------------------
--------------------Copyright (c) 2018---------------
Software solo per scambio tecnico, non utilizzare per scopi commerciali o illegali. Qualsiasi controversia legale non è di mia responsabilità!
--------------------Comandi attività---------------------
--|(l)ist (a)live (k)ill (s)elect (p)rint (c)mdshell (n)ew (d)ownload (r)unexec (u)pload (t)erminate (q)uit (h)elp|--
cmd >
Quando il client si collega, il server lo notifica e imposta automaticamente il nuovo client come destinazione predefinita.
cmd >test-3333333 è online.
Destinazione automatica impostata su test-3333333
help o h elenca tutti i comandi supportati dal server.
cmd >help
(l)ist: elenca tutti i client
(a)live: elenca i client attivi
(k)ill: elimina client
(s)elect: seleziona client di destinazione
(p)rint: mostra client corrente
(c)mdshell: avvia una cmdshell, digita q per uscire
(n)ew: aggiorna versione client
(d)ownload: fa scaricare un file al client
(r)unexec: fa eseguire un exe al client
(u)pload: carica un file sul client
(t)erminate:termina processo
(q)uit: esci dal server
Il server utilizza SQLite per salvare le informazioni di base dei client e le attività, gestibili tramite comandi.
// Elenca tutti i client
cmd >l
test-3333333 offline 2018-03-20 22:46:59!
id | client_id | version | localip | remoteip | username | osversion | firsttime | lasttime | status
10 | test-3333333 | 0.1.0 | 192.168.149.1 | 114.245.47.12 | test | Windows10.0.16299 | 2018-03-17 12:39:56 | 2018-03-20 22:46:59 | 0
cmd >
// Elenca client attivi
cmd >a
nessun client attivo
// Elimina record client dal database o disinstalla client
cmd >k
cid destinazione (o ALL): test-3333333
Vuoi disinstallare il client? (Y/N)
Per controllare un client, è necessario selezionarlo con select o s.
cmd >c // Vuole entrare in cmdshell, nessuna destinazione
Prima imposta un client di destinazione con il comando (s)elect.
cmd >s // Imposta destinazione
client_id:test-3333333
Client di destinazione impostato: test-3333333
// Visualizza destinazione corrente
cmd >p
test-3333333
Con cmdshell o c si entra nella cmdshell. Si rimane nella directory operativa della cmdshell finché non si digita q.
La cmdshell ricorda la directory di lavoro, ad esempio se si fa cd c:\, la prossima operazione avverrà in quella directory, realizzando una cmdshell simile a una pipeline.
Inoltre, se si avvia un processo tramite cmdshell, alcuni processi potrebbero bloccare la risposta dei messaggi, quindi non è consigliato; utilizzare runexec come alternativa.
cmd >c
RAT-CMD > dir
RAT-CMD > test-3333333 esegue cmdshell(195) dir True
Il volume nell'unità D è gitrepo
Il numero di serie del volume è EB2F-5AC0
Directory di D:\PyRat\client
2018/02/24 09:40 <DIR> .
2018/02/24 09:40 <DIR> ..
2018/03/20 22:46 4,919 pyratcli.py
2018/03/20 23:01 28 cmd.log
2018/03/17 12:39 1,322 pyratfc.py
2018/03/17 11:19 2,500 osver.py
2018/03/17 12:39 2,161 pyratfc.pyc
5 file 10,930 byte
2 directory 647,836,565,504 byte disponibili
RAT-CMD > ver
RAT-CMD > test-3333333 esegue cmdshell(196) ver True
Microsoft Windows [Versione 10.0.16299.309]
RAT-CMD > tasklist
RAT-CMD > test-3333333 esegue cmdshell(197) tasklist True
Nome immagine PID Nome sessione Sess# Mem. utilizzo
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 8 K
System 4 Services 0 3,564 K
smss.exe 360 Services 0 412 K
csrss.exe 492 Services 0 1,700 K
Calculator.exe 21656 RDP-Tcp#85 1 56,772 K
RAT-CMD > tasklist |findstr Cal
RAT-CMD > test-3333333 esegue cmdshell(200) tasklist |findstr Cal True
Calculator.exe 21656 RDP-Tcp#85 1 51,856 K
RAT-CMD > taskkill /IM Calculator.exe
RAT-CMD > test-3333333 esegue cmdshell(201) taskkill /IM Calculator.exe True
Operazione riuscita: segnale di terminazione inviato al processo "Calculator.exe" con PID 21656.
RAT-CMD > taskkill /PID 21656
RAT-CMD > test-3333333 esegue cmdshell(202) taskkill /PID 21656 True
Operazione riuscita: segnale di terminazione inviato al processo con PID 21656.
Supporta upload e download di file. Il download supporta file di rete e file locali del server. Per ora solo upload e download di singoli file.
cmd >d
url (digita N per scaricare file locale):N // Sceglie di scaricare file locale
file locale:db.db
percorso destinazione:db.db
cmd >test-3333333 esegue download(203) locale db.db db.db True
download completato
cmd >d
url (digita N per scaricare file locale):https://dl.360safe.com/360/inst.exe // Scarica file di rete
percorso destinazione:inst.exe
cmd >test-3333333 esegue download(204) net https://dl.360safe.com/360/inst.exe inst.exe True
download completato
cmd >r
esegui destinazione:inst.exe
runexec inst.exe
cmd > t
Seleziona tipo (nome/pid):nome
nome processo:notepad.exe
cmd >test-3333333 esegue terminate(212) nome notepad.exe True
Operazione riuscita: segnale di terminazione inviato al processo "notepad.exe" con PID 25416.
Se il client è in esecuzione su Linux e il server su Windows, i caratteri cinesi potrebbero mostrarsi corrotti a causa delle diverse codifiche delle due piattaforme. Al momento non gestito.
