第470章 棋逢敵手
溢出,顧名思義,就是容器已經(jīng)滿了,東西從里面跑了出來。
在計算機領域中,溢出通常指的是內(nèi)存中的“棧”結構溢出。“棧”是內(nèi)存中一個類似于瓶子的數(shù)據(jù)結構,里面按照“先進后出”的規(guī)則保存各種變量和指令。
正常的代碼,在棧滿了的時候,就會進行判斷,然后進行相應處理,不會在其滿了之后,還繼續(xù)向其中壓入數(shù)據(jù),而是會停止壓入,或者清空棧里面的數(shù)據(jù),再繼續(xù)壓入。
而很多程序員在編寫程序的時候,往往會對這一步進行忽略,或者忘記了對這一步進行檢查。
大家都知道溢出的危害,但是還是存在著很多這樣的例子,原因就在于這個過程是編程函數(shù)自動進行的,例如c語言,只要程序員自己編寫一個函數(shù),那么肯定就會有一個“棧”結構被建立起來,這個函數(shù)里面的變量和數(shù)據(jù)全部壓入這個棧中,然后再按照執(zhí)行的順序,一步一步彈出。
函數(shù)是程序中必然會用到的,并且是大量用到,也就是說,棧這個結構也是隨處可見,可是要是不對其中的邊界條件做嚴格的檢查的話,很有可能就會產(chǎn)生溢出漏洞,尤其是一些涉及到操作核心數(shù)據(jù)的函數(shù)。
林鴻對這種漏洞的利用簡直是得心應手,當初他破解德州儀器的計算器的時候,使用的方式就是緩沖區(qū)溢出破解,成功讓計算器的一個緩沖器溢出,然后執(zhí)行他的破解代碼。
而這一次,他想要做的事情也是一樣,既然已經(jīng)發(fā)現(xiàn)了這樣的溢出可能,他接下來要做的,便是想辦法將自己的代碼插入進去,然后通過溢出的方式,執(zhí)行自己的未授權代碼。
這種方式。有點像是給一個瓶子不停地壓入東西,然后再對方滿了的時候,另外在瓶口處接一個彎彎的管子,將數(shù)據(jù)流引導從自己的管子里過一遍。然后再將數(shù)據(jù)流引回瓶中。
linx有個好處,很多東西都可以以插件的形式進行安裝,為了能夠讓apache運行起來,林鴻直接將兼容unix的文件系統(tǒng)掛載進來,然后再將和藍軍相同的版本的apache安裝在本地,再使用調試工具進行跟蹤調試。
這是一個細致活,從調試工具中所看到的內(nèi)容。都是十六進制的機器碼,要想讀懂其中的關鍵代碼,必須對匯編和機器碼相當熟悉。
林鴻有針對性地對這個溢出漏洞進行調試,相對來說進展還是很快的,一步一步接近他想要得到的結果。
林鴻在調試代碼的時候,其他人也沒閑著。
劉輝繼續(xù)對藍軍的目標進行洪水攻擊,不但自己的機器上安裝了這個軟件,他還給其他幾臺運行indos系統(tǒng)的機器也安裝了這個軟件。增加一下攻擊的力度。
可惜的是,他的這個方法,實在是過于簡陋了點。持續(xù)使用相同的機器進行攻擊。對方很容易將其ip加入過濾黑名單,對他的所有偽造請求都不語響應,這樣的話,他所做的只能是無用功。
并且,林鴻大概了解了一下他所使用的軟件,他的大數(shù)據(jù)洪水攻擊,實在是過于原始了,這么點機器攻擊,效果肯定不佳。
真正想要達到讓對方拒絕服務的效果,必須使用ddos。也就是分布式拒絕服務攻擊,使用成百上千臺機器同時對目標進行數(shù)據(jù)風暴轟炸,這樣,對方無法識別正確的ip來源,才能夠有一些效果。
此外,洪水攻擊實際上也是有很多種的。劉輝所使用的這種,是最基本最簡單的一種,是單純的syn洪水,也就是在第一次握手的時候就是個虛假的申請,沒有有效的源地址。
這種情況,有點類似于,突然有個人打個電話過來掛斷,當服務器端回撥過去的時候,卻發(fā)現(xiàn)對方的電話號碼根本不存在。
而偏偏服務器端的腦子并不是很聰明,或者說,涉及他的人暫時沒有考慮到這一點,于是他便真的以為是有人打電話給他,于是拿著電話一直不掛,等著對方接聽。而他本身同時只能接聽一定數(shù)量的電話,當這樣的人數(shù)一多,他所有的電話都給拿了起來,別人便打不進來了,相當于他拒絕服務了。
劉輝的軟件所實現(xiàn)的功能,就是這個偽造打電話的過程。
這個原理是正確的,但是在現(xiàn)在這種場合中卻并不適合使用,幾個電話號碼而已,只要服務器端的管理員跟他說,這幾個號碼是假的,別管他,就能避免拒絕服務的情況出現(xiàn)。
劉輝自己也應該知道這個情況,但是他也沒辦法,他能夠做的事情有限,對方使用的系統(tǒng),大部分都是非indos系列的,他根本沒有用武之地,只能通過這個方式來凸顯自己的存在和重要性。
小蔣已經(jīng)將自己的系統(tǒng)也配置完畢,他現(xiàn)在開始執(zhí)行錢隊長交給他的任務,將藍軍那邊的網(wǎng)絡拓撲結構給繪制出來,好讓大家有個參考。
網(wǎng)絡拓撲結構,其實就是電腦的連接方式,看看對方的電腦,到底是星形連接,還是環(huán)形,亦或者是交叉連接。
每一臺電腦,可以看做是一個點,中間的網(wǎng)線就是一條連接的線段,這樣將整個結構抽象出來,便形成了網(wǎng)絡的拓撲結構。
要想探知這個結構,可以去實地查看,當然也可以通過技術手段來實現(xiàn)。
其原理,就是跟蹤數(shù)據(jù)流動的節(jié)點路徑,通過其返回的數(shù)據(jù),便可以將整個結構給推斷出來。
通過掃描網(wǎng)絡上存活的機器,獲知了對方的ip。而要想知道從對方的那太機器和自己中間,到底經(jīng)過了多少個節(jié)點,便可以使用系統(tǒng)中特定的網(wǎng)絡命令來實現(xiàn)。
例如在unix系統(tǒng)下,直接使用traceroute命令,便可以直接將自己和目標機器的路徑給探索出來。
通過這些反饋回來的信息,很容易就可以將整個網(wǎng)絡的拓撲結構給繪制出來。
只不過,如果手動的話,這個過程有點繁雜,好在他們?nèi)艘捕啵銎饋硪卜奖恪?br/>
老王此刻在做什么呢?
他掃描了一陣對方的機器,并沒有發(fā)現(xiàn)什么可利用的漏洞,正常的手段行不通,他便想著搞點特別的。他的老本行是研究病毒,自然想在這個上面打主意。
臨時倆編寫一個病毒,那肯定是不現(xiàn)實的,病毒并不是隨隨便便就能搞出來的,這其中所涉及到的東西太多,有時候還得靠運氣和天賦。
他心中想的是,將自己以前研究的一個蠕蟲病毒修改一下,然后找個機會給對方偷偷種上,通過這種方式來獲得對方的作戰(zhàn)情報。
這樣想著,老王便對林鴻說道:“他們防得可真嚴密啊,完全沒有任何可趁之機。你這邊怎么樣?有沒有什么辦法?”
林鴻如實道:“他們使用的是apache,但是不是最新版,我發(fā)現(xiàn)了一個溢出漏洞,現(xiàn)在正在研究,怎么好好利用這個漏洞。”
“哦?”老王聞言眼睛一亮,“要是能搞起的話……我打算將以前研究的一個蠕蟲改改。”
“這個主意不錯。”林鴻微微一笑,“應該很快了,我調試得差不多了。”
林鴻和老王商量好之后,兩人繼續(xù)著手自己手中的工作。
時間一點點地流逝。
紅軍對藍軍暫時沒有什么辦法,藍軍同樣也是如此。
“怎么樣,找到對方的服務器了沒?”李玉山來到丁華輝的身邊問道。
“找到了!”丁華輝松口氣道,“對方可真是狡猾,肯定是使用了用來偽裝應答的程序,我好幾次都將這臺機器給忽略了過去。”
藍軍信息對抗大隊的人,找了半天都沒有找到對方服務器的ip地址是哪一個,剛開始的時候,還以為對方違反了規(guī)定,并沒有將服務器給接入到網(wǎng)絡中。
但是奇怪的是,導演部也沒有提示說,對方已經(jīng)違規(guī)。這說明,對方肯定是使用了什么手段將這臺服務器給隱藏起來了。
于是,李玉山之前讓得以弟子丁華輝親自負責查探。丁華輝經(jīng)過仔細分析,最終還是被他發(fā)現(xiàn)了異常,成功將對方的服務器給確定下來。
丁華輝繼續(xù)說道:“根據(jù)我查出來的信息,他們的系統(tǒng),應該是freebsd的。”
“看來對方也有高手坐鎮(zhèn)啊!”李玉山有些意外地說道。
這點,和他們之前所掌握的情報并不符合。
按照藍軍情報部門所提供的資料,說對方應該是沒有什么高手的,只是從地方上請了幾個雜牌軍助陣,和他們比起來,簡直不知一提。
現(xiàn)在看來,情況似乎有所出入。
“的確是高手。”丁華輝點點頭,“他們的服務器開了80端口,但是登錄需要進行ip驗證,并且這個驗證并不是基于eb程序的,而是基于數(shù)據(jù)包ip驗證,開的服務也非常少,簡直可以說固若精湯。”
丁華輝的意思就是,他根本拿這臺服務器沒有任何辦法。除了80端口,其他所有的端口都給關閉了,而偏偏這個80端口還是基于數(shù)據(jù)包ip驗證的,就算是偽造ip進入,還得輸入用戶名和密碼,要想成功突破,難上加難。(。如果您喜歡這部作品,()投推薦票、月票,您的支持,就是我最大的動力。)
,