網上有許多網友提出這樣的問題:究竟網站的主頁是如何被黑的?黑客們到底是如何入侵服務器的?
在討論這部分知識前,讀者需要知道——入侵網站是非法的;但是在網絡上找到網站的入侵漏洞並通知該網站是受到歡迎的。為什麼要這樣尋找入侵漏洞或入侵哪,著名的黑客H ackalot說過「入侵網站是利用所學的知識來學習新的知識的一種辦法」,這也就是中國人所常說的「溫故而知新」。
【原理】
儘管為服務器設計軟件的軟件工程師們想方設法提高系統的安全性,然而由於系統管理員的水平參差不齊或安全意識底下,往往給黑客提供了入侵的機會。

其實每一個黑客都有自己獨到的方法。筆者對於入侵網站服務器的資料收集了很多,但是因為實際情況的不同,往往造成許多方法的失效;由此可見,每一個網站的情況都不同,需要入侵者區分對待。假設深圳的線路比北京的線路要好的多,從而給了詞典窮舉很大的方便,深圳用戶就可以依靠這個優勢在線攻擊口令,作為北京的用戶就需要優先考慮其它辦法了。針對這麼多的入侵手段,筆者參考H ackalot先生這位黑客界名人的一篇文章給大家介紹一下入侵網站的基本步驟。
分析一部分的主頁被黑的事例可以發現使用入侵者最熱衷於入侵Web服務器和FTP服務器,因為相對來說這是最簡單的兩種途徑。在假設讀者對U NIX系統和WEB SERVER的知識不曾瞭解的情況下,筆者給出下面的步驟。
一、瞭解要入侵的系統
現在網絡上用作服務器的操作系統以UNIX和Linux為主流,如果要入侵這些系統則必須對它們有一個瞭解。
大部份在 DOS 上使用的指令在 UNIX 及 Linux 上都有對應的指令(因為早期的dos開發借鑒了UNIX),以下列出在使用 SHELL帳號 (shell account)時最主要的一些指令對應的dos指令:
HELP=HELP
CP=COPY
MV= MOVE
LS= DIR
RM =DEL
CD=CD
要看誰同時也在該系統上用戶可以鍵入 WHO 指令,要知道系統上某一位使用者的資料, 可以鍵入 FINGER。這些基本的 UNIX 指令可以讓你得到你正使用系統的信息。

二、破解密碼
在UNIX操作系統中, 所有系統使用者的密碼都存放在一個文件中,這個文件存放在 /etc這個目錄下面, 它的文件名就叫做passwd。如果讀者認為所要做的工作就是拿到這個文件按照上面的密碼登陸系統的話那就大錯特錯了。UNIX和Linux下的p asswd文件是特殊的,在它裡面所有帳號的密碼都已經經過重新編譯的(也就是前面說過的DES加密方法),而且這些密碼所進行的都是單向編譯( one-way encrypted),也就是說沒有辦法可以反編譯它的(decrypt)。
但是還是有些程序可以得到這些原始的密碼。筆者向大家推薦一個破解密碼的程序「Cracker Jack」,它也是一個使用字典來對字典文件進行窮舉的軟件。首先「Cracker Jack」會把字典文件裡的每一個值進行編譯,然後將編譯過的值與密碼文件中的內容進行比較,得到相同的結果就會報告對應的未經編譯密碼。這個軟件巧妙的繞過密碼無法反編譯的限制,使用窮舉比較獲得密碼。使用這種原理獲得密碼的工具有許多,讀者可以到網絡上去搜尋一下。

三、獲得密碼文件
這是最困難的一部分。很明顯,如果管理員有那麼一個密碼文件的話他當然不會放在那裡讓其它人舒舒服服的拿到的。入侵者必須找到好方法以不進入系統的方式拿到密碼文件。這裡筆者向大家介紹兩種方法,大家可以試試,有可能會成功。
1.tc目錄在FTP服務上不會被鎖住,入侵可以用FTP client程序使用anoymously匿名帳號登陸,然後檢查一下/etc/passwd是否為匿名設置了被讀取的權限,如果有馬上備份下來使用軟件解碼。
2.些系統中,/cgi-bin目錄下會有個叫PHF的文件,如果準備入侵的服務器上有的話那就要方便的多了。因為PHF允許使用者對網站系統裡的文件作遠端讀取,以此為據,用戶可以使用瀏覽器抓取p asswd文件,只要在瀏覽器地址欄中鍵入URL:http://xxx.xxx.xxx/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd,其中xxx.xxx.xxx 是要入侵的網站名。
如果這兩種方法都行不通的話,那入侵者必須實施其它的辦法了。
在有些情況下入侵者找到的密碼文件的第二部分是X、!或者*,那麼說明該密碼文件已經被鎖死,這是系統管理員使用的加強安全的手段之一。但是將密碼文件完全隱藏起來的情況是不太有的。通常情況下都會有未經鎖死的密碼文件備份在系統中,這樣入侵者就可以加以利用,比如:入侵者通常會尋找/ etc/shadow目錄或類似的目錄,看能否找到密碼文件的備份。

四、建立自己的shell帳號
經過二、三兩個關鍵的步驟入侵者終於拿到了關鍵的密碼文件,並且破解出了密碼。現在可以運行TELNET程序,登陸主機了。當連上服務器時服務器會向你顯示自己的一些信息,通常是U NIX、linux、 aix、 irix、 ultrix、 bsd 甚至是 DOS 和VAX/Vms;然後是Login提示符出現在屏幕上,這時鍵入得來的帳號和密碼即可登陸系統。此時入侵者就可以利用自己的UNIX知識做自己喜歡做的事了。

最後對一份密碼文件做一個分析,該文件內容如下:
root:1234aaab:0:1:Operator:/:/bin/csh
nobody:*:12345:12345::/:
daemon:*:1:1::/:
sys:*:2:2::/:/bin/csh
sun:123456hhh:0:1:Operator:/:/bin/csh
bin:*:3:3::/bin:
uucp:*:4:8::/var/spool/uucppublic:
news:*:6:6::/var/spool/news:/bin/csh
audit:*:9:9::/etc/security/audit:/bin/csh
sync::1:1::/:/bin/sync
sysdiag:*:0:1:Old System
Diagnostic:/usr/diag/sysdiag:/usr/diag/sysdiag/sysdiag
sundiag:*:0:1:System
Diagnostic:/usr/diag/sundiag:/usr/diag/sundiag/sundiag
tom:456lll45uu:100:20::/home/tom:/bin/csh
john:456fff76Sl:101:20:john:/home/john:/bin/csh
henry:AusTs45Yus:102:20:henry:/home/henry:/bin/csh
harry:SyduSrd5sY:103:20:harry:/home/harry:/bin/csh
steven:GEs45Yds5Ry:104:20:steven:/home/steven:/bin/csh
+::0:0:::

其中以「:」分成幾個欄位,比如: tom:456lll45uu:100:20:tomchang:/home/tom:/bin/csh的含義是:
User Name: tom
Password: 456lll45uu
User No: 100
Group No: 20
Real Name: tom chang
Home Dir: /home/tom
Shell: /bin/csh

讀者可以發現以上諸如nobody、 daemon、 sys、 bin、 uucp、 news、 audit、 sysdiag、sundiag 等的密碼欄位都是*,也就是說這些帳號的密碼都已鎖死,無法直接利用。

值得注意的是,許多系統在首次安裝後會有一些缺省帳號和密碼,這給投機主義的黑客帶來方便,以下就是一些UNIX下缺省的帳號和密碼。
ACCOUNT PASSWORD
----------- ----------------
root root
sys sys / system / bin
bin sys / bin
mountfsys mountfsys
adm adm
uucp uucp
nuucp anon
anon anon
user user
games games
install install
reboot 供「command login」使用
demo demo
umountfsys umountfsys
sync sync
admin admin
guest guest
daemon daemon

其中 root mountfsys umountfsys install (有時候 sync也是) 等都是root級別的帳號, 也就是擁有了sysop (系統管理員)的權限。

最後有必要介紹一下UNIX的日誌文件。很多入侵者不希望侵入的電腦追蹤他們,那到底如何做那。
系統管理員主要依靠系統的LOG,即我們時常所說的日誌文件來獲得入侵的痕跡及入侵者進來的IP和其他信息。當然也有些管理員使用第三方工具來記錄侵入電腦的信息,這裡主要講的是一般U NIX系統裡記錄入侵蹤跡的文件。

UNIX系統有多個版本,各個系統有不同的LOG文件,但大多數都應該有差不多的存放位置,最普通的位置就是下面的這幾個:
/usr/adm,早期版本的UNIX;
/var/adm,新一點的版本使用這個位置;
/var/log,一些版本的Solaris,Linux BSD,Free BSD使用這個位置;
/etc,大多數UNIX版本把utmp放在此處,一些也把wtmp放在這裡,這也是 syslog.conf的位置。

下面列舉一些文件的功能,當然他們也根據入侵的系統不同而不同。
acct 或 pacct,記錄每個用戶使用的命令記錄;
access_log,主要使用來服務器運行了NCSA HTTPD,這個記錄文件會有什麼站點連接過你的服務器;
aculog,保存著你撥出去的MODEMS記錄;
lastlog,記錄了用戶最近的登陸記錄和每個用戶的最初目的地,有時是最後不成功登陸的記錄;
loginlog,記錄一些不正常的登陸記錄;
messages,記錄輸出到系統控制台的記錄,另外的信息由syslog來生成;
security,記錄一些使用UUCP系統企圖進入限制範圍的事例;
sulog,記錄使用su命令的記錄;
utmp,記錄當前登錄到系統中的所有用戶,這個文件伴隨著用戶進入和離開系統而不斷變化;
utmpx,UTMP的擴展;
wtmp,記錄用戶登錄和退出事件;
syslog,最重要的日誌文件,使用syslogd守護程序來獲得。
日誌信息:
/dev/log,一個UNIX域套接字,接受在本地機器上運行的進程所產生的消息;
/dev/klog,一個從UNIX內核接受消息的設備;
514端口,一個INTERNET套接字,接受其他機器通過UDP產生的syslog消息;
Uucp,記錄的UUCP的信息,可以被本地UUCP活動更新,也可有遠程站點發起的動作修改,信息包括發出和接受的呼叫,發出的請求,發送者,發送時間和發送主機;
lpd-errs,處理打印機故障信息的日誌;
ftp日誌,執行帶-l選項的ftpd能夠獲得記錄功能;
httpd日誌,HTTPD服務器在日誌中記錄每一個WEB訪問記錄;
history日誌,這個文件保存了用戶最近輸入命令的記錄;
vold.log,記錄使用外接媒介時遇到的錯誤記錄。

以上介紹了一下入侵服務器的主要步驟,讀者現在應該對它有一些基礎的認識了。需要再次強調的是如果讀者對UNIX系統缺乏瞭解的話那是絕對不可能掌握它的。


arrow
arrow
    全站熱搜

    Neo Chao 發表在 痞客邦 留言(2) 人氣()