ToRat is a Cross Platform Remote Administration tool written in Go using Tor as its transport mechanism currently supporting Windows, Linux, MacOS clients.
How to?
TL;DR
git clone https://github.com/lu4p/ToRat.git
cd ./ToRat
sudo docker build . -t torat
sudo docker run -it -v “$(pwd)”/dist:/dist_ext torat
Prerequisites
Install
git clone https://github.com/lu4p/ToRat.git
cd ./ToRat
sudo docker build . -t torat
sudo docker run -it -v “$(pwd)”/dist:/dist_ext torat
sudo chown $USER dist/ -R
cd dist/dist/client/
./client_linux
In your Server shell you should now see something like [+] New Client H9H2FHFuvUs9Jz8U connected! You can now select this client by running select in the Server Shell which will give you a nice interactive chooser for the client you want to connect to. After you choose a client you drop in an interactive shell on the client system.
Notes
Contents of ToRat/dist after docker run
$ find ./dist
./dist/
./dist/dist
./dist/dist/client
./dist/dist/client/client_linux # linux client binary
./dist/dist/client/client_windows.exe # windows client binary
./dist/dist/server
./dist/dist/server/key.pem # tls private-key
./dist/dist/server/banner.txt # banner
./dist/dist/server/cert.pem # tls cert
./dist/dist/server/ToRat_server # linux server binary
Current Features
Server Shell
| Command | Info |
|---|---|
| select | Select client to interact with |
| list | list all connected clients |
| alias | Select client to give an alias |
| cd | change the working directory of the server |
| help | lists possible commands with usage info |
| exit | exit the server |
Shell after selection of a client
| Command | Info |
|---|---|
| cd | change the working directory of the client |
| ls | list the content of the working directory of the client |
| shred | delete files/ directories unrecoverable |
| shredremove | same as shred + removes the shredded files |
| screen | take a Screenshot of the client |
| cat | view Textfiles from the client including .docx, .rtf, .pdf, .odt |
| alias | give the client a custom alias |
| down | download a file from the client |
| up | upload a file to the client |
| escape | escape a command and run it in a native shell on the client |
| reconnect | tell the client to reconnect |
| help | lists possible commands with usage info |
| exit | background current session and return to main shell |
| else | the command will be executed in a native shell on the client |
Upcoming Features
Preview
Imagine if you had a super-powered assistant who could automatically handle all the boring, repetitive…
Managing files efficiently is a core skill for anyone working in Linux, whether you're a…
Open ports act as communication endpoints between your Linux system and the outside world. Every…
Introduction In today’s cyber threat landscape, protecting endpoints such as computers, smartphones, and tablets from…
Introduction In today's fast-paced cybersecurity landscape, incident response is critical to protecting businesses from cyberattacks.…
Artificial Intelligence (AI) is changing how industries operate, automating processes, and driving new innovations. However,…