Detect DNS tunneling and data exfiltration by analyzing Zeek dns.log for high-entropy subdomain queries, excessive query volume, long query lengths, and unusual DNS record types indicating covert channel communication.
Automate repetitive workflows and reduce manual effort
Example: Generate reports, summarize documents, draft communications
Save 3-5 hours per week on routine tasks
Learn new skills, understand complex topics, get expert guidance
Example: Explain concepts, provide examples, suggest learning resources
Accelerate learning and skill development by 2x
Enhance output quality through reviews, suggestions, and refinements
Example: Review drafts, suggest improvements, catch errors
Improve work quality by 30-40% with less effort
Time estimate: 15-45 minutes depending on use case complexity
Prerequisites
Submit your Claude Code skill and start earning
epx add mukul975/Anthropic-Cybersecurity-Skills/hunting-for-dns-tunneling-with-zeekCompatible with
Supported agents
| name | hunting-for-dns-tunneling-with-zeek |
| description | Detect DNS tunneling and data exfiltration by analyzing Zeek dns.log for high-entropy subdomain queries, excessive query volume, long query lengths, and unusual DNS record types indicating covert channel communication. |
| domain | cybersecurity |
| subdomain | threat-hunting |
| tags | - threat-hunting - dns-tunneling - zeek - data-exfiltration - covert-channel - mitre-t1071-004 - network-monitoring |
| version | '1.0' |
| author | mahipal |
| license | Apache-2.0 |
| d3fend_techniques | - Application Protocol Command Analysis - Network Isolation - Network Traffic Analysis - Client-server Payload Profiling - DNS Traffic Analysis |
| nist_csf | - DE.CM-01 - DE.AE-02 - DE.AE-07 - ID.RA-05 |
| Concept | Description |
|---|---|
| T1071.004 | Application Layer Protocol: DNS |
| T1048.003 | Exfiltration Over Alternative Protocol: DNS |
| T1572 | Protocol Tunneling |
| Shannon Entropy | Measure of randomness in subdomain strings |
| Zeek dns.log | DNS query/response metadata |
| RITA | Automated DNS tunneling detection from Zeek logs |
| iodine | IPv4-over-DNS tunneling tool |
| dnscat2 | DNS-based command-and-control tool |
| DNSExfiltrator | Data exfiltration tool using DNS requests |
@load base/protocols/dns
module DNSTunnel;
export {
redef enum Notice::Type += { DNSTunnel::Long_DNS_Query };
const query_length_threshold = 50 &redef;
const query_count_threshold = 100 &redef;
}
event dns_request(c: connection, msg: dns_msg, query: string, qtype: count, qclass: count) {
if ( |query| > query_length_threshold ) {
NOTICE([$note=DNSTunnel::Long_DNS_Query,
$msg=fmt("Long DNS query detected: %s (%d chars)", query, |query|),
$conn=c]);
}
}
index=zeek sourcetype=bro_dns
| rex field=query "(?<subdomain>[^.]+)\.(?<basedomain>[^.]+\.[^.]+)$"
| stats count dc(subdomain) as unique_subs avg(len(query)) as avg_len max(len(query)) as max_len by src basedomain
| where count > 100 AND (unique_subs > 50 OR avg_len > 40)
| sort -unique_subs
index=zeek sourcetype=bro_dns
| rex field=query "^(?<subdomain>[^.]+)"
| where len(subdomain) > 20
| eval char_count=len(subdomain)
| stats count dc(query) as unique_queries avg(char_count) as avg_sub_len by src query_type_name basedomain
| where unique_queries > 30 AND avg_sub_len > 25
| sort -unique_queries
rita import /path/to/zeek/logs dataset_name
rita show-dns-fqdn-ips-long dataset_name
rita show-exploded-dns dataset_name
rita show-dns-tunneling dataset_name --csv > dns_tunnel_results.csv
aGVsbG8gd29ybGQ.exfil.attacker.com), sent as A or TXT queries. Each query carries ~63 bytes of data.Hunt ID: TH-DNSTUNNEL-[DATE]-[SEQ]
Source IP: [Internal IP]
Source Host: [Hostname]
Target Domain: [Base domain]
Query Count: [Total queries in window]
Unique Subdomains: [Count]
Avg Query Length: [Characters]
Max Query Length: [Characters]
Subdomain Entropy: [Bits per character]
Primary Record Type: [A/TXT/CNAME/NULL]
Data Volume Estimate: [Bytes exfiltrated]
Risk Level: [Critical/High/Medium/Low]
AI-first code editor with Composer
Before installing skills in Cursor, ensure your development environment meets these requirements:
node --versionhunting-for-dns-tunneling-with-zeekExecute the skills CLI command in your project's root directory to begin installation:
epx add mukul975/Anthropic-Cybersecurity-Skills/hunting-for-dns-tunneling-with-zeekFetches hunting-for-dns-tunneling-with-zeek from mukul975/Anthropic-Cybersecurity-Skills and configures it for Cursor.
The CLI shows a list of agents. Use arrow keys and space to select Cursor:
Confirm successful installation by checking the skill directory location:
.cursor/skills/hunting-for-dns-tunneling-with-zeek
Restart Cursor to activate hunting-for-dns-tunneling-with-zeek. Access via /hunting-for-dns-tunneling-with-zeekin your agent's command palette.
Learn more:View source on GitHubSkills CLI docsAbout CursorWhat are agent skills?
Steps
Common Pitfalls
✓ Do
✗ Don't
💡 Pro Tips
✓ Use when
Use when skill capabilities match your task, clear ROI on time saved, and you can validate outputs. Best for repetitive tasks, learning, and quality improvement.
✗ Avoid when
Avoid when task requires deep expertise you can't validate, involves sensitive decisions, or when learning process is more valuable than speed of completion.
performing-initial-access-with-evilginx3
mukul975/Anthropic-Cybersecurity-Skills · performing-initial-access-with-evilginx3 · same repo
performing-cryptographic-audit-of-application
mukul975/Anthropic-Cybersecurity-Skills · performing-cryptographic-audit-of-application · same repo
performing-steganography-detection
mukul975/Anthropic-Cybersecurity-Skills · performing-steganography-detection · same repo
implementing-soar-playbook-with-palo-alto-xsoar
mukul975/Anthropic-Cybersecurity-Skills · implementing-soar-playbook-with-palo-alto-xsoar · same repo
triaging-vulnerabilities-with-ssvc-framework
mukul975/Anthropic-Cybersecurity-Skills · triaging-vulnerabilities-with-ssvc-framework · same repo
performing-purple-team-atomic-testing
mukul975/Anthropic-Cybersecurity-Skills · performing-purple-team-atomic-testing · same repo
Solid pick for teams standardizing on skills: hunting-for-dns-tunneling-with-zeek is focused, and the summary matches what you get after install.
hunting-for-dns-tunneling-with-zeek reduced setup friction for our internal harness; good balance of opinion and flexibility.
We added hunting-for-dns-tunneling-with-zeek from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
Keeps context tight: hunting-for-dns-tunneling-with-zeek is the kind of skill you can hand to a new teammate without a long onboarding doc.
hunting-for-dns-tunneling-with-zeek is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
I recommend hunting-for-dns-tunneling-with-zeek for anyone iterating fast on agent tooling; clear intent and a small, reviewable surface area.
hunting-for-dns-tunneling-with-zeek is among the better-maintained entries we tried; worth keeping pinned for repeat workflows.
Keeps context tight: hunting-for-dns-tunneling-with-zeek is the kind of skill you can hand to a new teammate without a long onboarding doc.
Useful defaults in hunting-for-dns-tunneling-with-zeek — fewer surprises than typical one-off scripts, and it plays nicely with `npx skills` flows.
We added hunting-for-dns-tunneling-with-zeek from the explainx registry; install was straightforward and the SKILL.md answered most questions upfront.
showing 1-10 of 37