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數據到達記錄數據
程序的基本概念都介紹完了,相信你對本程序已經有了一定的認識。現在我們就來開始我們的工作:
程序的控件以及說明如下:
控件名控件類型屬性
label1labelcaption=”增加端口”
orgmand1orgmandcaption=”添加”
orgmand2orgmandcaption=”監聽”
orgmand3orgmandcaption=”退出”
listportslistbox無
txtlogrichtextbox無
程序的代碼以及說明如下:
‘本程序在vb6.0+windows2000下測試通過!
dimtmpstrstring
dimnow_outinteger''總共出去連接的有幾個winsock
privatesuborgmand1_clicbxwx.orgbxwx.org
endsub
privatesuborgmand2_click
errorresumenexbxwx.org="監聽"then
fori=bxwx.org-1
loadwinsock1(i+1)''加載監聽端口的winsock1數組控件
winsock1(i+1).localport=bxwx.org(i)''設定端口
winsock1(i+1).listen''監聽
nextbxwx.org="停止"
else
fori=bxwx.org-1
unloadwinsock1(i)
nexti
for=bxwx.org-1
unloadwinsock2(i2)
nextibxwx.org="監聽"
end
endsub
privatesuborgmand3_click
unload
endsub
privatesubform_loabxwx.org="日誌:"&vbcrlf
now_out=1
endsub
privatesubwinsock1_connectionrequest(indexinteger,byvalrequestidlong)
loadwinsock2(now_out)''加載建立連接的winsock2數組控件
winsock2(now_out).acceptrequestid''建立連接
winsock1(index).close
winsock1(index).listen''winsock1繼續監聽
now_out=now_out+1''連接的控件累加
myaddlog"來自"&winsock1(index).remotehostip&"連接到本地端口:"&winsock1(index).localport
''顯示捕獲的連接
endsub
privatesubwinsock2_dataarrival(indexinteger,byvalbytestotallong)
winsock2(index).getdatatmpstr''通過getdata捕獲數據
myaddlog"來自"&winsock2(index).remotehostip&"的數據:"&tmpstr''顯示捕獲的數據
endsub
submyaddlog(tmptextstring)''加入日誌
tmptext=tmptext&vbcrlbxwx.org=len(bxwx.org)
bxwx.org=tmptext
endsub
總結:其實一些程序的原理很簡單,我們只要善於實踐,並且能夠把所學的只是運用到你的程序中去,我想編出類似的程序是很簡單的。如木馬、端口掃描器、客戶端工具、cgi漏洞掃描器……。vb的winsock控件雖說不是底層操作。及不上c語言的socket編程的功能。但實現普通的操作還是很有用的。簡單的例子就是cookie欺騙,用vb來編寫這種程序十分簡單。