協議欺騙攻擊技術常見種類簡析及防范
[ 2007-03-25 03:32:42 | 作者: sun ]
IP欺騙攻擊
IP欺騙技術就是通過偽造某臺主機的IP地址騙取特權從而進行攻擊的技術。許多應用程序認為如果數據包能夠使其自身沿著路由到達目的地,而且應答包也可以回到源地,那么源IP地址一定是有效的,而這正是使源IP地址欺騙攻擊成為可能的前提。
假設同一網段內有兩臺主機A、B,另一網段內有主機X。B 授予A某些特權。X 為獲得與A相同的特權,所做欺騙攻擊如下:首先,X冒充A,向主機 B發送一個帶有隨機序列號的SYN包。主機B響應,回送一個應答包給A,該應答號等于原序 列號加1。然而,此時主機A已被主機X利用拒絕服務攻擊 “淹沒”了,導致主機A服務失效。結果,主機A將B發來的包丟棄。為了完成三次握手,X還需要向B回送一個應答包,其應答號等于B向A發送數據 包的序列號加1。此時主機X 并不能檢測到主機B的數據包(因為不在同一網段),只有利用TCP順序號估算法來預測應答包的順序號并將其發送給目標機B。如果猜測正確,B則認為收到的ACK是來自內部主機A。此時,X即獲得了主機A在主機B上所享有的特權,并開始對這些服務實施攻擊。
要防止源IP地址欺騙行為,可以采取以下措施來盡可能地保護系統免受這類攻擊:
·拋棄基于地址的信任策略: 阻止這類攻擊的一種非常容易的辦法就是放棄以地址為基礎的驗證。不允許r類遠程調用命令的使用;刪除.rhosts 文件;清空/etc/hosts.equiv 文件。這將迫使所有用戶使用其它遠程通信手段,如telnet、ssh、skey等等。
·使用加密方法: 在包發送到 網絡上之前,我們可以對它進行加密。雖然加密過程要求適當改變目前的網絡環境,但它將保證數據的完整性和真實性。
·進行包過濾:可以配置路由器使其能夠拒絕網絡外部與本網內具有相同IP地址的連接請求。而且,當包的IP地址不在本網內時,路由器不應該把本網主機的包發送出去。
有一點要注意,路由器雖然可以封鎖試圖到達內部網絡的特定類型的包。但它們也是通過分析測試源地址來實現操作的。因此,它們僅能對聲稱是來自于內部網絡的外來包進行過濾,若你的網絡存在外部可信任主機,那么路由器將無法防止別人冒充這些主機進行IP欺騙。
ARP欺騙攻擊
在局域網中,通信前必須通過ARP協議來完成IP地址轉換為第二層物理地址(即MAC地址)。ARP協議對網絡安全具有重要的意義,但是當初ARP方式的設計沒有考慮到過多的安全問題,給ARP留下很多的隱患,ARP欺騙就是其中一個例子。而ARP欺騙攻擊就是利用該協議漏洞,通過偽造IP地址和MAC地址實現ARP欺騙的攻擊技術。
我們假設有三臺主機A,B,C位于同一個交換式局域網中,監聽者處于主機A,而主機B,C正在通信。現在A希望能嗅探到B->C的數據, 于是A就可以偽裝成C對B做ARP欺騙——向B發送偽造的ARP應答包,應答包中IP地址為C的IP地址而MAC地址為A的MAC地址。 這個應答包會刷新B的ARP緩存,讓B認為A就是C,說詳細點,就是讓B認為C的IP地址映射到的MAC地址為主機A的MAC地址。 這樣,B想要發送給C的數據實際上卻發送給了A,就達到了嗅探的目的。我們在嗅探到數據后,還必須將此數據轉發給C, 這樣就可以保證B,C的通信不被中斷。
以上就是基于ARP欺騙的嗅探基本原理,在這種嗅探方法中,嗅探者A實際上是插入到了B->C中, B的數據先發送給了A,然后再由A轉發給C,其數據傳輸關系如下所示:
B----->A----->C
B<----A<------C
于是A就成功于截獲到了它B發給C的數據。上面這就是一個簡單的ARP欺騙的例子。
ARP欺騙攻擊有兩種可能,一種是對路由器ARP表的欺騙;另一種是對內網電腦ARP表的欺騙,當然也可能兩種攻擊同時進行。但不管怎么樣,欺騙發送后,電腦和路由器之間發送的數據可能就被送到錯誤的MAC地址上。
防范ARP欺騙攻擊可以采取如下措施:
·在客戶端使用arp命令綁定網關的真實MAC地址命令
·在交換機上做端口與MAC地址的靜態綁定。
·在路由器上做IP地址與MAC地址的靜態綁定
·使用“ARP SERVER”按一定的時間間隔廣播網段內所有主機的正確IP-MAC映射表。
DNS欺騙攻擊
DNS欺騙即域名信息欺騙是最常見的DNS安全問題。當一個DNS服務器掉入陷阱,使用了來自一個惡意DNS服務器的錯誤信息,那么該DNS服務器就被欺騙了。DNS欺騙會使那些易受攻擊的DNS服務器產生許多安全問題,例如:將用戶引導到錯誤的互聯網站點,或者發送一個電子郵件到一個未經授權的郵件服務器。網絡攻擊者通常通過以下幾種方法進行DNS欺騙。
(1)緩存感染
黑客會熟練的使用DNS請求,將數據放入一個沒有設防的DNS服務器的緩存當中。這些緩存信息會在客戶進行DNS訪問時返回給客戶,從而將客戶引導到入侵者所設置的運行木馬的Web服務器或郵件服務器上,然后黑客從這些服務器上獲取用戶信息。
(2)DNS信息劫持
入侵者通過監聽客戶端和DNS服務器的對話,通過猜測服務器響應給客戶端的DNS查詢ID。每個DNS報文包括一個相關聯的16位ID號,DNS服務器根據這個ID號獲取請求源位置。黑客在DNS服務器之前將虛假的響應交給用戶,從而欺騙客戶端去訪問惡意的網站。
(3)DNS重定向
攻擊者能夠將DNS名稱查詢重定向到惡意DNS服務器。這樣攻擊者可以獲得DNS服務器的寫權限。
防范DNS欺騙攻擊可采取如下措施
·直接用IP訪問重要的服務,這樣至少可以避開DNS欺騙攻擊。但這需要你記住要訪問的IP地址。
·加密所有對外的數據流,對服務器來說就是盡量使用SSH之類的有加密支持的協議,對一般用戶應該用PGP之類的軟件加密所有發到網絡上的數據。這也并不是怎么容易的事情。
源路由欺騙攻擊
通過指定路由,以假冒身份與其他主機進行合法通信或發送假報文,使受攻擊主機出現錯誤動作,這就是源路由攻擊。在通常情況下,信息包從起點到終點走過的路徑是由位于此兩點間的路由器決定的,數據包本身只知道去往何處,但不知道該如何去。源路由可使信息包的發送者將此數據包要經過的路徑寫在數據包里,使數據包循著一個對方不可預料的路徑到達目的主機。下面仍以上述源IP欺騙中的例子給出這種攻擊的形式:
主機A享有主機B的某些特權,主機X想冒充主機A從主機B(假設IP為aaa.bbb.ccc.ddd)獲得某些服務。首先,攻擊者修改距離X最近的路由器,使得到達此路由器且包含目的地址aaa.bbb.ccc.ddd的數據包以主機X所在的網絡為目的地;然后,攻擊者X利用IP欺騙向主機B發送源路由(指定最近的路由器)數據包。當B回送數據包時,就傳送到被更改過的路由器。這就使一個入侵者可以假冒一個主機的名義通過一個特殊的路徑來獲得某些被保護數據。
為了防范源路由欺騙攻擊,一般采用下面兩種措施:
·對付這種攻擊最好的辦法是配置好路由器,使它拋棄那些由外部網進來的卻聲稱是內部主機的報文。
·在路由器上關閉源路由。用命令no ip source-route。
IP欺騙技術就是通過偽造某臺主機的IP地址騙取特權從而進行攻擊的技術。許多應用程序認為如果數據包能夠使其自身沿著路由到達目的地,而且應答包也可以回到源地,那么源IP地址一定是有效的,而這正是使源IP地址欺騙攻擊成為可能的前提。
假設同一網段內有兩臺主機A、B,另一網段內有主機X。B 授予A某些特權。X 為獲得與A相同的特權,所做欺騙攻擊如下:首先,X冒充A,向主機 B發送一個帶有隨機序列號的SYN包。主機B響應,回送一個應答包給A,該應答號等于原序 列號加1。然而,此時主機A已被主機X利用拒絕服務攻擊 “淹沒”了,導致主機A服務失效。結果,主機A將B發來的包丟棄。為了完成三次握手,X還需要向B回送一個應答包,其應答號等于B向A發送數據 包的序列號加1。此時主機X 并不能檢測到主機B的數據包(因為不在同一網段),只有利用TCP順序號估算法來預測應答包的順序號并將其發送給目標機B。如果猜測正確,B則認為收到的ACK是來自內部主機A。此時,X即獲得了主機A在主機B上所享有的特權,并開始對這些服務實施攻擊。
要防止源IP地址欺騙行為,可以采取以下措施來盡可能地保護系統免受這類攻擊:
·拋棄基于地址的信任策略: 阻止這類攻擊的一種非常容易的辦法就是放棄以地址為基礎的驗證。不允許r類遠程調用命令的使用;刪除.rhosts 文件;清空/etc/hosts.equiv 文件。這將迫使所有用戶使用其它遠程通信手段,如telnet、ssh、skey等等。
·使用加密方法: 在包發送到 網絡上之前,我們可以對它進行加密。雖然加密過程要求適當改變目前的網絡環境,但它將保證數據的完整性和真實性。
·進行包過濾:可以配置路由器使其能夠拒絕網絡外部與本網內具有相同IP地址的連接請求。而且,當包的IP地址不在本網內時,路由器不應該把本網主機的包發送出去。
有一點要注意,路由器雖然可以封鎖試圖到達內部網絡的特定類型的包。但它們也是通過分析測試源地址來實現操作的。因此,它們僅能對聲稱是來自于內部網絡的外來包進行過濾,若你的網絡存在外部可信任主機,那么路由器將無法防止別人冒充這些主機進行IP欺騙。
ARP欺騙攻擊
在局域網中,通信前必須通過ARP協議來完成IP地址轉換為第二層物理地址(即MAC地址)。ARP協議對網絡安全具有重要的意義,但是當初ARP方式的設計沒有考慮到過多的安全問題,給ARP留下很多的隱患,ARP欺騙就是其中一個例子。而ARP欺騙攻擊就是利用該協議漏洞,通過偽造IP地址和MAC地址實現ARP欺騙的攻擊技術。
我們假設有三臺主機A,B,C位于同一個交換式局域網中,監聽者處于主機A,而主機B,C正在通信。現在A希望能嗅探到B->C的數據, 于是A就可以偽裝成C對B做ARP欺騙——向B發送偽造的ARP應答包,應答包中IP地址為C的IP地址而MAC地址為A的MAC地址。 這個應答包會刷新B的ARP緩存,讓B認為A就是C,說詳細點,就是讓B認為C的IP地址映射到的MAC地址為主機A的MAC地址。 這樣,B想要發送給C的數據實際上卻發送給了A,就達到了嗅探的目的。我們在嗅探到數據后,還必須將此數據轉發給C, 這樣就可以保證B,C的通信不被中斷。
以上就是基于ARP欺騙的嗅探基本原理,在這種嗅探方法中,嗅探者A實際上是插入到了B->C中, B的數據先發送給了A,然后再由A轉發給C,其數據傳輸關系如下所示:
B----->A----->C
B<----A<------C
于是A就成功于截獲到了它B發給C的數據。上面這就是一個簡單的ARP欺騙的例子。
ARP欺騙攻擊有兩種可能,一種是對路由器ARP表的欺騙;另一種是對內網電腦ARP表的欺騙,當然也可能兩種攻擊同時進行。但不管怎么樣,欺騙發送后,電腦和路由器之間發送的數據可能就被送到錯誤的MAC地址上。
防范ARP欺騙攻擊可以采取如下措施:
·在客戶端使用arp命令綁定網關的真實MAC地址命令
·在交換機上做端口與MAC地址的靜態綁定。
·在路由器上做IP地址與MAC地址的靜態綁定
·使用“ARP SERVER”按一定的時間間隔廣播網段內所有主機的正確IP-MAC映射表。
DNS欺騙攻擊
DNS欺騙即域名信息欺騙是最常見的DNS安全問題。當一個DNS服務器掉入陷阱,使用了來自一個惡意DNS服務器的錯誤信息,那么該DNS服務器就被欺騙了。DNS欺騙會使那些易受攻擊的DNS服務器產生許多安全問題,例如:將用戶引導到錯誤的互聯網站點,或者發送一個電子郵件到一個未經授權的郵件服務器。網絡攻擊者通常通過以下幾種方法進行DNS欺騙。
(1)緩存感染
黑客會熟練的使用DNS請求,將數據放入一個沒有設防的DNS服務器的緩存當中。這些緩存信息會在客戶進行DNS訪問時返回給客戶,從而將客戶引導到入侵者所設置的運行木馬的Web服務器或郵件服務器上,然后黑客從這些服務器上獲取用戶信息。
(2)DNS信息劫持
入侵者通過監聽客戶端和DNS服務器的對話,通過猜測服務器響應給客戶端的DNS查詢ID。每個DNS報文包括一個相關聯的16位ID號,DNS服務器根據這個ID號獲取請求源位置。黑客在DNS服務器之前將虛假的響應交給用戶,從而欺騙客戶端去訪問惡意的網站。
(3)DNS重定向
攻擊者能夠將DNS名稱查詢重定向到惡意DNS服務器。這樣攻擊者可以獲得DNS服務器的寫權限。
防范DNS欺騙攻擊可采取如下措施
·直接用IP訪問重要的服務,這樣至少可以避開DNS欺騙攻擊。但這需要你記住要訪問的IP地址。
·加密所有對外的數據流,對服務器來說就是盡量使用SSH之類的有加密支持的協議,對一般用戶應該用PGP之類的軟件加密所有發到網絡上的數據。這也并不是怎么容易的事情。
源路由欺騙攻擊
通過指定路由,以假冒身份與其他主機進行合法通信或發送假報文,使受攻擊主機出現錯誤動作,這就是源路由攻擊。在通常情況下,信息包從起點到終點走過的路徑是由位于此兩點間的路由器決定的,數據包本身只知道去往何處,但不知道該如何去。源路由可使信息包的發送者將此數據包要經過的路徑寫在數據包里,使數據包循著一個對方不可預料的路徑到達目的主機。下面仍以上述源IP欺騙中的例子給出這種攻擊的形式:
主機A享有主機B的某些特權,主機X想冒充主機A從主機B(假設IP為aaa.bbb.ccc.ddd)獲得某些服務。首先,攻擊者修改距離X最近的路由器,使得到達此路由器且包含目的地址aaa.bbb.ccc.ddd的數據包以主機X所在的網絡為目的地;然后,攻擊者X利用IP欺騙向主機B發送源路由(指定最近的路由器)數據包。當B回送數據包時,就傳送到被更改過的路由器。這就使一個入侵者可以假冒一個主機的名義通過一個特殊的路徑來獲得某些被保護數據。
為了防范源路由欺騙攻擊,一般采用下面兩種措施:
·對付這種攻擊最好的辦法是配置好路由器,使它拋棄那些由外部網進來的卻聲稱是內部主機的報文。
·在路由器上關閉源路由。用命令no ip source-route。
一、基礎知識
在介紹木馬的原理之前有一些木馬構成的基礎知識我們要事先加以說明,因為下面有很多地方會提到這些內容。
一個完整的木馬系統由硬件部分、軟件部分和具體連接部分組成。
1.硬件部分
建立木馬連接所必須的硬件實體。
控制端:對服務端進行遠程控制的一方。
服務端:被控制端遠程控制的一方。
INTERNET:控制端對服務端進行遠程控制,數據傳輸的網絡載體。
2.軟件部分
實現遠程控制所必須的軟件程序。
控制端程序:控制端用以遠程控制服務端的程序。
木馬程序:潛入服務端內部,獲取其操作權限的程序。
木馬配置程序:設置木馬程序的端口號,觸發條件,木馬名稱等,使其在服務端藏得更隱蔽的程序。
3.具體連接部分
通過INTERNET在服務端和控制端之間建立一條木馬通道所必須的元素。
控制端IP,服務端IP:即控制端,服務端的網絡地址,也是木馬進行數據傳輸的目的地。
控制端端口,木馬端口:即控制端,服務端的數據入口,通過這個入口,數據可直達控制端程序或木馬程序。
二、特洛伊木馬的攻擊步驟
用木馬這種黑客工具進行網絡入侵,從過程上看大致可分為六步,下面我們就按這六步來詳細闡述木馬的攻擊原理。
1. 配置木馬
一般來說一個設計成熟的木馬都有木馬配置程序,從具體的配置內容看,主要是為了實現以下兩方面功能:
(1)木馬偽裝:木馬配置程序為了在服務端盡可能好的隱藏木馬,會采用多種偽裝手段,如修改圖標、捆綁文件、定制端口、自我銷毀等等。
(2)信息反饋:木馬配置程序將就信息反饋的方式或地址進行設置,如設置信息反饋的郵件地址、IRC號、ICQ號等。
2. 傳播木馬
(1)傳播方式
木馬的傳播方式主要有兩種:一種是通過E-MAIL,控制端將木馬程序以附件的形式夾在郵件中發送出去,收信人只要打開附件系統就會感染木馬;另一種是軟件下載,一些非正規的網站以提供軟件下載為名義,將木馬捆綁在軟件安裝程序上,下載后,只要一運行這些程序,木馬就會自動安裝。
(2)偽裝方式
鑒于木馬的危害性,很多人對木馬知識還是有一定了解的,這對木馬的傳播起了一定的抑制作用,這是木馬設計者所不愿見到的。因此他們開發了多種功能來偽裝木馬,以達到降低用戶警覺,欺騙用戶的目的。一般來說有以下幾種:
◆修改圖標
也許你會在E-MAIL的附件中看到一個很平常的文本圖標,但是我不得不告訴你,這也有可能是個木馬程序,現在已經有木馬可以將木馬服務端程序的圖標改成HTML、TXT、ZIP等各種文件的圖標,這有相當大的迷惑性,但是目前提供這種功能的木馬還不多見,并且這種偽裝也不是無懈可擊的,所以不必整天提心吊膽、疑神疑鬼的。
◆捆綁文件
這種偽裝手段是將木馬捆綁到一個安裝程序上,當安裝程序運行時,木馬在用戶毫無察覺的情況下,偷偷的進入了系統。至于被捆綁的文件一般是可執行文件,即EXE、COM一類的文件。
◆出錯顯示
有一定木馬知識的人都知道,如果打開一個文件,沒有任何反應,這很可能就是個木馬程序,木馬的設計者也意識到了這個缺陷,所以已經有木馬提供了一個叫做出錯顯示的功能。當服務端用戶打開木馬程序時,會彈出一個錯誤提示框——這當然是假的,錯誤內容可自由定義,大多會定制成一些諸如“文件已破壞,無法打開的!”之類的信息,當服務端用戶信以為真時,木馬卻悄悄侵入了系統。
◆定制端口
很多老式的木馬端口都是固定的,這給判斷是否感染了木馬帶來了方便,只要查一下特定的端口就知道感染了什么木馬,所以現在很多新式的木馬都加入了定制端口的功能,控制端用戶可以在1024——65535之間任選一個端口作為木馬端口。一般不選1024以下的端口,這樣就給判斷所感染木馬類型帶來了麻煩。
◆自我銷毀
這項功能是為了彌補木馬的一個缺陷。我們知道當服務端用戶打開含有木馬的文件后,木馬會將自己拷貝到WINDOWS的系統文件的C:\WINDOWS或C:\WINDOWS\SYSTEM目錄下,一般來說原木馬文件和系統文件夾中的木馬文件的大小是一樣的,捆綁文件的木馬除外。那么中了木馬的朋友只要在近來收到的信件和下載的軟件中找到原木馬文件,然后根據原木馬的大小去系統文件夾找相同大小的文件, 判斷一下哪個是木馬就行了。而木馬的自我銷毀功能是指安裝完木馬后,原木馬文件將自動銷毀,這樣服務端用戶就很難找到木馬的來源,在沒有查殺木馬的工具幫助下,就很難刪除木馬了。
◆木馬更名
安裝到系統文件夾中的木馬的文件名一般是固定的,那么只要根據一些查殺木馬的文章,按圖索驥在系統文件夾查找特定的文件,就可以斷定中了什么木馬。所以現在有很多木馬都允許控 制端用戶自由定制安裝后的木馬文件名,這樣很難判斷所感染的木馬類型了。
3.運行木馬
服務端用戶運行木馬或捆綁木馬的程序后,木馬就會自動進行安裝。首先將自身拷貝到WINDOWS的系統文件夾中C:\WINDOWS或C:\WINDOWS\SYSTEM目錄下。然后在注冊表、啟動組、非啟動組中設置好木馬的觸發條件,這樣木馬的安裝就完成了。安裝后就可以啟動木馬了。
由觸發條件激活木馬
觸發條件是指啟動木馬的條件,大致出現在下面八個地方:
◆注冊表
打開HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\下的五個以Run和RunServices主鍵,在其中尋找可能是啟動木馬的鍵值。
◆WIN.INI
C:\WINDOWS目錄下有一個配置文件win.ini,用文本方式打開,在windows字段中有啟動命令load=和run=,在一般情況下是空白的,如果有啟動程序,可能是木馬。
◆SYSTEM.INI
C:\WINDOWS目錄下有個配置文件system.ini,用文本方式打開,在386Enh、mic、drivers32中有命令行,在其中尋找木馬的啟動命令。
◆Autoexec.bat和Config.sys
在C盤根目錄下的這兩個文件也可以啟動木馬。但這種加載方式一般都需要控制端用戶與服務端建立連接后,將已添加木馬啟動命令的同名文件上傳到服務端覆蓋這兩個文件才行。
◆*.INI
即應用程序的啟動配置文件,控制端利用這些文件能啟動程序的特點,將制作好的帶有木馬啟動命令的同名文件上傳到服務端覆蓋這同名文件,這樣就可以達到啟動木馬的目的了。
◆注冊表
打開HKEY_CLASSES_ROOT\文件類型\shell\open\command主鍵,查看其鍵值。舉個例子,國產木馬“冰河”就是修改HKEY_CLASSES_ROOT\txtfile\shell\open\command下的鍵值,將“C:\WINDOWS \NOTEPAD.EXE %1”改為“C:\WINDOWS\SYSTEM\SYSEXPLR.EXE %1”,這時你雙擊一個TXT文件后,原本應用NOTEPAD打開文件的,現在卻變成啟動木馬程序了。還要說明的是不光是TXT文件,通過修改HTML、EXE、ZIP等文件的啟動命令的鍵值都可以啟動木馬,不同之處只在于“文件類型”這個主鍵的差別,TXT是txtfile,ZIP是WINZIP,大家可以試著去找一下。
◆捆綁文件
實現這種觸發條件首先要控制端和服務端通過木馬建立連接,然后控制端用戶用工具軟件將木馬文件和某一應用程序捆綁在一起,然后上傳到服務端覆蓋原文件,這樣即使木馬被刪除了,只要運行捆綁了木馬的應用程序,木馬又會被安裝上去了。
◆啟動菜單
在“開始—程序—啟動”選項下也可能有木馬的觸發條件。
在介紹木馬的原理之前有一些木馬構成的基礎知識我們要事先加以說明,因為下面有很多地方會提到這些內容。
一個完整的木馬系統由硬件部分、軟件部分和具體連接部分組成。
1.硬件部分
建立木馬連接所必須的硬件實體。
控制端:對服務端進行遠程控制的一方。
服務端:被控制端遠程控制的一方。
INTERNET:控制端對服務端進行遠程控制,數據傳輸的網絡載體。
2.軟件部分
實現遠程控制所必須的軟件程序。
控制端程序:控制端用以遠程控制服務端的程序。
木馬程序:潛入服務端內部,獲取其操作權限的程序。
木馬配置程序:設置木馬程序的端口號,觸發條件,木馬名稱等,使其在服務端藏得更隱蔽的程序。
3.具體連接部分
通過INTERNET在服務端和控制端之間建立一條木馬通道所必須的元素。
控制端IP,服務端IP:即控制端,服務端的網絡地址,也是木馬進行數據傳輸的目的地。
控制端端口,木馬端口:即控制端,服務端的數據入口,通過這個入口,數據可直達控制端程序或木馬程序。
二、特洛伊木馬的攻擊步驟
用木馬這種黑客工具進行網絡入侵,從過程上看大致可分為六步,下面我們就按這六步來詳細闡述木馬的攻擊原理。
1. 配置木馬
一般來說一個設計成熟的木馬都有木馬配置程序,從具體的配置內容看,主要是為了實現以下兩方面功能:
(1)木馬偽裝:木馬配置程序為了在服務端盡可能好的隱藏木馬,會采用多種偽裝手段,如修改圖標、捆綁文件、定制端口、自我銷毀等等。
(2)信息反饋:木馬配置程序將就信息反饋的方式或地址進行設置,如設置信息反饋的郵件地址、IRC號、ICQ號等。
2. 傳播木馬
(1)傳播方式
木馬的傳播方式主要有兩種:一種是通過E-MAIL,控制端將木馬程序以附件的形式夾在郵件中發送出去,收信人只要打開附件系統就會感染木馬;另一種是軟件下載,一些非正規的網站以提供軟件下載為名義,將木馬捆綁在軟件安裝程序上,下載后,只要一運行這些程序,木馬就會自動安裝。
(2)偽裝方式
鑒于木馬的危害性,很多人對木馬知識還是有一定了解的,這對木馬的傳播起了一定的抑制作用,這是木馬設計者所不愿見到的。因此他們開發了多種功能來偽裝木馬,以達到降低用戶警覺,欺騙用戶的目的。一般來說有以下幾種:
◆修改圖標
也許你會在E-MAIL的附件中看到一個很平常的文本圖標,但是我不得不告訴你,這也有可能是個木馬程序,現在已經有木馬可以將木馬服務端程序的圖標改成HTML、TXT、ZIP等各種文件的圖標,這有相當大的迷惑性,但是目前提供這種功能的木馬還不多見,并且這種偽裝也不是無懈可擊的,所以不必整天提心吊膽、疑神疑鬼的。
◆捆綁文件
這種偽裝手段是將木馬捆綁到一個安裝程序上,當安裝程序運行時,木馬在用戶毫無察覺的情況下,偷偷的進入了系統。至于被捆綁的文件一般是可執行文件,即EXE、COM一類的文件。
◆出錯顯示
有一定木馬知識的人都知道,如果打開一個文件,沒有任何反應,這很可能就是個木馬程序,木馬的設計者也意識到了這個缺陷,所以已經有木馬提供了一個叫做出錯顯示的功能。當服務端用戶打開木馬程序時,會彈出一個錯誤提示框——這當然是假的,錯誤內容可自由定義,大多會定制成一些諸如“文件已破壞,無法打開的!”之類的信息,當服務端用戶信以為真時,木馬卻悄悄侵入了系統。
◆定制端口
很多老式的木馬端口都是固定的,這給判斷是否感染了木馬帶來了方便,只要查一下特定的端口就知道感染了什么木馬,所以現在很多新式的木馬都加入了定制端口的功能,控制端用戶可以在1024——65535之間任選一個端口作為木馬端口。一般不選1024以下的端口,這樣就給判斷所感染木馬類型帶來了麻煩。
◆自我銷毀
這項功能是為了彌補木馬的一個缺陷。我們知道當服務端用戶打開含有木馬的文件后,木馬會將自己拷貝到WINDOWS的系統文件的C:\WINDOWS或C:\WINDOWS\SYSTEM目錄下,一般來說原木馬文件和系統文件夾中的木馬文件的大小是一樣的,捆綁文件的木馬除外。那么中了木馬的朋友只要在近來收到的信件和下載的軟件中找到原木馬文件,然后根據原木馬的大小去系統文件夾找相同大小的文件, 判斷一下哪個是木馬就行了。而木馬的自我銷毀功能是指安裝完木馬后,原木馬文件將自動銷毀,這樣服務端用戶就很難找到木馬的來源,在沒有查殺木馬的工具幫助下,就很難刪除木馬了。
◆木馬更名
安裝到系統文件夾中的木馬的文件名一般是固定的,那么只要根據一些查殺木馬的文章,按圖索驥在系統文件夾查找特定的文件,就可以斷定中了什么木馬。所以現在有很多木馬都允許控 制端用戶自由定制安裝后的木馬文件名,這樣很難判斷所感染的木馬類型了。
3.運行木馬
服務端用戶運行木馬或捆綁木馬的程序后,木馬就會自動進行安裝。首先將自身拷貝到WINDOWS的系統文件夾中C:\WINDOWS或C:\WINDOWS\SYSTEM目錄下。然后在注冊表、啟動組、非啟動組中設置好木馬的觸發條件,這樣木馬的安裝就完成了。安裝后就可以啟動木馬了。
由觸發條件激活木馬
觸發條件是指啟動木馬的條件,大致出現在下面八個地方:
◆注冊表
打開HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\下的五個以Run和RunServices主鍵,在其中尋找可能是啟動木馬的鍵值。
◆WIN.INI
C:\WINDOWS目錄下有一個配置文件win.ini,用文本方式打開,在windows字段中有啟動命令load=和run=,在一般情況下是空白的,如果有啟動程序,可能是木馬。
◆SYSTEM.INI
C:\WINDOWS目錄下有個配置文件system.ini,用文本方式打開,在386Enh、mic、drivers32中有命令行,在其中尋找木馬的啟動命令。
◆Autoexec.bat和Config.sys
在C盤根目錄下的這兩個文件也可以啟動木馬。但這種加載方式一般都需要控制端用戶與服務端建立連接后,將已添加木馬啟動命令的同名文件上傳到服務端覆蓋這兩個文件才行。
◆*.INI
即應用程序的啟動配置文件,控制端利用這些文件能啟動程序的特點,將制作好的帶有木馬啟動命令的同名文件上傳到服務端覆蓋這同名文件,這樣就可以達到啟動木馬的目的了。
◆注冊表
打開HKEY_CLASSES_ROOT\文件類型\shell\open\command主鍵,查看其鍵值。舉個例子,國產木馬“冰河”就是修改HKEY_CLASSES_ROOT\txtfile\shell\open\command下的鍵值,將“C:\WINDOWS \NOTEPAD.EXE %1”改為“C:\WINDOWS\SYSTEM\SYSEXPLR.EXE %1”,這時你雙擊一個TXT文件后,原本應用NOTEPAD打開文件的,現在卻變成啟動木馬程序了。還要說明的是不光是TXT文件,通過修改HTML、EXE、ZIP等文件的啟動命令的鍵值都可以啟動木馬,不同之處只在于“文件類型”這個主鍵的差別,TXT是txtfile,ZIP是WINZIP,大家可以試著去找一下。
◆捆綁文件
實現這種觸發條件首先要控制端和服務端通過木馬建立連接,然后控制端用戶用工具軟件將木馬文件和某一應用程序捆綁在一起,然后上傳到服務端覆蓋原文件,這樣即使木馬被刪除了,只要運行捆綁了木馬的應用程序,木馬又會被安裝上去了。
◆啟動菜單
在“開始—程序—啟動”選項下也可能有木馬的觸發條件。
口令攻擊的主要方式及相關防護手段
[ 2007-03-25 03:32:16 | 作者: sun ]
口令是網絡系統的第一道防線。當前的網絡系統都是通過口令來驗證用戶身份、實施訪問控制的。口令攻擊是指黑客以口令為攻擊目標,破解合法用戶的口令,或避開口令驗證過程,然后冒充合法用戶潛入目標網絡系統,奪取目標系統控制權的過程。
如果口令攻擊成功黑客進入了目標網絡系統,他就能夠隨心所欲地竊取、破壞和篡改被侵入方的信息,直至完全控制被侵入方。所以,口令攻擊是黑客實施網絡攻擊的最基本、最重要、最有效的方法之一。
口令攻擊的主要方法
1、社會工程學(social Engineering),通過人際交往這一非技術手段以欺騙、套取的方式來獲得口令。避免此類攻擊的對策是加強用戶意識。
2、猜測攻擊。首先使用口令猜測程序進行攻擊。口令猜測程序往往根據用戶定義口令的習慣猜測用戶口令,像名字縮寫、生日、寵物名、部門名等。在詳細了解用戶的社會背景之后,黑客可以列舉出幾百種可能的口令,并在很短的時間內就可以完成猜測攻擊。
3、字典攻擊。如果猜測攻擊不成功,入侵者會繼續擴大攻擊范圍,對所有英文單詞進行嘗試,程序將按序取出一個又一個的單詞,進行一次又一次嘗試,直到成功。據有的傳媒報導,對于一個有8萬個英文單詞的集合來說,入侵者不到一分半鐘就可試完。所以,如果用戶的口令不太長或是單詞、短語,那么很快就會被破譯出來。
4、窮舉攻擊。如果字典攻擊仍然不能夠成功,入侵者會采取窮舉攻擊。一般從長度為1的口令開始,按長度遞增進行嘗試攻擊。由于人們往往偏愛簡單易記的口令,窮舉攻擊的成功率很高。如果每千分之一秒檢查一個口令,那么86%的口令可以在一周內破譯出來。
5、混合攻擊,結合了字典攻擊和窮舉攻擊,先字典攻擊,再暴力攻擊。
避免以上四類攻擊的對策是加強口令策略。
6、直接破解系統口令文件。所有的攻擊都不能夠奏效,入侵者會尋找目標主機的安全漏洞和薄弱環節,飼機偷走存放系統口令的文件,然后破譯加密的口令,以便冒充合法用戶訪問這臺主機。
7:網絡嗅探(sniffer),通過嗅探器在局域網內嗅探明文傳輸的口令字符串。避免此類攻擊的對策是網絡傳輸采用加密傳輸的方式進行。
8:鍵盤記錄,在目標系統中安裝鍵盤記錄后門,記錄操作員輸入的口令字符串,如很多間諜軟件,木馬等都可能會盜取你的口述。
9:其他攻擊方式,中間人攻擊、重放攻擊、生日攻擊、時間攻擊。
避免以上幾類攻擊的對策是加強用戶安全意識,采用安全的密碼系統,注意系統安全,避免感染間諜軟件、木馬等惡意程序。
口令攻擊的防護手段
要有效防范口令攻擊,我們要選擇一個好口令,并且要注意保護口令的安全。
1、好口令是防范口令攻擊的最基本、最有效的方法。最好采用字母、數字、還有標點符號、特殊字符的組合,同時有大小寫字母,長度最好達到8個以上,最好容易記憶,不必把口令寫下來,絕對不要用自己或親友的生日、手機號碼等易于被他人獲知的信息作密碼。
2、注意保護口令安全。不要將口令記在紙上或存儲于計算機文件中;最好不要告訴別人你的口令;不要在不同的系統中使用相同的口令;在輸入口令時應確保無人在身邊窺視;在公共上網場所如網吧等處最好先確認系統是否安全;定期更改口令,至少六個月更改一次,這會使自己遭受口令攻擊的風險降到最低,要永遠不要對自己的口令過于自信.
如果口令攻擊成功黑客進入了目標網絡系統,他就能夠隨心所欲地竊取、破壞和篡改被侵入方的信息,直至完全控制被侵入方。所以,口令攻擊是黑客實施網絡攻擊的最基本、最重要、最有效的方法之一。
口令攻擊的主要方法
1、社會工程學(social Engineering),通過人際交往這一非技術手段以欺騙、套取的方式來獲得口令。避免此類攻擊的對策是加強用戶意識。
2、猜測攻擊。首先使用口令猜測程序進行攻擊。口令猜測程序往往根據用戶定義口令的習慣猜測用戶口令,像名字縮寫、生日、寵物名、部門名等。在詳細了解用戶的社會背景之后,黑客可以列舉出幾百種可能的口令,并在很短的時間內就可以完成猜測攻擊。
3、字典攻擊。如果猜測攻擊不成功,入侵者會繼續擴大攻擊范圍,對所有英文單詞進行嘗試,程序將按序取出一個又一個的單詞,進行一次又一次嘗試,直到成功。據有的傳媒報導,對于一個有8萬個英文單詞的集合來說,入侵者不到一分半鐘就可試完。所以,如果用戶的口令不太長或是單詞、短語,那么很快就會被破譯出來。
4、窮舉攻擊。如果字典攻擊仍然不能夠成功,入侵者會采取窮舉攻擊。一般從長度為1的口令開始,按長度遞增進行嘗試攻擊。由于人們往往偏愛簡單易記的口令,窮舉攻擊的成功率很高。如果每千分之一秒檢查一個口令,那么86%的口令可以在一周內破譯出來。
5、混合攻擊,結合了字典攻擊和窮舉攻擊,先字典攻擊,再暴力攻擊。
避免以上四類攻擊的對策是加強口令策略。
6、直接破解系統口令文件。所有的攻擊都不能夠奏效,入侵者會尋找目標主機的安全漏洞和薄弱環節,飼機偷走存放系統口令的文件,然后破譯加密的口令,以便冒充合法用戶訪問這臺主機。
7:網絡嗅探(sniffer),通過嗅探器在局域網內嗅探明文傳輸的口令字符串。避免此類攻擊的對策是網絡傳輸采用加密傳輸的方式進行。
8:鍵盤記錄,在目標系統中安裝鍵盤記錄后門,記錄操作員輸入的口令字符串,如很多間諜軟件,木馬等都可能會盜取你的口述。
9:其他攻擊方式,中間人攻擊、重放攻擊、生日攻擊、時間攻擊。
避免以上幾類攻擊的對策是加強用戶安全意識,采用安全的密碼系統,注意系統安全,避免感染間諜軟件、木馬等惡意程序。
口令攻擊的防護手段
要有效防范口令攻擊,我們要選擇一個好口令,并且要注意保護口令的安全。
1、好口令是防范口令攻擊的最基本、最有效的方法。最好采用字母、數字、還有標點符號、特殊字符的組合,同時有大小寫字母,長度最好達到8個以上,最好容易記憶,不必把口令寫下來,絕對不要用自己或親友的生日、手機號碼等易于被他人獲知的信息作密碼。
2、注意保護口令安全。不要將口令記在紙上或存儲于計算機文件中;最好不要告訴別人你的口令;不要在不同的系統中使用相同的口令;在輸入口令時應確保無人在身邊窺視;在公共上網場所如網吧等處最好先確認系統是否安全;定期更改口令,至少六個月更改一次,這會使自己遭受口令攻擊的風險降到最低,要永遠不要對自己的口令過于自信.
對網絡安全技術及其方案對策的分析
[ 2007-03-25 03:32:03 | 作者: sun ]
內部網
目前的局域網基本上都采用以廣播為技術基礎的以太網,任何兩個節點之間的通信數據包,不僅為這兩個節點的網卡所接收,也同時為處在同一以太網上的任何一個節點的網卡所截取。因此,黑客只要接入以太網上的任一節點進行偵聽,就可以捕獲發生在這個以太網上的所有數據包,對其進行解包分析,從而竊取關鍵信息,這就是以太網所固有的安全隱患。
A.局域網安全
事實上,Internet上許多免費的黑客工具,如SATAN、ISS、NETCAT等等,都把以太網偵聽作為其最基本的手段。
當前,局域網安全的解決辦法有以下幾種:
1.網絡分段
網絡分段通常被認為是控制網絡廣播風暴的一種基本手段,但其實也是保證網絡安全的一項重要措施。其目的就是將非法用戶與敏感的網絡資源相互隔離,從而防止可能的非法偵聽,網絡分段可分為物理分段和邏輯分段兩種方式。
目前,海關的局域網大多采用以交換機為中心、路由器為邊界的網絡格局,應重點挖掘中心交換機的訪問控制功能和三層交換功能,綜合應用物理分段與邏輯分段兩種方法,來實現對局域網的安全控制。例如:在海關系統中普遍使用的DEC MultiSwitch 900的入侵檢測功能,其實就是一種基于MAC地址的訪問控制,也就是上述的基于數據鏈路層的物理分段。
2.以交換式集線器代替共享式集線器
對局域網的中心交換機進行網絡分段后,以太網偵聽的危險仍然存在。這是因為網絡最終用戶的接入往往是通過分支集線器而不是中心交換機,而使用最廣泛的分支集線器通常是共享式集線器。這樣,當用戶與主機進行數據通信時,兩臺機器之間的數據包(稱為單播包Unicast Packet)還是會被同一臺集線器上的其他用戶所偵聽。一種很危險的情況是:用戶TELNET到一臺主機上,由于TELNET程序本身缺乏加密功能,用戶所鍵入的每一個字符(包括用戶名、密碼等重要信息),都將被明文發送,這就給黑客提供了機會。
因此,應該以交換式集線器代替共享式集線器,使單播包僅在兩個節點之間傳送,從而防止非法偵聽。當然,交換式集線器只能控制單播包而無法控制廣播包(Broadcast Packet)和多播包(Multicast Packet)。所幸的是,廣播包和多播包內的關鍵信息,要遠遠少于單播包。
3.VLAN的劃分
為了克服以太網的廣播問題,除了上述方法外,還可以運用VLAN(虛擬局域網)技術,將以太網通信變為點到點通信,防止大部分基于網絡偵聽的入侵。
目前的VLAN技術主要有三種:基于交換機端口的VLAN、基于節點MAC地址的VLAN和基于應用協議的VLAN。基于端口的VLAN雖然稍欠靈活,但卻比較成熟,在實際應用中效果顯著,廣受歡迎。基于MAC地址的VLAN為移動計算提供了可能性,但同時也潛藏著遭受MAC欺詐攻擊的隱患。而基于協議的VLAN,理論上非常理想,但實際應用卻尚不成熟。
在集中式網絡環境下,我們通常將中心的所有主機系統集中到一個VLAN里,在這個VLAN里不允許有任何用戶節點,從而較好地保護敏感的主機資源。在分布式網絡環境下,我們可以按機構或部門的設置來劃分VLAN。各部門內部的所有服務器和用戶節點都在各自的VLAN內,互不侵擾。
VLAN內部的連接采用交換實現,而VLAN與VLAN之間的連接則采用路由實現。目前,大多數的交換機(包括海關內部普遍采用的DEC MultiSwitch 900)都支持RIP和OSPF這兩種國際標準的路由協議。如果有特殊需要,必須使用其他路由協議(如CISCO公司的EIGRP或支持DECnet的IS-IS),也可以用外接的多以太網口路由器來代替交換機,實現VLAN之間的路由功能。當然,這種情況下,路由轉發的效率會有所下降。
無論是交換式集線器還是VLAN交換機,都是以交換技術為核心,它們在控制廣播、防止黑客上相當有效,但同時也給一些基于廣播原理的入侵監控技術和協議分析技術帶來了麻煩。因此,如果局域網內存在這樣的入侵監控設備或協議分析設備,就必須選用特殊的帶有SPAN(Switch Port Analyzer)功能的交換機。這種交換機允許系統管理員將全部或某些交換端口的數據包映射到指定的端口上,提供給接在這一端口上的入侵監控設備或協議分析設備。筆者在廈門海關外部網設計中,就選用了Cisco公司的具備SPAN功能的Catalyst系列交換機,既得到了交換技術的好處,又使原有的Sniffer協議分析儀“英雄有用武之地”。
廣域網
B.廣域網安全
由于廣域網大多采用公網來進行數據傳輸,信息在廣域網上傳輸時被截取和利用的可能性就比局域網要大得多。如果沒有專用的軟件對數據進行控制,只要使用Internet上免費下載的“包檢測”工具軟件,就可以很容易地對通信數據進行截取和破譯。
因此,必須采取手段,使得在廣域網上發送和接收信息時能夠保證:
①除了發送方和接收方外,其他人是無法知悉的(隱私性);
②傳輸過程中不被篡改(真實性);
③發送方能確知接收方不是假冒的(非偽裝性);
④發送方不能否認自己的發送行為(不可抵賴性)。
為了達到以上安全目的,廣域網通常采用以下安全解決辦法:
1.加密技術
加密型網絡安全技術的基本思想是不依賴于網絡中數據通道的安全性來實現網絡系統的安全,而是通過對網絡數據的加密來保障網絡的安全可靠性。數據加密技術可以分為三類,即對稱型加密、不對稱型加密和不可逆加密。
其中不可逆加密算法不存在密鑰保管和分發問題,適用于分布式網絡系統,但是其加密計算量相當可觀,所以通常用于數據量有限的情形下使用。計算機系統中的口令就是利用不可逆加密算法加密的。近年來,隨著計算機系統性能的不斷提高,不可逆加密算法的應用逐漸增加,常用的如RSA公司的MD5和美國國家標準局的SHS。在海關系統中廣泛使用的Cisco路由器,有兩種口令加密方式:Enable Secret和Enable Password。其中,Enable Secret就采用了MD5不可逆加密算法,因而目前尚未發現破解方法(除非使用字典攻擊法)。而Enable Password則采用了非常脆弱的加密算法(即簡單地將口令與一個常數進行XOR與或運算),目前至少已有兩種破解軟件。因此,最好不用Enable Password。
2.VPN技術
VPN(虛擬專網)技術的核心是采用隧道技術,將企業專網的數據加密封裝后,透過虛擬的公網隧道進行傳輸,從而防止敏感數據的被竊。VPN可以在Internet、服務提供商的IP、幀中繼或ATM網上建立。企業通過公網建立VPN,就如同通過自己的專用網建立內部網一樣,享有較高的安全性、優先性、可靠性和可管理性,而其建立周期、投入資金和維護費用卻大大降低,同時還為移動計算提供了可能。因此,VPN技術一經推出,便紅遍全球。
但應該指出的是,目前VPN技術的許多核心協議,如L2TP、IPSec等,都還未形成通用標準。這就使得不同的VPN服務提供商之間、VPN設備之間的互操作性成為問題。因此,企業在VPN建網選型時,一定要慎重選擇VPN服務提供商和VPN設備。
3.身份認證技術
對于從外部撥號訪問總部內部網的用戶,由于使用公共電話網進行數據傳輸所帶來的風險,必須更加嚴格控制其安全性。一種常見的做法是采用身份認證技術,對撥號用戶的身份進行驗證并記錄完備的登錄日志。較常用的身份認證技術,有Cisco公司提出的TACACS+以及業界標準的RADIUS。筆者在廈門海關外部網設計中,就選用了Cisco公司的CiscoSecure ACS V2.3軟件進行RADIUS身份認證。
外部網
C.外部網安全
海關的外部網建設,通常指與Internet的互聯及與外部企業用戶的互聯兩種。無論哪一種外部網,都普遍采用基于TCP/IP的Internet協議族。Internet協議族自身的開放性極大地方便了各種計算機的組網和互聯,并直接推動了網絡技術的迅猛發展。但是,由于在早期網絡協議設計上對安全問題的忽視,以及Internet在使用和管理上的無政府狀態,逐漸使Internet自身的安全受到威脅,黑客事件頻頻發生。
對外部網安全的威脅主要表現在:非授權訪問、冒充合法用戶、破壞數據完整性、干擾系統正常運行、利用網絡傳播病毒、線路竊聽等。
外部網安全解決辦法主要依靠防火墻技術、入侵檢測技術和網絡防病毒技術。在實際的外部網安全設計中,往往采取上述三種技術(即防火墻、入侵檢測、網絡防病毒)相結合的方法。筆者在廈門海關外部網設計中,就選用了NAI公司最新版本的三宿主自適應動態防火墻Gauntlet Active Firewall。該防火墻產品集成了Gauntlet Firewall、CyberCop Scanner、CyberCop Monitor、WebShield for Firewall等套件,將防火墻技術、入侵檢測技術與網絡防病毒技術融為一體,緊密結合,相得益彰,性價比比較高。
目前的局域網基本上都采用以廣播為技術基礎的以太網,任何兩個節點之間的通信數據包,不僅為這兩個節點的網卡所接收,也同時為處在同一以太網上的任何一個節點的網卡所截取。因此,黑客只要接入以太網上的任一節點進行偵聽,就可以捕獲發生在這個以太網上的所有數據包,對其進行解包分析,從而竊取關鍵信息,這就是以太網所固有的安全隱患。
A.局域網安全
事實上,Internet上許多免費的黑客工具,如SATAN、ISS、NETCAT等等,都把以太網偵聽作為其最基本的手段。
當前,局域網安全的解決辦法有以下幾種:
1.網絡分段
網絡分段通常被認為是控制網絡廣播風暴的一種基本手段,但其實也是保證網絡安全的一項重要措施。其目的就是將非法用戶與敏感的網絡資源相互隔離,從而防止可能的非法偵聽,網絡分段可分為物理分段和邏輯分段兩種方式。
目前,海關的局域網大多采用以交換機為中心、路由器為邊界的網絡格局,應重點挖掘中心交換機的訪問控制功能和三層交換功能,綜合應用物理分段與邏輯分段兩種方法,來實現對局域網的安全控制。例如:在海關系統中普遍使用的DEC MultiSwitch 900的入侵檢測功能,其實就是一種基于MAC地址的訪問控制,也就是上述的基于數據鏈路層的物理分段。
2.以交換式集線器代替共享式集線器
對局域網的中心交換機進行網絡分段后,以太網偵聽的危險仍然存在。這是因為網絡最終用戶的接入往往是通過分支集線器而不是中心交換機,而使用最廣泛的分支集線器通常是共享式集線器。這樣,當用戶與主機進行數據通信時,兩臺機器之間的數據包(稱為單播包Unicast Packet)還是會被同一臺集線器上的其他用戶所偵聽。一種很危險的情況是:用戶TELNET到一臺主機上,由于TELNET程序本身缺乏加密功能,用戶所鍵入的每一個字符(包括用戶名、密碼等重要信息),都將被明文發送,這就給黑客提供了機會。
因此,應該以交換式集線器代替共享式集線器,使單播包僅在兩個節點之間傳送,從而防止非法偵聽。當然,交換式集線器只能控制單播包而無法控制廣播包(Broadcast Packet)和多播包(Multicast Packet)。所幸的是,廣播包和多播包內的關鍵信息,要遠遠少于單播包。
3.VLAN的劃分
為了克服以太網的廣播問題,除了上述方法外,還可以運用VLAN(虛擬局域網)技術,將以太網通信變為點到點通信,防止大部分基于網絡偵聽的入侵。
目前的VLAN技術主要有三種:基于交換機端口的VLAN、基于節點MAC地址的VLAN和基于應用協議的VLAN。基于端口的VLAN雖然稍欠靈活,但卻比較成熟,在實際應用中效果顯著,廣受歡迎。基于MAC地址的VLAN為移動計算提供了可能性,但同時也潛藏著遭受MAC欺詐攻擊的隱患。而基于協議的VLAN,理論上非常理想,但實際應用卻尚不成熟。
在集中式網絡環境下,我們通常將中心的所有主機系統集中到一個VLAN里,在這個VLAN里不允許有任何用戶節點,從而較好地保護敏感的主機資源。在分布式網絡環境下,我們可以按機構或部門的設置來劃分VLAN。各部門內部的所有服務器和用戶節點都在各自的VLAN內,互不侵擾。
VLAN內部的連接采用交換實現,而VLAN與VLAN之間的連接則采用路由實現。目前,大多數的交換機(包括海關內部普遍采用的DEC MultiSwitch 900)都支持RIP和OSPF這兩種國際標準的路由協議。如果有特殊需要,必須使用其他路由協議(如CISCO公司的EIGRP或支持DECnet的IS-IS),也可以用外接的多以太網口路由器來代替交換機,實現VLAN之間的路由功能。當然,這種情況下,路由轉發的效率會有所下降。
無論是交換式集線器還是VLAN交換機,都是以交換技術為核心,它們在控制廣播、防止黑客上相當有效,但同時也給一些基于廣播原理的入侵監控技術和協議分析技術帶來了麻煩。因此,如果局域網內存在這樣的入侵監控設備或協議分析設備,就必須選用特殊的帶有SPAN(Switch Port Analyzer)功能的交換機。這種交換機允許系統管理員將全部或某些交換端口的數據包映射到指定的端口上,提供給接在這一端口上的入侵監控設備或協議分析設備。筆者在廈門海關外部網設計中,就選用了Cisco公司的具備SPAN功能的Catalyst系列交換機,既得到了交換技術的好處,又使原有的Sniffer協議分析儀“英雄有用武之地”。
廣域網
B.廣域網安全
由于廣域網大多采用公網來進行數據傳輸,信息在廣域網上傳輸時被截取和利用的可能性就比局域網要大得多。如果沒有專用的軟件對數據進行控制,只要使用Internet上免費下載的“包檢測”工具軟件,就可以很容易地對通信數據進行截取和破譯。
因此,必須采取手段,使得在廣域網上發送和接收信息時能夠保證:
①除了發送方和接收方外,其他人是無法知悉的(隱私性);
②傳輸過程中不被篡改(真實性);
③發送方能確知接收方不是假冒的(非偽裝性);
④發送方不能否認自己的發送行為(不可抵賴性)。
為了達到以上安全目的,廣域網通常采用以下安全解決辦法:
1.加密技術
加密型網絡安全技術的基本思想是不依賴于網絡中數據通道的安全性來實現網絡系統的安全,而是通過對網絡數據的加密來保障網絡的安全可靠性。數據加密技術可以分為三類,即對稱型加密、不對稱型加密和不可逆加密。
其中不可逆加密算法不存在密鑰保管和分發問題,適用于分布式網絡系統,但是其加密計算量相當可觀,所以通常用于數據量有限的情形下使用。計算機系統中的口令就是利用不可逆加密算法加密的。近年來,隨著計算機系統性能的不斷提高,不可逆加密算法的應用逐漸增加,常用的如RSA公司的MD5和美國國家標準局的SHS。在海關系統中廣泛使用的Cisco路由器,有兩種口令加密方式:Enable Secret和Enable Password。其中,Enable Secret就采用了MD5不可逆加密算法,因而目前尚未發現破解方法(除非使用字典攻擊法)。而Enable Password則采用了非常脆弱的加密算法(即簡單地將口令與一個常數進行XOR與或運算),目前至少已有兩種破解軟件。因此,最好不用Enable Password。
2.VPN技術
VPN(虛擬專網)技術的核心是采用隧道技術,將企業專網的數據加密封裝后,透過虛擬的公網隧道進行傳輸,從而防止敏感數據的被竊。VPN可以在Internet、服務提供商的IP、幀中繼或ATM網上建立。企業通過公網建立VPN,就如同通過自己的專用網建立內部網一樣,享有較高的安全性、優先性、可靠性和可管理性,而其建立周期、投入資金和維護費用卻大大降低,同時還為移動計算提供了可能。因此,VPN技術一經推出,便紅遍全球。
但應該指出的是,目前VPN技術的許多核心協議,如L2TP、IPSec等,都還未形成通用標準。這就使得不同的VPN服務提供商之間、VPN設備之間的互操作性成為問題。因此,企業在VPN建網選型時,一定要慎重選擇VPN服務提供商和VPN設備。
3.身份認證技術
對于從外部撥號訪問總部內部網的用戶,由于使用公共電話網進行數據傳輸所帶來的風險,必須更加嚴格控制其安全性。一種常見的做法是采用身份認證技術,對撥號用戶的身份進行驗證并記錄完備的登錄日志。較常用的身份認證技術,有Cisco公司提出的TACACS+以及業界標準的RADIUS。筆者在廈門海關外部網設計中,就選用了Cisco公司的CiscoSecure ACS V2.3軟件進行RADIUS身份認證。
外部網
C.外部網安全
海關的外部網建設,通常指與Internet的互聯及與外部企業用戶的互聯兩種。無論哪一種外部網,都普遍采用基于TCP/IP的Internet協議族。Internet協議族自身的開放性極大地方便了各種計算機的組網和互聯,并直接推動了網絡技術的迅猛發展。但是,由于在早期網絡協議設計上對安全問題的忽視,以及Internet在使用和管理上的無政府狀態,逐漸使Internet自身的安全受到威脅,黑客事件頻頻發生。
對外部網安全的威脅主要表現在:非授權訪問、冒充合法用戶、破壞數據完整性、干擾系統正常運行、利用網絡傳播病毒、線路竊聽等。
外部網安全解決辦法主要依靠防火墻技術、入侵檢測技術和網絡防病毒技術。在實際的外部網安全設計中,往往采取上述三種技術(即防火墻、入侵檢測、網絡防病毒)相結合的方法。筆者在廈門海關外部網設計中,就選用了NAI公司最新版本的三宿主自適應動態防火墻Gauntlet Active Firewall。該防火墻產品集成了Gauntlet Firewall、CyberCop Scanner、CyberCop Monitor、WebShield for Firewall等套件,將防火墻技術、入侵檢測技術與網絡防病毒技術融為一體,緊密結合,相得益彰,性價比比較高。
普通用戶選用防火墻面面通
[ 2007-03-25 03:31:50 | 作者: sun ]
什么是防火墻?通常應用防火墻的目的有以下幾方面:限制他人進入內部網絡;過濾掉不安全的服務和非法用戶;防止入侵者接近你的防御設施;限定人們訪問特殊站點;為監視局域網安全提供方便。
個人防火墻一般具有以下功能:
1、數據包過濾
過濾技術(Ip Filtering or packet filtering) 的原理在于監視并過濾網絡上流入流出的Ip包,拒絕發送可疑的包。
在互聯網這樣的信息包交換網絡上,所有往來的信息都被分割成許許多多一定長度的信息包,包頭信息中包括IP源地址、IP目標地址、內裝協議(ICP、UDP、ICMP、或IP Tunnel)、TCP/UDP目標端口、ICMP消息類型、包的進入接口和出接口。當這些包被送上互聯網時,防火墻會讀取接收者的IP并選擇一條物理上的線路發送出去,信息包可能以不同的路線抵達目的地,當所有的包抵達后會在目的地重新組裝還原。包過濾式的防火墻會檢查所有通過信息包里的IP地址,并按照系統管理員所給定的過濾規則過濾信息包。如果防火墻設定某一IP為危險的話,從這個地址而來的所有信息都會被防火墻屏蔽掉。
2、防火墻的安全規則
安全規則就是對你計算機所使用局域網、互聯網的內制協議設置,從而達到系統的最佳安全狀態。
個人防火墻軟件中的安全規則方式可分為兩種:
一種是定義好的安全規則
就是把安全規則定義成幾種方案,一般分為低、中、高三種。這樣不懂網絡協議的用戶,就可以根據自己的需要靈活的設置不同的安全方案。例如:ZoneAlarm防火墻.
還有一種用戶可以自定義安全規則
也就是說,在你非常了解網絡協議的情況下,你就可以根據自已所需的安全狀態,單獨設置某個協議。
3、事件日記
這是每個防火墻軟件所不能少的主要的功能。記錄著防火墻軟件監聽到發生的一切事件,比如入侵者的來源、協議、端口、時間等等。記錄的事件是由防火墻的功能來決定的。
那么那一種防火墻最好呢?這是網友經常詢問的問題。
我個人認為選用防火墻,不一定非要用最好的,因為個人防火墻主要是針對個人用戶的實用性來制作的,除了以上幾種功能外,還集成一些工具,比如說追蹤主機名或IP地址、檢測特洛伊木馬、偽裝等等。根據自己不同的需要來選用,在不斷地學習中淘汰一些簡單的防火墻。本人把用戶大概分成五種:
1、不了解網絡協議的用戶,只是為了游覽網頁。你可以使用傻瓜式防火墻。例如:Intrusion Detector、Intruder Alert' 99
2、如果你上網是為了聊天或者經常受到攻擊的用戶,那么你就可以選用:ProtectX、LockDown2000兩個防火墻,它們都有追蹤IP的功能。如果你受到攻擊,立即可以追蹤。
3、經常遭遇到掃描的用戶,使用Internet Firewall 2000、AnalogX、NetAlert。這兩個防火墻可以封鎖或監視你的對外開放端口。
4、在局域網環境中上網的用戶,那么防火墻必須支持NETBIOS設置功能。例如:AtGuard、Zone Alarm、conseal pc firewall、天網防火墻、BlackICE。
5、自己對網絡協議運用自如的用戶。Norton Internet Security 2000 V2.0 Personal Firewall與AtGuard防火墻都有非常詳細的自定義網絡協議。
這里說明一下,上面所說的五種用戶分類,不是必須按照這樣的分類使用的,只不過它們有那種分類的功能特點。比如說,Zone Alarm、天網防火墻,這兩個防火墻也對普通用戶提供了安全規則方案,不了解網絡協議的用戶也可以運用自如。
個人防火墻一般具有以下功能:
1、數據包過濾
過濾技術(Ip Filtering or packet filtering) 的原理在于監視并過濾網絡上流入流出的Ip包,拒絕發送可疑的包。
在互聯網這樣的信息包交換網絡上,所有往來的信息都被分割成許許多多一定長度的信息包,包頭信息中包括IP源地址、IP目標地址、內裝協議(ICP、UDP、ICMP、或IP Tunnel)、TCP/UDP目標端口、ICMP消息類型、包的進入接口和出接口。當這些包被送上互聯網時,防火墻會讀取接收者的IP并選擇一條物理上的線路發送出去,信息包可能以不同的路線抵達目的地,當所有的包抵達后會在目的地重新組裝還原。包過濾式的防火墻會檢查所有通過信息包里的IP地址,并按照系統管理員所給定的過濾規則過濾信息包。如果防火墻設定某一IP為危險的話,從這個地址而來的所有信息都會被防火墻屏蔽掉。
2、防火墻的安全規則
安全規則就是對你計算機所使用局域網、互聯網的內制協議設置,從而達到系統的最佳安全狀態。
個人防火墻軟件中的安全規則方式可分為兩種:
一種是定義好的安全規則
就是把安全規則定義成幾種方案,一般分為低、中、高三種。這樣不懂網絡協議的用戶,就可以根據自己的需要靈活的設置不同的安全方案。例如:ZoneAlarm防火墻.
還有一種用戶可以自定義安全規則
也就是說,在你非常了解網絡協議的情況下,你就可以根據自已所需的安全狀態,單獨設置某個協議。
3、事件日記
這是每個防火墻軟件所不能少的主要的功能。記錄著防火墻軟件監聽到發生的一切事件,比如入侵者的來源、協議、端口、時間等等。記錄的事件是由防火墻的功能來決定的。
那么那一種防火墻最好呢?這是網友經常詢問的問題。
我個人認為選用防火墻,不一定非要用最好的,因為個人防火墻主要是針對個人用戶的實用性來制作的,除了以上幾種功能外,還集成一些工具,比如說追蹤主機名或IP地址、檢測特洛伊木馬、偽裝等等。根據自己不同的需要來選用,在不斷地學習中淘汰一些簡單的防火墻。本人把用戶大概分成五種:
1、不了解網絡協議的用戶,只是為了游覽網頁。你可以使用傻瓜式防火墻。例如:Intrusion Detector、Intruder Alert' 99
2、如果你上網是為了聊天或者經常受到攻擊的用戶,那么你就可以選用:ProtectX、LockDown2000兩個防火墻,它們都有追蹤IP的功能。如果你受到攻擊,立即可以追蹤。
3、經常遭遇到掃描的用戶,使用Internet Firewall 2000、AnalogX、NetAlert。這兩個防火墻可以封鎖或監視你的對外開放端口。
4、在局域網環境中上網的用戶,那么防火墻必須支持NETBIOS設置功能。例如:AtGuard、Zone Alarm、conseal pc firewall、天網防火墻、BlackICE。
5、自己對網絡協議運用自如的用戶。Norton Internet Security 2000 V2.0 Personal Firewall與AtGuard防火墻都有非常詳細的自定義網絡協議。
這里說明一下,上面所說的五種用戶分類,不是必須按照這樣的分類使用的,只不過它們有那種分類的功能特點。比如說,Zone Alarm、天網防火墻,這兩個防火墻也對普通用戶提供了安全規則方案,不了解網絡協議的用戶也可以運用自如。
隱藏入侵蹤跡技術講座
[ 2007-03-25 03:31:33 | 作者: sun ]
第一章 理論篇
I. 概述
II. 思想認識(MENTAL)
III. 基礎知識
IV. 高級技巧
V. 當你受到懷疑時...
VI. 被捕
VII. 有用的程序
VIII. 最后的話
I. 概述
----------------------------------------------------------------------
>> 譯者注:本文是德國著名hacker組織"The Hacker's Choice"的96年寫的一篇文章但今天讀來仍頗有收獲,就象他自己說的:"即使是一個很有經驗的hacker也能從這里學到一些東西".在翻譯的過程中對原文做了一些改動,也加入了一些自己的理解,
>> 不當之處,還請賜教.
warning3@hotmail.com
注意 : 本文分為兩部分.
第一部分講述了一些背景和理論知識.第二部分通過具體的實例教你一步一步了解該做什么和不該做什么.
如果你懶得看完全部文章,那就只讀第二部分吧.它主要是寫給那些Unix hack新手看的.
如果你把盡快得到最新的exploits當成最重要的事的話,那我要說-你錯了.
>> 譯者注:exploits可以理解為"漏洞",不過我并不想這么翻,翻過來總感覺怪怪的,所以我還是保留了原文.文中還有一些地方也是如此處理,不再一一注明
一旦警察沒收了你的計算機、你的所有帳戶都被取消、你的一切活動都被監視的時候,即便是最好的exploit對你又有什么用呢?我不想聽那些辯解的話.不,最重要的事應該是不要被捕!這是每個hacker都應該明白的第一件事.因為在很多情況下,特別是當你首次hack一個由于飽受入侵之苦而開始對系統安全敏感的站點時,你的第一次hack也許就將成為你最后一次hack.
所以請仔細閱讀所有章節!
即使是一個很有經驗的hacker也能從中學到一些東西.
下面是各節的簡介:
節 I - 你現在正在讀的
節 II - 思想認識
1. 動機
2. 為什么你必須要謹慎(paranoid)
3. 怎樣才能謹慎
4. 保持謹慎
節 III - 在你開始hack前應當知道的基本知識
1. 前言
2. 自身安全
3. 自己的帳戶
4. log文件
5. 不要留下痕跡
6. 你應當避免的事
節 IV - 你該了解的高級技巧
1. 前言
2. 阻止任何跟蹤
3. 找到并處理所有的log文件
4. 檢查syslog設置和log文件
5. 檢查安裝的安全程序
6. 檢查系統管理員
7. 怎樣修正checksum檢查軟件
8. 注意某些用戶的安全陷阱(詭計?)
9. 其他
節 V - 一旦你受到懷疑你該怎么做
節 VI - 當你被捕時該做的與不該做的
節 VII - 一些用于隱藏痕跡的程序的列表
節 VIII- 最后的話,作者想說的一些廢話
請仔細閱讀,開動腦筋.
II. 思想認識(MENTAL)
>> 譯者注:這一節的目的主要是提醒你樹立正確的"hack"觀 ;)
----------------------------------------------------------------------
內容: 1. 動機
2. 為什么你必須要謹慎(paranoid)
3. 怎樣才能謹慎
4. 保持謹慎
>> 譯者注:paranoid的意思是"患偏執狂的",在這里可能是當
>> "小心謹慎"來講吧.
* 1. 動機 *
不管做什么事,信念總是取得成功的一個關鍵.它是你的動力源泉,它激發你去奮斗,自我約束,小心謹慎而又面對現實,準確的估計風險,它也能讓你去做你不喜歡做但又非常重要的事情(即使你現在就想去游泳).如果你不激勵自己去編制重要工具,等候恰當的時機去攻擊目標,那你永
遠不能成為真正的hacker.
一個成功而又優秀的hacker必須滿足這些要求.它就象健身和節食---如果你真正努力去做,你就能成功.
* 2. 為什么你必須要謹慎 *
當然,小心謹慎并不會讓你的生活變得更幸福.然而如果你從不做最壞的打算,任何事情都能擊倒你,讓你失去平衡.你正在做的事會讓你冒很大風險.而在你正常的生活中你并不需要擔心警察,小偷什么的.但如果你從另一方面考慮,你要知道你正在給別人的生活帶來麻煩和惡夢--他們很
想阻止你.盡管你不認為這是犯罪.但當警察迅速逮捕每個可能被牽扯的人時,你會發現一件很悲慘的事:你是有罪的除非你能證明你無罪!一旦你得到了一個hacker的"污名",你就永遠不能將其去除.一旦你有了犯罪紀錄,你將很難找到一份工作.特別是沒有軟件公司甚至沒有與計算機有關的公司會聘用你,他們會害怕你的技術.你也許不得不移民...一旦跌倒了,能再爬起來的只是少數人.
要小心謹慎!要保護好你自己!記住你得到的一切都可能失去!絕不為做額外的反跟蹤工作而感到愚蠢!絕不為如果別人嘲笑你太謹慎而煩心!決不要因為太懶或者厭倦而放棄修改log文件!一名hacker必須%100的完成他的"工作"!
* 3. 怎樣才能小心謹慎 *
如果你讀了上面的話并且你認為那是對的,那就容易了---你已經變得小心謹慎了但這必須要變成你生活中的一部分才行,當你總是考慮究竟是誰告訴你了那些事,考慮你的電話和email可能已被監視的時候,那它已經變成你生活的一部分了.
如果上面這些還不能幫你,那么考慮一下如果你被捕會發生什么.你的女友還會站在你這邊嗎?你想看到你父母為你流淚嗎?你想丟掉飯碗或學業嗎?
不要給這一切以發生的機會!
如果這還不能警醒你:離HACKING遠點兒!!!對整個hacker社會和你的朋友來說,你都是個危險人物!
* 4. 保持謹慎 *
我希望現在你明白為什么小心謹慎的重要性了.
所以保持謹慎.一個錯誤或者一次偷懶都可能徹底毀掉你的生活和事業.在做一件事時應時刻記著你的動機是什么.
>> 譯者注:這部分是讓你知道你正在干什么及你的處境.如果你不想讓你成為無聊記者津津樂道的話題---"某地破獲重大黑客案...",那就多看看,多想想.要知道,自己是這種新聞的主角和看別人的新聞可完全不是一個感覺.所以要:謙虛謹慎,戒驕戒躁 :-)
III. 基礎知識
----------------------------------------------------------------------
內容 :
1. 前言
2. 自身安全
3. 自己的帳戶
4. log文件
5. 不要留下痕跡
6. 你應當避免的事
* 1. 前言 *
在你開始你的初次hack之前,你應當知道這些并且進行些練習.這些都是非常基本的,不知道這些你很快就會有麻煩了.即便是一名很有經驗的hacker也能從中得到一些新的提示.
* 2. 自身安全 *
系統管理員讀了你的email嗎?你的電話被警察監聽了嗎?警察沒收了你存有所有hacking數據的計算機嗎?
如果你不接收可疑的email,不在電話里談論hacking/phreaking的話題,在你的硬盤上也沒有敏感和私人數據的話,那你不必擔心上面那些情景.但那樣你就并不是一個hacker.每個hacker和phreaker都與其他人保持聯系并把他的數據保存在某個地方.
加密所有敏感數據!!!
在線硬盤加密程序是非常重要和有用的:
在internet上游很多好的免費硬盤加密程序,它們對你的操作系統來說是完全透明的.下面所列的幾個軟件都是經過測試的,是hacker's的首選工具:
- 如果你用MsDos,你可以使用SFS v1.17或者SecureDrive 1.4b
- 如果你用Amiga,你可以使用EnigmaII v1.5
- 如果你用Unix,你可以使用CFS v1.33
>> 譯者注:在win9x下可以考慮emf,iprotect...
文件加密軟件: 你可以使用任何一種加密軟件,但它應該是使用一種眾所周知的安全加密機制.絕對不要用那些被出口的加密程序,它們的有效密鑰長度被縮短了!
- Triple DES
- IDEA
- Blowfish (32 rounds)
加密你的Email!
- PGP v2.6.x 是個不錯的工具.
如果你想討論重要的事情的話,加密你的電話.
- Nautilus v1.5a 是迄今最好的
當你連到一個unix系統時加密你的終端.
一些人可能正在sniffing或者監視你的電話線:
- SSH 是最安全的
- DES-Login 也不錯
>> 譯者注:- SSL 基于SSL的一些軟件也可以一試
用強壯的不可猜測的,不在任何字典中的密碼.它應當看起來象隨機的但又容易記憶.如果密碼長度可以比10個字符更長,那就用更長的.可以從書中抽取一句話,并略作修改.請將你的hacker朋友的電話號碼加密兩遍.如果你不加密,你應當從公用電話給他打電話.
>> 譯者注:其實有個好記又難猜的密碼并不難,例如考慮句子"I'm a haxor!"可以從中抽>> 取幾個單詞組成I'mhaxor,好象沒有數字,呵呵,用"eleet"的hacker語言,haxor=h4x0r所以我們的口令可以是:I'mh4x0r(我是hacker).這樣的密碼恐怕只能用暴力破解了.
如果你對hacking有了深入了解,你應當加密所有的東西!
為你的數據做個備份,當然要先加密,把它放在一個隱秘的地方,最好不要在家里.所以即使你因為失誤,火災或警察搜捕等原因丟失了數據,你還可以得到備份數據.
只有當你真的需要它們時才寫出來,否則將它們放在一個機密文件或加密分區里更安全.一旦你不需要它們了,燒掉那些紙.你也可以用只有你自己知道的加密機制將它們寫下來,但不要告訴任何人,也別太經常的使用它.也許它很容易被分析和破解。真正沉穩和謹慎的hackers應該考慮實施干擾方案.警察,間諜,其他hacker能監視你的舉動.一個擁有先進設備的人可以獲得他想要的任何東西:
計算機發射的電子脈沖可以從100米以外的距離被截獲,可以顯示你的監視器屏幕,監聽你的私人談話,確認鍵盤敲擊時的高頻信號等等...所以各種可能性總是存在的.成本低廉的應付方法就是采用電子脈沖干擾發射機,商店里就有賣的.如果你不想讓任何人監視你,我認為這些還不夠...
>> 譯者注:不知道我們的商店里有沒有賣的.;-)
* 3. 你自己的帳戶 *
下面讓我們談談你自己的帳戶.它就是你在學校/公司/ISP那里得到的帳戶,它總是與你的真實姓名聯系在一起,所以在使用它時絕對不要違背下面的原則:
永遠不要用你的真實帳戶做任何非法或者惹人懷疑的事!永遠不要試圖從你的真實帳戶telnet到任何被hacked主機去!當然可以用這個帳號訂閱安全mailing lists.但任何與hacking有關的東西都必須加密或者立刻銷毀.決不要在你帳號下保存hacking或security工具.盡量用POP3連到你的mailserver下載或者刪除你的郵件(如果你對unix比較熟悉,還可以直接telnet到POP3端口執行下載或者刪除命令).決不要泄漏你的真實email給你不信任的人,只把它給你信任的人,他們也
應當是比較注意安全問題的人,否則如果他們被捕,下一個就是你了(或許他們根本就是警察,而不是hacker.).與其他的hacker用email交流時必須要用PGP加密,因為系統管理員經常偷看用戶目錄,甚至讀區別人的email!!其他的hacker也可能hack你們的站點并試圖得到你的數據.
絕不要用你的帳號表明你對hacking感興趣!對安全感興趣可以,但不要再進一步了.
>> 譯者注:與別人交流時可以申請免費信箱,最好是國外的,比如hotmail之類,登陸時注意最好
通過proxy.自己的真實信箱應當只用來進行一般的正常通信,與朋友/老師/同事...
* 4. LOG文件 *
有三個重要的log文件:
WTMP - 記錄每次登錄的信息,包括登陸/退出的時間,終端,登錄主機ip
UTMP - 在線用戶記錄
LASTLOG - 記錄用戶上次是從哪里登錄的
當然還有其他的log,它們將在"高級技巧"一節種討論.每次通過telnet,ftp,rlogin,rsh
的登錄都會被記錄到這些文件中.如果你正在hacking,把自己從這些記錄中刪除就是很重要的了.否則他們會:
a) 準確的發現你什么時候在搞hacking活動
b) 發現你從那個站點過來
c) 知道你在線的時間有多長,以便計算你給他們造成的損失
絕對不要刪除這些log文件!!!那等于通知管理員:"嗨,你的機器上有個hacker!".找一個好程序來修改這些log.ZAP(或ZAP2)經常被認為是最好的但事實上它并不是.它只是簡單的用0來填充用戶上次登陸的數據段.CERT已經發布了一個簡單的程序用來檢查這些全零數據項.所以這樣也會很容易就讓人知道現在有個hacker在活動,這樣你所有的工作就沒有意義了.ZAP的另外一個缺陷是當它找不到那些log文件時,它并不報告.所以在編譯之前必須先檢查一下路徑!你應該使用能改變記錄內容的程序(象cloark2.c)或者能真正刪掉記錄的程序(象clear)
>> 譯者注: THC提供的cleara.c ,clearb.c是非常好用的清除工具.可以清除utmp/utmpx,wtmp/wtmpx,修復lastlog讓其仍然顯示該用戶的上次登錄信息(而不是你登錄的信息).如果你發現你登錄后沒有顯示上次登錄信息,那很可能你的機器,可能已經被人hack了,當然,即使顯示正確的信息也未必就沒有被hack.;-)
一般來說要修改log你必須是root(有些老版本系統例外,它們將utmp/wtmp設成允許所有人可寫)但如果你不能得到root權限---你該怎么做呢?你應該rlogin到你現在所處的主機,以便在lastlog種增加一個不是那么惹人懷疑的數據項,它將在該用戶下次登錄時被顯示,如果他看到"上次從localhost登錄"的信息時也許不會懷疑.
>> 譯者注:這也是沒有辦法的辦法,換了我,我就會懷疑.;)
很多unix系統的login命令有一個bug.當你登錄以后再執行一遍login命令時,它將用你當前的終端重寫UTMP中的login from段(它顯示你是從哪里來的!)那么這些log文件缺省在什么地方呢?
這依賴于不同的Unix版本.
UTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
WTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
LASTLOG : /usr/var/adm 或 /usr/adm 或 /var/adm 或 /var/log
在一些舊unix版本中lastlog數據被寫到$HOME/.lastlog
* 5. 不要留下痕跡 *
我曾經碰到很多hacker,他們把自己從log里刪除了.但他們忘記刪掉他們在機器中留下的其他一些東西:在/tmp和$HOME中的文件Shell 記錄一些shell會保留一個history文件(依賴于環境設置)記錄你執行的命令.這對hacker來說確實是件很糟糕的事.最好的選擇就是當你登錄以后先啟動一個新shell,然后在你的$HOME中查找歷史紀錄.
歷史記錄文件:
sh : .sh_history
csh : .history
ksh : .sh_history
bash: .bash_history
zsh : .history
>> 譯者注:.*history是我最喜歡看的文件之一,通過它你可以了解root或用戶常干些什么, 從而得知他們的水平如何,如果他們只會執行"ls","pwd","cp"...那說明水平不過爾爾,無須太擔心.不過如果你發現root喜歡"find / -type f -perm -04000 -exec ls -a
l {} \;"," "vim /var/adm/messages","ps -aux( -elf) ","netstat -an"....那你就要小心一點了。
備份文件 :
dead.letter, *.bak, *
在你離開前執行一下"ls -altr"看看你有沒有留下什么不該留下的東西.你可以敲4個csh命令,它能讓你離開時刪掉這些歷史文件,不留下任何痕跡.
mv .logout save.1
echo rm .history>.logout
echo rm .logout>>.logout
echo mv save.1 .logout>>.logout
>> 譯者注:對于bash,有一個簡單的辦法就是執行一下"HISTFILE=",就是不設置bash的歷史文件,這樣就不會有討厭的.bash_history了.(準確地說,是不會往$HOME/.bash_history里寫了)
>> 或者退出的時候簡單的敲kill -9 0 ,它會殺掉這次登錄后產生的所有進程,bash也不會往.bash_history里寫
* 6. 你應當避免的事 *
不要在不屬于你的機器上crack口令.如果你在別人(比如說一所大學)的機器上破解口令,一旦root發現了你的進程,并且檢查它.那么不僅你hacking的帳號保不住了,可能連你得到的那passwd文件也沒了.那學校將會密切注視你的一舉一動...所以得到口令文件后應該在自己的機器上破解.你并不需要破解太多的帳號,能破出幾個就夠了.如果你運行攻擊/檢測程序象ypx,iss,satan或其他的exploiting程序,應當先改名再執行它們.或者你可以修改源碼改變它們在進程列表中顯示的名字...
>> 譯者注:這并不難,你只要在main()中將argv[]用你喜歡顯示的名字替代就可以了比如argv[0] ="in.telnetd",argv
=""...(當然必須在程序已經從argv中讀取了所需的參數之后).
如果某個細心的用戶/root發現5個ypx程序在后臺運行,他馬上就會明白發生了什么.當然如果可能的話不要在命令行中輸入參數.如果程序支持交互方式,象telnet.應當先敲"telnet",然后"o target.host.com"...這就不會在進程表中顯示目標主機名.
>> 譯者注:如果你用ftp,最好這樣做:
>> $ ftp -n
>> $ ftp>o target.host
>> blahblah...(一些連接信息)
>> blahblah...(ftp server版本)
>> ftp>user xxx
>> ....
如果你hack了一個系統---不要在任何地方放suid shell!最好裝一些后門象(ping,quota或者login),用fix來更正文件的atime和mtime.
>> 譯者注: 放suid shell是很蠢的,非常容易被root發現.
IV. 高級技巧
----------------------------------------------------------------------
內容 : 1. 前言
2. 阻止任何跟蹤
3. 找到并處理所有的log文件
4. 檢查syslog設置和log文件
5. 檢查安裝的安全程序
6. 檢查系統管理員
7. 怎樣修正checksum檢查軟件
8. 注意某些用戶的安全陷阱(詭計?)
9. 其他
* 1. 前言 *
一旦你裝了第一個sniffer開始你的hack生涯,你就應該知道并使用這些技巧!請運用這些技巧---否則你的hack之旅就行將結束.
* 2. 阻止任何跟蹤 *
有時候你的hacking活動會被人發現.那并不是什么大問題 - 你hacked一些站點可能會被關掉,但誰管它呢,趕緊離開就是了.但如果他們試圖跟蹤你的來路(通常是為了抓住你)的話那就很危險了!
這一節將告訴你他們跟蹤你的各種可能的方法以及你該如何應對.
* 通常對系統管理員來說發現一個hacker是從哪里來的并不是什么問題:檢查log記錄(如果那個hacker真的那么蠢的話);看看hacker安裝的sniffer的輸出記錄(也許里面也記下了他的連接)或者其他系統記帳軟件(象loginlog等等);甚至可以用netstat,顯示所有已經建立的網絡連接--如果那個hacker正在線的話,那他就被發現了.這就是為什么你需要一個gateway server(網關).
* 什么是gateway server?
它是你所"擁有"的很多服務器中的一個,你已經得到了它的root權限.你需要root權限去清除wtmp/lastlog/utmp等系統記錄或者其他一些記帳軟件的log文件.除此之外你不在這臺機器上做任何其他的事(它只是個中轉站).你應當定期更換gateway server,可以每隔1,2個星期更換一次,然后至少一個月內不再使用原來的gateway server.這樣他們就很難跟蹤到你的hacking server.
* hackin server - 所有活動的出發點你從這些機器開始hacking.Telnet(或者更好的:remsh/rsh)到一個gateway server,
然后再到一個目標機器.你需要有root權限以修改log.你必須每隔2-4個星期就更換hacking server..
* 你的堡壘/撥號主機.
這是個臨界點.一但他們能跟蹤回你撥號進入的機器,你就有麻煩了.只要打個電話給警察,再進行一次通信線路跟蹤,你的hack活動就會成為歷史了,也許是你的未來.在堡壘主機上你不需要得到root權限.既然你只是通過modem撥入,那里沒有什么必須修改的記錄.你應該每天用一個不同的帳號撥號進入,盡量用那些很少使用的.你應該找到至少2個你能撥號進去堡壘主機,每隔1-2個
月更換一次.
>> 譯者注:我對phreak不熟.我猜大部分的國內hacker還沒什么本事能躲過電信局的跟蹤.所以最好不要用別人的帳號上網,特別是那些很少上網的帳號,一旦他發現上網費用劇增,肯定會讓電信局追查的,到時候你就大難臨頭了.如果你用那些上網頻繁的人的帳號,他反倒不會注意,只會以為這個月上的太厲害了.:-)(這絕對沒有鼓勵你盜用別人帳號的意思,這等于盜竊,憑什么你
上網要別人交錢?就憑你會用john破幾個口令嗎?hacker的名聲就是讓這些打著hacker旗號的無恥之徒敗壞的.對這種人就得抓!所以我對這樣的phreaker沒有什么好感,你要真有本事,就別嫁禍別人,而且還要讓電信局查不出來.) 說多了,咱們言歸正傳.
注意: 如果你能每天撥入不同的系統(比如通過"藍盒子"),那你就不需要那些hacking server了.
* 使用藍盒子,這樣即使他們跟蹤到你的堡壘主機,也不能(至少是不能很容易地)追蹤到你的電話...使用藍盒子必須小心,德國和美國的電話公司有專門的監視系統來追蹤使用藍盒子的人...
使用一個中間系統來傳送你的電話將會使跟蹤更加困難, 但是同樣由于你使用一個pbx或其他的什么東西, 仍使你處于被抓的危險中. 這取決于你.
注意在丹麥所有的電話數據均被記錄!即使在你打完電話10年后,他們仍然能證明你曾登錄過他們的撥號系統從事hack活動...
- 其他的
如果你想運行satan,iss,ypx,nfs文件句柄猜測程序..你應當使用一個專門的服務器來完成.不要用這個服務器telnet/rlogin到目標服務器,只是用它來進行檢測.
有些程序可以bind到一個特殊端口,當一個指定到該端口的連接建立的時候,它自動打開一個連接連到另外一個服務器的某個端口(有些就模擬一個shell,你可以從這個socket daemon中"telnet"到其他機器).使用這種程序你不會被記錄(防火墻log除外).有很多程序可以幫你完
成上述功能.
>> 譯者注:這種程序我常用的有datapipe.c,telbounc.c,還是很好用的.它就象是個代理服務器,但是不會有記錄.:)
如果可能的話,hacking server或者gateway server應該在國外!因為如果你的入侵被發現,當發現你來自國外的主機時,大多數網管都會放棄追查.即使是警察要通過不同的國家追蹤你,這也至少可以拖延2-10個星期的時間...
#下面是hack過程的簡圖,也許對你有些幫助;-)
+-------+ ~---------------> +-------------+ +-----------+
|+-----+| > > | | | |
||本機 || --> > 安全撥號線路 > --> | 堡壘主機 | --> | hacki
ng |
|+-----+| > > | (至少有3個) | | server |
+-------+ ~---------------> +-------------+ +-----------+
|
|
v
+-----------------+ +--------+ +-----------+
| | | | | |
| 內部網絡中的主機| ... <-- ... |目標主機| <-- | gateway | | | | | | server | +-----------------+ +--------+ +-----------+ * 3. 找到并處理所有的LOG文件 * 找到所有的logfiles是很重要的---即使他們被隱藏.要找到它們有兩種可 能的方法: 1)找到所有打開的文件. 既然所有的log必須寫到某個地方去,所以用可以用LSOF(LiSt Open Files)程序 去檢查所有打開的文件,必要的話就得修改它們.>> 譯者注:lsof由Vic Abell 編寫,用來提供被進程打開的文件的信息,
>> 它的最新版本可以在ftp://vic.cc.purdue.edu/pub/tools/unix/lsof下找到.有趣的是,不久前有人發現lsof4.40以前的版本中存在buffer overflow問題,可以取得root權限.:-)
2) 搜索所有在你登錄后有變化的文件在你登錄后,執行"touch /tmp/check",然后可以干你的活.最后只要執行"find / -newer /tmp/check -print",并檢查找到的文件,如果其中有記帳文件,就應該修改它.注意不是所有版本的find都支持 -newer 參數.你也可以用"find / -ctime 0
-print" 或者 "find / -cmin 0 -print"來查找它們.
>> 譯者注:我更喜歡用-exec ls -l {} \;來代替-print,因為這可以列出比較詳細的信息. 注意上述方法主要是針對系統記帳軟件的,它可能會記錄你執行的命令.對于只記錄login信息的軟件,它在你看到shell提示符以前就已經完成記錄了.所以用這種檢查是查不出來的.
檢查你找到的所有的logfiles.它們一般在/usr/adm,/var/adm或者/var/log,/var/run
.
如果它們被記錄到@loghost,那你可能就有點麻煩了.你需要hack那臺loghost主機去修改log...
>> 譯者注:一般單純用作loghost的機器比較難hack,因為它往往關掉了幾乎所有端口,并且只
允許從控制臺登錄.對于這樣的機器,可以用DoS攻擊使之癱瘓,從而失去log功能.(要hack往往比較難,要crash it則相對容易一些.;-)當然,本次登陸的記錄仍然會被保存下來.
為了處理logs,你可以用"grep -v"或者用wc統計行數后,再用"tail -10 log"察看最后10行
,或者用編輯器vi,emcas.
>> 譯者注:如果你從a.b.c來,你可以用grep -v "a.b.c" logfile>logtemp;mv logtemp logfile;來清除所有含有a.b.c的行.如果log文件比較大,你也可以用vim來編輯.注意這只能用來修改文本文件!!!對二進制文件的修改可能導致文件格式被破壞!!!
如果數據文件是二進制格式的,你應當首先查明它是由什么軟件產生的,然后設法找到該軟件的源碼,分析記錄項的結構,自己編程修改記錄.(可以利用現成的程序加以修改,比如Zap,clear
cloak...).
如果系統安裝了accounting軟件.你可以用zhart寫的acct-clener---它非常有效!
如果你必須修改wtmp,但系統又不能編譯源程序也沒有perl....你可以這樣做,先uuencode
wtmp,然后運行vi,移動到最后一行,刪除最后以"M"開頭的4行...然后保存退出.uudecode
.然后最后5個wtmp記錄項就被刪除了.;-) 注意這只在SCO unix下有效,linux下是不行的.
>> 譯者注:我沒有驗證這個,因為沒有SCO服務器.如果你要這么做,記得要先做個wtmp的備份.
如果系統用wtmpx和utmpx,那你又有麻煩了..迄今我還不知道有哪個cleaner程序可以處理它們.你不得不自己編一個程序來完成工作.
>> 譯者注:wtmpx和utmpx結構與wtmp和utmp類似,只要將清除utmp和wtmp的軟件略加修改就可
>> 以了.而且現在已經不少現成的程序可以修改utmpx/wtmpx了.
* 4. 檢查SYSLOG配置和記錄 *
大部分程序都用syslog函數來記錄它們需要的所有東西.因而檢查syslogd的配置文件是很重要的.這個配置文件是/etc/syslog.conf - 我不會告訴你它的格式是什么/每一項是什么意思
,
自己去讀它的man頁.
對你來說重要的syslog類型是kern.*,auth.*和authpriv.*.看看它們被寫到哪里了,如果寫到文件里還可以修改.如果被轉發到其他主機,你必須也要hack它們.如果消息被發給某個用戶,tty或者控制臺.你能耍點小花招發很多個假消息象"echo 17:04 12-05-85 kernelsendmail[243]: can't resolve bla.bla.com > /dev/console"(或其他你想flood的的設備),讓它卷屏,以隱藏你引發的信息.這些log文件是非常非常重要的!檢查它們!
* 5. 檢查已經安裝的安全程序 *
很多注重安全的站點都通過cron運行安全檢查程序.crontabs通常在/var/spool/cron/crontabs.檢查里面所有的文件,特別是"root"文件,檢查它里面都運行了什么程序.用"crontab -l root"可以快速的檢查root crontab的內容.
這些安全工具往往裝在管理員的目錄下比如~/bin.
這些檢查軟件可能是 tiger, cops, spi, tripwire, l5,binaudit, hobgoblin, s3 等等...
你必須檢查它們都報告了些什么東西,看它們是否報告了一些顯示出你入侵跡象的東西.如果是的話,你可以 - 更新軟件的數據文件,是它們不再報告這種類型的消息.
- 可以重新編程或修改該軟件使它們不再產生報告.
- 如果可能的話,刪除你安裝的后門或其他程序,并試著用其他的方法來完成。
* 6. 檢查系統管理員 *
對你來說了解系統管理員采取了那些安全措施是非常重要的.因此你需要知道他們經常使用哪些
普通用戶帳號.你可以檢查root的.forward文件和alias內容.看看sulog文件,注意那些成功su成root的用戶.檢查group文件中的wheel和admin組(或者其他任何與管理員相關的組).你也可以
在passwd文件中查找admin,也許你又能找到一個管理員帳號.現在你應該已經知道這臺機器上誰是管理員了.進入他們的目錄(如果系統不允許root讀所有的文件,用chid.c或者changeid.c將自己的uid變成該用戶的),檢查他們的.history/.sh_history/.bash_history文件看看他們經常執行什么命令.也應當檢查他們的.profile/.login/.bash_profile文件看看里面都設置了什么alias,是否執行了什么自動安全檢查或logging程序.也檢查他們的~/bin目錄!大多數情況下被編譯的安全程序被放到那里面!當然也要看一下他們的每一個目錄(ls -alR ~/).如果你找到任何與安全有關的東西,請讀5小節以設法繞過它們的安全保護.
* 7. 怎樣修正checksum檢查軟件 *
一些管理員真得很怕hacker所以裝了一些軟件來檢查二進制文件.如果一個二進制文件被改動了,下次管理員做二進制檢查的時候,它將被檢測到.那么你怎么找到是否系統安裝了這樣的程序,又怎樣修改它們以便你能植入你的木馬程序呢?
注意有很多的二進制檢查程序,而且要寫一個也真是非常容易(15分鐘就夠了),你可以用一個
小的script完成這個工作.所以如果這樣的軟件被安裝的話要找到它們是比較困難的.注意
有些常用安全檢查程序也提供這樣的檢查.下面是一些應用得很廣泛的軟件:
軟件名 標準路徑 二進制文件名
tripwire : /usr/adm/tcheck, /usr/local/adm/tcheck : databases, tri
pwir
e
binaudit : /usr/local/adm/audit : auditscan
hobgoblin : ~user/bin : hobgoblin
raudit : ~user/bin : raudit.pl
l5 : 編譯所在目錄 : l5
你要明白有很多種可能!這軟件或數據庫甚至可能放在一個正常情況下不被mount的盤上或者在其他主機export的NFS分區上.也可能checksum數據庫是儲存在一個寫保護的介質上的.各種可能性都有!但一般情況下你只要檢查上述軟件是否被安裝就可以了,如果沒有的話,你就可以改變某些二進制文件.如果你沒有找到那些軟件,但你又知道這是一個進行了完善安全保護的站點的話,你就不應該改變二進制文件!它們(二進制檢查軟件)肯定被藏在什么地方了.
如果你發現了這種軟件被安裝并且你可以修改它們(比如不是放在只讀介質上,或者可以通過一些辦法繞過限制 - 比如umount該盤然后重新mount成可寫的)的話,你該怎么做呢?你有兩種選擇:首先你可以只檢查軟件的參數,然后對已經修改過的二進制文件執行一次"update"檢查.比如用tripwire的話你可以執行" tripwire -update /bin/target ".第二種辦法是你可以編輯要被檢查的二進制文件名單 - 從中刪除你改動過的二進制文件名.注意你也應當看看是不是連數據庫文件自身也會被檢查!如果是的話 - 先update再刪除數據庫文件名.
* 8. 注意某些用戶的安全陷阱(詭計?) *
這種情況較少發生,這里提出來主要是為了討論的更完全.一些用戶(可能是管理員或者hacker)通常不象他自己的帳戶被別人使用.所以他們有時候會在他們的啟動文件里采取一點安全措施.
所以要檢查所有的以"."開頭的文件(.profile,.cshrc,.login,.logout 等等),看看他們執行了什么命令,記錄了些什么東西,以及他們的搜索路徑是怎么攝制的.如果某個目錄(比如HOME/bin)出現在/bin的前面,你就應該檢查一下那個目錄的內容了...也許里面裝了個程序"ls"或者"w",它會先記錄被執行的時間然后再執行真正的程序也許還有些程序用來自動檢查wtmp和lastlog文件是否被zap處理過,檢查.rhosts,.Xauthority文件,或是否有sniffer正在運行...千萬不要使用一個unix高手的帳號!
* 9. 其他 *
最后,在討論受懷疑或被捕的話題之前,還有一些其他的事情值得引起注意.老的telnet client會export USER變量.一個了解這一點的系統管理員可以編輯telnetd,從而得到所有(通過telnet登錄進來的)用戶名.一旦他注意到你,他就可以很容易的得知你是從(遠方主機的)哪個帳號hack進來的.新的client(客戶端程序)已經解決了了這一問題 -但是一個聰明的管理員仍然可以得到其他的信息以鑒別用戶:UID,MAIL,HOME變量,這些變量仍然被export,這就可以很容易得鑒別 hacker使用的是哪個帳戶.因此在你進行telnet前,記得要改變USER,UID,MAIL和HOME變量,如果你正處在home目錄下的話也許甚至要改變PWD變量.
在HP Unix(版本低于v10)中你可以建立隱藏目錄.我不是說那些以"."開頭的目錄而是一些有特殊標志的目錄.HP在v9版推出了它,但從v10版本以后就去除了(因為只有hacker才是用它 ;-).
如果你執行"chmod +H directory",則directory目錄就不能用"ls -al"列出.為了看這個隱藏目錄,你需要為ls增加 -H 參數,例如:"ls -alH".
無論什么時候,當你需要改變文件的日期時,記住你能用"touch"命令設置atime和mtime.你只能通過直接的硬盤讀寫來設置ctime.
如果你在一個重要系統中安裝了sniffer,一定要加密sniffer的輸出或者讓sniffer通過icmp或者udp將所有被截獲的數據發送到一個由你控制的外部主機.為什么要這樣做?因為這樣即使管理員發現了sniffer(通過cpm或其他檢查sniffer存在的程序),他們也不能從sniffer log中得知哪些東西被sniff了,所以他也不能即使提醒正被你sniff的主機.
V. 當你被懷疑時...
----------------------------------------------------------------------
一旦你受到懷疑(被警察或是系統管理員)你應該采取些特別的行動是他們不能得到不利你的
證據.
注意 : 如果系統管理員認為你是個hacker,你就是有罪的直到你被證明是無辜的!這些管理員根本不理會什么法律(有時候我認為hacker與管理員的不同僅僅在于那臺計算機屬于管理員而已).當他們認為你是個hacker的時候,你就是有罪的,沒有律師為你辯護.他們會監視你,你的郵件,文件,甚至記錄你的鍵盤(如果他們夠利害的話).當警察被牽扯進來的時候,你的電話線也可能被監聽,搜捕行動也許跟著就來了.
如果你注意到你正受到懷疑,一定要保持低調!不要采取任何攻擊性行動!最好是等上至少1到2個月,什么都不做.警告你的朋友不要給你發任何郵件,或者只發一些正常的/無害的郵件.如果你突然采用PGP加密郵件,這會提醒正在監視的警察和管理員---你發現他們的監視了.切斷與
hacking有關的聯系,寫點兒文章或者編編程序,一直等到一切都過去.及主要加密你的敏感數
據,銷毀所有記有帳號數據,電話號碼等等的紙張.當警察搜捕你的時候,那些東西是他們要找的
最重要的東西.
VI. 被捕
----------------------------------------------------------------------
Note that this small chapter covers only the ethics and basics and
hasn't got any references to current laws - because they are different
for every country.
Now we talking about the stuff you should/shouldn't do once the feds
visited you. There are two *very* important things you have to do :
1) GET A LAWYER IMMEDEANTELY !
The lawyer should phone the judge and appeal against the search
warrant. This doesn't help much but may hinder them in their work.
The lawyer should tell you everything you need to know what the
feds are allowed to do and what not.
The lawyer should write a letter to the district attorney and/or
police to request the computers back as fast as possible because
they are urgently needed to do business etc.
As you can see it is very useful to have got a lawyer already
by hand instead of searching for one after the raid.
2) NEVER TALK TO THE COPS !
The feds can't promise you anything. If they tell you, you'll get
away if you talk, don't trust them! Only the district attorney
has got the power to do this. The cops just want to get all
information possible. So if you tell them anything they'll have
got more information from and against you.
You should *always* refuse to give evidence - tell them that you
will only talk with them via your lawyer.
Then you should make a plan with your lawyer how to get you out of this
shit and reduce the damage.
But please keep in mind : don't betray your friends. Don't tell them
any secrets. Don't blow up the scene.
If you do, that's a boomerang : the guys & scene will be very angry
and do revenge, and those guys who'll be caught because of your
evidence will also talk ... and give the cops more information about
*your* crimes!
Note also that once you are caught you get blamed for everything which
happened on that site. If you (or your lawyer) can show them that they
don't have got evidences against you for all those cases they might
have trouble to keep the picture of that "evil hacker" they'll try to
paint about you at the court. If you can even prove that you couldn't
do some of the crimes they accuse you for then your chances are even
better. When the judge sees that false accuses are made he'll suspect
that there could be more false ones and will become distrusted against
the bad prepared charges against you.
I get often asked if the feds/judge can force you to give up your
passwords for PGP, encrypted files and/or harddisks.
That's different for every country. Check out if they could force you
to open your locked safe.
If that's the case you should hide the fact that you are crypting your
data! Talk with your lawyer if it's better for you to stand against
the direction to give out the password - maybe they'd get evidences
which could you get into jail for many years.
(For german guys : THC-MAG #4 will have got an article about the german
law, as far as it concerns hacking and phreaking - that article will
be of course checked by a lawyer to be correct. Note that #4 will only
discuss germany and hence will be in the german language.
But non-germans, keep ya head up, this will be the first and last german
only magazine release ;-)
>>譯者注:這一節是講述了如果被捕,應當做些什么.由于我們的法律和西方不同,所以我就不翻了.有興趣的可以自己看一看.主要的兩點就是:1.馬上找到一個律師為你處理這一切.2.不要告訴警察任何東西,也不要出賣其他人.
VII. 有用的程序
----------------------------------------------------------------------
這里有一個你應該找到并使用的程序列表.不要給我發email問我在哪里找到它們 - 自己到
hacker世界中去找!我只列出了最好的log編輯程序(見III-4和IV-3).其他有趣的程序還有telnet重定向程序(見IV-2),但這種程序有很多,大部分只能在1-3種unix類型下編譯,所以列表沒什么用.
先節是以下幾個術語:
改變 - 將logfile中的域改成你喜歡的任意內容
刪除 - 刪除你要求的記錄項
編輯 - 真正的logfile編輯器.
重寫 - 只用0字節來重寫記錄.
不要用這樣的軟件(e.g. zap) - 它能被檢測到!
LOG 修改器
ah-1_0b.tar 改變記帳信息的記錄
clear.c 刪除utmp,wtmp,lastlog和wtmpx中的記錄
cloak2.c 改變utmp,wtmp和lastlog中的記錄.
invisible.c 用預設值重寫utmp,wtmp和lastlog
所以它比zap更好.注意看,有好多inv*.c!
marryv11.c 編輯utmp, wtmp, lastlog 和 accounting 數據 - 最好的!
wzap.c 刪除wtmp中的記錄
wtmped.c 刪除wtmp中的記錄
zap.c 重寫utmp, wtmp, lastlog - 不要用它!它會被檢測到!
I. 概述
II. 思想認識(MENTAL)
III. 基礎知識
IV. 高級技巧
V. 當你受到懷疑時...
VI. 被捕
VII. 有用的程序
VIII. 最后的話
I. 概述
----------------------------------------------------------------------
>> 譯者注:本文是德國著名hacker組織"The Hacker's Choice"的96年寫的一篇文章但今天讀來仍頗有收獲,就象他自己說的:"即使是一個很有經驗的hacker也能從這里學到一些東西".在翻譯的過程中對原文做了一些改動,也加入了一些自己的理解,
>> 不當之處,還請賜教.
warning3@hotmail.com
注意 : 本文分為兩部分.
第一部分講述了一些背景和理論知識.第二部分通過具體的實例教你一步一步了解該做什么和不該做什么.
如果你懶得看完全部文章,那就只讀第二部分吧.它主要是寫給那些Unix hack新手看的.
如果你把盡快得到最新的exploits當成最重要的事的話,那我要說-你錯了.
>> 譯者注:exploits可以理解為"漏洞",不過我并不想這么翻,翻過來總感覺怪怪的,所以我還是保留了原文.文中還有一些地方也是如此處理,不再一一注明
一旦警察沒收了你的計算機、你的所有帳戶都被取消、你的一切活動都被監視的時候,即便是最好的exploit對你又有什么用呢?我不想聽那些辯解的話.不,最重要的事應該是不要被捕!這是每個hacker都應該明白的第一件事.因為在很多情況下,特別是當你首次hack一個由于飽受入侵之苦而開始對系統安全敏感的站點時,你的第一次hack也許就將成為你最后一次hack.
所以請仔細閱讀所有章節!
即使是一個很有經驗的hacker也能從中學到一些東西.
下面是各節的簡介:
節 I - 你現在正在讀的
節 II - 思想認識
1. 動機
2. 為什么你必須要謹慎(paranoid)
3. 怎樣才能謹慎
4. 保持謹慎
節 III - 在你開始hack前應當知道的基本知識
1. 前言
2. 自身安全
3. 自己的帳戶
4. log文件
5. 不要留下痕跡
6. 你應當避免的事
節 IV - 你該了解的高級技巧
1. 前言
2. 阻止任何跟蹤
3. 找到并處理所有的log文件
4. 檢查syslog設置和log文件
5. 檢查安裝的安全程序
6. 檢查系統管理員
7. 怎樣修正checksum檢查軟件
8. 注意某些用戶的安全陷阱(詭計?)
9. 其他
節 V - 一旦你受到懷疑你該怎么做
節 VI - 當你被捕時該做的與不該做的
節 VII - 一些用于隱藏痕跡的程序的列表
節 VIII- 最后的話,作者想說的一些廢話
請仔細閱讀,開動腦筋.
II. 思想認識(MENTAL)
>> 譯者注:這一節的目的主要是提醒你樹立正確的"hack"觀 ;)
----------------------------------------------------------------------
內容: 1. 動機
2. 為什么你必須要謹慎(paranoid)
3. 怎樣才能謹慎
4. 保持謹慎
>> 譯者注:paranoid的意思是"患偏執狂的",在這里可能是當
>> "小心謹慎"來講吧.
* 1. 動機 *
不管做什么事,信念總是取得成功的一個關鍵.它是你的動力源泉,它激發你去奮斗,自我約束,小心謹慎而又面對現實,準確的估計風險,它也能讓你去做你不喜歡做但又非常重要的事情(即使你現在就想去游泳).如果你不激勵自己去編制重要工具,等候恰當的時機去攻擊目標,那你永
遠不能成為真正的hacker.
一個成功而又優秀的hacker必須滿足這些要求.它就象健身和節食---如果你真正努力去做,你就能成功.
* 2. 為什么你必須要謹慎 *
當然,小心謹慎并不會讓你的生活變得更幸福.然而如果你從不做最壞的打算,任何事情都能擊倒你,讓你失去平衡.你正在做的事會讓你冒很大風險.而在你正常的生活中你并不需要擔心警察,小偷什么的.但如果你從另一方面考慮,你要知道你正在給別人的生活帶來麻煩和惡夢--他們很
想阻止你.盡管你不認為這是犯罪.但當警察迅速逮捕每個可能被牽扯的人時,你會發現一件很悲慘的事:你是有罪的除非你能證明你無罪!一旦你得到了一個hacker的"污名",你就永遠不能將其去除.一旦你有了犯罪紀錄,你將很難找到一份工作.特別是沒有軟件公司甚至沒有與計算機有關的公司會聘用你,他們會害怕你的技術.你也許不得不移民...一旦跌倒了,能再爬起來的只是少數人.
要小心謹慎!要保護好你自己!記住你得到的一切都可能失去!絕不為做額外的反跟蹤工作而感到愚蠢!絕不為如果別人嘲笑你太謹慎而煩心!決不要因為太懶或者厭倦而放棄修改log文件!一名hacker必須%100的完成他的"工作"!
* 3. 怎樣才能小心謹慎 *
如果你讀了上面的話并且你認為那是對的,那就容易了---你已經變得小心謹慎了但這必須要變成你生活中的一部分才行,當你總是考慮究竟是誰告訴你了那些事,考慮你的電話和email可能已被監視的時候,那它已經變成你生活的一部分了.
如果上面這些還不能幫你,那么考慮一下如果你被捕會發生什么.你的女友還會站在你這邊嗎?你想看到你父母為你流淚嗎?你想丟掉飯碗或學業嗎?
不要給這一切以發生的機會!
如果這還不能警醒你:離HACKING遠點兒!!!對整個hacker社會和你的朋友來說,你都是個危險人物!
* 4. 保持謹慎 *
我希望現在你明白為什么小心謹慎的重要性了.
所以保持謹慎.一個錯誤或者一次偷懶都可能徹底毀掉你的生活和事業.在做一件事時應時刻記著你的動機是什么.
>> 譯者注:這部分是讓你知道你正在干什么及你的處境.如果你不想讓你成為無聊記者津津樂道的話題---"某地破獲重大黑客案...",那就多看看,多想想.要知道,自己是這種新聞的主角和看別人的新聞可完全不是一個感覺.所以要:謙虛謹慎,戒驕戒躁 :-)
III. 基礎知識
----------------------------------------------------------------------
內容 :
1. 前言
2. 自身安全
3. 自己的帳戶
4. log文件
5. 不要留下痕跡
6. 你應當避免的事
* 1. 前言 *
在你開始你的初次hack之前,你應當知道這些并且進行些練習.這些都是非常基本的,不知道這些你很快就會有麻煩了.即便是一名很有經驗的hacker也能從中得到一些新的提示.
* 2. 自身安全 *
系統管理員讀了你的email嗎?你的電話被警察監聽了嗎?警察沒收了你存有所有hacking數據的計算機嗎?
如果你不接收可疑的email,不在電話里談論hacking/phreaking的話題,在你的硬盤上也沒有敏感和私人數據的話,那你不必擔心上面那些情景.但那樣你就并不是一個hacker.每個hacker和phreaker都與其他人保持聯系并把他的數據保存在某個地方.
加密所有敏感數據!!!
在線硬盤加密程序是非常重要和有用的:
在internet上游很多好的免費硬盤加密程序,它們對你的操作系統來說是完全透明的.下面所列的幾個軟件都是經過測試的,是hacker's的首選工具:
- 如果你用MsDos,你可以使用SFS v1.17或者SecureDrive 1.4b
- 如果你用Amiga,你可以使用EnigmaII v1.5
- 如果你用Unix,你可以使用CFS v1.33
>> 譯者注:在win9x下可以考慮emf,iprotect...
文件加密軟件: 你可以使用任何一種加密軟件,但它應該是使用一種眾所周知的安全加密機制.絕對不要用那些被出口的加密程序,它們的有效密鑰長度被縮短了!
- Triple DES
- IDEA
- Blowfish (32 rounds)
加密你的Email!
- PGP v2.6.x 是個不錯的工具.
如果你想討論重要的事情的話,加密你的電話.
- Nautilus v1.5a 是迄今最好的
當你連到一個unix系統時加密你的終端.
一些人可能正在sniffing或者監視你的電話線:
- SSH 是最安全的
- DES-Login 也不錯
>> 譯者注:- SSL 基于SSL的一些軟件也可以一試
用強壯的不可猜測的,不在任何字典中的密碼.它應當看起來象隨機的但又容易記憶.如果密碼長度可以比10個字符更長,那就用更長的.可以從書中抽取一句話,并略作修改.請將你的hacker朋友的電話號碼加密兩遍.如果你不加密,你應當從公用電話給他打電話.
>> 譯者注:其實有個好記又難猜的密碼并不難,例如考慮句子"I'm a haxor!"可以從中抽>> 取幾個單詞組成I'mhaxor,好象沒有數字,呵呵,用"eleet"的hacker語言,haxor=h4x0r所以我們的口令可以是:I'mh4x0r(我是hacker).這樣的密碼恐怕只能用暴力破解了.
如果你對hacking有了深入了解,你應當加密所有的東西!
為你的數據做個備份,當然要先加密,把它放在一個隱秘的地方,最好不要在家里.所以即使你因為失誤,火災或警察搜捕等原因丟失了數據,你還可以得到備份數據.
只有當你真的需要它們時才寫出來,否則將它們放在一個機密文件或加密分區里更安全.一旦你不需要它們了,燒掉那些紙.你也可以用只有你自己知道的加密機制將它們寫下來,但不要告訴任何人,也別太經常的使用它.也許它很容易被分析和破解。真正沉穩和謹慎的hackers應該考慮實施干擾方案.警察,間諜,其他hacker能監視你的舉動.一個擁有先進設備的人可以獲得他想要的任何東西:
計算機發射的電子脈沖可以從100米以外的距離被截獲,可以顯示你的監視器屏幕,監聽你的私人談話,確認鍵盤敲擊時的高頻信號等等...所以各種可能性總是存在的.成本低廉的應付方法就是采用電子脈沖干擾發射機,商店里就有賣的.如果你不想讓任何人監視你,我認為這些還不夠...
>> 譯者注:不知道我們的商店里有沒有賣的.;-)
* 3. 你自己的帳戶 *
下面讓我們談談你自己的帳戶.它就是你在學校/公司/ISP那里得到的帳戶,它總是與你的真實姓名聯系在一起,所以在使用它時絕對不要違背下面的原則:
永遠不要用你的真實帳戶做任何非法或者惹人懷疑的事!永遠不要試圖從你的真實帳戶telnet到任何被hacked主機去!當然可以用這個帳號訂閱安全mailing lists.但任何與hacking有關的東西都必須加密或者立刻銷毀.決不要在你帳號下保存hacking或security工具.盡量用POP3連到你的mailserver下載或者刪除你的郵件(如果你對unix比較熟悉,還可以直接telnet到POP3端口執行下載或者刪除命令).決不要泄漏你的真實email給你不信任的人,只把它給你信任的人,他們也
應當是比較注意安全問題的人,否則如果他們被捕,下一個就是你了(或許他們根本就是警察,而不是hacker.).與其他的hacker用email交流時必須要用PGP加密,因為系統管理員經常偷看用戶目錄,甚至讀區別人的email!!其他的hacker也可能hack你們的站點并試圖得到你的數據.
絕不要用你的帳號表明你對hacking感興趣!對安全感興趣可以,但不要再進一步了.
>> 譯者注:與別人交流時可以申請免費信箱,最好是國外的,比如hotmail之類,登陸時注意最好
通過proxy.自己的真實信箱應當只用來進行一般的正常通信,與朋友/老師/同事...
* 4. LOG文件 *
有三個重要的log文件:
WTMP - 記錄每次登錄的信息,包括登陸/退出的時間,終端,登錄主機ip
UTMP - 在線用戶記錄
LASTLOG - 記錄用戶上次是從哪里登錄的
當然還有其他的log,它們將在"高級技巧"一節種討論.每次通過telnet,ftp,rlogin,rsh
的登錄都會被記錄到這些文件中.如果你正在hacking,把自己從這些記錄中刪除就是很重要的了.否則他們會:
a) 準確的發現你什么時候在搞hacking活動
b) 發現你從那個站點過來
c) 知道你在線的時間有多長,以便計算你給他們造成的損失
絕對不要刪除這些log文件!!!那等于通知管理員:"嗨,你的機器上有個hacker!".找一個好程序來修改這些log.ZAP(或ZAP2)經常被認為是最好的但事實上它并不是.它只是簡單的用0來填充用戶上次登陸的數據段.CERT已經發布了一個簡單的程序用來檢查這些全零數據項.所以這樣也會很容易就讓人知道現在有個hacker在活動,這樣你所有的工作就沒有意義了.ZAP的另外一個缺陷是當它找不到那些log文件時,它并不報告.所以在編譯之前必須先檢查一下路徑!你應該使用能改變記錄內容的程序(象cloark2.c)或者能真正刪掉記錄的程序(象clear)
>> 譯者注: THC提供的cleara.c ,clearb.c是非常好用的清除工具.可以清除utmp/utmpx,wtmp/wtmpx,修復lastlog讓其仍然顯示該用戶的上次登錄信息(而不是你登錄的信息).如果你發現你登錄后沒有顯示上次登錄信息,那很可能你的機器,可能已經被人hack了,當然,即使顯示正確的信息也未必就沒有被hack.;-)
一般來說要修改log你必須是root(有些老版本系統例外,它們將utmp/wtmp設成允許所有人可寫)但如果你不能得到root權限---你該怎么做呢?你應該rlogin到你現在所處的主機,以便在lastlog種增加一個不是那么惹人懷疑的數據項,它將在該用戶下次登錄時被顯示,如果他看到"上次從localhost登錄"的信息時也許不會懷疑.
>> 譯者注:這也是沒有辦法的辦法,換了我,我就會懷疑.;)
很多unix系統的login命令有一個bug.當你登錄以后再執行一遍login命令時,它將用你當前的終端重寫UTMP中的login from段(它顯示你是從哪里來的!)那么這些log文件缺省在什么地方呢?
這依賴于不同的Unix版本.
UTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
WTMP : /etc 或 /var/adm 或 /usr/adm 或 /usr/var/adm 或 /var/log
LASTLOG : /usr/var/adm 或 /usr/adm 或 /var/adm 或 /var/log
在一些舊unix版本中lastlog數據被寫到$HOME/.lastlog
* 5. 不要留下痕跡 *
我曾經碰到很多hacker,他們把自己從log里刪除了.但他們忘記刪掉他們在機器中留下的其他一些東西:在/tmp和$HOME中的文件Shell 記錄一些shell會保留一個history文件(依賴于環境設置)記錄你執行的命令.這對hacker來說確實是件很糟糕的事.最好的選擇就是當你登錄以后先啟動一個新shell,然后在你的$HOME中查找歷史紀錄.
歷史記錄文件:
sh : .sh_history
csh : .history
ksh : .sh_history
bash: .bash_history
zsh : .history
>> 譯者注:.*history是我最喜歡看的文件之一,通過它你可以了解root或用戶常干些什么, 從而得知他們的水平如何,如果他們只會執行"ls","pwd","cp"...那說明水平不過爾爾,無須太擔心.不過如果你發現root喜歡"find / -type f -perm -04000 -exec ls -a
l {} \;"," "vim /var/adm/messages","ps -aux( -elf) ","netstat -an"....那你就要小心一點了。
備份文件 :
dead.letter, *.bak, *
在你離開前執行一下"ls -altr"看看你有沒有留下什么不該留下的東西.你可以敲4個csh命令,它能讓你離開時刪掉這些歷史文件,不留下任何痕跡.
mv .logout save.1
echo rm .history>.logout
echo rm .logout>>.logout
echo mv save.1 .logout>>.logout
>> 譯者注:對于bash,有一個簡單的辦法就是執行一下"HISTFILE=",就是不設置bash的歷史文件,這樣就不會有討厭的.bash_history了.(準確地說,是不會往$HOME/.bash_history里寫了)
>> 或者退出的時候簡單的敲kill -9 0 ,它會殺掉這次登錄后產生的所有進程,bash也不會往.bash_history里寫
* 6. 你應當避免的事 *
不要在不屬于你的機器上crack口令.如果你在別人(比如說一所大學)的機器上破解口令,一旦root發現了你的進程,并且檢查它.那么不僅你hacking的帳號保不住了,可能連你得到的那passwd文件也沒了.那學校將會密切注視你的一舉一動...所以得到口令文件后應該在自己的機器上破解.你并不需要破解太多的帳號,能破出幾個就夠了.如果你運行攻擊/檢測程序象ypx,iss,satan或其他的exploiting程序,應當先改名再執行它們.或者你可以修改源碼改變它們在進程列表中顯示的名字...
>> 譯者注:這并不難,你只要在main()中將argv[]用你喜歡顯示的名字替代就可以了比如argv[0] ="in.telnetd",argv
=""...(當然必須在程序已經從argv中讀取了所需的參數之后).
如果某個細心的用戶/root發現5個ypx程序在后臺運行,他馬上就會明白發生了什么.當然如果可能的話不要在命令行中輸入參數.如果程序支持交互方式,象telnet.應當先敲"telnet",然后"o target.host.com"...這就不會在進程表中顯示目標主機名.
>> 譯者注:如果你用ftp,最好這樣做:
>> $ ftp -n
>> $ ftp>o target.host
>> blahblah...(一些連接信息)
>> blahblah...(ftp server版本)
>> ftp>user xxx
>> ....
如果你hack了一個系統---不要在任何地方放suid shell!最好裝一些后門象(ping,quota或者login),用fix來更正文件的atime和mtime.
>> 譯者注: 放suid shell是很蠢的,非常容易被root發現.
IV. 高級技巧
----------------------------------------------------------------------
內容 : 1. 前言
2. 阻止任何跟蹤
3. 找到并處理所有的log文件
4. 檢查syslog設置和log文件
5. 檢查安裝的安全程序
6. 檢查系統管理員
7. 怎樣修正checksum檢查軟件
8. 注意某些用戶的安全陷阱(詭計?)
9. 其他
* 1. 前言 *
一旦你裝了第一個sniffer開始你的hack生涯,你就應該知道并使用這些技巧!請運用這些技巧---否則你的hack之旅就行將結束.
* 2. 阻止任何跟蹤 *
有時候你的hacking活動會被人發現.那并不是什么大問題 - 你hacked一些站點可能會被關掉,但誰管它呢,趕緊離開就是了.但如果他們試圖跟蹤你的來路(通常是為了抓住你)的話那就很危險了!
這一節將告訴你他們跟蹤你的各種可能的方法以及你該如何應對.
* 通常對系統管理員來說發現一個hacker是從哪里來的并不是什么問題:檢查log記錄(如果那個hacker真的那么蠢的話);看看hacker安裝的sniffer的輸出記錄(也許里面也記下了他的連接)或者其他系統記帳軟件(象loginlog等等);甚至可以用netstat,顯示所有已經建立的網絡連接--如果那個hacker正在線的話,那他就被發現了.這就是為什么你需要一個gateway server(網關).
* 什么是gateway server?
它是你所"擁有"的很多服務器中的一個,你已經得到了它的root權限.你需要root權限去清除wtmp/lastlog/utmp等系統記錄或者其他一些記帳軟件的log文件.除此之外你不在這臺機器上做任何其他的事(它只是個中轉站).你應當定期更換gateway server,可以每隔1,2個星期更換一次,然后至少一個月內不再使用原來的gateway server.這樣他們就很難跟蹤到你的hacking server.
* hackin server - 所有活動的出發點你從這些機器開始hacking.Telnet(或者更好的:remsh/rsh)到一個gateway server,
然后再到一個目標機器.你需要有root權限以修改log.你必須每隔2-4個星期就更換hacking server..
* 你的堡壘/撥號主機.
這是個臨界點.一但他們能跟蹤回你撥號進入的機器,你就有麻煩了.只要打個電話給警察,再進行一次通信線路跟蹤,你的hack活動就會成為歷史了,也許是你的未來.在堡壘主機上你不需要得到root權限.既然你只是通過modem撥入,那里沒有什么必須修改的記錄.你應該每天用一個不同的帳號撥號進入,盡量用那些很少使用的.你應該找到至少2個你能撥號進去堡壘主機,每隔1-2個
月更換一次.
>> 譯者注:我對phreak不熟.我猜大部分的國內hacker還沒什么本事能躲過電信局的跟蹤.所以最好不要用別人的帳號上網,特別是那些很少上網的帳號,一旦他發現上網費用劇增,肯定會讓電信局追查的,到時候你就大難臨頭了.如果你用那些上網頻繁的人的帳號,他反倒不會注意,只會以為這個月上的太厲害了.:-)(這絕對沒有鼓勵你盜用別人帳號的意思,這等于盜竊,憑什么你
上網要別人交錢?就憑你會用john破幾個口令嗎?hacker的名聲就是讓這些打著hacker旗號的無恥之徒敗壞的.對這種人就得抓!所以我對這樣的phreaker沒有什么好感,你要真有本事,就別嫁禍別人,而且還要讓電信局查不出來.) 說多了,咱們言歸正傳.
注意: 如果你能每天撥入不同的系統(比如通過"藍盒子"),那你就不需要那些hacking server了.
* 使用藍盒子,這樣即使他們跟蹤到你的堡壘主機,也不能(至少是不能很容易地)追蹤到你的電話...使用藍盒子必須小心,德國和美國的電話公司有專門的監視系統來追蹤使用藍盒子的人...
使用一個中間系統來傳送你的電話將會使跟蹤更加困難, 但是同樣由于你使用一個pbx或其他的什么東西, 仍使你處于被抓的危險中. 這取決于你.
注意在丹麥所有的電話數據均被記錄!即使在你打完電話10年后,他們仍然能證明你曾登錄過他們的撥號系統從事hack活動...
- 其他的
如果你想運行satan,iss,ypx,nfs文件句柄猜測程序..你應當使用一個專門的服務器來完成.不要用這個服務器telnet/rlogin到目標服務器,只是用它來進行檢測.
有些程序可以bind到一個特殊端口,當一個指定到該端口的連接建立的時候,它自動打開一個連接連到另外一個服務器的某個端口(有些就模擬一個shell,你可以從這個socket daemon中"telnet"到其他機器).使用這種程序你不會被記錄(防火墻log除外).有很多程序可以幫你完
成上述功能.
>> 譯者注:這種程序我常用的有datapipe.c,telbounc.c,還是很好用的.它就象是個代理服務器,但是不會有記錄.:)
如果可能的話,hacking server或者gateway server應該在國外!因為如果你的入侵被發現,當發現你來自國外的主機時,大多數網管都會放棄追查.即使是警察要通過不同的國家追蹤你,這也至少可以拖延2-10個星期的時間...
#下面是hack過程的簡圖,也許對你有些幫助;-)
+-------+ ~---------------> +-------------+ +-----------+
|+-----+| > > | | | |
||本機 || --> > 安全撥號線路 > --> | 堡壘主機 | --> | hacki
ng |
|+-----+| > > | (至少有3個) | | server |
+-------+ ~---------------> +-------------+ +-----------+
|
|
v
+-----------------+ +--------+ +-----------+
| | | | | |
| 內部網絡中的主機| ... <-- ... |目標主機| <-- | gateway | | | | | | server | +-----------------+ +--------+ +-----------+ * 3. 找到并處理所有的LOG文件 * 找到所有的logfiles是很重要的---即使他們被隱藏.要找到它們有兩種可 能的方法: 1)找到所有打開的文件. 既然所有的log必須寫到某個地方去,所以用可以用LSOF(LiSt Open Files)程序 去檢查所有打開的文件,必要的話就得修改它們.>> 譯者注:lsof由Vic Abell 編寫,用來提供被進程打開的文件的信息,
>> 它的最新版本可以在ftp://vic.cc.purdue.edu/pub/tools/unix/lsof下找到.有趣的是,不久前有人發現lsof4.40以前的版本中存在buffer overflow問題,可以取得root權限.:-)
2) 搜索所有在你登錄后有變化的文件在你登錄后,執行"touch /tmp/check",然后可以干你的活.最后只要執行"find / -newer /tmp/check -print",并檢查找到的文件,如果其中有記帳文件,就應該修改它.注意不是所有版本的find都支持 -newer 參數.你也可以用"find / -ctime 0
-print" 或者 "find / -cmin 0 -print"來查找它們.
>> 譯者注:我更喜歡用-exec ls -l {} \;來代替-print,因為這可以列出比較詳細的信息. 注意上述方法主要是針對系統記帳軟件的,它可能會記錄你執行的命令.對于只記錄login信息的軟件,它在你看到shell提示符以前就已經完成記錄了.所以用這種檢查是查不出來的.
檢查你找到的所有的logfiles.它們一般在/usr/adm,/var/adm或者/var/log,/var/run
.
如果它們被記錄到@loghost,那你可能就有點麻煩了.你需要hack那臺loghost主機去修改log...
>> 譯者注:一般單純用作loghost的機器比較難hack,因為它往往關掉了幾乎所有端口,并且只
允許從控制臺登錄.對于這樣的機器,可以用DoS攻擊使之癱瘓,從而失去log功能.(要hack往往比較難,要crash it則相對容易一些.;-)當然,本次登陸的記錄仍然會被保存下來.
為了處理logs,你可以用"grep -v"或者用wc統計行數后,再用"tail -10 log"察看最后10行
,或者用編輯器vi,emcas.
>> 譯者注:如果你從a.b.c來,你可以用grep -v "a.b.c" logfile>logtemp;mv logtemp logfile;來清除所有含有a.b.c的行.如果log文件比較大,你也可以用vim來編輯.注意這只能用來修改文本文件!!!對二進制文件的修改可能導致文件格式被破壞!!!
如果數據文件是二進制格式的,你應當首先查明它是由什么軟件產生的,然后設法找到該軟件的源碼,分析記錄項的結構,自己編程修改記錄.(可以利用現成的程序加以修改,比如Zap,clear
cloak...).
如果系統安裝了accounting軟件.你可以用zhart寫的acct-clener---它非常有效!
如果你必須修改wtmp,但系統又不能編譯源程序也沒有perl....你可以這樣做,先uuencode
wtmp,然后運行vi,移動到最后一行,刪除最后以"M"開頭的4行...然后保存退出.uudecode
.然后最后5個wtmp記錄項就被刪除了.;-) 注意這只在SCO unix下有效,linux下是不行的.
>> 譯者注:我沒有驗證這個,因為沒有SCO服務器.如果你要這么做,記得要先做個wtmp的備份.
如果系統用wtmpx和utmpx,那你又有麻煩了..迄今我還不知道有哪個cleaner程序可以處理它們.你不得不自己編一個程序來完成工作.
>> 譯者注:wtmpx和utmpx結構與wtmp和utmp類似,只要將清除utmp和wtmp的軟件略加修改就可
>> 以了.而且現在已經不少現成的程序可以修改utmpx/wtmpx了.
* 4. 檢查SYSLOG配置和記錄 *
大部分程序都用syslog函數來記錄它們需要的所有東西.因而檢查syslogd的配置文件是很重要的.這個配置文件是/etc/syslog.conf - 我不會告訴你它的格式是什么/每一項是什么意思
,
自己去讀它的man頁.
對你來說重要的syslog類型是kern.*,auth.*和authpriv.*.看看它們被寫到哪里了,如果寫到文件里還可以修改.如果被轉發到其他主機,你必須也要hack它們.如果消息被發給某個用戶,tty或者控制臺.你能耍點小花招發很多個假消息象"echo 17:04 12-05-85 kernelsendmail[243]: can't resolve bla.bla.com > /dev/console"(或其他你想flood的的設備),讓它卷屏,以隱藏你引發的信息.這些log文件是非常非常重要的!檢查它們!
* 5. 檢查已經安裝的安全程序 *
很多注重安全的站點都通過cron運行安全檢查程序.crontabs通常在/var/spool/cron/crontabs.檢查里面所有的文件,特別是"root"文件,檢查它里面都運行了什么程序.用"crontab -l root"可以快速的檢查root crontab的內容.
這些安全工具往往裝在管理員的目錄下比如~/bin.
這些檢查軟件可能是 tiger, cops, spi, tripwire, l5,binaudit, hobgoblin, s3 等等...
你必須檢查它們都報告了些什么東西,看它們是否報告了一些顯示出你入侵跡象的東西.如果是的話,你可以 - 更新軟件的數據文件,是它們不再報告這種類型的消息.
- 可以重新編程或修改該軟件使它們不再產生報告.
- 如果可能的話,刪除你安裝的后門或其他程序,并試著用其他的方法來完成。
* 6. 檢查系統管理員 *
對你來說了解系統管理員采取了那些安全措施是非常重要的.因此你需要知道他們經常使用哪些
普通用戶帳號.你可以檢查root的.forward文件和alias內容.看看sulog文件,注意那些成功su成root的用戶.檢查group文件中的wheel和admin組(或者其他任何與管理員相關的組).你也可以
在passwd文件中查找admin,也許你又能找到一個管理員帳號.現在你應該已經知道這臺機器上誰是管理員了.進入他們的目錄(如果系統不允許root讀所有的文件,用chid.c或者changeid.c將自己的uid變成該用戶的),檢查他們的.history/.sh_history/.bash_history文件看看他們經常執行什么命令.也應當檢查他們的.profile/.login/.bash_profile文件看看里面都設置了什么alias,是否執行了什么自動安全檢查或logging程序.也檢查他們的~/bin目錄!大多數情況下被編譯的安全程序被放到那里面!當然也要看一下他們的每一個目錄(ls -alR ~/).如果你找到任何與安全有關的東西,請讀5小節以設法繞過它們的安全保護.
* 7. 怎樣修正checksum檢查軟件 *
一些管理員真得很怕hacker所以裝了一些軟件來檢查二進制文件.如果一個二進制文件被改動了,下次管理員做二進制檢查的時候,它將被檢測到.那么你怎么找到是否系統安裝了這樣的程序,又怎樣修改它們以便你能植入你的木馬程序呢?
注意有很多的二進制檢查程序,而且要寫一個也真是非常容易(15分鐘就夠了),你可以用一個
小的script完成這個工作.所以如果這樣的軟件被安裝的話要找到它們是比較困難的.注意
有些常用安全檢查程序也提供這樣的檢查.下面是一些應用得很廣泛的軟件:
軟件名 標準路徑 二進制文件名
tripwire : /usr/adm/tcheck, /usr/local/adm/tcheck : databases, tri
pwir
e
binaudit : /usr/local/adm/audit : auditscan
hobgoblin : ~user/bin : hobgoblin
raudit : ~user/bin : raudit.pl
l5 : 編譯所在目錄 : l5
你要明白有很多種可能!這軟件或數據庫甚至可能放在一個正常情況下不被mount的盤上或者在其他主機export的NFS分區上.也可能checksum數據庫是儲存在一個寫保護的介質上的.各種可能性都有!但一般情況下你只要檢查上述軟件是否被安裝就可以了,如果沒有的話,你就可以改變某些二進制文件.如果你沒有找到那些軟件,但你又知道這是一個進行了完善安全保護的站點的話,你就不應該改變二進制文件!它們(二進制檢查軟件)肯定被藏在什么地方了.
如果你發現了這種軟件被安裝并且你可以修改它們(比如不是放在只讀介質上,或者可以通過一些辦法繞過限制 - 比如umount該盤然后重新mount成可寫的)的話,你該怎么做呢?你有兩種選擇:首先你可以只檢查軟件的參數,然后對已經修改過的二進制文件執行一次"update"檢查.比如用tripwire的話你可以執行" tripwire -update /bin/target ".第二種辦法是你可以編輯要被檢查的二進制文件名單 - 從中刪除你改動過的二進制文件名.注意你也應當看看是不是連數據庫文件自身也會被檢查!如果是的話 - 先update再刪除數據庫文件名.
* 8. 注意某些用戶的安全陷阱(詭計?) *
這種情況較少發生,這里提出來主要是為了討論的更完全.一些用戶(可能是管理員或者hacker)通常不象他自己的帳戶被別人使用.所以他們有時候會在他們的啟動文件里采取一點安全措施.
所以要檢查所有的以"."開頭的文件(.profile,.cshrc,.login,.logout 等等),看看他們執行了什么命令,記錄了些什么東西,以及他們的搜索路徑是怎么攝制的.如果某個目錄(比如HOME/bin)出現在/bin的前面,你就應該檢查一下那個目錄的內容了...也許里面裝了個程序"ls"或者"w",它會先記錄被執行的時間然后再執行真正的程序也許還有些程序用來自動檢查wtmp和lastlog文件是否被zap處理過,檢查.rhosts,.Xauthority文件,或是否有sniffer正在運行...千萬不要使用一個unix高手的帳號!
* 9. 其他 *
最后,在討論受懷疑或被捕的話題之前,還有一些其他的事情值得引起注意.老的telnet client會export USER變量.一個了解這一點的系統管理員可以編輯telnetd,從而得到所有(通過telnet登錄進來的)用戶名.一旦他注意到你,他就可以很容易的得知你是從(遠方主機的)哪個帳號hack進來的.新的client(客戶端程序)已經解決了了這一問題 -但是一個聰明的管理員仍然可以得到其他的信息以鑒別用戶:UID,MAIL,HOME變量,這些變量仍然被export,這就可以很容易得鑒別 hacker使用的是哪個帳戶.因此在你進行telnet前,記得要改變USER,UID,MAIL和HOME變量,如果你正處在home目錄下的話也許甚至要改變PWD變量.
在HP Unix(版本低于v10)中你可以建立隱藏目錄.我不是說那些以"."開頭的目錄而是一些有特殊標志的目錄.HP在v9版推出了它,但從v10版本以后就去除了(因為只有hacker才是用它 ;-).
如果你執行"chmod +H directory",則directory目錄就不能用"ls -al"列出.為了看這個隱藏目錄,你需要為ls增加 -H 參數,例如:"ls -alH".
無論什么時候,當你需要改變文件的日期時,記住你能用"touch"命令設置atime和mtime.你只能通過直接的硬盤讀寫來設置ctime.
如果你在一個重要系統中安裝了sniffer,一定要加密sniffer的輸出或者讓sniffer通過icmp或者udp將所有被截獲的數據發送到一個由你控制的外部主機.為什么要這樣做?因為這樣即使管理員發現了sniffer(通過cpm或其他檢查sniffer存在的程序),他們也不能從sniffer log中得知哪些東西被sniff了,所以他也不能即使提醒正被你sniff的主機.
V. 當你被懷疑時...
----------------------------------------------------------------------
一旦你受到懷疑(被警察或是系統管理員)你應該采取些特別的行動是他們不能得到不利你的
證據.
注意 : 如果系統管理員認為你是個hacker,你就是有罪的直到你被證明是無辜的!這些管理員根本不理會什么法律(有時候我認為hacker與管理員的不同僅僅在于那臺計算機屬于管理員而已).當他們認為你是個hacker的時候,你就是有罪的,沒有律師為你辯護.他們會監視你,你的郵件,文件,甚至記錄你的鍵盤(如果他們夠利害的話).當警察被牽扯進來的時候,你的電話線也可能被監聽,搜捕行動也許跟著就來了.
如果你注意到你正受到懷疑,一定要保持低調!不要采取任何攻擊性行動!最好是等上至少1到2個月,什么都不做.警告你的朋友不要給你發任何郵件,或者只發一些正常的/無害的郵件.如果你突然采用PGP加密郵件,這會提醒正在監視的警察和管理員---你發現他們的監視了.切斷與
hacking有關的聯系,寫點兒文章或者編編程序,一直等到一切都過去.及主要加密你的敏感數
據,銷毀所有記有帳號數據,電話號碼等等的紙張.當警察搜捕你的時候,那些東西是他們要找的
最重要的東西.
VI. 被捕
----------------------------------------------------------------------
Note that this small chapter covers only the ethics and basics and
hasn't got any references to current laws - because they are different
for every country.
Now we talking about the stuff you should/shouldn't do once the feds
visited you. There are two *very* important things you have to do :
1) GET A LAWYER IMMEDEANTELY !
The lawyer should phone the judge and appeal against the search
warrant. This doesn't help much but may hinder them in their work.
The lawyer should tell you everything you need to know what the
feds are allowed to do and what not.
The lawyer should write a letter to the district attorney and/or
police to request the computers back as fast as possible because
they are urgently needed to do business etc.
As you can see it is very useful to have got a lawyer already
by hand instead of searching for one after the raid.
2) NEVER TALK TO THE COPS !
The feds can't promise you anything. If they tell you, you'll get
away if you talk, don't trust them! Only the district attorney
has got the power to do this. The cops just want to get all
information possible. So if you tell them anything they'll have
got more information from and against you.
You should *always* refuse to give evidence - tell them that you
will only talk with them via your lawyer.
Then you should make a plan with your lawyer how to get you out of this
shit and reduce the damage.
But please keep in mind : don't betray your friends. Don't tell them
any secrets. Don't blow up the scene.
If you do, that's a boomerang : the guys & scene will be very angry
and do revenge, and those guys who'll be caught because of your
evidence will also talk ... and give the cops more information about
*your* crimes!
Note also that once you are caught you get blamed for everything which
happened on that site. If you (or your lawyer) can show them that they
don't have got evidences against you for all those cases they might
have trouble to keep the picture of that "evil hacker" they'll try to
paint about you at the court. If you can even prove that you couldn't
do some of the crimes they accuse you for then your chances are even
better. When the judge sees that false accuses are made he'll suspect
that there could be more false ones and will become distrusted against
the bad prepared charges against you.
I get often asked if the feds/judge can force you to give up your
passwords for PGP, encrypted files and/or harddisks.
That's different for every country. Check out if they could force you
to open your locked safe.
If that's the case you should hide the fact that you are crypting your
data! Talk with your lawyer if it's better for you to stand against
the direction to give out the password - maybe they'd get evidences
which could you get into jail for many years.
(For german guys : THC-MAG #4 will have got an article about the german
law, as far as it concerns hacking and phreaking - that article will
be of course checked by a lawyer to be correct. Note that #4 will only
discuss germany and hence will be in the german language.
But non-germans, keep ya head up, this will be the first and last german
only magazine release ;-)
>>譯者注:這一節是講述了如果被捕,應當做些什么.由于我們的法律和西方不同,所以我就不翻了.有興趣的可以自己看一看.主要的兩點就是:1.馬上找到一個律師為你處理這一切.2.不要告訴警察任何東西,也不要出賣其他人.
VII. 有用的程序
----------------------------------------------------------------------
這里有一個你應該找到并使用的程序列表.不要給我發email問我在哪里找到它們 - 自己到
hacker世界中去找!我只列出了最好的log編輯程序(見III-4和IV-3).其他有趣的程序還有telnet重定向程序(見IV-2),但這種程序有很多,大部分只能在1-3種unix類型下編譯,所以列表沒什么用.
先節是以下幾個術語:
改變 - 將logfile中的域改成你喜歡的任意內容
刪除 - 刪除你要求的記錄項
編輯 - 真正的logfile編輯器.
重寫 - 只用0字節來重寫記錄.
不要用這樣的軟件(e.g. zap) - 它能被檢測到!
LOG 修改器
ah-1_0b.tar 改變記帳信息的記錄
clear.c 刪除utmp,wtmp,lastlog和wtmpx中的記錄
cloak2.c 改變utmp,wtmp和lastlog中的記錄.
invisible.c 用預設值重寫utmp,wtmp和lastlog
所以它比zap更好.注意看,有好多inv*.c!
marryv11.c 編輯utmp, wtmp, lastlog 和 accounting 數據 - 最好的!
wzap.c 刪除wtmp中的記錄
wtmped.c 刪除wtmp中的記錄
zap.c 重寫utmp, wtmp, lastlog - 不要用它!它會被檢測到!
防止ASP木馬在服務器上運行
[ 2007-03-25 03:31:11 | 作者: sun ]
如果您的服務器正在受ASP木馬的困擾,那么希望這篇文章能幫您解決您所面臨的問題。
目前比較流行的ASP木馬主要通過三種技術來進行對服務器的相關操作。
一、使用FileSystemObject組件
FileSystemObject可以對文件進行常規操作
可以通過修改注冊表,將此組件改名,來防止此類木馬的危害。
HKEY_CLASSES_ROOT/Scripting.FileSystemObject/改名為其它的名字,如:改為FileSystemObject_ChangeName
自己以后調用的時候使用這個就可以正常調用此組件了
也要將clsid值也改一下
HKEY_CLASSES_ROOT/Scripting.FileSystemObject/CLSID/項目的值
也可以將其刪除,來防止此類木馬的危害。
注銷此組件命令:RegSvr32 /u C:/WINNT/SYSTEM32/scrrun.dll
禁止Guest用戶使用scrrun.dll來防止調用此組件。
使用命令:cacls C:/WINNT/system32/scrrun.dll /e /d guests
二、使用WScript.Shell組件
WScript.Shell可以調用系統內核運行DOS基本命令
可以通過修改注冊表,將此組件改名,來防止此類木馬的危害。
HKEY_CLASSES_ROOT/WScript.Shell/及HKEY_CLASSES_ROOT/WScript.Shell.1/改名為其它的名字,如:改為WScript.Shell_ChangeName或WScript.Shell.1_ChangeName
自己以后調用的時候使用這個就可以正常調用此組件了
也要將clsid值也改一下
HKEY_CLASSES_ROOT/WScript.Shell/CLSID/項目的值
HKEY_CLASSES_ROOT/WScript.Shell.1/CLSID/項目的值
也可以將其刪除,來防止此類木馬的危害。
三、使用Shell.Application組件
Shell.Application可以調用系統內核運行DOS基本命令
可以通過修改注冊表,將此組件改名,來防止此類木馬的危害。
HKEY_CLASSES_ROOT/Shell.Application/
及HKEY_CLASSES_ROOT/Shell.Application.1/
改名為其它的名字,如:改為Shell.Application_ChangeName或Shell.Application.1_ChangeName
自己以后調用的時候使用這個就可以正常調用此組件了
也要將clsid值也改一下
HKEY_CLASSES_ROOT/Shell.Application/CLSID/項目的值
HKEY_CLASSES_ROOT/Shell.Application/CLSID/項目的值
也可以將其刪除,來防止此類木馬的危害。
禁止Guest用戶使用shell32.dll來防止調用此組件。
使用命令:cacls C:/WINNT/system32/shell32.dll /e /d guests
注:操作均需要重新啟動WEB服務后才會生效。
四、調用Cmd.exe
禁用Guests組用戶調用cmd.exe
cacls C:/WINNT/system32/Cmd.exe /e /d guests
通過以上四步的設置基本可以防范目前比較流行的幾種木馬,但最有效的辦法還是通過綜合安全設置,將服務器、程序安全都達到一定標準,才可能將安全等級設置較高,防范更多非法入侵。
目前比較流行的ASP木馬主要通過三種技術來進行對服務器的相關操作。
一、使用FileSystemObject組件
FileSystemObject可以對文件進行常規操作
可以通過修改注冊表,將此組件改名,來防止此類木馬的危害。
HKEY_CLASSES_ROOT/Scripting.FileSystemObject/改名為其它的名字,如:改為FileSystemObject_ChangeName
自己以后調用的時候使用這個就可以正常調用此組件了
也要將clsid值也改一下
HKEY_CLASSES_ROOT/Scripting.FileSystemObject/CLSID/項目的值
也可以將其刪除,來防止此類木馬的危害。
注銷此組件命令:RegSvr32 /u C:/WINNT/SYSTEM32/scrrun.dll
禁止Guest用戶使用scrrun.dll來防止調用此組件。
使用命令:cacls C:/WINNT/system32/scrrun.dll /e /d guests
二、使用WScript.Shell組件
WScript.Shell可以調用系統內核運行DOS基本命令
可以通過修改注冊表,將此組件改名,來防止此類木馬的危害。
HKEY_CLASSES_ROOT/WScript.Shell/及HKEY_CLASSES_ROOT/WScript.Shell.1/改名為其它的名字,如:改為WScript.Shell_ChangeName或WScript.Shell.1_ChangeName
自己以后調用的時候使用這個就可以正常調用此組件了
也要將clsid值也改一下
HKEY_CLASSES_ROOT/WScript.Shell/CLSID/項目的值
HKEY_CLASSES_ROOT/WScript.Shell.1/CLSID/項目的值
也可以將其刪除,來防止此類木馬的危害。
三、使用Shell.Application組件
Shell.Application可以調用系統內核運行DOS基本命令
可以通過修改注冊表,將此組件改名,來防止此類木馬的危害。
HKEY_CLASSES_ROOT/Shell.Application/
及HKEY_CLASSES_ROOT/Shell.Application.1/
改名為其它的名字,如:改為Shell.Application_ChangeName或Shell.Application.1_ChangeName
自己以后調用的時候使用這個就可以正常調用此組件了
也要將clsid值也改一下
HKEY_CLASSES_ROOT/Shell.Application/CLSID/項目的值
HKEY_CLASSES_ROOT/Shell.Application/CLSID/項目的值
也可以將其刪除,來防止此類木馬的危害。
禁止Guest用戶使用shell32.dll來防止調用此組件。
使用命令:cacls C:/WINNT/system32/shell32.dll /e /d guests
注:操作均需要重新啟動WEB服務后才會生效。
四、調用Cmd.exe
禁用Guests組用戶調用cmd.exe
cacls C:/WINNT/system32/Cmd.exe /e /d guests
通過以上四步的設置基本可以防范目前比較流行的幾種木馬,但最有效的辦法還是通過綜合安全設置,將服務器、程序安全都達到一定標準,才可能將安全等級設置較高,防范更多非法入侵。
十分鐘看懂360系統診斷日志
[ 2007-03-25 03:30:59 | 作者: sun ]
寫在前面
當確定一個系統可能存在問題的時候,首先要做的,就是找出系統的問題所在,這個時候我們就需要來“看懂”系統診斷日志,找出原因所在,然后再來做相應清除。雖然現在有很多的流氓清除軟件,但跟殺毒軟件一樣,他們永遠是跟著流氓軟件后面在奔跑,當這個流氓是一個新出來的時候,必須要經過以下步驟:
廠商拿到樣本——>分析——>加入特征碼/病毒行為——>更新病毒特征庫——用戶下載——>查殺成功
所以有時不得以,我們需要自己來診斷一下,當然,這個診斷遠沒有想象的那么難。目前比較常用的診斷工具有Hijackthis,360safe,SRENG等幾個軟件。360safe經過幾次升級,借鑒了Hijackthis的日志項,目前已經做得很完善了。本篇文章最早2006/10/10發于360官方的緊急救援區并長期置頂,今天把它拿過來,作為對我的BLOG的一個補充。
很多網絡新手對于360的掃描日志看不懂,或者看了之后不知道怎么處理,請花5分鐘來了解一下,比你發了日志等待別人來解答強,要他救,更要自救。其實很多作很簡單的:
使用方法:
確定可疑項——文件粉碎器刪除相應文件——重啟——用360修復注冊表殘留值
以下面這篇貼子為例:
http://bbs.360safe.com/viewthread.php?tid=11221&extra=page%3D1
這個日志其實最主要看6項:
02,瀏覽器輔助對象★★★★★
這個是最需要關注的重點之一。瀏覽器輔助對象(BHO),本來是IE提供其它程序擴展瀏覽器的功能所開放的接口,在瀏覽器啟動的時候,自動加載。這個是幾乎所有流氓廣告軟件的“兵家必爭之地”。一般情況下,它可能有很多個,如:
O2-BHNTIECatcherClass-{C56CB6B0-0D96-11D6-8C65-B2868B609932}-C:\ProgramFiles\Xi\NetTransport2\NTIEHelper.dll
在這一項中,我們一般看最后面一行,那個.dll文件的位置,這里是C:\ProgramFiles\Xi\NetTransport2\NTIEHelper.dll就是這個ie模塊對應的文件,從對應文件目錄或者文件名上我們可以分辨這個模塊到底是干什么用的—NetTransport是下載工具影音傳送帶,那么這一項就應該沒問題。
如果你看到這個目錄不認識,那就需要注意了。尤其注意這個.dll是位于temp目錄或者windows/system32目錄下,那就基本可以肯定是有問題的了,如示例文章的日志中,這兩個都有肯定有問題的:
O2-未知-BH(ShowBarExClass)-[cn5940barModule]-{15953528-6C01-481A-8DB4-01888FB85B7D}-C:\WINDOWS\system32\CN5940~1.DLL
O2-未知-BH(IPCUSmartLinkClass)-[MicrosoftInternetExplorerExtension]-{A5352191-32C0-4EDB-B265-382F576C32FF}-C:\WINDOWS\system32\IPCUHelper2.dll
處理建議:
方法一:在360里——修復——全面診斷——瀏覽器輔助對象,選中之后進行修復。可以多試幾次。
方法二:用Autoruns或者hijackthis這兩個工具(www.nslog.cn)
04,自啟動項★★★★★
歷來自啟動項是所有木馬/病毒/流氓軟件的“兵家必爭之地”。當一個流氓軟件入侵和被安裝到用戶機器之后,必然要想辦法讓用戶下次啟動計算機的時候,自身還可以運行。方法有多種,放到自啟動是最常用最根本的一招。Windows的自啟動有十多個地方,常用的如注冊表、INI文件,啟動組等。Hijackthis會把所有的自啟動列出來。包括名稱和運行的文件名。
如示例文章中的這個,一共有六項都有問題:
O4-高危險-HKLM\..\Run:[SoundMam][懷疑為惡意程序或病毒,請使用殺毒軟件進行查殺。]C:\WINDOWS\system32\SVOHOST.exe
O4-未知-HKLM\..\Run:[IEUpdates][]C:\WINDOWS\system32\Updates.exe
O4-未知-HKCU\..\Run:[updatereal][]C:\WINDOWS\realupdate.exeother
O4-未知-HKCU\..\Run:[daemon][Microsoft基礎類應用程序]C:\WINDOWS\daemon.exe
O4-未知-HKCU\..\Run:[wow][]C:\WINDOWS\system32\Launcher.exe
O4-未知-HKCU\..\Run:[zz][]C:\WINDOWS\system32\intenet.exe
O4-高危險-HKCU\..\Run:[rx][疑為惡意程序或病毒。]C:\WINDOWS\system32\explore.exe
處理建議:
對于一般用戶,我給出的建議是除了C:\windows\system32\ctfmon.exe這個輸入法指示器,其它的除非你知道是自己安裝的程序如(C:\programfiles\tencent\qq\qq.exe),其它的一律刪除。
如果修復了,它又偷偷出現,那么基本就肯定有問題(一般流氓軟件都會有這種自我修復、保護的功能)。對應懷疑是流氓軟件的,相應的.exe也要先刪除了。
360里——修復——啟動項,選中后進行修復,可以多做幾次。
023,系統服務★★★★
系統服務是另外一個流氓軟件越來越重視的地方。一般Windows系統的服務在這里不會顯示出來。只有第三方安裝的服務才會顯示出來。所有顯示的,都需要留心。
如示例文章中的三項都有問題:
O23-未知-Service:NetSys[管理系統網絡連接,您可以查看系統網絡連接。]-C:\WINDOWS\system32\NetSys.exe
O23-未知-Service:NetWorkLogon[支持網絡上計算機遠程登陸事件。如果此服務被停用,網絡登陸將不可用。如果此服務被禁用,任何依賴它的服務將無法啟動。]-rundll32.exe
O23-未知-Service:NetWorkLogons[支持網絡上計算機遠程登陸事件。如果此服務被停用,網絡登陸將不可用。如果此服務被禁用,任何依賴它的服務將無法啟動。]-rundll32.exe
處理建議:
如果知道是自己安裝的如MySQL,Apahce這類可以不管,其它的服務一般會冒充,起一個類似于很象正常的名字,如Windowsupdatas,NTServices,等。我的建議是所有你不清楚的,全部刪掉。尤其.exe的可執行路徑位于windows,System32目錄下的。(system32目錄下的rundll32.exe除外,這個.exe文件不要刪除,直接把服務刪除便可)
360里——修復——系統服務,選中后進行修復,可以多做幾次。
也可以在CMD窗口(開始——運行——cmd.exe)下輸入:
scdelete"服務名"來刪除一個服務。
[b]——如果360修復之后它又出現了,那么便先用頑固文件刪除工具把相應的.exe給刪除掉(見置底的),重啟一下,然后再修復。
010,WinsockLSP“瀏覽器綁架”
這個是近來新出現的“相當”有惡意的流氓軟件形徑,如果用戶把相關的文件刪掉,會造成用戶計算機無法訪問網絡!
LSP全稱為“WindowsSocketLayeredServiceProvider”(分層服務提供商),這是Winsock2.0才有的功能。通俗一點來說,它是Windows所有底層網絡Socket通信需要經過的一個大門。而流氓軟件在這個地方把自己的軟件加進去了,這樣就可以截取所有用戶訪問網絡的數據包,可以針對性地投放廣告,獲取用戶訪問習慣——想一想,當你訪問一個網絡的時候,所有數據都被一只大眼睛盯著看,是什么感覺?而當用戶如果不清楚刪除這個.dll文件,那么就會造成用戶不能訪問網絡。
如示例中有問題的:
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
(正確的應該是system32\mswsock.dll和rsvpsp.dll這兩個。)
處理建議:
方法一:先刪除對應的.dll文件,然后在360里——修復——修復LSP連接。
方法二:先刪除對應的.dll文件,然后下載Lsp-fix( http://www.cexx.org/lspfix.htm )這個工具
方法三:先刪除對應的.dll文件,然后重裝TCP/IP協議:
http://hi.baidu.com/nslog/blog/item/c478d5f942b94359242df26f.html
*****************************************************************************************
以下為360衛士2.0以后版本新增加的,對系統診斷也很有幫助,只建議高級用戶診斷使用:
2006年12月20更新
*****************************************************************************************
040,系統進程加載項
現在有一些流氓軟件升級之后,不是通過BHO或者Services來加載,沒有一個獨立的可執行程序,那樣很容易被發覺。它們就通過注入到系統進程空間(如exploer.exe資源管理器),把自己變為正常系統的一部分,這樣只要你開了資源管理器,它就在后臺運行著了。如下面的:
O40-Explorer.EXE--C:\WINDOWS\system32\dllwm.dll--55125f396efcc0ce7e3f4522669d8cdb
O40-Explorer.EXE--C:\WINDOWS\system32\dms.dll--d2b55c379eeabef0b8925dc8e9a1a58e
360會顯示所有沒有經常Windows簽名的.dll文件,即非微軟官方的,這些都是可疑的以及重點查處的對象(當然,不是說100%有問題)
處理建議:
必須要
刪除對應的.dll文件,刪除辦法有幾種:
1、用文件粉碎器
2、用unlocker
3、試著到安全模式下刪除
041,系統驅動
系統驅動是Windows系統最底層的,它沒有進程,沒有可執行文件,是通過在drivers目錄下的.sys文件來體現。也是所有流氓軟件用得最高的一招,象前段時間流行的MY123,飄雪以及幾個大流氓:CNNIC,MyIEHelper等,因為采取種種保護策略,所以一般用戶很難處理,如下面這個:
O41-csysiymq-csysiymq-C:\WINDOWS\system32\drivers\csysiymq.sys-(running)---
.O41-dtscsi-dtscsi-C:\WINDOWS\system32\drivers\dtscsi.sys-(running)---
O41-IBMPMDRV-IBMPMDRV-C:\WINDOWS\system32\drivers\ibmpmdrv.sys-(running)---7514f26bd730a23b4dcd0f51cd007add
360會顯示所有沒有經過Windows簽名的驅動文件作為分析參考的依據,同樣的道理,這里面也有非常多的其它正常軟件,如瑞星,卡巴等,這里的處理要求高一點,需要有一定的經驗。如果上面幾項都處理完了,還有主頁被改,彈窗口等現象,就需要考察這里了。
處理建議:
必須要
刪除對應的.sys文件,刪除辦法有幾種:
1、用文件粉碎器
2、用unlocker
3、試著到安全模式下刪除
以上所有修復不成功的,一般都流氓軟件有自我保護功能,可以用下面的辦法:
1、用頑固文件刪除工具,請參考:
http://bbs.360safe.com/viewthread.php?tid=9432&extra=page%3D1
2、找出流氓軟件的驅動保護:
http://hi.baidu.com/nslog/blog/item/c08cbefb2c6b5c224f4aea91.html
其它參考:
360safe安全衛士下載
http://www.360safe.com
Hijackthis瀏覽器劫持日志精解
http://hi.baidu.com/nslog/blog/item/b208922f52cb04381e30895f.html
清除流氓軟件的第一利器(IceSword)
http://hi.baidu.com/nslog/blog/item/14bc35dbac337866d1164e21.html
WinXP/2000/2003下如何重裝TCP/IP協議
http://hi.baidu.com/nslog/blog/item/c478d5f942b94359242df26f.html [/b]
當確定一個系統可能存在問題的時候,首先要做的,就是找出系統的問題所在,這個時候我們就需要來“看懂”系統診斷日志,找出原因所在,然后再來做相應清除。雖然現在有很多的流氓清除軟件,但跟殺毒軟件一樣,他們永遠是跟著流氓軟件后面在奔跑,當這個流氓是一個新出來的時候,必須要經過以下步驟:
廠商拿到樣本——>分析——>加入特征碼/病毒行為——>更新病毒特征庫——用戶下載——>查殺成功
所以有時不得以,我們需要自己來診斷一下,當然,這個診斷遠沒有想象的那么難。目前比較常用的診斷工具有Hijackthis,360safe,SRENG等幾個軟件。360safe經過幾次升級,借鑒了Hijackthis的日志項,目前已經做得很完善了。本篇文章最早2006/10/10發于360官方的緊急救援區并長期置頂,今天把它拿過來,作為對我的BLOG的一個補充。
很多網絡新手對于360的掃描日志看不懂,或者看了之后不知道怎么處理,請花5分鐘來了解一下,比你發了日志等待別人來解答強,要他救,更要自救。其實很多作很簡單的:
使用方法:
確定可疑項——文件粉碎器刪除相應文件——重啟——用360修復注冊表殘留值
以下面這篇貼子為例:
http://bbs.360safe.com/viewthread.php?tid=11221&extra=page%3D1
這個日志其實最主要看6項:
02,瀏覽器輔助對象★★★★★
這個是最需要關注的重點之一。瀏覽器輔助對象(BHO),本來是IE提供其它程序擴展瀏覽器的功能所開放的接口,在瀏覽器啟動的時候,自動加載。這個是幾乎所有流氓廣告軟件的“兵家必爭之地”。一般情況下,它可能有很多個,如:
O2-BHNTIECatcherClass-{C56CB6B0-0D96-11D6-8C65-B2868B609932}-C:\ProgramFiles\Xi\NetTransport2\NTIEHelper.dll
在這一項中,我們一般看最后面一行,那個.dll文件的位置,這里是C:\ProgramFiles\Xi\NetTransport2\NTIEHelper.dll就是這個ie模塊對應的文件,從對應文件目錄或者文件名上我們可以分辨這個模塊到底是干什么用的—NetTransport是下載工具影音傳送帶,那么這一項就應該沒問題。
如果你看到這個目錄不認識,那就需要注意了。尤其注意這個.dll是位于temp目錄或者windows/system32目錄下,那就基本可以肯定是有問題的了,如示例文章的日志中,這兩個都有肯定有問題的:
O2-未知-BH(ShowBarExClass)-[cn5940barModule]-{15953528-6C01-481A-8DB4-01888FB85B7D}-C:\WINDOWS\system32\CN5940~1.DLL
O2-未知-BH(IPCUSmartLinkClass)-[MicrosoftInternetExplorerExtension]-{A5352191-32C0-4EDB-B265-382F576C32FF}-C:\WINDOWS\system32\IPCUHelper2.dll
處理建議:
方法一:在360里——修復——全面診斷——瀏覽器輔助對象,選中之后進行修復。可以多試幾次。
方法二:用Autoruns或者hijackthis這兩個工具(www.nslog.cn)
04,自啟動項★★★★★
歷來自啟動項是所有木馬/病毒/流氓軟件的“兵家必爭之地”。當一個流氓軟件入侵和被安裝到用戶機器之后,必然要想辦法讓用戶下次啟動計算機的時候,自身還可以運行。方法有多種,放到自啟動是最常用最根本的一招。Windows的自啟動有十多個地方,常用的如注冊表、INI文件,啟動組等。Hijackthis會把所有的自啟動列出來。包括名稱和運行的文件名。
如示例文章中的這個,一共有六項都有問題:
O4-高危險-HKLM\..\Run:[SoundMam][懷疑為惡意程序或病毒,請使用殺毒軟件進行查殺。]C:\WINDOWS\system32\SVOHOST.exe
O4-未知-HKLM\..\Run:[IEUpdates][]C:\WINDOWS\system32\Updates.exe
O4-未知-HKCU\..\Run:[updatereal][]C:\WINDOWS\realupdate.exeother
O4-未知-HKCU\..\Run:[daemon][Microsoft基礎類應用程序]C:\WINDOWS\daemon.exe
O4-未知-HKCU\..\Run:[wow][]C:\WINDOWS\system32\Launcher.exe
O4-未知-HKCU\..\Run:[zz][]C:\WINDOWS\system32\intenet.exe
O4-高危險-HKCU\..\Run:[rx][疑為惡意程序或病毒。]C:\WINDOWS\system32\explore.exe
處理建議:
對于一般用戶,我給出的建議是除了C:\windows\system32\ctfmon.exe這個輸入法指示器,其它的除非你知道是自己安裝的程序如(C:\programfiles\tencent\qq\qq.exe),其它的一律刪除。
如果修復了,它又偷偷出現,那么基本就肯定有問題(一般流氓軟件都會有這種自我修復、保護的功能)。對應懷疑是流氓軟件的,相應的.exe也要先刪除了。
360里——修復——啟動項,選中后進行修復,可以多做幾次。
023,系統服務★★★★
系統服務是另外一個流氓軟件越來越重視的地方。一般Windows系統的服務在這里不會顯示出來。只有第三方安裝的服務才會顯示出來。所有顯示的,都需要留心。
如示例文章中的三項都有問題:
O23-未知-Service:NetSys[管理系統網絡連接,您可以查看系統網絡連接。]-C:\WINDOWS\system32\NetSys.exe
O23-未知-Service:NetWorkLogon[支持網絡上計算機遠程登陸事件。如果此服務被停用,網絡登陸將不可用。如果此服務被禁用,任何依賴它的服務將無法啟動。]-rundll32.exe
O23-未知-Service:NetWorkLogons[支持網絡上計算機遠程登陸事件。如果此服務被停用,網絡登陸將不可用。如果此服務被禁用,任何依賴它的服務將無法啟動。]-rundll32.exe
處理建議:
如果知道是自己安裝的如MySQL,Apahce這類可以不管,其它的服務一般會冒充,起一個類似于很象正常的名字,如Windowsupdatas,NTServices,等。我的建議是所有你不清楚的,全部刪掉。尤其.exe的可執行路徑位于windows,System32目錄下的。(system32目錄下的rundll32.exe除外,這個.exe文件不要刪除,直接把服務刪除便可)
360里——修復——系統服務,選中后進行修復,可以多做幾次。
也可以在CMD窗口(開始——運行——cmd.exe)下輸入:
scdelete"服務名"來刪除一個服務。
[b]——如果360修復之后它又出現了,那么便先用頑固文件刪除工具把相應的.exe給刪除掉(見置底的),重啟一下,然后再修復。
010,WinsockLSP“瀏覽器綁架”
這個是近來新出現的“相當”有惡意的流氓軟件形徑,如果用戶把相關的文件刪掉,會造成用戶計算機無法訪問網絡!
LSP全稱為“WindowsSocketLayeredServiceProvider”(分層服務提供商),這是Winsock2.0才有的功能。通俗一點來說,它是Windows所有底層網絡Socket通信需要經過的一個大門。而流氓軟件在這個地方把自己的軟件加進去了,這樣就可以截取所有用戶訪問網絡的數據包,可以針對性地投放廣告,獲取用戶訪問習慣——想一想,當你訪問一個網絡的時候,所有數據都被一只大眼睛盯著看,是什么感覺?而當用戶如果不清楚刪除這個.dll文件,那么就會造成用戶不能訪問網絡。
如示例中有問題的:
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
O10-未知-WinsockLSP:[][{E70F1AA0-AB8B-11CF-8CA3-00805F48A192}]C:\WINDOWS\system32\RICHED40.dll
(正確的應該是system32\mswsock.dll和rsvpsp.dll這兩個。)
處理建議:
方法一:先刪除對應的.dll文件,然后在360里——修復——修復LSP連接。
方法二:先刪除對應的.dll文件,然后下載Lsp-fix( http://www.cexx.org/lspfix.htm )這個工具
方法三:先刪除對應的.dll文件,然后重裝TCP/IP協議:
http://hi.baidu.com/nslog/blog/item/c478d5f942b94359242df26f.html
*****************************************************************************************
以下為360衛士2.0以后版本新增加的,對系統診斷也很有幫助,只建議高級用戶診斷使用:
2006年12月20更新
*****************************************************************************************
040,系統進程加載項
現在有一些流氓軟件升級之后,不是通過BHO或者Services來加載,沒有一個獨立的可執行程序,那樣很容易被發覺。它們就通過注入到系統進程空間(如exploer.exe資源管理器),把自己變為正常系統的一部分,這樣只要你開了資源管理器,它就在后臺運行著了。如下面的:
O40-Explorer.EXE--C:\WINDOWS\system32\dllwm.dll--55125f396efcc0ce7e3f4522669d8cdb
O40-Explorer.EXE--C:\WINDOWS\system32\dms.dll--d2b55c379eeabef0b8925dc8e9a1a58e
360會顯示所有沒有經常Windows簽名的.dll文件,即非微軟官方的,這些都是可疑的以及重點查處的對象(當然,不是說100%有問題)
處理建議:
必須要
刪除對應的.dll文件,刪除辦法有幾種:
1、用文件粉碎器
2、用unlocker
3、試著到安全模式下刪除
041,系統驅動
系統驅動是Windows系統最底層的,它沒有進程,沒有可執行文件,是通過在drivers目錄下的.sys文件來體現。也是所有流氓軟件用得最高的一招,象前段時間流行的MY123,飄雪以及幾個大流氓:CNNIC,MyIEHelper等,因為采取種種保護策略,所以一般用戶很難處理,如下面這個:
O41-csysiymq-csysiymq-C:\WINDOWS\system32\drivers\csysiymq.sys-(running)---
.O41-dtscsi-dtscsi-C:\WINDOWS\system32\drivers\dtscsi.sys-(running)---
O41-IBMPMDRV-IBMPMDRV-C:\WINDOWS\system32\drivers\ibmpmdrv.sys-(running)---7514f26bd730a23b4dcd0f51cd007add
360會顯示所有沒有經過Windows簽名的驅動文件作為分析參考的依據,同樣的道理,這里面也有非常多的其它正常軟件,如瑞星,卡巴等,這里的處理要求高一點,需要有一定的經驗。如果上面幾項都處理完了,還有主頁被改,彈窗口等現象,就需要考察這里了。
處理建議:
必須要
刪除對應的.sys文件,刪除辦法有幾種:
1、用文件粉碎器
2、用unlocker
3、試著到安全模式下刪除
以上所有修復不成功的,一般都流氓軟件有自我保護功能,可以用下面的辦法:
1、用頑固文件刪除工具,請參考:
http://bbs.360safe.com/viewthread.php?tid=9432&extra=page%3D1
2、找出流氓軟件的驅動保護:
http://hi.baidu.com/nslog/blog/item/c08cbefb2c6b5c224f4aea91.html
其它參考:
360safe安全衛士下載
http://www.360safe.com
Hijackthis瀏覽器劫持日志精解
http://hi.baidu.com/nslog/blog/item/b208922f52cb04381e30895f.html
清除流氓軟件的第一利器(IceSword)
http://hi.baidu.com/nslog/blog/item/14bc35dbac337866d1164e21.html
WinXP/2000/2003下如何重裝TCP/IP協議
http://hi.baidu.com/nslog/blog/item/c478d5f942b94359242df26f.html [/b]
漏洞分類及進一步發掘
[ 2007-03-25 03:30:46 | 作者: sun ]
漏洞是一個永遠的童話。實現劫富濟貧的英雄夢想,實現打破技術壟斷的自由藍圖,發現漏洞的人,利用漏洞的人,修補漏洞的人,喜歡漏洞的人,害怕漏洞的人就象這個多彩的世界一樣,他們構成了計算機網絡安全世界永遠的角色!
現在很多口必稱漏洞,把漏洞的利用當自己的絕招和寶貝,其實漏洞是什么,我們或許存在著很多誤解。下面結合相關資料和我個人的理解,我們今天就講講什么是漏洞,這個十分基本的問題。
1、什么是漏洞
專業上講漏洞是在硬件、軟件、協議的具體實現或系統安全策略上(主要是人為)存在的缺陷,從而可以使攻擊者能夠在未授權的情況下訪問或破壞系統。但是,其實這是一個綱目,很多書上定義都不同,這里算是比較全面的。怎么理解呢,還是有例子來說吧,這幾十年來,漏洞太多了,不能一一說。
2、漏洞的狹義范圍
漏洞會影響到很大范圍的軟硬件設備,包括作系統本身及其支撐軟件,網絡客戶和服務器軟件,網絡路由器和安全防火墻等。怎么理解呢,就是在這些不同的軟硬件設備中都可能存在不同的安全漏洞問題。
3、漏洞的廣義范圍
這里的漏洞是指所有威脅到計算機信息安全的事物。包括人員、硬件、軟件、程序、數據。
4、漏洞的長久性
漏洞問題是與時間緊密相關的。一個系統從發布的那一天起,隨著用戶的深入使用,系統中存在的漏洞會被不斷暴露出來,這些早先被發現的漏洞也會不斷被系統供應商發布的補丁軟件修補,或在以后發布的新版系統中得以糾正。而在新版系統糾正了舊版本中具有漏洞的同時,也會引入一些新的漏洞和錯誤。因而隨著時間的推移,舊的漏洞會不斷消失,新的漏洞會不斷出現。漏洞問題也會長期存在。
5、漏洞的隱蔽性
系統安全漏洞是指可以用來對系統安全造成危害,系統本身具有的,或設置上存在的缺陷。總之,漏洞是系統在具體實現中的錯誤。比如在建立安全機制中規劃考慮上的缺陷,作系統和其他軟件編程中的錯誤,以及在使用該系統提供的安全機制時人為的配置錯誤等。
系統安全漏洞是在系統具體實現和具體使用中產生的錯誤,但并不是系統中存在的錯誤都是安全漏洞。只有能威脅到系統安全的錯誤才是漏洞。許多錯誤在通常情況下并不會對系統安全造成危害,只有被人在某些條件下故意使用時才會影響系統安全。
6、漏洞的必然被發現性
漏洞雖然可能最初就存在于系統當中,但一個漏洞并不是自己出現的,必須要有人發現。在實際使用中,用戶會發現系統中存在錯誤,而入侵者會有意利用其中的某些錯誤并使其成為威脅系統安全的工具,這時人們會認識到這個錯誤是一個系統安全漏洞。系統供應商會盡快發布針對這個漏洞的補丁程序,糾正這個錯誤。這就是系統安全漏洞從被發現到被糾正的一般過程。
系統攻擊者往往是安全漏洞的發現者和使用者,要對于一個系統進行攻擊,如果不能發現和使用系統中存在的安全漏洞是不可能成功的。對于安全級別較高的系統尤其如此。
系統安全漏洞與系統攻擊活動之間有緊密的關系。因而不該脫離系統攻擊活動來談論安全漏洞問題。廣泛的攻擊存在,才使漏洞存在必然被發現性。
7、為什么要緊跟最新的計算機系統及其安全問題的最新發展動態
脫離具體的時間和具體的系統環境來討論漏洞問題是毫無意義的。只能針對目標系統的作系統版本、其上運行的軟件版本以及服務運行設置等實際環境來具體談論其中可能存在的漏洞及其可行的解決辦法。
同時應該看到,對漏洞問題的研究必須要跟蹤當前最新的計算機系統及其安全問題的最新發展動態。這一點如同對計算機病毒發展問題的研究相似。如果在工作中不能保持對新技術的跟蹤,就沒有談論系統安全漏洞問題的發言權,既使是以前所作的工作也會逐漸失去價值。
你喜歡漏洞,你討厭也好。它永遠存在,做到了"不以物喜,不以己悲",實現了"愛她就愛她的靈魂----自由,平等,共享,創新"。 同時它也證明了這個世界沒有絕對的安全,如果世界上永遠存在計算機存在軟件,那么它又將證明什么叫永恒。童話里有永恒的虛假的美, 而漏洞是永恒的真實的童話。
一、不同角度看安全漏洞的分類
對一個特定程序的安全漏洞可以從多方面進行分類。
1、從用戶群體分類
●大眾類軟件的漏洞。如Windows的漏洞、IE的漏洞等等。
●專用軟件的漏洞。如Oracle漏洞、Apache漏洞等等。
2、從數據角度看分為
●能讀按理不能讀的數據,包括內存中的數據、文件中的數據、用戶輸入的數據、數據庫中的數據、網絡上傳輸的數據等等。
●能把指定的內容寫入指定的地方(這個地方包括文件、內存、數據庫等)
●輸入的數據能被執行(包括按機器碼執行、按Shell代碼執行、按SQL代碼執行等等)
3、從作用范圍角度看分為
●遠程漏洞,攻擊者可以利用并直接通過網絡發起攻擊的漏洞。這類漏洞危害極大,攻擊者能隨心所欲的通過此漏洞操作他人的電腦。并且此類漏洞很容易導致蠕蟲攻擊,在Windows。
●本地漏洞,攻擊者必須在本機擁有訪問權限前提下才能發起攻擊的漏洞。比較典型的是本地權限提升漏洞,這類漏洞在Unix系統中廣泛存在,能讓普通用戶獲得最高管理員權限。
4、從觸發條件上看可以分為
●主動觸發漏洞,攻擊者可以主動利用該漏洞進行攻擊,如直接訪問他人計算機。
●被動觸發漏洞,必須要計算機的操作人員配合才能進行攻擊利用的漏洞。比如攻擊者給管理員發一封郵件,帶了一個特殊的jpg圖片文件,如果管理員打開圖片文件就會導致看圖軟件的某個漏洞被觸發,從而系統被攻擊,但如果管理員不看這個圖片則不會受攻擊。
5、從操作角度看可分為
●文件操作類型,主要為操作的目標文件路徑可被控制(如通過參數、配置文件、環境變量、符號鏈接燈),這樣就可能導致下面兩個問題:
◇寫入內容可被控制,從而可偽造文件內容,導致權限提升或直接修改重要數據(如修改存貸數據),這類漏洞有很多,如歷史上Oracle TNS LOG文件可指定漏洞,可導致任何人可控制運行Oracle服務的計算機;
◇內容信息可被輸出,包含內容被打印到屏幕、記錄到可讀的日志文件、產生可被用戶讀的core文件等等,這類漏洞在歷史上Unix系統中的crontab子系統中出現過很多次,普通用戶能讀受保護的shadow文件;
●內存覆蓋,主要為內存單元可指定,寫入內容可指定,這樣就能執行攻擊者想執行的代碼(緩沖區溢出、格式串漏洞、PTrace漏洞、歷史上Windows2000的硬件調試寄存器用戶可寫漏洞)或直接修改內存中的機密數據。
●邏輯錯誤,這類漏洞廣泛存在,但很少有范式,所以難以查覺,可細分為:
◇條件競爭漏洞(通常為設計問題,典型的有Ptrace漏洞、廣泛存在的文件操作時序競爭)
◇策略錯誤,通常為設計問題,如歷史上FreeBSD的Smart IO漏洞。
◇算法問題(通常為設計問題或代碼實現問題),如歷史上微軟的Windows 95/98的共享口令可輕易獲取漏洞。
◇設計的不完善,如TCP/IP協議中的3步握手導致了SYN FLOOD拒絕服務攻擊。
◇實現中的錯誤(通常為設計沒有問題,但編碼人員出現了邏輯錯誤,如歷史上博彩系統的偽隨機算法實現問題)
●外部命令執行問題,典型的有外部命令可被控制(通過PATH變量,輸入中的SHELL特殊字符等等)和SQL注入問題。
6、從時序上看可分為
●已發現很久的漏洞:廠商已經發布補丁或修補方法,很多人都已經知道。這類漏洞通常很多人已經進行了修補,宏觀上看危害比較小。
●剛發現的漏洞:廠商剛發補丁或修補方法,知道的人還不多。相對于上一種漏洞其危害性較大,如果此時出現了蠕蟲或傻瓜化的利用程序,那么會導致大批系統受到攻擊。
●0day:還沒有公開的漏洞,在私下交易中的。這類漏洞通常對大眾不會有什么影響,但會導致攻擊者瞄準的目標受到精確攻擊,危害也是非常之大。
二、不同角度看待漏洞利用
如果一個缺陷不能被利用來干“原本”不能干的事(安全相關的),那么就不能被稱為安全漏洞,所以安全漏洞必然和漏洞利用緊密聯系在一起。
漏洞利用的視角有:
●數據視角:訪問本來不可訪問的數據,包括讀和寫。這一條通常是攻擊者的核心目的,而且可造成非常嚴重的災難(如銀行數據可被人寫)。
●權限視角:主要為權限繞過或權限提升。通常權限提升都是為了獲得期望的數據操作能力。
●可用性視角:獲得對系統某些服務的控制權限,這可能導致某些重要服務被攻擊者停止而導致拒絕服務攻擊。
●認證繞過:通常利用認證系統的漏洞而不用受權就能進入系統。通常認證繞過都是為權限提升或直接的數據訪問服務的。
●代碼執行角度:主要是讓程序將輸入的內容作為代碼來執行,從而獲得遠程系統的訪問權限或本地系統的更高權限。這個角度是SQL注入、內存指針游戲類漏洞(緩沖區溢出、格式串、整形溢出等等)等的主要驅動。這個角度通常為繞過系統認證、權限提升、數據讀取作準備的。
三、漏洞發掘方法
首先必須清除安全漏洞是軟件BUG的一個子集,一切軟件測試的手段都對安全漏洞發掘實用。現在”黑客“用的各種漏洞發掘手段里有模式可循的有:
●fuzz測試(黑盒測試),通過構造可能導致程序出現問題的方式構造輸入數據進行自動測試。
●源碼審計(白盒測試),現在有了一系列的工具都能協助發現程序中的安全BUG,最簡單的就是你手上最新版本的C語言編譯器。
●IDA反匯編審計(灰盒測試),這和上面的源碼審計非常類似,唯一不同的是很多時候你能獲得軟件,但你無法拿到源碼來審計,但IDA是一個非常強大的反匯編平臺,能讓你基于匯編碼(其實也是源碼的等價物)進行安全審計。
●動態跟蹤分析,就是記錄程序在不同條件下執行的全部和安全問題相關的操作(如文件操作),然后分析這些操作序列是否存在問題,這是競爭條件類漏洞發現的主要途徑之一,其他的污點傳播跟蹤也屬于這類。
●補丁比較,廠商的軟件出了問題通常都會在補丁中解決,通過對比補丁前后文件的源碼(或反匯編碼)就能了解到漏洞的具體細節。
以上手段中無論是用哪種都涉及到一個關鍵點:需要通過人工分析來找到全面的流程覆蓋路徑。分析手法多種多樣,有分析設計文檔、分析源碼、分析反匯編代碼、動態調試程序等。
四、漏洞等級評定
考察漏洞的危害性應該緊密的和利用該漏洞帶來的危害相關,并不是通常大家認識的所有緩沖區溢出漏洞都是高危漏洞。以遠程漏洞為例,比較好的劃分方法為:
1 可遠程獲取OS、應用程序版本信息。
2 開放了不必要或危險得服務,可遠程獲取系統敏感信息。
3 可遠程進行受限的文件、數據讀取。
4 可遠程進行重要或不受限文件、數據讀取。
5 可遠程進行受限文件、數據修改。
6 可遠程進行受限重要文件、數據修改。
7 可遠程進行不受限得重要文件、數據修改,或對普通服務進行拒絕服務攻擊。
8 可遠程以普通用戶身份執行命令或進行系統、網絡級的拒絕服務攻擊。
9 可遠程以管理用戶身份執行命令(受限、不太容易利用)。
10 可遠程以管理用戶身份執行命令(不受限、容易利用)。
本地漏洞幾乎都是導致代碼執行,歸入上面的10分制可以為:
遠程主動觸發代碼執行(如IE的漏洞)。
遠程被動觸發代碼執行(如Word漏洞/看圖軟件漏洞)。
五、DEMO
一個防火墻隔離(只允許運維部的人訪問)的網絡里運行一臺Unix服務器;操作系統中只有root用戶和oracle用戶可登陸,操作系統中運行了Apache(nobody權限)、Oracle(oracle用戶權限)等服務。
一個攻擊者的目的是修改Oracle數據庫中的帳單表的數據。
其可能的攻擊步驟為:
●1.接入運維部的網絡,獲得一個運維部的IP地址從而能通過防火墻訪問被保護的Unix服務器。
●2.利用Apache服務的某遠程緩沖區溢出漏洞直接獲得一個nobody權限的shell訪問。
●3.利用操作系統某suid程序的漏洞將自己的權限提升到root權限。
●4.用Oracle的sysdba登陸進入數據庫(本地登陸不需要密碼)。
●5.修改目標表的數據。
以上5個過程分析下來為:
●第1步:認證繞過
●第2步:遠程漏洞、代碼執行(機器碼)、認證繞過
●第3步:權限提升、認證繞過
●第4步:認證繞過
●第5步:數據寫
現在很多口必稱漏洞,把漏洞的利用當自己的絕招和寶貝,其實漏洞是什么,我們或許存在著很多誤解。下面結合相關資料和我個人的理解,我們今天就講講什么是漏洞,這個十分基本的問題。
1、什么是漏洞
專業上講漏洞是在硬件、軟件、協議的具體實現或系統安全策略上(主要是人為)存在的缺陷,從而可以使攻擊者能夠在未授權的情況下訪問或破壞系統。但是,其實這是一個綱目,很多書上定義都不同,這里算是比較全面的。怎么理解呢,還是有例子來說吧,這幾十年來,漏洞太多了,不能一一說。
2、漏洞的狹義范圍
漏洞會影響到很大范圍的軟硬件設備,包括作系統本身及其支撐軟件,網絡客戶和服務器軟件,網絡路由器和安全防火墻等。怎么理解呢,就是在這些不同的軟硬件設備中都可能存在不同的安全漏洞問題。
3、漏洞的廣義范圍
這里的漏洞是指所有威脅到計算機信息安全的事物。包括人員、硬件、軟件、程序、數據。
4、漏洞的長久性
漏洞問題是與時間緊密相關的。一個系統從發布的那一天起,隨著用戶的深入使用,系統中存在的漏洞會被不斷暴露出來,這些早先被發現的漏洞也會不斷被系統供應商發布的補丁軟件修補,或在以后發布的新版系統中得以糾正。而在新版系統糾正了舊版本中具有漏洞的同時,也會引入一些新的漏洞和錯誤。因而隨著時間的推移,舊的漏洞會不斷消失,新的漏洞會不斷出現。漏洞問題也會長期存在。
5、漏洞的隱蔽性
系統安全漏洞是指可以用來對系統安全造成危害,系統本身具有的,或設置上存在的缺陷。總之,漏洞是系統在具體實現中的錯誤。比如在建立安全機制中規劃考慮上的缺陷,作系統和其他軟件編程中的錯誤,以及在使用該系統提供的安全機制時人為的配置錯誤等。
系統安全漏洞是在系統具體實現和具體使用中產生的錯誤,但并不是系統中存在的錯誤都是安全漏洞。只有能威脅到系統安全的錯誤才是漏洞。許多錯誤在通常情況下并不會對系統安全造成危害,只有被人在某些條件下故意使用時才會影響系統安全。
6、漏洞的必然被發現性
漏洞雖然可能最初就存在于系統當中,但一個漏洞并不是自己出現的,必須要有人發現。在實際使用中,用戶會發現系統中存在錯誤,而入侵者會有意利用其中的某些錯誤并使其成為威脅系統安全的工具,這時人們會認識到這個錯誤是一個系統安全漏洞。系統供應商會盡快發布針對這個漏洞的補丁程序,糾正這個錯誤。這就是系統安全漏洞從被發現到被糾正的一般過程。
系統攻擊者往往是安全漏洞的發現者和使用者,要對于一個系統進行攻擊,如果不能發現和使用系統中存在的安全漏洞是不可能成功的。對于安全級別較高的系統尤其如此。
系統安全漏洞與系統攻擊活動之間有緊密的關系。因而不該脫離系統攻擊活動來談論安全漏洞問題。廣泛的攻擊存在,才使漏洞存在必然被發現性。
7、為什么要緊跟最新的計算機系統及其安全問題的最新發展動態
脫離具體的時間和具體的系統環境來討論漏洞問題是毫無意義的。只能針對目標系統的作系統版本、其上運行的軟件版本以及服務運行設置等實際環境來具體談論其中可能存在的漏洞及其可行的解決辦法。
同時應該看到,對漏洞問題的研究必須要跟蹤當前最新的計算機系統及其安全問題的最新發展動態。這一點如同對計算機病毒發展問題的研究相似。如果在工作中不能保持對新技術的跟蹤,就沒有談論系統安全漏洞問題的發言權,既使是以前所作的工作也會逐漸失去價值。
你喜歡漏洞,你討厭也好。它永遠存在,做到了"不以物喜,不以己悲",實現了"愛她就愛她的靈魂----自由,平等,共享,創新"。 同時它也證明了這個世界沒有絕對的安全,如果世界上永遠存在計算機存在軟件,那么它又將證明什么叫永恒。童話里有永恒的虛假的美, 而漏洞是永恒的真實的童話。
一、不同角度看安全漏洞的分類
對一個特定程序的安全漏洞可以從多方面進行分類。
1、從用戶群體分類
●大眾類軟件的漏洞。如Windows的漏洞、IE的漏洞等等。
●專用軟件的漏洞。如Oracle漏洞、Apache漏洞等等。
2、從數據角度看分為
●能讀按理不能讀的數據,包括內存中的數據、文件中的數據、用戶輸入的數據、數據庫中的數據、網絡上傳輸的數據等等。
●能把指定的內容寫入指定的地方(這個地方包括文件、內存、數據庫等)
●輸入的數據能被執行(包括按機器碼執行、按Shell代碼執行、按SQL代碼執行等等)
3、從作用范圍角度看分為
●遠程漏洞,攻擊者可以利用并直接通過網絡發起攻擊的漏洞。這類漏洞危害極大,攻擊者能隨心所欲的通過此漏洞操作他人的電腦。并且此類漏洞很容易導致蠕蟲攻擊,在Windows。
●本地漏洞,攻擊者必須在本機擁有訪問權限前提下才能發起攻擊的漏洞。比較典型的是本地權限提升漏洞,這類漏洞在Unix系統中廣泛存在,能讓普通用戶獲得最高管理員權限。
4、從觸發條件上看可以分為
●主動觸發漏洞,攻擊者可以主動利用該漏洞進行攻擊,如直接訪問他人計算機。
●被動觸發漏洞,必須要計算機的操作人員配合才能進行攻擊利用的漏洞。比如攻擊者給管理員發一封郵件,帶了一個特殊的jpg圖片文件,如果管理員打開圖片文件就會導致看圖軟件的某個漏洞被觸發,從而系統被攻擊,但如果管理員不看這個圖片則不會受攻擊。
5、從操作角度看可分為
●文件操作類型,主要為操作的目標文件路徑可被控制(如通過參數、配置文件、環境變量、符號鏈接燈),這樣就可能導致下面兩個問題:
◇寫入內容可被控制,從而可偽造文件內容,導致權限提升或直接修改重要數據(如修改存貸數據),這類漏洞有很多,如歷史上Oracle TNS LOG文件可指定漏洞,可導致任何人可控制運行Oracle服務的計算機;
◇內容信息可被輸出,包含內容被打印到屏幕、記錄到可讀的日志文件、產生可被用戶讀的core文件等等,這類漏洞在歷史上Unix系統中的crontab子系統中出現過很多次,普通用戶能讀受保護的shadow文件;
●內存覆蓋,主要為內存單元可指定,寫入內容可指定,這樣就能執行攻擊者想執行的代碼(緩沖區溢出、格式串漏洞、PTrace漏洞、歷史上Windows2000的硬件調試寄存器用戶可寫漏洞)或直接修改內存中的機密數據。
●邏輯錯誤,這類漏洞廣泛存在,但很少有范式,所以難以查覺,可細分為:
◇條件競爭漏洞(通常為設計問題,典型的有Ptrace漏洞、廣泛存在的文件操作時序競爭)
◇策略錯誤,通常為設計問題,如歷史上FreeBSD的Smart IO漏洞。
◇算法問題(通常為設計問題或代碼實現問題),如歷史上微軟的Windows 95/98的共享口令可輕易獲取漏洞。
◇設計的不完善,如TCP/IP協議中的3步握手導致了SYN FLOOD拒絕服務攻擊。
◇實現中的錯誤(通常為設計沒有問題,但編碼人員出現了邏輯錯誤,如歷史上博彩系統的偽隨機算法實現問題)
●外部命令執行問題,典型的有外部命令可被控制(通過PATH變量,輸入中的SHELL特殊字符等等)和SQL注入問題。
6、從時序上看可分為
●已發現很久的漏洞:廠商已經發布補丁或修補方法,很多人都已經知道。這類漏洞通常很多人已經進行了修補,宏觀上看危害比較小。
●剛發現的漏洞:廠商剛發補丁或修補方法,知道的人還不多。相對于上一種漏洞其危害性較大,如果此時出現了蠕蟲或傻瓜化的利用程序,那么會導致大批系統受到攻擊。
●0day:還沒有公開的漏洞,在私下交易中的。這類漏洞通常對大眾不會有什么影響,但會導致攻擊者瞄準的目標受到精確攻擊,危害也是非常之大。
二、不同角度看待漏洞利用
如果一個缺陷不能被利用來干“原本”不能干的事(安全相關的),那么就不能被稱為安全漏洞,所以安全漏洞必然和漏洞利用緊密聯系在一起。
漏洞利用的視角有:
●數據視角:訪問本來不可訪問的數據,包括讀和寫。這一條通常是攻擊者的核心目的,而且可造成非常嚴重的災難(如銀行數據可被人寫)。
●權限視角:主要為權限繞過或權限提升。通常權限提升都是為了獲得期望的數據操作能力。
●可用性視角:獲得對系統某些服務的控制權限,這可能導致某些重要服務被攻擊者停止而導致拒絕服務攻擊。
●認證繞過:通常利用認證系統的漏洞而不用受權就能進入系統。通常認證繞過都是為權限提升或直接的數據訪問服務的。
●代碼執行角度:主要是讓程序將輸入的內容作為代碼來執行,從而獲得遠程系統的訪問權限或本地系統的更高權限。這個角度是SQL注入、內存指針游戲類漏洞(緩沖區溢出、格式串、整形溢出等等)等的主要驅動。這個角度通常為繞過系統認證、權限提升、數據讀取作準備的。
三、漏洞發掘方法
首先必須清除安全漏洞是軟件BUG的一個子集,一切軟件測試的手段都對安全漏洞發掘實用。現在”黑客“用的各種漏洞發掘手段里有模式可循的有:
●fuzz測試(黑盒測試),通過構造可能導致程序出現問題的方式構造輸入數據進行自動測試。
●源碼審計(白盒測試),現在有了一系列的工具都能協助發現程序中的安全BUG,最簡單的就是你手上最新版本的C語言編譯器。
●IDA反匯編審計(灰盒測試),這和上面的源碼審計非常類似,唯一不同的是很多時候你能獲得軟件,但你無法拿到源碼來審計,但IDA是一個非常強大的反匯編平臺,能讓你基于匯編碼(其實也是源碼的等價物)進行安全審計。
●動態跟蹤分析,就是記錄程序在不同條件下執行的全部和安全問題相關的操作(如文件操作),然后分析這些操作序列是否存在問題,這是競爭條件類漏洞發現的主要途徑之一,其他的污點傳播跟蹤也屬于這類。
●補丁比較,廠商的軟件出了問題通常都會在補丁中解決,通過對比補丁前后文件的源碼(或反匯編碼)就能了解到漏洞的具體細節。
以上手段中無論是用哪種都涉及到一個關鍵點:需要通過人工分析來找到全面的流程覆蓋路徑。分析手法多種多樣,有分析設計文檔、分析源碼、分析反匯編代碼、動態調試程序等。
四、漏洞等級評定
考察漏洞的危害性應該緊密的和利用該漏洞帶來的危害相關,并不是通常大家認識的所有緩沖區溢出漏洞都是高危漏洞。以遠程漏洞為例,比較好的劃分方法為:
1 可遠程獲取OS、應用程序版本信息。
2 開放了不必要或危險得服務,可遠程獲取系統敏感信息。
3 可遠程進行受限的文件、數據讀取。
4 可遠程進行重要或不受限文件、數據讀取。
5 可遠程進行受限文件、數據修改。
6 可遠程進行受限重要文件、數據修改。
7 可遠程進行不受限得重要文件、數據修改,或對普通服務進行拒絕服務攻擊。
8 可遠程以普通用戶身份執行命令或進行系統、網絡級的拒絕服務攻擊。
9 可遠程以管理用戶身份執行命令(受限、不太容易利用)。
10 可遠程以管理用戶身份執行命令(不受限、容易利用)。
本地漏洞幾乎都是導致代碼執行,歸入上面的10分制可以為:
遠程主動觸發代碼執行(如IE的漏洞)。
遠程被動觸發代碼執行(如Word漏洞/看圖軟件漏洞)。
五、DEMO
一個防火墻隔離(只允許運維部的人訪問)的網絡里運行一臺Unix服務器;操作系統中只有root用戶和oracle用戶可登陸,操作系統中運行了Apache(nobody權限)、Oracle(oracle用戶權限)等服務。
一個攻擊者的目的是修改Oracle數據庫中的帳單表的數據。
其可能的攻擊步驟為:
●1.接入運維部的網絡,獲得一個運維部的IP地址從而能通過防火墻訪問被保護的Unix服務器。
●2.利用Apache服務的某遠程緩沖區溢出漏洞直接獲得一個nobody權限的shell訪問。
●3.利用操作系統某suid程序的漏洞將自己的權限提升到root權限。
●4.用Oracle的sysdba登陸進入數據庫(本地登陸不需要密碼)。
●5.修改目標表的數據。
以上5個過程分析下來為:
●第1步:認證繞過
●第2步:遠程漏洞、代碼執行(機器碼)、認證繞過
●第3步:權限提升、認證繞過
●第4步:認證繞過
●第5步:數據寫
三步堵死SQL注入漏洞
[ 2007-03-25 03:30:30 | 作者: sun ]
SQL注入是什么?
許多網站程序在編寫時,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼(一般是在瀏覽器地址欄進行,通過正常的www端口訪問),根據程序返回的結果,獲得某些想得知的數據,這就是所謂的SQL Injection,即SQL注入。
網站的惡夢——SQL注入
SQL注入通過網頁對網站數據庫進行修改。它能夠直接在數據庫中添加具有管理員權限的用戶,從而最終獲得系統管理員權限。黑客可以利用獲得的管理員權限任意獲得網站上的文件或者在網頁上加掛木馬和各種惡意程序,對網站和訪問該網站的網友都帶來巨大危害。
防御SQL注入有妙法
第一步:很多新手從網上下載SQL通用防注入系統的程序,在需要防范注入的頁面頭部用 來防止別人進行手動注入測試(。
可是如果通過SQL注入分析器就可輕松跳過防注入系統并自動分析其注入點。然后只需要幾分鐘,你的管理員賬號及密碼就會被分析出來。
第二步:對于注入分析器的防范,筆者通過實驗,發現了一種簡單有效的防范方法。首先我們要知道SQL注入分析器是如何工作的。在操作過程中,發現軟件并不是沖著“admin”管理員賬號去的,而是沖著權限(如flag=1)去的。這樣一來,無論你的管理員賬號怎么變都無法逃過檢測。
第三步:既然無法逃過檢測,那我們就做兩個賬號,一個是普通的管理員賬號,一個是防止注入的賬號,為什么這么說呢?筆者想,如果找一個權限最大的賬號制造假象,吸引軟件的檢測,而這個賬號里的內容是大于千字以上的中文字符,就會迫使軟件對這個賬號進行分析的時候進入全負荷狀態甚至資源耗盡而死機。下面我們就來修改數據庫吧。
1.對表結構進行修改。將管理員的賬號字段的數據類型進行修改,文本型改成最大字段255(其實也夠了,如果還想做得再大點,可以選擇備注型),密碼的字段也進行相同設置。
2.對表進行修改。設置管理員權限的賬號放在ID1,并輸入大量中文字符(最好大于100個字)。
3.把真正的管理員密碼放在ID2后的任何一個位置(如放在ID549上)。
我們通過上面的三步完成了對數據庫的修改。
這時是不是修改結束了呢?其實不然,要明白你做的ID1賬號其實也是真正有權限的賬號,現在計算機處理速度那么快,要是遇上個一定要將它算出來的軟件,這也是不安全的。我想這時大多數人已經想到了辦法,對,只要在管理員登錄的頁面文件中寫入字符限制就行了!就算對方使用這個有上千字符的賬號密碼也會被擋住的,而真正的密碼則可以不受限制。
許多網站程序在編寫時,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。用戶可以提交一段數據庫查詢代碼(一般是在瀏覽器地址欄進行,通過正常的www端口訪問),根據程序返回的結果,獲得某些想得知的數據,這就是所謂的SQL Injection,即SQL注入。
網站的惡夢——SQL注入
SQL注入通過網頁對網站數據庫進行修改。它能夠直接在數據庫中添加具有管理員權限的用戶,從而最終獲得系統管理員權限。黑客可以利用獲得的管理員權限任意獲得網站上的文件或者在網頁上加掛木馬和各種惡意程序,對網站和訪問該網站的網友都帶來巨大危害。
防御SQL注入有妙法
第一步:很多新手從網上下載SQL通用防注入系統的程序,在需要防范注入的頁面頭部用 來防止別人進行手動注入測試(。
可是如果通過SQL注入分析器就可輕松跳過防注入系統并自動分析其注入點。然后只需要幾分鐘,你的管理員賬號及密碼就會被分析出來。
第二步:對于注入分析器的防范,筆者通過實驗,發現了一種簡單有效的防范方法。首先我們要知道SQL注入分析器是如何工作的。在操作過程中,發現軟件并不是沖著“admin”管理員賬號去的,而是沖著權限(如flag=1)去的。這樣一來,無論你的管理員賬號怎么變都無法逃過檢測。
第三步:既然無法逃過檢測,那我們就做兩個賬號,一個是普通的管理員賬號,一個是防止注入的賬號,為什么這么說呢?筆者想,如果找一個權限最大的賬號制造假象,吸引軟件的檢測,而這個賬號里的內容是大于千字以上的中文字符,就會迫使軟件對這個賬號進行分析的時候進入全負荷狀態甚至資源耗盡而死機。下面我們就來修改數據庫吧。
1.對表結構進行修改。將管理員的賬號字段的數據類型進行修改,文本型改成最大字段255(其實也夠了,如果還想做得再大點,可以選擇備注型),密碼的字段也進行相同設置。
2.對表進行修改。設置管理員權限的賬號放在ID1,并輸入大量中文字符(最好大于100個字)。
3.把真正的管理員密碼放在ID2后的任何一個位置(如放在ID549上)。
我們通過上面的三步完成了對數據庫的修改。
這時是不是修改結束了呢?其實不然,要明白你做的ID1賬號其實也是真正有權限的賬號,現在計算機處理速度那么快,要是遇上個一定要將它算出來的軟件,這也是不安全的。我想這時大多數人已經想到了辦法,對,只要在管理員登錄的頁面文件中寫入字符限制就行了!就算對方使用這個有上千字符的賬號密碼也會被擋住的,而真正的密碼則可以不受限制。

