遠 程 攻 擊
轉自INTERNET
什麼是遠程攻擊?
一個遠程攻擊是這樣一種攻擊,其攻擊對象是攻擊者還無法控制的計算機;也可以說,遠程攻擊是一種專門攻擊除攻擊者自己計算機以外的計算機(無論被攻擊的計算機和攻擊者位於同一子網還是有千里之遙)。「遠程 計算機」此名詞最確切的定義是:「一台遠程計算機是這樣一台機器,它不是你正在其上工作的平台,而是能利用某協議通過Internet網或任何其他網絡介質被使用的計算機」。
第一步
進行遠程攻擊的第一步並不需要和攻擊目標進行密切地接觸(換句話說,如果入侵者聰明的話,那第一步可以不要)。入侵者的第一個任務(在識別出目標機及其所在的網絡的類型後)是決定他要對付誰。此類信息的獲得毋需干擾目標的正常工作(假設目標沒有安裝防火牆。因為大部分的網絡都沒有安裝防火牆,長期以來一直如此)。此類的某些信息可通過下面的技術獲得:
■運行一個查詢命令host。通過此命令,入侵者可獲得保存在目標域服務器中的所有信息。其查詢結果所含信息量的多少主要依靠於網絡的大小和結構。
■WHOIS查詢。此查詢的方法可識別出技術管理人員。這類信息也被認為是無用的。實際上不然。因為通常技術管理人員需要參與目標網的日常管理工作,所以這些人的電子郵件地址會有些價值(而且同時使用host和WHOIS查詢有助於你判斷目標是一個實實在在的系統還是一個頁結點,或是由另一個服務形成的虛擬的域等等)。
■運行一些Usenet和WEB查詢。在入侵者和目標進行實際接觸之前,他還有許多查詢工作要做。其中之一就是查詢某位技術管理人員的名字信息(使用強制的、區分大小寫的、完全匹配用的條件查詢)。通過些查詢入侵者可瞭解這些系統管理員和技術管理員是否經常上Usenet。同樣,也可在所有可用的安全郵件列表的可查詢集合中查詢他們的地址。
「你應該如何做呢?首先試著收集目標的信息。有許多網絡服務可於此目的,finger、showmount和rpcinfo都是好的起點。但不要停滯於此,你還能利用DNS、Whois、Sendmail(smtp)、ftp、uucp和其他的可用的各種服務。」
收集系統管理員的相關信息是最為重要的。系統管理員的職責是維護站點的安全,當他們遇到各種問題時,許多管理員會迫不及待地將這些問題發到Usenet或郵件列表上以尋求答案。
只要肯花一定時間來尋找此系統管理員的地址(和其他的一些信息),你便能徹底地瞭解他的網絡、他的安全概念以及他的個性。因為發出這種郵件的系統管理員總會指明他們的組織結構、網絡的拓樸結構和他們面臨的問題。
注意:對Windows NT網絡進行攻擊卻截然不同。你必須一直跟蹤每台機器上的根帳號(或者說系統管理員帳號)。因為NT並未設計出su等命令,用以完面只有根帳號才能完成的任務。而且NT上系統管理員帳號和UNIX上的根帳號有著極大的差異。
因為不直接被使用根帳號,所以系統管理員的ID可為任何字符串。讓我們假設你知道那個 ID:walrus。進一步假設通過host查詢命令,你得到了150台計算機的有關信息,其中包括每台計算機的名字。例如,他們可以是mail.victim.net、news.victim.net、shell.victim.net、
cgi.victim.net等等(儘管在實踐中,它們可能會有「主題」名,從而使外人不知道某台機器負擔何種工作,如sabertooth.victim.net、bengal.victim.net等)。
入侵者應該在每台機器上試一試管理員的地址。例如,他會試一試[email protected],[email protected]
等。換句話說,除了在網絡的每台計算機上嘗試管理員的地址,還要在每台計算機上嘗試所有的具有普遍性的東西。也許可以發現walrus喜歡用的計算機,所在信件都是從這台計算機郵出的。
請注意,如果目標是一個服務提供者(或者允許用戶對它進行合法訪問的系統),那麼通過觀察系統管理員從哪進入系統能獲得此管理員的更多信息。一般從外部聯合使用finger和rusers命令即可獲得這些信息。換句話說,你要一直留意外部網(除目標網以外的網,在這些網絡上那個系統管理有一些帳號),如果他最近的一次登錄是在Netcom,跟蹤他在Netcom帳號一天左右,看看會發生什麼。
關於finger查詢
finger很可能暴露你的行為,為了避免finger查詢產生標記,絕大多數入侵者使用finger gateways(finger網關)。finger網關是一些WEB主頁,通常包含了一個簡單的輸入框(field),此框指向在遠地服務器硬盤上的一個CGI程序。此遠程服務器執行finger查詢。
下面提供了此類finger網關的一個例子
http://www.hgp.med.umich.edu/cgi-bin/finger
通過finger網關的使用,入侵者能隱藏其源地址。
操作系統
也許你已經使用了各種方法(包括在上文中所提及的方法和另外一些方法)來識別在目標網絡上使用的操作系統的類型的版本。無論如何,一旦判斷出目標網絡上的操作系統和結構是多樣的,下一步的研究工作就可以進行了。首先作一張表,列出每個操作系統和機器的類型(這張表對於你進一步進行研究有極大地幫助),然後對每個平台進行研究並找出它們中的漏洞。
知道操作系統後可到如下地址查找相關的安全報告:
http://info.arc.com/sec_bull/sec_bullsearch.html
進行測試
實際上只有那些對入侵極熱衷的入侵者才會做攻擊過程中測試部分。大部分的入侵者並不想嘗試這種行為,因為這需要一定的費用。然而我卻推薦入侵者不要跳過此步驟。
在此步驟中,首先要建立一個和目標一樣的環境。一旦將此環境建立起來後,你就可對它進行一系列的攻擊。在此過程中,有兩件事需要注意:
■從攻擊方來看這些攻擊行為看上去像什麼
■從受攻擊方來看這些攻擊行為看上去像什麼
通過檢查攻擊方的日誌文件,入侵者能大致瞭解對一個幾乎沒有保護措施的目標進行攻擊時攻擊行為看上去像什麼(目標沒有保護措施是指目標機上沒有運行傳統的守護程序)。這能給入侵者提供一些提示;如果真正的攻擊行為和實驗結果不一致,那麼一定存在著某些原因。一台相同配置的機器(或者,我應說成一台配置明顯一致的機器)在相同的攻擊下應產生相同的反應。如果結果並非如此,那說明管理目標機的人暗中已有了應急計劃。在
這種情況下,入侵者應謹慎行動。
通過檢查被攻擊方的日誌,入侵者可瞭解攻擊過程中留下的「痕跡」看上去像什麼。這對入侵者來說很重要。在一個異構系統中,存在著不同的日誌過程。入侵至少應該知道這些日誌過程是什麼,換句話說,他需要瞭解保存入侵「痕跡」的每個文件(在相同配置的計算機上)。這些信息是至關重要的,並具有指導作用:它能告訴入侵者刪除哪些文件來毀滅其入侵的證據。找到這些文件的唯一方法就是在自己控制的環境中進行測試並檢查日誌。 和漏洞及其他重要特徵有關的各種工具
緊接著,你收集各種實際使用的工具,這些工具最有可能是一些掃瞄工具。你應該至少判斷出目標網上的所有設備。基於你對操作系統的分析(和其他我曾在本章裡提到過的各種軟件),你需要對你的工具進行評估以判斷有哪些漏洞和區域它們沒有覆蓋到。
只用一個工具而不用另一個工具就可覆蓋某特定設備的情況下,最好還是同時使用這兩個工具。這些工具的聯合使用是否方便主要依賴於這些工具是否能簡易地作為外部模塊附加到一個掃瞄工具上,如SATAN或SAFESuite。在此測試變行極為有價值,因為在多數情況下。附加一個外部模塊並讓它正常地工作並不那麼簡單。為了得到這些工具工作的確切結果,最好先在某台機器上進行實驗(這台機器甚至可和目標機不同)。這是因為。我們想知道是否會由於加上兩個或多個單獨設計的模塊而使掃瞄工具的工作突然被中斷或失敗。記住實際的掃瞄攻擊過程只能一氣呵成,如果中間被打斷,那你不會有第二次機會。於是,根據你想在目標機上得到的東西,你可挑選一些合適的工具。在某些情況下,這是一件輕鬆的事。例如,也許你已經知道在目標系統上的某人正通過網絡運行著一些X窗口系統的應用軟件。在此種情況下,如果你搜索Xhost的漏洞,一定能有所收穫。
記住使用掃瞄工具是一種激烈的解決方案。它等於是在大白天拿著棍衝到某戶人家,去試著撬所有的門和窗。只要此系統的管理員適度地涉獵過一些安全話題,那你的行為在他面前會暴露無疑。
形成一個攻擊策略
在Internet漫遊過程中攻擊這台或那台服務器的日子基本上已經過去。多年前,只要系統沒有遭到破壞,突破系統安全的行為辦被看用一種輕微的越界行為。如今,形勢則大不相同。今天,數據的價值成為了談論的焦點。因此作為現代入侵者,沒有任何理由就實施入侵是很不明智的。反過來,只有制定了一個特定計劃再開始進入入侵才是明智之舉。
你的攻擊策略主要依賴於你所想要完成的。我們假設你手邊的任務基本上就是攻破某系統的安全措施。如果這是你的計劃,那麼你需要計劃如何完成此次攻擊。掃瞄時間花得越長(越多的機器被涉及在內),越有可能被發現;同時越多的掃瞄數據需要你篩選,而基於這些掃瞄數據進行的攻擊需花費的時間越長。我曾經提過,掃瞄的攻擊的時間越短越好。
因此一些事變行很明顯(或理所應當)了,一旦通過收集到的數據你判斷出網絡的某部分和整個網絡是通過路由器、交換機、橋或其他設備分隔的,那麼你可能應該把它排除在被掃瞄的對象之外。畢竟攻破這些系統而獲得的收益可能微乎其微。假定你獲得此網段上的某系統的根權限,你想你能得到什麼呢?你能輕鬆地穿過路由器、橋或交換機嗎?恐怕不能!因此,Sniffing只能提供此網段上其他計算機的相關信息,欺騙方法也只能對此網段內的機器有效。因為你所想要的一個主系統上(或者是一個可用的最大網段)的根權限,所以對一個更小、更安全的網絡進行掃瞄不可能獲得很大的好處。
注意:當然,如果這些機器(無論是何種原因)碰巧是那些唯一不受保護的機器,那就應該採取一切可能的方法攻擊它們(除非它們真的毫無價值)。例如,通常會把一個web服務器放在網絡防火牆之外或使其成為唯一一台可從外面訪問的機器。除非行為的目的是為了入侵此web服務器(並帶給此web服務器的管理者一些有限的、公共的麻煩),否則不要去騷擾它。這些機器都是作為典型的犧牲物--那系統管理員已經估計到此機器會被遠程攻擊成功地攻陷,因此此計算機的硬盤上除了主頁外幾乎沒有其他數據可用。
無論如何,一旦你確定了掃瞄的參數,就可以開始行動了。
關於掃瞄的時間
關於這個問題,沒有確切的答案。如果你真地想進行掃瞄,我想在目標機所處地區的深夜時間較好。
掃瞄結束後
當你完成掃瞄後,你便可以開始分析這些數據了。首先你應考慮通過此方法得到的信息是否可靠(可靠度,在某種程度上可通過在類似的環境中進行的掃瞄實驗得。)然後再進行分析,由掃瞄獲得的數據不同則分析過程也不同。在SATAN中的文檔對此能給你極大地幫助。這些文檔(一些關於漏洞的說明)是簡短的,但直接而富有指導性。
如果得到了某個漏洞,你就應該重新參考那些通過搜索BUGTRAQ和其他可用資源而建立起來的數據庫信息。
主要的一點是,沒有任何方法能使一個新手在一夜之間變成一位有經驗的系統管理員或入侵者。這是殘酷的事實。在你真正理解了攻擊的本質和什麼應從攻擊中剔除之前,你可能要花上數個星期來研究源碼、漏洞、某特定操作系統和其他信息。這些是不可逾越的。在攻擊中經驗是無法替代的,耐心也是無法替代的。如果你缺乏上述任何一個特點,那就忘記進攻吧。
這是此處的重要一點。無論是像Kevin Mitnik(入侵者)這種人還是像Weitse Venema(黑客)這種人,他們幾乎沒有區別。他們的工作和成果一直是新聞雜誌和網上論壇上談論的焦點。他們是計算機安全領域內的著名人士(在某些情況下,甚至遠遠超過)。然而他們的成果(無論是好是壞)都來自於艱苦的工作、學習、天賦、思想、想像和自我專研。此因,防火牆無法挽救一個不能熟練使用它的系統管理員;同樣,SATAN也無法幫助一個剛出道的入侵者攻破遠程目標的保護。
小結
遠程攻擊變得越來越普遍。玻正如在前幾章中所討論的,掃瞄工具的運用已被更多的普遍用戶所掌握。類似的,可查詢的安全漏洞索引的大量增加也極大地促進了人們識別可能的安全問題的能力。
一些人認為這些信息的自由共享是使Intenet處於差的安全狀態的原因。其實這種想法是不對的。相反,系統管理員應該利用這些可用的公共信息。他們應該從技術的角度在他們自己的網絡上執行信息中描述的過程。這既不費時又不費錢。
攻擊特定操作系統的特定方法也超出了本書的範圍,主要是因為要寫的實在太多。進一步說,一個經過很好計劃和可怕的遠程攻擊,並不是那些倉促行事的黑客做到的,只有那些對系統有著深刻瞭解的人才能辦到。這些人很鎮定並且對TCP/IP有著極深地瞭解(儘管瞭解的途徑可能不怎麼正式)。正是因為這個原因,入侵者們應對自己走上這條可怕的路而感到羞愧。人們想知道為什麼這什麼這些天才會走了這條路呢?