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