密碼破解後門
這是入侵者使用的最早也是最老的方法,它不僅可以獲得對Unix機器的訪問,而且可 以通過破解密碼制造後門。這就是破解口令薄弱的帳號。以後即使管理員封了入侵者的當前帳號,這些新的帳號仍然可能是重新侵入的後門。多數情況下,入侵者尋找口令薄弱的未使用帳號,然後將口令改的難些。當管理員尋找口令薄弱的帳號是,也不會發現這些密碼已修改的帳號。因而管理員很難確定查封哪個帳號。
Rhosts + + 後門
在連網的Unix機器中,象Rsh和Rlogin這樣的服務是基於rhosts文件裏的主機名使用簡 單的認證方法。用戶可以輕易的改變設置而不需口令就能進入。入侵者只要向可以訪問的某用戶的rhosts文件中輸入"+ +",就可以允許任何人從任何地方無須口令便能進入這個帳號。特別當home目錄通過NFS向外***享時,入侵者更熱中於此。這些帳號也成 了入侵者再次侵入的後門。許多人更喜歡使用Rsh,因為它通常缺少日誌能力。許多管理員經常檢查 "+ +",所以入侵者實際上多設置來自網上的另壹個帳號的主機名和用戶名,從而不易被發現。
校驗和及時間戳後門
早期,許多入侵者用自己的trojan程序替代二進制文件。系統管理員便依靠時間戳和系 統校驗和的程序辨別壹個二進制文件是否已被改變,如Unix裏的sum程序。入侵者又發展了使trojan文件和原文件時間戳同步的新技術。它是這樣實現的: 先將系統時鐘撥回到原文件時間,然後調整trojan文件的時間為系統時間。壹旦二進制trojan文件與 原來的精確同步,就可以把系統時間設回當前時間。Sum程序是基於CRC校驗,很容易騙過。入侵者設計出了可以將trojan的校驗和調整到原文件的校驗和的程序。MD5是被 大多數人推薦的,MD5使用的算法目前還沒人能騙過。
Login後門
在Unix裏,login程序通常用來對telnet來的用戶進行口令驗證。 入侵者獲取login.c的原代碼並修改,使它在比較輸入口令與存儲口令時先檢查後門口令。如果用戶敲入後門 口令,它將忽視管理員設置的口令讓妳長驅直入。這將允許入侵者進入任何帳號,甚至是root。由於後門口令是在用戶真實登錄並被日誌記錄到utmp和wtmp前產生壹個訪問 的,所以入侵者可以登錄獲取shell卻不會暴露該帳號。管理員註意到這種後門後,便用"strings"命令搜索login程序以尋找文本信息。 許多情況下後門口令會原形畢露。入侵者就開始加密或者更好的隱藏口令,使strings命令失效。 所以更多的管理員是用MD5校驗和檢測這種後門的。
Telnetd後門
當用戶telnet到系統,監聽端口的inetd服務接受連接隨後遞給in.telnetd,由它運行 login.壹些入侵者知道管理員會檢查login是否被修改,就著手修改in.telnetd. 在in.telnetd內部有壹些對用戶信息的檢驗,比如用戶使用了何種終端。典型的終端 設置是Xterm或者VT100.入侵者可以做這樣的後門,當終端設置為"letmein"時產生壹個不要任何驗證的shell. 入侵者已對某些服務作了後門,對來自特定源端口的連接產生壹個shell。
服務後門
幾乎所有網絡服務曾被入侵者作過後門。 Finger,rsh,rexec,rlogin,ftp,甚至 inetd等等的作了的版本隨處多是。有的只是連接到某個TCP端口的shell,通過後門口令就能獲取訪問。這些程序有時用刺媧□?Ucp這樣不用的服務,或者被加入inetd.conf 作為壹個新的服務,管理員應該非常註意那些服務正在運行,並用MD5對原服務程序做校驗。
Cronjob後門
Unix上的Cronjob可以按時間表調度特定程序的運行。入侵者可以加入後門shell程序使它在1AM到2AM之間運行,那麽每晚有壹個小時可以獲得訪問。也可以查看cronjob中 經常運行的合法程序,同時置入後門。
庫後門
幾乎所有的UNIX系統使用***享庫,***享庫用於相同函數的重用而減少代碼長度。壹些入侵者在象crypt.c和_crypt.c這些函數裏作了後門;象login.c這樣的程序調用了 crypt()。當使用後門口令時產生壹個shell。因此,即使管理員用MD5檢查login程序,仍然能產生壹個後門函數,而且許多管理員並不會檢查庫是否被做了後門。對於許多入侵者來說有壹個問題: 壹些管理員對所有東西多作了MD5校驗,有壹種辦法是入侵者對open()和文件訪問函數做後門。後門函數讀原文件但執行trojan後門程序。所以當MD5讀這些文件時,校驗和壹切正常,但當系統運行時將執行trojan版本的,即使trojan庫本身也可躲過MD5校驗,對於管理員來說有壹種方法可以找到後門,就是靜態編連MD5校驗程序然後運行,靜態連接程序不會使用trojan***享庫。
內核後門
內核是Unix工作的核心,用於庫躲過MD5校驗的方法同樣適用於內核級別,甚至連靜態 連接多不能識別。壹個後門作的很好的內核是最難被管理員查找的,所幸的是內核的 後門程序還不是隨手可得,每人知道它事實上傳播有多廣。
文件系統後門
入侵者需要在服務器上存儲他們的掠奪品或數據,並不能被管理員發現,入侵者的文章常是包括exploit腳本工具,後門集,sniffer日誌,email的備分,原代碼,等等!有時為了防止管理員發現這麽大的文件,入侵者需要修補"ls","du","fsck"以隱匿特定的目錄和文件,在很低的級別,入侵者做這樣的漏洞: 以專有的格式在硬盤上割出壹部分,且表示為壞的扇區。因此入侵者只能用特別的工具訪問這些隱藏的文件,對於普通的管理員來說,很難發現這些"壞扇區"裏的文件系統,而它又確實存在。
Boot塊後門
在PC世界裏,許多病毒藏匿與根區,而殺病毒軟件就是檢查根區是否被改變。Unix下,多數管理員沒有檢查根區的軟件,所以壹些入侵者將壹些後門留在根區。
隱匿進程後門
入侵者通常想隱匿他們運行的程序,這樣的程序壹般是口令破解程序和監聽程序(sniffer),有許多辦法可以實現,這裏是較通用的: 編寫程序時修改自己的argv[] 使它看起來象其他進程名。可以將sniffer程序改名類似in.syslog再執行,因此當管理員用"ps"檢查運行進程時,出現 的是標準服務名。可以修改庫函數致使"ps"不能顯示所有進程,可以將壹個後門或程序嵌入中斷驅動程序使它不會在進程表顯現。使用這個技術的壹個後門例子是
amod.tar.gz :
網絡通行。這些網絡通行後 門有時允許入侵者通過防火墻進行訪問。有許多網絡後門程序允許入侵者建立某個端口號並不用通過普通服務就能實現訪問。 因為這是通過非標準網絡端口的通行,管理員可能忽視入侵者的足跡。 這種後門通常使用TCP,UDP和ICMP,但也可能是其他類型報文。
TCP Shell 後門
入侵者可能在防火墻沒有阻塞的高位TCP端口建立這些TCP Shell後門. 許多情況下,他們用口令進行保護以免管理員連接上後立即看到是shell訪問。 管理員可以用netstat 命令查看當前的連接狀態,那些端口在偵聽,目前連接的來龍去脈。 通常這些後門可以讓入侵者躲過TCP Wrapper技術。這些後門可以放在SMTP端口,許多防火墻允許 e-mail通行的.
UDP Shell 後門
管理員經常註意TCP連接並觀察其怪異情況,而UDP Shell後門沒有這樣的連接,所以 netstat不能顯示入侵者的訪問痕跡,許多防火墻設置成允許類似DNS的UDP報文的通行,通常入侵者將UDP Shell放置在這個端口,允許穿越防火墻。
ICMP Shell 後門
Ping是通過發送和接受ICMP包檢測機器活動狀態的通用辦法之壹。許多防火墻允許外界ping它內部的機器,入侵者可以放數據入Ping的ICMP包,在ping的機器間形成壹個shell通道,管理員也許會註意到Ping包暴風,但除了他查看包內數據,否者入侵者不會暴露。
加密連接
管理員可能建立壹個sniffer試圖某個訪問的數據,但當入侵者給網絡通行後門加密 後,就不可能被判定兩臺機器間的傳輸內容了。