?上網(wǎng)的時候很容易遭到探測,一般探測你個人的入侵者技術(shù)不會高明到哪里去。所以根本不能稱上黑客,所以本文就用入侵者來代替。他們對普通網(wǎng)民的掃描可以是多端口單ip的掃描或者多ip單端口掃描。前者是通過一些ip工具來取得你的ip,然后嘗試利用端口掃描獲取你的信息,看你的計算機有沒有預(yù)先中了木馬。然后通過網(wǎng)上的木馬端口列表,來獲得木馬名稱。用相應(yīng)的客戶端軟件來連接到你的計算機。從而獲得密碼、以及你的秘密信息。后者則是通過利用如supers等可以大范圍掃描ip的軟件,掃描打開特定端口的機器。比如,可以掃描打開7626端口的機器,看對方是否中了冰河。然后,入侵者就用客戶端連接到服務(wù)器從而入侵你的計算機。
這些掃描是簡單的tcp的ect掃描。所以無法避開防火墻的追蹤。網(wǎng)民就可以利用天網(wǎng)等防火墻軟件來獲取對方的ip。相信很多diy迷或者編程愛好者總是想擁有屬于自己的類似的工具。本文就給你講述如何用vb來獲得探測你的入侵者的ip地址,然后……我可沒有教你用藍屏炸彈或者蝸牛炸彈去炸它哦。畢竟,我們沒有入侵者的野心,本程序還可以讓你監(jiān)聽80端口,來察看對方對你進行的常規(guī)掃描。要看懂本文,你需要有一定的vb基礎(chǔ)。
好了,廢話少說,我們來看看本程序的基本原理:
入侵者通過ect本機的端口,然后通過是否成功,來獲得信息。由于tcp的三次握手原理。他必定會留下自己的ip,我們就利用這一個原理來獲得對方的ip。
insock控件的屬性、方法和事件在我上次寫的《.用insock制作漏洞掃描器》一文中已經(jīng)敘述過,這里就不再介紹。大家還一定記得remotehostip和localport屬性吧。這就是對方的ip和自己的端口。聰明的你應(yīng)該明白了吧。通過這兩個屬性就可以清楚的獲得對方的ip地址和他正在掃描的本地端口。
因為不可能一個端口只有一個人會掃描,所以本程序我們需要使用到控件數(shù)組。這個概念的描述大家可以查找msdn。本程序的流程是:
1、定義需要監(jiān)聽的端口
2、裝載一定數(shù)量的insock1控件,從需要監(jiān)聽的端口列表中獲得數(shù)據(jù)。一一開啟監(jiān)聽功能。(listen)
3、當(dāng)某一個控件接收到連接的事件發(fā)生,就把得到的remoteip和localport加入日志
4、加載一個insock2,繼續(xù)捕獲數(shù)據(jù)(getdata)
5、insock2數(shù)據(jù)到達記錄數(shù)據(jù)
程序的基本概念都介紹完了,相信你對本程序已經(jīng)有了一定的認識?,F(xiàn)在我們就來開始我們的工作:
程序的控件以及說明如下:
控件名控件類型屬性
label1labelcaption=”增加端口”
mand1mandcaption=”添加”
mand2mandcaption=”監(jiān)聽”
mand3mandcaption=”退出”
listportslistbox無
txtlogrichtextbox無
程序的代碼以及說明如下:
‘本程序在vb6.0+indos2000下測試通過!
dimtmpstrstring
dimno_outinteger總共出去連接的有幾個insock
privatesubmand1_clic
endsub
privatesubmand2_click
errorresumenex=“監(jiān)聽“then
fori=-1
loadinsock1(i+1)加載監(jiān)聽端口的insock1數(shù)組控件
insock1(i+1).localport=(i)設(shè)定端口
insock1(i+1).listen監(jiān)聽
=“停止“
else
fori=-1
unloadinsock1(i)
i
for=-1
unloadinsock2(i2)
i=“監(jiān)聽“
end
endsub
privatesubmand3_click
unload
endsub
privatesubform_loa=“日志:“&vbcrlf
no_out=1
endsub
privatesubinsock1_erequest(ieger,byvalrequestidlong)
loadinsoo_out)加載建立連接的insock2數(shù)組控件
insoo_out).acceptrequestid建立連接
insock1(index).close
insock1(index).listeninsock1繼續(xù)監(jiān)聽
no_out=no_out+1連接的控件累加
myaddlog“來自“&insock1(index).remotehostip&“連接到本地端口:“&insock1(index).localport
顯示捕獲的連接
endsub
privatesubinsock2_dataarrival(ieger,byvalbytestotallong)
insock2(index).getdatatmpstr通過getdata捕獲數(shù)據(jù)
myaddlog“來自“&insock2(index).remotehostip&“的數(shù)據(jù):“&tmpstr顯示捕獲的數(shù)據(jù)
endsub
submyaddlog(tmptextstring)加入日志
tmptext=tmptext&vbcrl=len()
=tmptext
endsub
總結(jié):其實一些程序的原理很簡單,我們只要善于實踐,并且能夠把所學(xué)的只是運用到你的程序中去,我想編出類似的程序是很簡單的。如木馬、端口掃描器、客戶端工具、cgi漏洞掃描器……。vb的insock控件雖說不是底層操作。及不上c語言的socket編程的功能。但實現(xiàn)普通的操作還是很有用的。簡單的例子就是cookie欺騙,用vb來編寫這種程序十分簡單。