by sensepost

sensepost / DNS-Shell

DNS-Shell is an interactive Shell over DNS channel

429 Stars 120 Forks Last release: Not found 3 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:


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.

Understanding DNS-Shell

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.

Using DNS-Shell

Running DNS-Shell is relatively simple

DNS-Shell supports two mode of operations direct and recursive modes:

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.