全部1000元 域名_DataCon 2020 DNS恶意域名分析方向冠军writeup

本文介绍了在DataCon 2020比赛中涉及的DNS恶意域名分析,涵盖DGA算法逆向、特征筛选、样本代码还原、PU Learning应用以及机器学习模型训练等内容,展示了在恶意域名识别和分类中的实战技巧和策略。
摘要由CSDN通过智能技术生成

0x01 种子寻找记之DGA算法分析

题目描述

本题中,选手需从给定的DGA样本中通过逆向分析发现其中存在的DGA算法。通过对DGA算法的分析,根据给出的同算法但不同种子生产的域名获得新的种子,最终给出使用新种子生产的所有域名。

题目分析

题目给出了三个样本以及三个域名列表,其中每个列表对应一个样本。三个样本的MD5是:68C2D387AA16EAD4575E02DAC2EAEDCC、2F2A766A3F5749D916111970C2A6F145、E90554A0EFB6E0A35FC611A7B7B727C0。首先,需要对三个样本进行逆向分析,可以不还原成源代码,但是需要知道域名的生成方式以及种子的格式。然后,对三个域名列表分析,找出生成这三个域名列表的DGA种子

解题过程

这一题的三个样本都没有做任何加壳和混淆处理,逆向分析相对较为容易。因此,接下来的分析过程不会讲如何进行样本逆向分析。

sample1.exe

此样本DGA种子有四个参数组成,前三个参数是年月日,第四个参数是一个整数。根据题目提示可知,前三个参数分别是2020,5,10。因此只需计算最后一个参数即可。

22069d6bb406cafffa31358ced266291.png

第一个列表给出的域名是按照算法生成的顺序的,因此只需用第一个样本暴力计算第四个参数即可。最终计算出种子是0x6D7D4AEB。

sample2.exe

此样本DGA种子是一个字符串和一个域名。在生成域名的时候,上一次生成的域名又作为下一次生成域名时的种子。因此,我们只需拿题目给出的域名列表中第一个域名作为DGA算法的第二个参数。

3da9a0dea9232450c739ee8a0cd78798.png

对于第一个字符串参数,如果暴力搜索整个字符串空间,那么这个搜索空间是非常大的。进一步分析域名生成算法可知,在生成域名的时候,实际上并没有直接使用这个字符串,而是先计算字符串ASCII码之后,然后保留最低位的数;接着再计算最后一个字节的ASCII码值。也就是说,根据这个字符串计算两个8位的数,只需计算这两个8位的数就可以,所以整个搜索空间实际上是 256*256=65536 ,这个搜索空间是可以很快就查找完的。最终计算出来这两个数分别是84和119。

sample3.exe

此样本的DGA种子是一个32位的整数,并且,题目所给的域名列表并不是顺序的,而是乱序的。因此,如果尝试暴力搜索种子,则需要对每一个可能的种子生成全部的1000个域名,然后判断这1000个域名和题目给出的100个域名有多少重复的,这样搜索带来的时间开销是无法接受的,需要使用成千上万台服务器才有可能再比赛结束之前找到。因此,需要寻找一种巧妙的方法寻找种子

056d70f1fa72c7ab39a8ff24ac6d8239.png

我们的方法如下
  1. 确定一个域名在原始1000个域名中的位置随机选择一个域名,假设该域名处于位置 i暴力寻找生成当前域名rand函数[1]的梅森随机数种子根据计算出来的梅森随机数种子,生成从 i 到 1000的所有域名如果假设的位置 i 是正确的,则上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值