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
The groupdel command in Linux removes a group from the system. It deletes the group's entry from /etc/group and /etc/gshadow,…
The wc command in Linux counts lines, words, characters, and bytes in files or standard input. It…
The top command in Linux provides a real-time view of running processes and system resource usage. From…
The usermod command in Linux modifies existing user account attributes. You can use it to manage group…
The sort command in Linux reads lines from files or standard input and writes them to standard…
The wall command in Linux sends a message to the terminals of all currently logged-in users. The…