域生成算法DGA

域生成算法 (DGA),该算法常常被恶意软件使用,其主要作用是在主要命令和控制 (C2) 通信服务器无法访问时用作后备通信方式。比如Ares银行木马恶意软件中内嵌了一个C2服务器地址,正常情况将尝试联系主 C2 服务器多达 50 次。如果这些C2服务器被封禁无法访问,Ares将使用 DGA 生成域。黑客组织在DGA生成域中选择一个并注册,后续仍然能控制受害机器。

使用示例:Solarwinds供应链攻击、Qakbot银行木马、Ares银行木马。

Qakbot 算法生成 5,000 个域。一般生成的域名都没有被注册解析。

QakBot 的 DGA 总体生成过程如下:
1、通过连接到互联网获取当前日期
2、计算日期字符串的 CRC32 校验和
3、将校验和输入 Mersenne Twister 随机数生成器
4、生成随机数量的随机字母字符,然后附加一个顶级域

如果 QakBot 在 2018 年 1 月 1 日运行,则使用 C 语言编写的这个 QakBot DGA 实现将使用日期字符串生成前域"Date: Mon, 01 Jan 2018 00:00:00 GMT"。对于这个日期,输出为:
mdjjljhwtmefsumtdcpfnwp.org
aojpkrdnblwmocdob.org
svfamwehjqiht.com
zcevciwmsqbsgutvwhyp.com
bcrovlbako.biz

Qakbot的DGA算法代码
https://github.com/Dan611/QakBot-DGA/blob/master/qakbot_dga.c
Ares的DGA算法代码
https://github.com/threatlabz/tools/blob/main/ares/ares_qakbot_dga.py

你可能感兴趣的:(Windows病毒分析,网络)