欢迎来到天天文库
浏览记录
ID:23622120
大小:702.56 KB
页数:88页
时间:2018-11-09
《VB高级编程100例.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、浅谈用VB6.0编写木马程序现在网络上流行的木马软件基本都是客户机/服务器模式也就是所谓的C/S结构,目前也有一些开始向B/S结构转变,在这里暂且不对B/S结构进行详谈,本文主要介绍C/S结构其原理就是在本机直接启动运行的程序拥有与使用者相同的权限。因此如果能够启动服务器端(即被攻击的计算机)的服务器程序,就可以使用相应的客户端工具客户程序直接控制它了。下面来谈谈如何用VB来实现它。首先使用VB建立两个程序,一个为客户端程序Client,一个为服务器端程序systry。在Client工程中建立一个窗体,加载WinSock控件,称为tcpClient
2、,协议选择TCP,再加入两个文本框,用以输入服务器的IP地址或服务器名,然后建立一个按钮,按下之后就可以对连接进行初始化了,代码如下:PrivateSubcmdConnect_Click()IfLen(Text1.Text)=0AndLen(Text2.Text)=0ThenMsgBox("请输入主机名或主机IP地址。")ExitSubElseIfLen(Text1.Text)>0ThentcpClient.RemoteHost=Text1.TextElsetcpClient.RemoteHost=Text2.TextEndIfEndIftcpCl
3、ient.ConnectTimer1.Enabled=TrueEndSub连接建立之后就可以使用DataArrival事件处理所收到的数据了。在服务器端systry工程也建立一个窗体,加载WinSock控件,称为tcpServer,协议选择TCP,在Form_Load事件中加入如下代码:PrivateSubForm_Load()tcpServer.LocalPort=1999tcpServer.ListenEndSub准备应答客户端程序的请求连接,使用ConnectionRequest事件来应答户端程序的请求,代码如下:PrivateSubtcpS
4、erver_ConnectionRequest(ByValrequestIDAsLong)IftcpServer.State<>sckClosedThentcpServer.Close‘检查控件的State属性是否为关闭的。EndIf'如果不是,在接受新的连接之前先关闭此连接。tcpServer.AcceptrequestIDEndSub这样在客户端程序按下了连接按钮后,服务器端程序的ConnectionRequest事件被触发,执行了以上的代码。如果不出意外,连接就被建立起来了。建立连接后服务器端的程序通过DataArrival事件接收客户机端程
5、序所发的指令运行既定的程序。如:把服务器端的驱动器名、目录名、文件名等传到客户机端,客户机端接收后用TreeView控件以树状的形式显示出来,浏览服务器端文件目录;强制关闭或重启服务器端的计算机;屏蔽任务栏窗口;屏蔽开始菜单;按照客户机端传过来的文件名或目录名,而删除它;屏蔽热启动键;运行服务器端的任何程序;还包括获取目标计算机屏幕图象、窗口及进程列表;激活、终止远端进程;打开、关闭、移动远端窗口;控制目标计算机鼠标的移动与动作;交换远端鼠标的左右键;在目标计算机模拟键盘输入,下载、上装文件;提取、创建、修改目标计算机系统注册表关键字;在远端屏幕上
6、显示消息。DataArrival事件程序如下:PrivateSubtcpServer_DataArrival(ByValbytesTotalAsLong)DimstrDataAsStringDimiAsLongDimmKeyAsStringtcpServer.GetDatastrData'接收数据并存入strDataFori=1ToLen(strData)'分离strData中的命令IfMid(strData,i,1)="@"ThenmKey=Left(strData,i-1)'把命令ID号存入mKey'把命令参数存入strDatastrData=
7、Right(strData,Len(strData)-i)ExitForEndIfNextiSelectCaseVal(mKey)Case1‘驱动器名、目录名、文件名Case2强制关闭服务器端的计算机Case3强制重启服务器端的计算机Case4屏蔽任务栏窗口;Case5屏蔽开始菜单;Case6按照客户机端传过来的文件名或目录名,而删除它;Case7屏蔽热启动键;Case8运行服务器端的任何程序EndSelectEndSub客户机端用tcpClient.SendData发命令。命令包括命令ID和命令参数,它们用符号“@”隔开。另外,当客户机端断开与服
8、务器端的来接后,服务器端应用tcpServer_Close事件,来继续准备接收客户机端的请求,其代码如下:PrivateS
此文档下载收益归作者所有