mathishp33/remote-administration-tool
GitHub: mathishp33/remote-administration-tool
一个基于 Python 的远程管理工具(RAT)示例,提供远程控制与取证研究能力。
Stars: 6 | Forks: 0
# 远程管理工具(RAT)
本软件仅供授权使用。未经同意的访问或监控在大多数司法管辖区属于非法且不道德的行为。
# 用法
→ 修改客户端文件中的 IP 地址变量以匹配你的服务器/PC IP
↳ 同时启动 main.py 和 client.py 脚本(在客户端文件中设置服务器 IP)
↳ 点击“连接”
↳ 然后点击“新连接”
↳ 然后点击“开始搜索”
↳ 接着点击你想要连接的客户端
↳ 最后点击“提交连接”
→ 现在你可以通过主窗口的命令行进行通信!
# 需求
在运行 main.py 和 client.py 之前,请确保已安装以下依赖:
- mss
- pynput
- opencv-python
- numpy
- pyautogui
- requests
你可以使用 pip 安装:
```
pip install mss pynput psutil opencv-python numpy pyautogui requests
```
# 功能
🛠️ CMD 命令
🗑️ 删除文件/文件夹
📂 移动文件/文件夹
🌐 文件上传/下载
⚙️ 执行文件
🧾 日志记录
🗃️ 远程压缩/解压文件/文件夹
🖥️ 获取系统信息(操作系统、IP、CPU、内存)
📸 屏幕截图
👁️ 屏幕监控
⌨️ 键盘记录
🔒 SSL 加密通信
🧬 客户端/服务器基础认证
⛔ 防止重复客户端
📁 文件资源管理器 GUI
📅 任务调度
# 命令
注释:
```
#this a comment
//this is also a comment
```
更改目录:
```
cd ..
cd my_folder
cd "my folder"
```
获取当前路径:
```
cwd
```
获取当前路径/目标目录中的所有文件/文件夹:
```
dir
dir my_folder
dir "my folder"
```
重命名文件/文件夹:
```
rename my_file.txt "my file.txt"
rename C:/folder C:/folder2
```
创建新目录:
```
mkdir "my folder"
mkdir myfolder
mkdir C:/myfolder2
```
批量创建目录:
```
makedirs "folder/folder2/folder 3"
```
删除指定文件:
```
removefile "my file.odt"
removefile mymusic.mp3
```
删除指定目录:
```
removedir "my folder"
removedir myfolder
```
检查指定路径是否存在:
```
ispath C:/folder/folder2
ispath "C:/folder 3"
```
检查指定路径是否为目录:
```
isdir "folder 1/file.txt"
isdir folder2/my_folder
```
从客户端下载文件到 /ressources/received_files/ 目录:
```
getfile "myfile 2.txt"
getfile zipped_folder.zip
```
上传文件到客户端当前目录:
```
sendfile C:/folder/folder2/file.txt
```
压缩文件/文件夹:
```
zip "folder 1"
zip file.odt
```
解压压缩文件/文件夹:
```
unzip "folder 1"
unzip file.odt
```
将指定文件/文件夹移动到目标位置:
```
move "folder/file 3.txt" folder/folder2
move folder2/myfolder folder/myfolder2
```
复制并粘贴指定文件:
```
copyfile "folder 1/file.txt" "C:/folder 3"
copyfile my_folder/file2.txt "folder 3/my folder"
```
复制并粘贴指定文件夹:
```
copydir "folder 1" "C:/folder 3"
copydir my_folder "my folder"
```
截取所有屏幕或指定屏幕的截图,并保存到 /ressources/received_screenshots/ 目录:
```
screenshot
screenshot 0
screenshot 1
```
调用新命令并执行指定命令:
```
cmd dir /s
cmd ping www.google.com
cmd cd "my folder"
cmd del my_file.txt
```
开启/关闭、获取并清空键盘记录:
```
keylogger on
keylogger off
keylogger get
keylogger clear
```
获取所有连接信息、客户端当前磁盘和 PC 信息(操作系统、CPU、内存、磁盘、位置):
```
info
```
运行指定文件:
```
execute myfile.txt
execute "my file2.doc"
```
打印指定文本:
```
print
```
获取鼠标位置:
```
mousepos
```
点击指定像素位置的指定按钮:
```
mouseclick left 100 400
mouseclick
mouseclick right 400 800 1 0.0
# args are : button(left, right, middle)=left, x(int)=None, y(int)=None, clicks(int)=1, interval(float)=0.0
```
按住鼠标点击:
```
mousedown right 400 600
mousedown
# args are : button(left, right, middle)=left, x(int)=None, y(int)=None
```
释放鼠标点击:
```
mouseup right 400 600
mouseup
# args are : button(left, right, middle)=left, x(int)=None, y(int)=None
```
按住点击并拖动到偏移位置:
```
mousedrag 100 400 1 right
mousedrag 200 500
# args are : x(int), y(int), duration(float)=0.0, button(left, right, middle)=left
```
按住点击并拖动到指定位置:
```
mousedragto 100 400 1 right
mousedragto 200 500
# args are : x(int), y(int), duration(float)=0.0, button(left, right, middle)=left
```
将鼠标移动到指定位置的偏移量:
```
mousemove 100 400 2
mousemove 200 500
# args are : x(int), y(int), duration(float)=0.0
```
将鼠标移动到指定位置:
```
mousemoveto 100 400 2
mousemoveto 200 500
# args are : x(int), y(int), duration(float)=0.0
```
使用客户端键盘输入文本:
```
write "hello world !"
write "['h', 'backspace', 'e']" 0.2
write ["h","backspace","e"]
# args are : keys(str, str(list)), interval(float)=0.0
```
可用按键列表:
```
['\t', '\n', '\r', ' ', '!', '"', '#', '$', '%', '&', "'", '(', ')', '*', '+', ',', '-', '.', '/', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ':', ';', '<', '=', '>', '?', '@', '[', '\\', ']', '^', '_', '`', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k',
'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '{', '|', '}', '~', 'accept', 'add', 'alt', 'altleft', 'altright', 'apps', 'backspace', 'browserback', 'browserfavorites', 'browserforward', 'browserhome', 'browserrefresh', 'browsersearch',
'browserstop', 'capslock', 'clear', 'convert', 'ctrl', 'ctrlleft', 'ctrlright', 'decimal', 'del', 'delete', 'divide', 'down', 'end', 'enter', 'esc', 'escape', 'execute', 'f1', 'f10', 'f11', 'f12', 'f13', 'f14', 'f15', 'f16', 'f17', 'f18', 'f19', 'f2', 'f20', 'f21',
'f22', 'f23', 'f24', 'f3', 'f4', 'f5', 'f6', 'f7', 'f8', 'f9', 'final', 'fn', 'hanguel', 'hangul', 'hanja', 'help', 'home', 'insert', 'junja', 'kana', 'kanji', 'launchapp1', 'launchapp2', 'launchmail', 'launchmediaselect', 'left', 'modechange', 'multiply',
'nexttrack',
'nonconvert', 'num0', 'num1', 'num2', 'num3', 'num4', 'num5', 'num6', 'num7', 'num8', 'num9', 'numlock', 'pagedown', 'pageup', 'pause', 'pgdn', 'pgup', 'playpause', 'prevtrack', 'print', 'printscreen', 'prntscrn', 'prtsc', 'prtscr', 'return', 'right', 'scrolllock',
'select', 'separator', 'shift', 'shiftleft', 'shiftright', 'sleep', 'space', 'stop', 'subtract', 'tab', 'up', 'volumedown', 'volumemute', 'volumeup', 'win', 'winleft', 'winright', 'yen', 'command', 'option', 'optionleft', 'optionright']
```
按下指定按键:
```
press g
press "['h', 'backspace', 'd']"
press ["h","backspace","e"]
# args are : keys(str, str(list)), interval(float)=0.0
```
按顺序按下并反向释放指定按键:
```
hotkey g
hotkey "['h', 'backspace', 'd']"
hotkey ["h","backspace","e"]
# args are : keys(str, str(list))
```
按住指定按键:
```
keydown h
keydown "alt"
```
释放指定按键:
```
keyup h
keyup "alt"
```
显示超时时间为 100 秒的弹出窗口:
```
alert "you are being watched !" "Warning !"
alert :) HELLO
# args are : text(str), title(str)
```
获取当前屏幕分辨率:
```
screensize
```
关闭客户端:
```
close
```
标签:APT, ESC4, GUI, OSINT, RAT, SSL通信, 任务调度, 后门, 命令行控制, 安全测试, 屏幕监控, 截图捕获, 授权使用, 攻击性安全, 文件上传下载, 文件操作, 监控软件, 系统信息获取, 网络通信, 认证机制, 远程控制, 远程文件管理, 远程管理工具, 逆向工具, 键盘记录, 间谍软件, 防重复客户端, 非法监控