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