操作系統:Windows Server 2008 R2 Enterprise Service Pack 1 x64 IIS版本:IIS7.5 程序:asp.net
http 常見功能:開啟靜態內容,默認文檔,HTTP錯誤;目錄瀏覽,WebDAV發布如無特殊要求,不要開啟;HTTP重定向可根據需要開啟。
應用程序開發:這個可根據實際情況開啟,如為asp.net的開啟ASP.NET,.NET擴展性,ISAPI擴展,ISAPI篩選;在服務器端的包含文件根據需要開啟。
健康和診斷:建議開啟HTTP日志記錄,日志記錄工具,請求監視;其他可根據需要開啟。
安全性:建議開啟URL授權,請求篩選,IP和域限制;其他根據需要開啟。
性能,管理工具,ftp服務器,IIS可承載的Web核心可根據開啟。
IIS7.5涉及兩個賬戶,一個為匿名賬戶,一個為應用程序池賬戶。在磁盤的NTFS權限設置中,匿名賬戶只需要擁有對網站目錄的讀取權限即可;而應用程序池賬戶需要根據程序實際情況給予相應權限,比如:需要去寫文件,則要給予寫權限,需要去調用一個程序(如cmd.exe)則需要給予執行權限。總之,對文件的訪問,首先需要有匿名賬戶的訪問權限,然后再根據程序的操作需要什么樣的權限給予應用程序池賬戶相應的權限。
1. 上傳目錄的寫入權限由應用程序池賬戶決定;
2. 應用程序池默認對于的賬戶為IIS APPPOOL\{app pool name},且屬于IIS_IUSRS組;
3. 默認的匿名賬戶為IUSR賬戶,且屬于authenticated users 組;
4. 任何用戶都屬于USERS組,且手工刪除后仍然屬于USERS組;
5. 上傳木馬之后,能夠看到的目錄是由應用程序池賬戶決定的;
6. 在此測試環境下,USERS組默認擁有網站目錄的寫入權限;
7. 一個aspx文件的運行跟NTFS的運行權限無關;
8. 對于網站的匿名賬戶只需要對網站目錄有讀取權限;
9. 應用程序池賬戶運行aspx也只需要讀取權限,但是如果要寫文件需則寫權限,要執行其他程序則需要執行權限;
1. webdav直接上傳webshell
2. 通過程序文件上傳漏洞上傳webshell
3. webshell的權限過高導致被提權
在安裝的時候直接不安裝webdav組件
可以在IIS中設置需要上傳文件的目錄,處理程序映射中的編輯功能權限中的腳本去掉,這樣即使上傳了木馬文件在此目錄,也是無法執行的。
上傳目錄取消應用程序池賬戶的執行權限
可以設置進程池賬戶對其他文件夾無讀取權限。
取消進程池賬戶的NTFS執行權限。
進程池賬戶選擇權限較低的賬戶,最好就是默認的賬戶。
1. 匿名賬戶使用默認的“應用程序用戶”也就是對應的IUSR。
2. 應用程序池賬戶使用默認的IIS AppPool\應用程序池名稱。
3. 刪除everyone,users在所有磁盤上的權限。
4. 刪除users在system32上的所有權限(需要先修改所有者為administrator)。
5. 在網站目錄下給予IUSR讀取權限。
6. 在網站目錄下給予IIS AppPool\應用程序池名稱讀取權限,如果程序中有特殊要求的權限,如寫入文件等,則再對應的目錄下給予相應的權限,如寫入權限。
7. 在網站要求的上傳目錄給予IIS AppPool\應用程序池名稱寫入權限,但是不給予執行權限。
8. 在IIS中取消上傳目錄的腳本執行權限。
在測試過程中發現,訪問aspx程序,如果匿名賬戶為自定義的賬戶,則需要給自定義的匿名賬戶在文件夾C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files
上的寫入權限;但是,如果使用默認的匿名賬戶,也就是IUSR時,需要給予應用程序池賬戶在此文件夾上的寫入權限。疑問點在于此文件夾到底是需要哪個賬戶的寫入權限,因為選擇默認的匿名賬戶時,即時禁止IUSR在此文件的寫入權限,只要應用程序池賬戶在此文件夾有寫權限,一樣運行正常?
當匿名用戶為程序默認的時候,應該就是IUSR,但為什么又傳遞的進程池賬戶?
?