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