Windows許可權設定詳解
隨著動網論壇的廣泛應用和動網上傳漏洞的被發現以及SQL隱碼攻擊式攻擊越來越多的被使用,WEBSHELL讓防火牆形同虛設,一臺即使打了所有微軟補丁、只讓80埠對外開放的WEB伺服器也逃不過被黑的命運。難道我們真的無能為力了嗎?其實,只要你弄明白了NTFS系統下的許可權設定問題,我們可以對crackers們說:NO!
要打造一臺安全的WEB伺服器,那麼這臺伺服器就一定要使用NTFS和Windows
NT/2000/2003。眾所周知,Windows是一個支援多使用者、多工的作業系統,這是許可權設定的基礎,一切許可權設定都是基於使用者和程式而言的,不同的使用者在訪問這臺計算機時,將會有不同的許可權。
DOS跟WinNT的許可權的分別
DOS是個單任務、單使用者的作業系統。但是我們能說DOS沒有許可權嗎?不能!當我們開啟一臺裝有DOS作業系統的計算機的時候,我們就擁有了這個作業系統的管理員許可權,而且,這個許可權無處不在。所以,我們只能說DOS不支援許可權的設定,不能說它沒有許可權。隨著人們安全意識的提高,許可權設定隨著NTFS的釋出誕生了。
Windows
NT裡,使用者被分成許多組,組和組之間都有不同的許可權,當然,一個組的使用者和使用者之間也可以有不同的許可權。下面我們來談談NT中常見的使用者組。
Administrators,管理員組,預設情況下,Administrators中的使用者對計算機/域有不受限制的完全訪問權。分配給該組的預設許可權允許對整個系統進行完全控制。所以,只有受信任的人員才可成為該組的成員。
Power
Users,高階使用者組,Power Users 可以執行除了為 Administrators 組保留的任務外的其他任何作業系統任務。分配給 Power
Users 組的預設許可權允許 Power Users 組的成員修改整個計算機的設定。但Power Users 不具有將自己新增到 Administrators
組的許可權。在許可權設定中,這個組的許可權是僅次於Administrators的。
Users:普通使用者組,這個組的使用者無法進行有意或無意的改動。因此,使用者可以執行經過驗證的應用程式,但不可以執行大多數舊版應用程式。Users
組是最安全的組,因為分配給該組的預設許可權不允許成員修改作業系統的設定或使用者資料。Users 組提供了一個最安全的程式執行環境。在經過 NTFS
格式化的捲上,預設安全設定旨在禁止該組的成員危及作業系統和已安裝程式的完整性。使用者不能修改系統登錄檔設定、作業系統檔案或程式檔案。Users
可以關閉工作站,但不能關閉伺服器。Users
可以建立本地組,但只能修改自己建立的本地組。
Guests:來賓組,按預設值,來賓跟普通Users的成員有同等訪問權,但來賓帳戶的限制更多。
Everyone:顧名思義,所有的使用者,這個計算機上的所有使用者都屬於這個組。
其實還有一個組也很常見,它擁有和Administrators一樣、甚至比其還高的許可權,但是這個組不允許任何使用者的加入,在察看使用者組的時候,它也不會被顯示出來,它就是SYSTEM組。系統和系統級的服務正常執行所需要的許可權都是靠它賦予的。由於該組只有這一個使用者SYSTEM,也許把該組歸為使用者的行列更為貼切。
許可權的權力大小分析
許可權是有高低之分的,有高許可權的使用者可以對低許可權的使用者進行操作,但除了Administrators之外,其他組的使用者不能訪問
NTFS
捲上的其他使用者資料,除非他們獲得了這些使用者的授權。而低許可權的使用者無法對高許可權的使用者進行任何操作。
我們平常使用計算機的過程當中不會感覺到有許可權在阻撓你去做某件事情,這是因為我們在使用計算機的時候都用的是Administrators中的使用者登陸的。這樣有利也有弊,利當然是你能去做你想做的任何一件事情而不會遇到許可權的限制。弊就是以
Administrators 組成員的身份執行計算機將使系統容易受到特洛伊木馬、病毒及其他安全風險的威脅。訪問 Internet
站點或開啟電子郵件附件的簡單行動都可能破壞系統。
不熟悉的 Internet
站點或電子郵件附件可能有特洛伊木馬程式碼,這些程式碼可以下載到系統並被執行。如果以本地計算機的管理員身份登入,特洛伊木馬可能使用管理訪問權重新格式化您的硬碟,造成不可估量的損失,所以在沒有必要的情況下,最好不用Administrators中的使用者登陸。Administrators中有一個在系統安裝時就建立的預設使用者—-Administrator,Administrator
帳戶具有對伺服器的完全控制許可權,並可以根據需要向使用者指派使用者權利和訪問控制許可權。
因此強烈建議將此帳戶設定為使用強密碼。永遠也不可以從Administrators
組刪除 Administrator 帳戶,但可以重新命名或禁用該帳戶。由於大家都知道“管理員”存在於許多版本的 Windows
上,所以重新命名或禁用此帳戶將使惡意使用者嘗試並訪問該帳戶變得更為困難。對於一個好的伺服器管理員來說,他們通常都會重新命名或禁用此帳戶。Guests使用者組下,也有一個預設使用者—-Guest,但是在預設情況下,它是被禁用的。如果沒有特別必要,無須啟用此賬戶。
小幫助:何謂強密碼?就是字母與數字、大小互相組合的大於8位的複雜密碼,但這也不完全防得住眾多的黑客,只是一定程度上較為難破解。
我們可以通過“控制皮膚”–“管理工具”–“計算機管理”–“使用者和使用者組”來檢視使用者組及該組下的使用者。
我們用滑鼠右鍵單擊一個NTFS卷或NTFS卷下的一個目錄,選擇“屬性”–“安全”就可以對一個卷,或者一個卷下面的目錄進行許可權設定,此時我們會看到以下七種許可權:完全控制、修改、讀取和執行、列出資料夾目錄、讀取、寫入、和特別的許可權。“完全控制”就是對此卷或目錄擁有不受限制的完全訪問。地位就像Administrators在所有組中的地位一樣。選中了“完全控制”,下面的五項屬性將被自動被選中。
“修改”則像Power
users,選中了“修改”,下面的四項屬性將被自動被選中。下面的任何一項沒有被選中時,“修改”條件將不再成立。“讀取和執行”就是允許讀取和執行在這個卷或目錄下的任何檔案,“列出資料夾目錄”和“讀取”是“讀取和執行”的必要條件。
“列出資料夾目錄”是指只能瀏覽該卷或目錄下的子目錄,不能讀取,也不能執行。“讀取”是能夠讀取該卷或目錄下的資料。“寫入”就是能往該卷或目錄下寫入資料。而“特別”則是對以上的六種許可權進行了細分。讀者可以自行對“特別”進行更深的研究,鄙人在此就不過多贅述了。
一臺簡單伺服器的設定例項操作:
下面我們對一臺剛剛安裝好作業系統和服務軟體的WEB伺服器系統和其許可權進行全面的刨析。伺服器採用Windows
2000 Server版,安裝好了SP4及各種補丁。WEB服務軟體則是用了Windows 2000自帶的IIS
5.0,刪除了一切不必要的對映。整個硬碟分為四個NTFS卷,C盤為系統卷,只安裝了系統和驅動程式;D盤為軟體卷,該伺服器上所有安裝的軟體都在D盤中;E盤是WEB程式卷,網站程式都在該卷下的WWW目錄中;F盤是網站資料卷,網站系統呼叫的所有資料都存放在該卷的WWWDATABASE目錄下。
這樣的分類還算是比較符合一臺安全伺服器的標準了。希望各個新手管理員能合理給你的伺服器資料進行分類,這樣不光是查詢起來方便,更重要的是這樣大大的增強了伺服器的安全性,因為我們可以根據需要給每個卷或者每個目錄都設定不同的許可權,一旦發生了網路安全事故,也可以把損失降到最低。
當然,也可以把網站的資料分佈在不同的伺服器上,使之成為一個伺服器群,每個伺服器都擁有不同的使用者名稱和密碼並提供不同的服務,這樣做的安全性更高。不過願意這樣做的人都有一個特點—-有錢:)。
好了,言歸正傳,該伺服器的資料庫為MS-SQL,MS-SQL的服務軟體SQL2000安裝在d:ms-sqlserver2K目錄下,給SA賬戶設定好了足夠強度的密碼,安裝好了SP3補丁。為了方便網頁製作員對網頁進行管理,該網站還開通了FTP服務,FTP服務軟體使用的是SERV-U
5.1.0.0,安裝在d:ftpserviceserv-u目錄下。防毒軟體和防火牆用的分別是Norton
Antivirus和BlackICE,路徑分別為d:nortonAV和d:firewallblackice,病毒庫已經升級到最新,防火牆規則庫定義只有80埠和21埠對外開放。網站的內容是採用動網7.0的論壇,網站程式在e:wwwbbs下。
細心的讀者可能已經注意到了,安裝這些服務軟體的路徑我都沒有采用預設的路徑或者是僅僅更改碟符的預設路徑,這也是安全上的需要,因為一個黑客如果通過某些途徑進入了你的伺服器,但並沒有獲得管理員許可權,他首先做的事情將是檢視你開放了哪些服務以及安裝了哪些軟體,因為他需要通過這些來提升他的許可權。
一個難以猜解的路徑加上好的許可權設定將把他阻擋在外。相信經過這樣配置的WEB伺服器已經足夠抵擋大部分學藝不精的黑客了。讀者可能又會問了:“這根本沒用到許可權設定嘛!我把其他都安全工作都做好了,許可權設定還有必要嗎?”當然有!智者千慮還必有一失呢,就算你現在已經把系統安全做的完美無缺,你也要知道新的安全漏洞總是在被不斷的發現。
例項攻擊
許可權將是你的最後一道防線!那我們現在就來對這臺沒有經過任何許可權設定,全部採用Windows預設許可權的伺服器進行一次模擬攻擊,看看其是否真的固若金湯。
假設伺服器外網域名為http://www.webserver.com,用掃描軟體對其進行掃描後發現開放WWW和FTP服務,並發現其服務軟體使用的是IIS
5.0和Serv-u
5.1,用一些針對他們的溢位工具後發現無效,遂放棄直接遠端溢位的想法。
開啟網站頁面,發現使用的是動網的論壇系統,於是在其域名後面加個/upfile.asp,發現有檔案上傳漏洞,便抓包,把修改過的ASP木馬用NC提交,提示上傳成功,成功得到WEBSHELL,開啟剛剛上傳的ASP木馬,發現有MS-SQL、Norton
Antivirus和BlackICE在執行,判斷是防火牆上做了限制,把SQL服務埠遮蔽了。
通過ASP木馬檢視到了Norton
Antivirus和BlackICE的PID,又通過ASP木馬上傳了一個能殺掉程式的檔案,執行後殺掉了Norton
Antivirus和BlackICE。再掃描,發現1433埠開放了,到此,便有很多種途徑獲得管理員許可權了,可以檢視網站目錄下的conn.asp得到SQL的使用者名稱密碼,再登陸進SQL執行新增使用者,提管理員許可權。也可以抓SERV-U下的ServUDaemon.ini修改後上傳,得到系統管理員許可權。
還可以傳本地溢位SERV-U的工具直接新增使用者到Administrators等等。大家可以看到,一旦黑客找到了切入點,在沒有許可權限制的情況下,黑客將一帆風順的取得管理員許可權。
那我們現在就來看看Windows
2000的預設許可權設定到底是怎樣的。對於各個卷的根目錄,預設給了Everyone組完全控制權。這意味著任何進入電腦的使用者將不受限制的在這些根目錄中為所欲為。
系統卷下有三個目錄比較特殊,系統預設給了他們有限制的許可權,這三個目錄是Documents
and settings、Program files和Winnt。對於Documents and
settings,預設的許可權是這樣分配的:Administrators擁有完全控制權;Everyone擁有讀&運,列和讀許可權;Power
users擁有讀&運,列和讀許可權;SYSTEM同Administrators;Users擁有讀&運,列和讀許可權。對於Program
files,Administrators擁有完全控制權;Creator owner擁有特殊許可權;Power
users有完全控制權;SYSTEM同Administrators;Terminal server
users擁有完全控制權,Users有讀&運,列和讀許可權。
對於Winnt,Administrators擁有完全控制權;Creator
owner擁有特殊許可權;Power
users有完全控制權;SYSTEM同Administrators;Users有讀&運,列和讀許可權。而非系統卷下的所有目錄都將繼承其父目錄的許可權,也就是Everyone組完全控制權!
現在大家知道為什麼我們剛剛在測試的時候能一帆風順的取得管理員許可權了吧?許可權設定的太低了!一個人在訪問網站的時候,將被自動賦予IUSR使用者,它是隸屬於Guest組的。本來許可權不高,但是系統預設給的Everyone組完全控制權卻讓它“身價倍增”,到最後能得到Administrators了。
那麼,怎樣設定許可權給這臺WEB伺服器才算是安全的呢?大家要牢記一句話:“最少的服務+最小的許可權=最大的安全”對於服務,不必要的話一定不要裝,要知道服務的執行是SYSTEM級的哦,對於許可權,本著夠用就好的原則分配就是了。
對於WEB伺服器,就拿剛剛那臺伺服器來說,我是這樣設定許可權的,大家可以參考一下:各個卷的根目錄、Documents
and settings以及Program files,只給Administrator完全控制權,或者乾脆直接把Program
files給刪除掉;給系統卷的根目錄多加一個Everyone的讀、寫權;給e:www目錄,也就是網站目錄讀、寫權。
最後,還要把cmd.exe這個檔案給挖出來,只給Administrator完全控制權。經過這樣的設定後,再想通過我剛剛的方法入侵這臺伺服器就是不可能完成的任務了。可能這時候又有讀者會問:“為什麼要給系統卷的根目錄一個Everyone的讀、寫權?網站中的ASP檔案執行不需要執行許可權嗎?”問的好,有深度。是這樣的,系統卷如果不給Everyone的讀、寫權的話,啟動計算機的時候,計算機會報錯,而且會提示虛擬記憶體不足。
當然這也有個前提—-虛擬記憶體是分配在系統盤的,如果把虛擬記憶體分配在其他捲上,那你就要給那個卷Everyone的讀、寫權。ASP檔案的執行方式是在伺服器上執行,只把執行的結果傳回終端使用者的瀏覽器,這沒錯,但ASP檔案不是系統意義上的可執行檔案,它是由WEB服務的提供者—-IIS來解釋執行的,所以它的執行並不需要執行的許可權。
深入瞭解許可權背後的意義
經過上面的講解以後,你一定對許可權有了一個初步了了解了吧?想更深入的瞭解許可權,那麼許可權的一些特性你就不能不知道了,許可權是具有繼承性、累加性
、優先性、交叉性的。
繼承性是說下級的目錄在沒有經過重新設定之前,是擁有上一級目錄許可權設定的。這裡還有一種情況要說明一下,在分割槽內複製目錄或檔案的時候,複製過去的目錄和檔案將擁有它現在所處位置的上一級目錄許可權設定。但在分割槽內移動目錄或檔案的時候,移動過去的目錄和檔案將擁有它原先的許可權設定。
累加是說如一個組GROUP1中有兩個使用者USER1、USER2,他們同時對某檔案或目錄的訪問許可權分別為“讀取”和“寫入”,那麼組GROUP1對該檔案或目錄的訪問許可權就為USER1和USER2的訪問許可權之和,實際上是取其最大的那個,即“讀取”+“寫入”=“寫入”。
又如一個使用者USER1同屬於組GROUP1和GROUP2,而GROUP1對某一檔案或目錄的訪問許可權為“只讀”型的,而GROUP2對這一檔案或資料夾的訪問許可權為“完全控制”型的,則使用者USER1對該檔案或資料夾的訪問許可權為兩個組許可權累加所得,即:“只讀”+“完全控制”=“完全控制”。
優先性,許可權的這一特性又包含兩種子特性,其一是檔案的訪問許可權優先目錄的許可權,也就是說檔案許可權可以越過目錄的許可權,不顧上一級資料夾的設定。另一特性就是“拒絕”許可權優先其它許可權,也就是說“拒絕”許可權可以越過其它所有其它許可權,一旦選擇了“拒絕”許可權,則其它許可權也就不能取任何作用,相當於沒有設定。
交叉性是指當同一資料夾在為某一使用者設定了共享許可權的同時又為使用者設定了該資料夾的訪問許可權,且所設許可權不一致時,它的取捨原則是取兩個許可權的交集,也即最嚴格、最小的那種許可權。如目錄A為使用者USER1設定的共享許可權為“只讀”,同時目錄A為使用者USER1設定的訪問許可權為“完全控制”,那使用者USER1的最終訪問許可權為“只讀”。
許可權設定的問題我就說到這了,在最後我還想給各位讀者提醒一下,許可權的設定必須在NTFS分割槽中才能實現的,FAT32是不支援許可權設定的。同時還想給各位管理員們一些建議:
1.養成良好的習慣,給伺服器硬碟分割槽的時候分類明確些,在不使用伺服器的時候將伺服器鎖定,經常更新各種補丁和升級防毒軟體。
2.設定足夠強度的密碼,這是老生常談了,但總有管理員設定弱密碼甚至空密碼。
3.儘量不要把各種軟體安裝在預設的路徑下
4.在英文水平不是問題的情況下,儘量安裝英文版作業系統。
5.切忌在伺服器上亂裝軟體或不必要的服務。
6.牢記:沒有永遠安全的系統,經常更新你的知識。
要打造一臺安全的WEB伺服器,那麼這臺伺服器就一定要使用NTFS和Windows
NT/2000/2003。眾所周知,Windows是一個支援多使用者、多工的作業系統,這是許可權設定的基礎,一切許可權設定都是基於使用者和程式而言的,不同的使用者在訪問這臺計算機時,將會有不同的許可權。
DOS跟WinNT的許可權的分別
DOS是個單任務、單使用者的作業系統。但是我們能說DOS沒有許可權嗎?不能!當我們開啟一臺裝有DOS作業系統的計算機的時候,我們就擁有了這個作業系統的管理員許可權,而且,這個許可權無處不在。所以,我們只能說DOS不支援許可權的設定,不能說它沒有許可權。隨著人們安全意識的提高,許可權設定隨著NTFS的釋出誕生了。
Windows
NT裡,使用者被分成許多組,組和組之間都有不同的許可權,當然,一個組的使用者和使用者之間也可以有不同的許可權。下面我們來談談NT中常見的使用者組。
Administrators,管理員組,預設情況下,Administrators中的使用者對計算機/域有不受限制的完全訪問權。分配給該組的預設許可權允許對整個系統進行完全控制。所以,只有受信任的人員才可成為該組的成員。
Power
Users,高階使用者組,Power Users 可以執行除了為 Administrators 組保留的任務外的其他任何作業系統任務。分配給 Power
Users 組的預設許可權允許 Power Users 組的成員修改整個計算機的設定。但Power Users 不具有將自己新增到 Administrators
組的許可權。在許可權設定中,這個組的許可權是僅次於Administrators的。
Users:普通使用者組,這個組的使用者無法進行有意或無意的改動。因此,使用者可以執行經過驗證的應用程式,但不可以執行大多數舊版應用程式。Users
組是最安全的組,因為分配給該組的預設許可權不允許成員修改作業系統的設定或使用者資料。Users 組提供了一個最安全的程式執行環境。在經過 NTFS
格式化的捲上,預設安全設定旨在禁止該組的成員危及作業系統和已安裝程式的完整性。使用者不能修改系統登錄檔設定、作業系統檔案或程式檔案。Users
可以關閉工作站,但不能關閉伺服器。Users
可以建立本地組,但只能修改自己建立的本地組。
Guests:來賓組,按預設值,來賓跟普通Users的成員有同等訪問權,但來賓帳戶的限制更多。
Everyone:顧名思義,所有的使用者,這個計算機上的所有使用者都屬於這個組。
其實還有一個組也很常見,它擁有和Administrators一樣、甚至比其還高的許可權,但是這個組不允許任何使用者的加入,在察看使用者組的時候,它也不會被顯示出來,它就是SYSTEM組。系統和系統級的服務正常執行所需要的許可權都是靠它賦予的。由於該組只有這一個使用者SYSTEM,也許把該組歸為使用者的行列更為貼切。
許可權的權力大小分析
許可權是有高低之分的,有高許可權的使用者可以對低許可權的使用者進行操作,但除了Administrators之外,其他組的使用者不能訪問
NTFS
捲上的其他使用者資料,除非他們獲得了這些使用者的授權。而低許可權的使用者無法對高許可權的使用者進行任何操作。
我們平常使用計算機的過程當中不會感覺到有許可權在阻撓你去做某件事情,這是因為我們在使用計算機的時候都用的是Administrators中的使用者登陸的。這樣有利也有弊,利當然是你能去做你想做的任何一件事情而不會遇到許可權的限制。弊就是以
Administrators 組成員的身份執行計算機將使系統容易受到特洛伊木馬、病毒及其他安全風險的威脅。訪問 Internet
站點或開啟電子郵件附件的簡單行動都可能破壞系統。
不熟悉的 Internet
站點或電子郵件附件可能有特洛伊木馬程式碼,這些程式碼可以下載到系統並被執行。如果以本地計算機的管理員身份登入,特洛伊木馬可能使用管理訪問權重新格式化您的硬碟,造成不可估量的損失,所以在沒有必要的情況下,最好不用Administrators中的使用者登陸。Administrators中有一個在系統安裝時就建立的預設使用者—-Administrator,Administrator
帳戶具有對伺服器的完全控制許可權,並可以根據需要向使用者指派使用者權利和訪問控制許可權。
因此強烈建議將此帳戶設定為使用強密碼。永遠也不可以從Administrators
組刪除 Administrator 帳戶,但可以重新命名或禁用該帳戶。由於大家都知道“管理員”存在於許多版本的 Windows
上,所以重新命名或禁用此帳戶將使惡意使用者嘗試並訪問該帳戶變得更為困難。對於一個好的伺服器管理員來說,他們通常都會重新命名或禁用此帳戶。Guests使用者組下,也有一個預設使用者—-Guest,但是在預設情況下,它是被禁用的。如果沒有特別必要,無須啟用此賬戶。
小幫助:何謂強密碼?就是字母與數字、大小互相組合的大於8位的複雜密碼,但這也不完全防得住眾多的黑客,只是一定程度上較為難破解。
我們可以通過“控制皮膚”–“管理工具”–“計算機管理”–“使用者和使用者組”來檢視使用者組及該組下的使用者。
我們用滑鼠右鍵單擊一個NTFS卷或NTFS卷下的一個目錄,選擇“屬性”–“安全”就可以對一個卷,或者一個卷下面的目錄進行許可權設定,此時我們會看到以下七種許可權:完全控制、修改、讀取和執行、列出資料夾目錄、讀取、寫入、和特別的許可權。“完全控制”就是對此卷或目錄擁有不受限制的完全訪問。地位就像Administrators在所有組中的地位一樣。選中了“完全控制”,下面的五項屬性將被自動被選中。
“修改”則像Power
users,選中了“修改”,下面的四項屬性將被自動被選中。下面的任何一項沒有被選中時,“修改”條件將不再成立。“讀取和執行”就是允許讀取和執行在這個卷或目錄下的任何檔案,“列出資料夾目錄”和“讀取”是“讀取和執行”的必要條件。
“列出資料夾目錄”是指只能瀏覽該卷或目錄下的子目錄,不能讀取,也不能執行。“讀取”是能夠讀取該卷或目錄下的資料。“寫入”就是能往該卷或目錄下寫入資料。而“特別”則是對以上的六種許可權進行了細分。讀者可以自行對“特別”進行更深的研究,鄙人在此就不過多贅述了。
一臺簡單伺服器的設定例項操作:
下面我們對一臺剛剛安裝好作業系統和服務軟體的WEB伺服器系統和其許可權進行全面的刨析。伺服器採用Windows
2000 Server版,安裝好了SP4及各種補丁。WEB服務軟體則是用了Windows 2000自帶的IIS
5.0,刪除了一切不必要的對映。整個硬碟分為四個NTFS卷,C盤為系統卷,只安裝了系統和驅動程式;D盤為軟體卷,該伺服器上所有安裝的軟體都在D盤中;E盤是WEB程式卷,網站程式都在該卷下的WWW目錄中;F盤是網站資料卷,網站系統呼叫的所有資料都存放在該卷的WWWDATABASE目錄下。
這樣的分類還算是比較符合一臺安全伺服器的標準了。希望各個新手管理員能合理給你的伺服器資料進行分類,這樣不光是查詢起來方便,更重要的是這樣大大的增強了伺服器的安全性,因為我們可以根據需要給每個卷或者每個目錄都設定不同的許可權,一旦發生了網路安全事故,也可以把損失降到最低。
當然,也可以把網站的資料分佈在不同的伺服器上,使之成為一個伺服器群,每個伺服器都擁有不同的使用者名稱和密碼並提供不同的服務,這樣做的安全性更高。不過願意這樣做的人都有一個特點—-有錢:)。
好了,言歸正傳,該伺服器的資料庫為MS-SQL,MS-SQL的服務軟體SQL2000安裝在d:ms-sqlserver2K目錄下,給SA賬戶設定好了足夠強度的密碼,安裝好了SP3補丁。為了方便網頁製作員對網頁進行管理,該網站還開通了FTP服務,FTP服務軟體使用的是SERV-U
5.1.0.0,安裝在d:ftpserviceserv-u目錄下。防毒軟體和防火牆用的分別是Norton
Antivirus和BlackICE,路徑分別為d:nortonAV和d:firewallblackice,病毒庫已經升級到最新,防火牆規則庫定義只有80埠和21埠對外開放。網站的內容是採用動網7.0的論壇,網站程式在e:wwwbbs下。
細心的讀者可能已經注意到了,安裝這些服務軟體的路徑我都沒有采用預設的路徑或者是僅僅更改碟符的預設路徑,這也是安全上的需要,因為一個黑客如果通過某些途徑進入了你的伺服器,但並沒有獲得管理員許可權,他首先做的事情將是檢視你開放了哪些服務以及安裝了哪些軟體,因為他需要通過這些來提升他的許可權。
一個難以猜解的路徑加上好的許可權設定將把他阻擋在外。相信經過這樣配置的WEB伺服器已經足夠抵擋大部分學藝不精的黑客了。讀者可能又會問了:“這根本沒用到許可權設定嘛!我把其他都安全工作都做好了,許可權設定還有必要嗎?”當然有!智者千慮還必有一失呢,就算你現在已經把系統安全做的完美無缺,你也要知道新的安全漏洞總是在被不斷的發現。
例項攻擊
許可權將是你的最後一道防線!那我們現在就來對這臺沒有經過任何許可權設定,全部採用Windows預設許可權的伺服器進行一次模擬攻擊,看看其是否真的固若金湯。
假設伺服器外網域名為http://www.webserver.com,用掃描軟體對其進行掃描後發現開放WWW和FTP服務,並發現其服務軟體使用的是IIS
5.0和Serv-u
5.1,用一些針對他們的溢位工具後發現無效,遂放棄直接遠端溢位的想法。
開啟網站頁面,發現使用的是動網的論壇系統,於是在其域名後面加個/upfile.asp,發現有檔案上傳漏洞,便抓包,把修改過的ASP木馬用NC提交,提示上傳成功,成功得到WEBSHELL,開啟剛剛上傳的ASP木馬,發現有MS-SQL、Norton
Antivirus和BlackICE在執行,判斷是防火牆上做了限制,把SQL服務埠遮蔽了。
通過ASP木馬檢視到了Norton
Antivirus和BlackICE的PID,又通過ASP木馬上傳了一個能殺掉程式的檔案,執行後殺掉了Norton
Antivirus和BlackICE。再掃描,發現1433埠開放了,到此,便有很多種途徑獲得管理員許可權了,可以檢視網站目錄下的conn.asp得到SQL的使用者名稱密碼,再登陸進SQL執行新增使用者,提管理員許可權。也可以抓SERV-U下的ServUDaemon.ini修改後上傳,得到系統管理員許可權。
還可以傳本地溢位SERV-U的工具直接新增使用者到Administrators等等。大家可以看到,一旦黑客找到了切入點,在沒有許可權限制的情況下,黑客將一帆風順的取得管理員許可權。
那我們現在就來看看Windows
2000的預設許可權設定到底是怎樣的。對於各個卷的根目錄,預設給了Everyone組完全控制權。這意味著任何進入電腦的使用者將不受限制的在這些根目錄中為所欲為。
系統卷下有三個目錄比較特殊,系統預設給了他們有限制的許可權,這三個目錄是Documents
and settings、Program files和Winnt。對於Documents and
settings,預設的許可權是這樣分配的:Administrators擁有完全控制權;Everyone擁有讀&運,列和讀許可權;Power
users擁有讀&運,列和讀許可權;SYSTEM同Administrators;Users擁有讀&運,列和讀許可權。對於Program
files,Administrators擁有完全控制權;Creator owner擁有特殊許可權;Power
users有完全控制權;SYSTEM同Administrators;Terminal server
users擁有完全控制權,Users有讀&運,列和讀許可權。
對於Winnt,Administrators擁有完全控制權;Creator
owner擁有特殊許可權;Power
users有完全控制權;SYSTEM同Administrators;Users有讀&運,列和讀許可權。而非系統卷下的所有目錄都將繼承其父目錄的許可權,也就是Everyone組完全控制權!
現在大家知道為什麼我們剛剛在測試的時候能一帆風順的取得管理員許可權了吧?許可權設定的太低了!一個人在訪問網站的時候,將被自動賦予IUSR使用者,它是隸屬於Guest組的。本來許可權不高,但是系統預設給的Everyone組完全控制權卻讓它“身價倍增”,到最後能得到Administrators了。
那麼,怎樣設定許可權給這臺WEB伺服器才算是安全的呢?大家要牢記一句話:“最少的服務+最小的許可權=最大的安全”對於服務,不必要的話一定不要裝,要知道服務的執行是SYSTEM級的哦,對於許可權,本著夠用就好的原則分配就是了。
對於WEB伺服器,就拿剛剛那臺伺服器來說,我是這樣設定許可權的,大家可以參考一下:各個卷的根目錄、Documents
and settings以及Program files,只給Administrator完全控制權,或者乾脆直接把Program
files給刪除掉;給系統卷的根目錄多加一個Everyone的讀、寫權;給e:www目錄,也就是網站目錄讀、寫權。
最後,還要把cmd.exe這個檔案給挖出來,只給Administrator完全控制權。經過這樣的設定後,再想通過我剛剛的方法入侵這臺伺服器就是不可能完成的任務了。可能這時候又有讀者會問:“為什麼要給系統卷的根目錄一個Everyone的讀、寫權?網站中的ASP檔案執行不需要執行許可權嗎?”問的好,有深度。是這樣的,系統卷如果不給Everyone的讀、寫權的話,啟動計算機的時候,計算機會報錯,而且會提示虛擬記憶體不足。
當然這也有個前提—-虛擬記憶體是分配在系統盤的,如果把虛擬記憶體分配在其他捲上,那你就要給那個卷Everyone的讀、寫權。ASP檔案的執行方式是在伺服器上執行,只把執行的結果傳回終端使用者的瀏覽器,這沒錯,但ASP檔案不是系統意義上的可執行檔案,它是由WEB服務的提供者—-IIS來解釋執行的,所以它的執行並不需要執行的許可權。
深入瞭解許可權背後的意義
經過上面的講解以後,你一定對許可權有了一個初步了了解了吧?想更深入的瞭解許可權,那麼許可權的一些特性你就不能不知道了,許可權是具有繼承性、累加性
、優先性、交叉性的。
繼承性是說下級的目錄在沒有經過重新設定之前,是擁有上一級目錄許可權設定的。這裡還有一種情況要說明一下,在分割槽內複製目錄或檔案的時候,複製過去的目錄和檔案將擁有它現在所處位置的上一級目錄許可權設定。但在分割槽內移動目錄或檔案的時候,移動過去的目錄和檔案將擁有它原先的許可權設定。
累加是說如一個組GROUP1中有兩個使用者USER1、USER2,他們同時對某檔案或目錄的訪問許可權分別為“讀取”和“寫入”,那麼組GROUP1對該檔案或目錄的訪問許可權就為USER1和USER2的訪問許可權之和,實際上是取其最大的那個,即“讀取”+“寫入”=“寫入”。
又如一個使用者USER1同屬於組GROUP1和GROUP2,而GROUP1對某一檔案或目錄的訪問許可權為“只讀”型的,而GROUP2對這一檔案或資料夾的訪問許可權為“完全控制”型的,則使用者USER1對該檔案或資料夾的訪問許可權為兩個組許可權累加所得,即:“只讀”+“完全控制”=“完全控制”。
優先性,許可權的這一特性又包含兩種子特性,其一是檔案的訪問許可權優先目錄的許可權,也就是說檔案許可權可以越過目錄的許可權,不顧上一級資料夾的設定。另一特性就是“拒絕”許可權優先其它許可權,也就是說“拒絕”許可權可以越過其它所有其它許可權,一旦選擇了“拒絕”許可權,則其它許可權也就不能取任何作用,相當於沒有設定。
交叉性是指當同一資料夾在為某一使用者設定了共享許可權的同時又為使用者設定了該資料夾的訪問許可權,且所設許可權不一致時,它的取捨原則是取兩個許可權的交集,也即最嚴格、最小的那種許可權。如目錄A為使用者USER1設定的共享許可權為“只讀”,同時目錄A為使用者USER1設定的訪問許可權為“完全控制”,那使用者USER1的最終訪問許可權為“只讀”。
許可權設定的問題我就說到這了,在最後我還想給各位讀者提醒一下,許可權的設定必須在NTFS分割槽中才能實現的,FAT32是不支援許可權設定的。同時還想給各位管理員們一些建議:
1.養成良好的習慣,給伺服器硬碟分割槽的時候分類明確些,在不使用伺服器的時候將伺服器鎖定,經常更新各種補丁和升級防毒軟體。
2.設定足夠強度的密碼,這是老生常談了,但總有管理員設定弱密碼甚至空密碼。
3.儘量不要把各種軟體安裝在預設的路徑下
4.在英文水平不是問題的情況下,儘量安裝英文版作業系統。
5.切忌在伺服器上亂裝軟體或不必要的服務。
6.牢記:沒有永遠安全的系統,經常更新你的知識。
本文轉自 msc 51CTO部落格,原文連結:http://blog.51cto.com/a/1388
相關文章
- 紅客必學:Windows下的許可權設定詳解Windows
- 如何設定許可權?
- MySQL 許可權詳解MySql
- 選單許可權和按鈕許可權設定
- ubuntu 許可權管理設定Ubuntu
- linux許可權詳解Linux
- Atitit godaddy 檔案許可權 root許可權設定Go
- django開發之許可權管理(一)——許可權管理詳解(許可權管理原理以及方案)、不使用許可權框架的原始授權方式詳解Django框架
- windows10許可權怎麼設定_win10設定使用者許可權的方法WindowsWin10
- PostgreSQL物件許可權如何在後設資料中獲取-許可權解讀、定製化匯出許可權SQL物件
- windows10管理員許可權怎麼設定_win10電腦設定管理員許可權的步驟WindowsWin10
- win10 建資料夾許可權方法 如何設定windows10檔案許可權Win10Windows
- 小程式許可權設定(位置)
- PHP專案許可權設定PHP
- 適配懸浮窗許可權與系統設定修改許可權
- Vue設定許可權列表目錄Vue
- iOS 10設定應用許可權iOS
- 許可權框架之Shiro詳解框架
- 【詳解】GrantedAuthority(已授予的許可權)
- linux檔案許可權 詳解Linux
- Linux檔案許可權詳解Linux
- Windows許可權維持Windows
- 金山文件怎麼設定編輯許可權 金山文件線上編輯許可權設定
- NAS使用者許可權的設定
- Serv-U許可權設定規則
- win8.1最高許可權設定方法
- App跳轉到許可權設定介面APP
- SVN伺服器的許可權設定伺服器
- Linux 目錄與許可權詳解Linux
- Linux下開發-許可權詳解Linux
- 如何檢測應用通知許可權?如何跳轉通知許可權設定頁?
- 解讀Linux檔案許可權的設定方法(轉)Linux
- windows10桌面圖示設定沒有許可權怎麼解除Windows
- win10怎麼設定防火牆許可權_win10電腦防火牆許可權如何設定Win10防火牆
- [BUG反饋]許可權條目中缺少兩個公開方法的許可權設定
- PowerDesigner版本控制器設定許可權
- Win8.1許可權獲取設定教程
- Win8.1許可權獲取設定技巧