DNS-Shell is an interactive Shell over DNS channel. The server is Python based and can run on any operating system that has python installed, the payload is an encoded PowerShell command.

The Payload is generated when the sever script is invoked and it simply utilizes nslookup to perform the queries and query the server for new commands the server then listens on port 53 for incoming communications, once payload is executed on the target machine the server will spawn an interactive shell.

Once the channel is established the payload will continously query the server for commands if a new command is entered, it will execute it and return the result back to the server.

Also Read – Google makes it easy for AI developers to keep users’ data private


Running it is relatively simple

It supports two mode of operations direct and recursive modes:

  • Perform a git clone from our DNS-shell Github page
  • Its direct mode: sudo python DNS-Shell.py -l -d [Server IP]
  • Its recursive mode: sudo python DNS-Shell.py -l -r [Domain]