
PyRat, ein RAT auf Basis von python xmlrpc
PyRat ist ein Open-Source-Projekt für Fernsteuerung (RAT) auf Basis von Pythons XmlRPC, einschließlich Client und Server (auch Kontrollseite genannt, im Folgenden gemeinsam als Server bezeichnet).
Hinweis: Das Projekt dient ausschließlich dem technischen Austausch. Bitte nicht für kommerzielle oder illegale Zwecke verwenden. Bei rechtlichen Streitigkeiten übernehme ich keinerlei Verantwortung!
Client
> python .\pyratcli.py localhost 80
Server
> python pyratsvr.py 80
--------------------Python RAT-----------------------
--------------------anhkgg---------------------------
--------------------Copyright (c) 2018---------------
软件仅供技术交流,请勿用于商业及非法用途,如产生法律纠纷与本人无关!
--------------------Task command---------------------
--|(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 >
Sobald der Client online geht, wird der Server benachrichtigt und setzt den zuletzt online gekommenen Client automatisch als Standard-Ziel für Operationen.
cmd >test-3333333 is online.
Auto set target test-3333333
Mit help oder h können alle vom Server unterstützten Befehle aufgelistet werden.
cmd >help
(l)ist: list all clients
(a)live: list alive clients
(k)ill: delete client
(s)elect: select target client
(p)rint: show current client
(c)mdshell: create a cmdshell, type q to exit cmdshell
(n)ew: update client version
(d)ownload: let client download a file
(r)unexec: let client run a exe
(u)pload: upload a file to client
(t)erminate:terminate process
(q)uit: quit server
Der Server speichert Basisinformationen der Clients sowie Aufgabeninformationen in sqlite. Über Befehle können Clients verwaltet werden.
//枚举所有客户端
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 >
//枚举在线客户端
cmd >a
no alive client
//删除客户端数据库记录或者卸载客户端
cmd >k
target cid(or ALL):test-3333333
Do you want to uninstall client?(Y/N)
Wenn ein Client gesteuert werden soll, muss das Ziel mit select oder s ausgewählt werden.
cmd >c //想进入cmdshell,提示无目标
Please first set target client by (s)elect command.
cmd >s //设置目标
client_id:test-3333333
Set target client: test-3333333
//查看当前目标
cmd >p
test-3333333
Mit cmdshell oder c gelangt man in die cmdshell. Außer durch aktives Eingeben von q bleibt man dauerhaft im Arbeitsverzeichnis der cmdshell.
Die cmdshell merkt sich das Arbeitsverzeichnis, z. B. cd c:\. Der nächste Vorgang wird in diesem Verzeichnis ausgeführt, wodurch eine cmdshell ähnlich einer Pipeline-Verbindung realisiert wird.
Zudem kann das Starten von Prozessen über die cmdshell in manchen Fällen die Rückgabe von Nachrichten blockieren. Daher wird stattdessen runexec empfohlen.
cmd >c
RAT-CMD > dir
RAT-CMD > test-3333333 do cmdshell(195) dir True
驱动器 D 中的卷是 gitrepo
卷的序列号是 EB2F-5AC0
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 个文件 10,930 字节
2 个目录 647,836,565,504 可用字节
RAT-CMD > ver
RAT-CMD > test-3333333 do cmdshell(196) ver True
Microsoft Windows [版本 10.0.16299.309]
RAT-CMD > tasklist
RAT-CMD > test-3333333 do cmdshell(197) tasklist True
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
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 do 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 do cmdshell(201) taskkill /IM Calculator.exe True
成功: 给进程 "Calculator.exe" 发送了终止信号,进程的 PID 为 21656。
RAT-CMD > taskkill /PID 21656
RAT-CMD > test-3333333 do cmdshell(202) taskkill /PID 21656 True
成功: 给进程发送了终止信号,进程的 PID 为 21656。
Datei-Upload und -Download werden unterstützt. Beim Download können sowohl Netzwerkdateien als auch lokale Dateien des Servers heruntergeladen werden. Vorläufig wird nur der Upload und Download einzelner Dateien unterstützt.
cmd >d
url(type N to download local file):N //选择下载本地文件
local file:db.db
dest path:db.db
cmd >test-3333333 do download(203) local db.db db.db True
download success
cmd >d
url(type N to download local file):https://dl.360safe.com/360/inst.exe //下载网络文件
dest path:inst.exe
cmd >test-3333333 do download(204) net https://dl.360safe.com/360/inst.exe inst.exe True
download success
cmd >r
run target:inst.exe
runexec inst.exe
cmd > t
Select type(name/pid):name
process name:notepad.exe
cmd >test-3333333 do terminate(212) name notepad.exe True
成功: 给进程 "notepad.exe" 发送了终止信号,进程的 PID 为 25416。
Wenn der Client unter Linux läuft und der Server unter Windows, kann es bei chinesischen Zeichen zu verstümmelter Ausgabe (Mojibake) kommen, da die beiden Plattformen unterschiedliche Kodierungen verwenden. Dies wurde vorerst nicht behandelt.
