Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
DGA-Detection — 使用二元组频率分析的DGA域名检测 | Kitploit
工具/GitHubGitHub/philarkwright/dga-detection
恶意软件分析威胁情报机器学习DNS 分析
GitHubphilarkwright/dga-detection

DGA-Detection

使用二元组频率分析的DGA域名检测

查看仓库
55268年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

DGA-Detection

越来越多的恶意软件采用了先进的规避阻断技术。其中一种最为普遍的技术是使用域生成算法(Domain Generation Algorithms),该算法周期性地生成一组域名用于联系命令与控制服务器(C&C server)。这些 DGA 域名大多生成随机的字母数字字符串,与标准域名的结构显著不同。通过观察某个域名中一组二元组(bigrams)在 Alexa 前 100 万域名中出现的频率,我们能够判断该域名是由随机字符串构成,还是合法的、可读的域名。如果一个域名几乎完全由低频二元组构成(这些二元组在 Alexa 前 100 万域名中很少出现),则该域名更可能是随机字符串。由元音和常量构成的二元组出现频率最高,而字符和整数构成的二元组出现频率最低。该脚本针对 100,000 个 GameoverZeus 域名进行了测试,检测率达到 100%,在 Alexa 前 100 万域名上的误报率为 8%(未应用任何域名白名单)。

本系统已在 Ubuntu 和 RaspberryPi 上测试通过。 目前,我将树莓派配置为使用 Bind9 的 DNS 服务器。 DGA-Detection 脚本也在树莓派上运行并读取请求。 然后对请求进行处理,以判断是否为潜在的 DGA 域名。

安装

root@kitploit:~
git clone https://github.com/philarkwright/DGA-Detection.git  
cd DGA-Detection  
chmod +x install.sh
./install.sh

使用

root@kitploit:~
sudo python dga_detection.py

训练

  • /data/dga_training.txt 文件包含来自 Tinba DGA 的域名。我建议使用此文件训练模型,因为它代表了大多数 DGA 域名的结构,但您也可以根据需要替换为自己的域名集。

测试

  • 在训练完成后,若要针对模型测试域名,请创建一个名为 test_domains.txt 的文本文件,并将其放入 /data/ 目录中。
  • 下载包中已包含 Tinba DGA 域名的样本。

设置文件

  • 设置文件用于存储模型用来判断域名是否为潜在 DGA 的基准值。可以手动更改该值以提高检测率,或降低以减少误报。

实时捕获参数

root@kitploit:~
nohup sudo python dga-detection.py -o 2 -i <interface>

潜在问题

在运行 install.sh 文件时,请注意 git:// 协议使用端口 9418,因此您应确保防火墙允许对该端口的出站连接。

本项目仍处于开发阶段。

在我家网络环境中以网络层级运行脚本时,我注意到如果我在谷歌 Chrome 浏览器上进行某些谷歌搜索,会收到大量看似 DGA 域名的警报。即使您不访问这些通常为中文的网站(因为它们的域名使用乱码字符串),谷歌 Chrome 也会预加载并获取它们,从而触发警报。

注意:白名单功能使用了 Alexa 前 100 万域名。

可通过 Twitter @philarkwright 联系我。

已完成

  • 添加 Alexa 白名单
  • 添加 Pushbullet(通知管理员)
  • 修复实时捕获流量警报的延迟问题
  • 添加参数,以便通过 nohup 运行实时捕获
下载工具