文章总结: 本文分享利用火绒杀毒软件与自制的DNS转发程序实现域名防火墙的思路。作者使用Go语言编写UDP转发程序,将DNS请求转发至上游服务器,并利用火绒拦截挖矿木马域名。通过压测验证了高并发下的性能,QPS达1700,P50延迟约10ms。文章强调思路分享,并介绍了QPS、P50、P95、P99等性能指标的意义。可操作建议是借鉴此思路,结合现有安全工具构建轻量级防护方案。 综合评分: 81 文章分类: 网络安全,实战经验,安全工具,威胁情报,恶意软件
手搓一个 DNS 域名防火墙
原创
hyang0 hyang0
生有可恋
2026年7月29日 05:59 湖北
在小说阅读器读本章
去阅读
一次偶然的机会发现Windows下的火绒有拦截挖矿木马的功能,当时灵光乍现:可以把火绒当成域名防火墙呀。
原理:在 Windows 下实现一个 DNS 转发程序,自身不提供 DNS 服务,只负责转发到上级服务器,比如:114.114.114.114、8.8.8.8
在转发DNS请求的过程中,如果火绒发现域名中含挖矿木马地址就会拦截请求。
火绒效果如下:
十几分钟已经拦截了七八个盗号木马的域名,这些请求都是来自医院内的电脑的,并发有两万多,使用负载均衡设备分了两千多的流量给我做测试。
这个udp转发程序的提示词如下:
❯ 使用Go语言实现一个跨平台的UDP转发的程序。可以配置上游转发地址,比如 8.8.8.8:53 要求实现并发。当部分请求被拦截时,不影响其他的请求。比如请求的DNS域名被火绒等杀毒软件拦截,不应该影响正常的域名解析。被拦截的直接放弃。
尽量使用更聪明的模型去实现,以前也写过类似的程序,但火绒上来就把进程杀掉了。或者火绒一拦截,程序就卡住了,连正常的 DNS 请求都不响应了。
在正式使用前,又用 AI 写了一个 DNS 压测工具,测试高并发下的请求质量。
使用了其中一个木马域名进行压测,看能否都防下来,实际效果不错,30秒300个请求全被拦下来了。正常请求的 QPS 能达到 1700,P50 在10ms 左右。
通过做压测了解到 QPS、P50、P95、P99 等指标的意义。QPS 表示每秒响应的请求数,QPS 2000 表示1秒可以响应2000次请求。QPS这个指标很重要,目前我们医院全网的 DNS 并发是两万,也就是需要10台DNS服务器分摊负载才能顶得住。
P50、P95、P99 是延迟分位数(Percentile)指标,用于衡量请求响应时间的分布情况。
- P50 表示:50%的请求响应时间≤此值 ,它反映的是”典型用户体验”。
- P95 表示:95%的请求响应时间≤此值 ,它反映的是长尾上限,多数慢请求的边界。
- P99 表示:99%的请求响应时间≤此值,它反映的是极端长尾,最慢 1% 请求的边界。
不用平均值的原因是平均值会被极端值拉高,掩盖真实分布。比如 100 次请求中 99 次 10ms,1 次 10s,平均值 ≈ 110ms——这个数字对评估用户体验毫无意义,而 P50=10ms 准确反映了绝大多数用户的实际感受。
P50 + P99 兼顾典型体验与极端长尾
P95 :SLA / SLO 中常见的承诺阈值(如”95% 请求在 100ms 内”)
经过半天的拦截,火绒拦截到的木马地址如下:
提取过滤加去重后,木马网址清单如下:
AI 时代到来,分享代码意义已经不大。这里仅分享思路,权当抛砖引玉。
全文完。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:生有可恋 hyang0 hyang0《手搓一个 DNS 域名防火墙》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论