新聞| | PChome| 登入
2008-01-30 11:23:09 | 人氣574| 回應0 | 上一篇 | 下一篇
推薦 0 收藏 0 轉貼0 訂閱站台

用VB編寫入侵監聽程式

上網的時候很容易遭到探測,一般探測你個人的入侵者技術不會高明到哪裏去。所以根本不能稱上駭客,所以本文就用入侵者來代替。他們對普通網民的掃描可以是多連接埠單IP的掃描或者多IP單連接埠掃描。前者是透過一些IP工具來取得你的IP,然後嘗試利用連接埠掃描穫取你的資訊,看你的電腦有沒有預先中了木馬。然後透過網上的木馬連接埠清單,來穫得木馬名稱。用相應的用戶端軟體來連接到你的電腦。從而穫得密碼、以及你的秘密資訊。後者則是透過利用如SuperScan等可以大範圍掃描IP的軟體,掃描打開特定連接埠的機器。比如,可以掃描打開7626連接埠的機器,看對方是否中了冰河。然後,入侵者就用用戶端連接到伺服器從而入侵你的電腦。

  這些掃描是簡單的TCP的Connect掃描。所以無法避開防火牆的追蹤。網民就可以利用天網等防火牆軟體來穫取對方的IP。相信很多DIY迷或者程式設計愛好者總是想擁有屬於自己的類似的工具。本文就給你講述如何用VB來穫得探測你的入侵者的IP地址,然後……我可沒有教你用藍屏炸彈或者蝸牛炸彈去炸它哦。畢竟,我們沒有入侵者的野心,本程式還可以讓你監聽80連接埠,來察看對方對你進行的常規掃描。要看懂本文,你需要有一定的VB基礎。

  好了,廢話少說,我們來看看本程式的基本原理

  入侵者透過Connect本機的連接埠,然後透過是否成功,來穫得資訊。由於TCP的三次握手原理。他必定會留下自己的IP,我們就利用這一個原理來穫得對方的IP。

  Winsock控件的屬性、方法和事件在我上次寫的《.用winsock制作漏洞掃描器》一文中已經敘述過,這裡就不再介紹。大家還一定記得RemoteHostIP和LocalPort屬性吧。這就是對方的IP和自己的連接埠。聰明的你應該明白了吧。透過這兩個屬性就可以清楚的穫得對方的IP地址和他正在掃描的本地連接埠。

  因為不可能一個連接埠只有一個人會掃描,所以本程式我們需要使用到控件數組。這個概念的描述大家可以查找MSDN。本程式的流程是:

  1、 定義需要監聽的連接埠
  2、 裝載一定數量的Winsock1控件,從需要監聽的連接埠清單中穫得數據。一一開啟監聽功能。(Listen)
  3、 當某一個控件接收到連接的事件發生,就把得到的RemoteIP和LocalPort加入日誌
  4、 加載一個Winsock2,繼續捕穫數據(Getdata)
  5、 Winsock2數據到達記錄數據

  程式的基本概念都介紹完了,相信你對本程式已經有了一定的認識。現在我們就來開始我們的工作:
  程式的控件以及說明如下:

控件名 控件類型 屬性
Label1 Label Caption=”增加連接埠”
Command1 command Caption=”添加”
Command2 command Caption=”監聽”
Command3 command Caption=”退出”
Listports Listbox
TxtLog Richtextbox


程式的代碼以及說明如下:

‘本程式在VB6.0+Windows2000下測試透過!
Dim tmpstr As String
Dim NOW_OUT As Integer ''總共出去連接的有幾個Winsock
Private Sub Command1_Click()
ListPorts.AddItem txtADDPORT.Text
End Sub


Private Sub Command2_Click()
On Error Resume Next
If Command2.Caption = "監聽" Then
For i = 0 To ListPorts.ListCount - 1
Load Winsock1(i + 1) ''加載監聽連接埠的winsock1數組控件
Winsock1(i + 1).LocalPort = ListPorts.List(i) ''設定連接埠
Winsock1(i + 1).Listen ''監聽
Next i
Command2.Caption = "停止"
Else
For i = 1 To Winsock1.Count - 1
Unload Winsock1(i)
Next i
For i2 = 1 To Winsock2.Count - 1
Unload Winsock2(i2)
Next i2
Command2.Caption = "監聽"
End If
End Sub


Private Sub Command3_Click()
Unload Me
End Sub


Private Sub Form_Load()
txtLOG.Text = "日誌:" & vbCrLf
NOW_OUT = 1
End Sub


Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Load Winsock2(NOW_OUT) ''加載建立連接的Winsock2數組控件
Winsock2(NOW_OUT).Accept requestID ''建立連接
Winsock1(Index).Close
Winsock1(Index).Listen ''Winsock1繼續監聽
NOW_OUT = NOW_OUT + 1 ''連接的控件累加
myAddLog "來自" & Winsock1(Index).RemoteHostIP & "連接到本地連接埠:" & Winsock1(Index).LocalPort
''顯示捕穫的連接
End Sub


Private Sub Winsock2_DataArrival(Index As Integer, ByVal bytesTotal As Long)
Winsock2(Index).GetData tmpstr ''透過Getdata捕穫數據
myAddLog "來自" & Winsock2(Index).RemoteHostIP & "的數據:" & tmpstr ''顯示捕穫的數據
End Sub


Sub myAddLog(tmptext As String) ''加入日誌
tmptext = tmptext & vbCrLf
txtLOG.SelStart = Len(txtLOG.Text)
txtLOG.SelText = tmptext
End Sub



  總結:其實一些程式的原理很簡單,我們隻要善於實踐,並且能夠把所學的隻是運用到你的程式中去,我想編出類似的程式是很簡單的。如木馬、連接埠掃描器、用戶端工具、CGI漏洞掃描器……。VB的Winsock控件雖說不是底層操作。及不上C語言的Socket程式設計的功能。但實現普通的操作還是很有用的。簡單的例子就是Cookie欺騙,用VB來編寫這種程式十分簡單。

台長: Kenny

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文