SADDNS
SADDNS: Side Channel Based DNS Cache Poisoning Attack
Install / Use
/learn @seclab-ucr/SADDNSREADME
SADDNS: Side Channel Based DNS Cache Poisoning Attack
Introduction
SADDNS is a tool for launching the DNS cache poisoning attack. It infers the ephemeral port number and TxID by exploiting ICMP global rate limit as a side channel.
How it works
- Scan ephemeral ports opened by the resolver.
- Brute force TxID.
The side channel leverage the global rate limit counter as a shared resource (between the spoofed and non-spoofed IPs), which controls whether an ICMP reply should be sent or not. This gives the off-path attacker the ability to identify whether previous spoofed UDP port probing packets solicited ICMP replies or not.
The following figure shows the detail of inferring ephemeral ports.
Why spoofed IP is necessary for UDP port discovery?
- DNS software like BIND uses
connect()for their northbound query sockets, which renders the port only discoverable by the NS' IP address. - Bypass per-IP ICMP rate limit.
Additional resources
Publication
DNS Cache Poisoning Attack Reloaded: Revolutions with Side Channels
Keyu Man, Zhiyun Qian, Zhongjie Wang, Xiaofeng Zheng, Youjun Huang, Haixin Duan
In Proceedings of ACM Conference on Computer and Communications Security (CCS`20), November 9-13, 2020, Virtual Event, USA.
Website
How to run
The attack tool is implemented in two languages: Go and C.
The files in /saddns_go belong to Go implementation of the attack. This is the major version we maintained and contains many features to facilitate the attack. The author is Keyu Man. The detailed running instruction can be found at saddns_go/Readme.md.
The C version files are in /saddns_c and we are giving credits to our collaborator @wonderqs. The C version has a better performance and for people who are not familiar with Go. The detailed running instruction can be found at saddns_c/README.md.
Questions and issues
Please submit them by opening a new issue.
Related Skills
healthcheck
347.6kHost security hardening and risk-tolerance configuration for OpenClaw deployments
node-connect
347.6kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
prose
347.6kOpenProse VM skill pack. Activate on any `prose` command, .prose files, or OpenProse mentions; orchestrates multi-agent workflows.
frontend-design
108.4kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
