2、研究人员破解银行木马Sphinx DGA算法
标题:Cracking of Sphinx Trojan DGA Opens the Door for Botnet Takedown
Sphinx botnet much smaller than initially thought
作者信息:Oct 23, 2016 21:30 GMT By Catalin Cimpanu
//BEGIN
Security researchers from Arbor Networks have cracked the Doman(译者注:此处应为Domain) Generation Algorithm (DGA) used by the Sphinx banking trojan, which, in theory, would allow security firms and authorities to intervene and take down the botnet.
由于安全公司破解了Sphinx网银木马组成的僵尸网络的随机动态域名生成算法DGA,因此从理论上讲,政府部门完全可以在安全公司的协助下,对这个僵尸网络系统进行精准打击,一举端掉这个网银木马系统。
//END
Previously, Arbor Networks researchers had cracked the DGA of the Mad Max botnet, allowing them to accurately guess all the C&C domains names the malware would have used in the upcoming months and years.
其实,已经有先例了,不过,以前是另外一个僵尸网络Mad Max,其同样采用了DGA随机动态域名生成算法。执法部门之所以能将其端掉,很重要的一个原因是在安全公司的协助下,已经推算出了其所有要采用的域名。只要全部封掉这些域名,显然这个僵尸网络就没有存在的空间了。
//备注:
# https://github.com/tildedennis/malware/blob/master/sphinx/dga.py
# tildedennis/malware
# Sphinx Zeus DGA PoC
# Dennis Schwarz, Arbor Networks, ASERT, October 2016
import ctypes
def dga(year, month, day):
ymd_str = "%d%d%d" % (year, month, day)
seed = int(ymd_str)
domains = []
for idx in range(128):
domain = []
for i in range(16):
seed = (idx + i + ((seed >> 0x18) & 0xff | (seed << 0x8)) + 0x2ab3fea3) & 0xffffffff
s_seed = ctypes.c_int(seed).value
domain.append(chr((abs(s_seed) % 0x19) + ord("a")))
domain = "".join(domain) + ".com"
domains.append(domain)
return domains
if __name__ == "__main__":
domains = dga(2016, 10, 25)
for domain in domains:
print domain
DGA算法Python伪代码
点评:僵尸网络是该想办法好好治治了。要不然会反了天:指哪打哪。 |