就要看書網
主页 推荐 分类 短篇 小說 阅读记录

第388章中間人攻擊

如果出现文字缺失,格式混乱请取消转码/退出阅读模式

雖然windows3。1也已經設計了權限控制,並且將系統進行了分層,但是在這方面做得並不好,甚至可以說是相當的糙。

不過這也可以理解,畢竟這個系統剛剛出來,並且他們當時為了能夠儘快地推出,也非常的趕時間,將一些重要的功能首先實現了,對於普通用戶來說,他們設計的權限控制體系已經基本能夠滿足要求了。

windows3x系列作系統,本就不是為實時作系統而開發的,實時系統,他們有專門的windowsnt系列,其權限控制就比這個要完善多了,穩定也極大的增強。不過,同樣的道理,他們想要對nt系統進行定製修改的難度也就更大了,總體說來,還沒有直接使用這個來得方便。

並且,windows系列的系統都是閉源的,說白了這是商業軟件,你想使用,就必須進行購買,他們現在這樣使用,是違反知識產權法的,使用的是盜版。要是被微軟發現,他們是可以通過司法途徑進行起訴的。當然,至於國內的法院受不受理,這又是另外一回事了。

wldaw3。1系統的權限系統雖然簡單,但是在用戶層,想要對系統層進行作這是絕對止的,因為會威脅到系統的穩定,只要破壞了系統的某一個關鍵數據結構,很有可能就會讓系統崩潰。

涉及到系統底層的作,都是通過微軟給出的sdk包裡面的系統函數進行實現的。這些系統函數,不會亂作內存裡面關鍵的數據,而是會按照系統程序員所期望的方式實現某些功能。

這樣做既不會影響系統的穩定和安全,又可以讓編寫應用軟件的程序員獲得想要的功能,還可以簡化作步驟,讓他們不用關心底層的運行機制,簡直是一舉三得的好辦法。

當然也並不是說系統層裡面的東西,用戶層完全訪問不了,那些病毒木馬想要實現自己的功能,很大程度上就是利用了系統的漏,獲得了超過用戶層的權限。

不過,他們這個系統,已經被他們經過極度的優化,一些常見漏也基本上給打上了補丁,要想找出這樣一個漏,還是很困難所以,餘波在聽到林鴻大言不慚地說“權限要自己動手去拿,不會自動送上門。”的時候,不由冷冷一笑,反駁道:“你說得倒輕巧,有本事你拿一個看看?”餘波心中還對林鴻有些意見畢竟正是他的到來,才導致大家人心惶惶,擔心自己為之工作了好多年的心血被推到重來。此外,他也對林鴻輕描淡寫的態度很是看不慣,就算你們公司自己編寫出了一個控制系統,但是也不能這樣信口開河吧?

他們在這個系統上浸了這麼久自認為自己對這個系統的瞭解,只是僅次於那些開發系統的人了。

他當然知道權限要自己去拿,並不會自動送上門但是,說起來容易做起來難,有些事情是站著說不疼,這樣的人,他見得多了。

餘波認為是林鴻想要在他們領導面前表現自己,才故意這樣“鼻孔大蔥”——裝象。

林鴻聽到他的話笑了下,沒有放在心上而是對曹興平和徐直中說道:“這個情況我之前是遇到過的。很多木馬和蟲,就是通過重寫系統底層的函數來截數據。這在系統安全領域,有一個專門的名詞,叫做‘中間人攻擊’。”中間人攻擊,在黑客領域是一種非常古老並且有效的攻擊方式。

其本質原理,就是在數據動的鏈路上,串接一個攻擊者自己的“轉發器”從而達到嗅探竊取數據的目的。

這種情形,就好像將一個水管給截段,然後在上面連接一個自己的轉接頭,這個轉接頭是不會影響水管中水的正常動的,它只是對水進行監控,一旦發現水裡面有一條魚經過,它就負責將這個信息給記錄在案,甚至,它還有其他一些比較神奇的功能,例如,將這條魚替換成一條泥鰍。

而水管兩端的人,由於缺乏溝通,本不知道這些水動的過程中到底發生了什麼。

他們不知道自己私下發送的魚被別人監控了,甚至被人掉包,發送方以為自己發送了一條魚,而接收方則以為對方發送了一條泥鰍。

在網絡領域,這個中間人甚至可以是一臺電腦,用戶a向用戶b發送信息,卻被人偷偷地讓信息跑到電腦c上面走了一圈,而ab用戶卻本不知道自己的信息已經被人‮聽監‬了。由於電腦c只是對數據進行復制和備份,完全不對信息進行修改,是被動的行文,所以ab是很難發現這種行為的。

而在單機裡面,中間人攻擊更多的就是像這次這樣,對某個環節或者函數進行接管,相當於在外面另外套了一層,要想訪問真實的內容,必須從中間人這裡進入。

林鴻的超級蟲對數據進行蒐集,實際上也是這個原理,從表面上看,已經被染的系統和原來的系統是本沒有任何差別的,不會影響到數據的正常動,也不會影響系統的穩定

而他們現在的這個雷達控制系統,很顯然也是這樣,有某一個東西正好接管了他們系統中所調用的一個系統函數,只是,對方在處理那個底層函數的時候,有個地方沒有處理好,導致他們在調用這個函數的時候,本沒有調用成功,結果就沒有返回值。

徐直中和曹興平兩人對視一眼,然後徐直中問道:“小鴻,你能肯定是這個原因嗎?”林鴻所說的話,通俗易懂,他們也聽明白了。

雖然**不離十,但是為了保險起見,林鴻還是得自己動手驗證一下才能打包票。

“這樣吧,如果方便的話,我就使用我自己的方式進行驗證一下。”他說道。

徐直中稍微想了一下,便點頭同意了。

在曹興平的示意下,餘波只好讓出了自己的座位。

林鴻坐了上去,然後調出編譯器,立刻動手編寫一個小工具。

這個小工具非常簡單,只有一個功能,那就是持續不斷地對之前那個函數進行調用,然後使用內存dump的方式,將內存裡面的指定數據保存在一個文本文件裡面,與此同時,也監測那個函數的返回結果。

接著,林鴻便將餘波之前做的過程重新做了一遍,重啟,然後進入靜默狀態,再重新恢復…

一個新的文件便被生成了。

林鴻使用編輯器將其打開,開始分析文本文件裡面的內容。

站在林鴻身後,想看他好戲的餘波頓時有些傻眼了。

也不知道林鴻是故意的還是怎的,他的動作非常快,寫代碼也覺就像是心中早就編寫過無數次那樣,直接一溜煙地就編寫了過去,稍微修復了幾個由於疏忽而導致的錯誤之後,這個小工具便很快就寫完了。整個過程,用了不到三分鐘的時間。

餘波站在身後一直目不眨眼地盯著都沒有跟上他的步伐。雖然看懂了大概的意思,但是其細節卻是完全理解不了,不知道對方為什麼這麼編寫。

而看到最終生成的那個文本文件,他更是傻眼,因為裡面的內容按理說來,是本訪問不到的,是系統層的內存數據。

“這不可…”餘波還想說什麼,不過立刻有閉了嘴,因為事實擺在眼前,他再說不可能,那不是一句廢話麼?

林鴻將記錄迅速的看了一遍,最終點頭道:“果然如此。裡面的確有一個隱藏的程序,接管了這個函數。”這個log文件中的記錄,非常明顯地顯示出,進入靜默狀態的時候,內存裡面的函數棧有了比較明顯的變化,數據顯示一個新的函數被壓入了棧。

棧是數據結構中一個比較特殊的數據結構,其特點就是“先進後出”例如彈夾就是一個典型的棧結構,子彈裝進去的時候,先壓入,再彈出,最先裝入的是最後被出。

在程序中,函數里面的各個數據和變量,也是按照一定的順序,一個一個“壓入”執行完畢之後,再一個一個“彈出”要想監控函數的變化,就只要監控指定位置的那個棧結構就行了。林鴻從內存中dump出來的數據,就是棧裡面的東西。

這個結果,在場的其他三人臉都有些變了。

這意味著,林鴻所說的話是正確的,系統底層的確有一個隱藏的程序在秘密活動,而他們之前對此卻毫不知情。

徐直中還好,已經有了心理準備,曹興平卻是臉變得極其難看。

“那為什麼在剛開始啟動的時候沒有這個問題,而進入靜默狀態才會出現?”這個時候,餘波突然言問道,他這個時候,已經沒有心思去膈應林鴻了。

“這是因為在系統啟動的時候,你們的這個殼程序優先啟動,然後對方才啟動,這樣就本沒有受到它的影響,兩者相安無事。

但是進入靜默狀態的時候,殼程序會要關閉,再次啟動的時候,那個隱藏程序已經完全接管了整個函數接口,可能是對方在這一塊沒有處理好,導致兩者產生了衝突,殼程序調用的那個函數沒有能夠返回有效的數值,而你們恰好又沒有對這個返回值進行判斷處理,最終導致了整個殼程序的崩潰。”