<span id="7ztzv"></span>
<sub id="7ztzv"></sub>

<span id="7ztzv"></span><form id="7ztzv"></form>

<span id="7ztzv"></span>

        <address id="7ztzv"></address>

            原文地址:http://drops.wooyun.org/papers/1019

            0x00 測試環境


            操作系統:Windows Server 2008 R2 Enterprise Service Pack 1 x64 IIS版本:IIS7.5 程序:asp.net

            0x01 IIS7.5的安裝


            2014030611270847744.jpg

            http 常見功能:開啟靜態內容,默認文檔,HTTP錯誤;目錄瀏覽,WebDAV發布如無特殊要求,不要開啟;HTTP重定向可根據需要開啟。

            應用程序開發:這個可根據實際情況開啟,如為asp.net的開啟ASP.NET,.NET擴展性,ISAPI擴展,ISAPI篩選;在服務器端的包含文件根據需要開啟。

            健康和診斷:建議開啟HTTP日志記錄,日志記錄工具,請求監視;其他可根據需要開啟。

            安全性:建議開啟URL授權,請求篩選,IP和域限制;其他根據需要開啟。

            性能,管理工具,ftp服務器,IIS可承載的Web核心可根據開啟。

            0x02 IIS7.5權限配置介紹


            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也只需要讀取權限,但是如果要寫文件需則寫權限,要執行其他程序則需要執行權限;
            

            0x03 常見服務器被入侵威脅及解決措施


            常見服務器入侵威脅:

            1. webdav直接上傳webshell
            2. 通過程序文件上傳漏洞上傳webshell
            3. webshell的權限過高導致被提權
            

            解決常見問題措施:

            1. 解決webdav問題

            在安裝的時候直接不安裝webdav組件

            2.防止上傳的木馬文件執行

            可以在IIS中設置需要上傳文件的目錄,處理程序映射中的編輯功能權限中的腳本去掉,這樣即使上傳了木馬文件在此目錄,也是無法執行的。

            2014030611273098478.jpg

            上傳目錄取消應用程序池賬戶的執行權限

            2014030611274922035.png

            3. 防止木馬執行后看到網站目錄之外的文件

            可以設置進程池賬戶對其他文件夾無讀取權限。

            4. 防止木馬執行后可執行cmd

            取消進程池賬戶的NTFS執行權限。

            5. 防止木馬執行后運行cmd權限過高

            進程池賬戶選擇權限較低的賬戶,最好就是默認的賬戶。

            0x04 推薦安全配置方案


            安全配置簡單配置:

            1. 匿名賬戶使用默認的IUSR。

            2014030611280328764.jpg

            2. 應用程序池使用默認的標識,對于的賬戶為IIS AppPool\應用程序池名稱。

            2014030611281563141.jpg

            3.IIS中對上傳目錄設置為腳本不可執行

            2014030611282823501.png

            加強安全配置:

            1. 匿名賬戶使用默認的“應用程序用戶”也就是對應的IUSR。
            2. 應用程序池賬戶使用默認的IIS AppPool\應用程序池名稱。
            3. 刪除everyone,users在所有磁盤上的權限。
            4. 刪除users在system32上的所有權限(需要先修改所有者為administrator)。
            5. 在網站目錄下給予IUSR讀取權限。
            6. 在網站目錄下給予IIS AppPool\應用程序池名稱讀取權限,如果程序中有特殊要求的權限,如寫入文件等,則再對應的目錄下給予相應的權限,如寫入權限。
            7. 在網站要求的上傳目錄給予IIS AppPool\應用程序池名稱寫入權限,但是不給予執行權限。
            8. 在IIS中取消上傳目錄的腳本執行權限。
            

            注意:

            1. 以上兩種配置均使用默認的應用程序池賬戶,如果自定義,最好是將自定義加入IIS_IUSRS組。
            2. IIS7.5中建立多個站點的時候,如果使用默認的應用程序池賬戶,系統會默認產生如IIS AppPool\各個不同的應用程序池名稱。
            3. Asp.net程序在第一次訪問編譯的時候,應用程序池賬戶需要擁有system32文件夾的讀取和執行權限

            0x05 疑問


            1. 在測試過程中發現,訪問aspx程序,如果匿名賬戶為自定義的賬戶,則需要給自定義的匿名賬戶在文件夾C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files上的寫入權限;但是,如果使用默認的匿名賬戶,也就是IUSR時,需要給予應用程序池賬戶在此文件夾上的寫入權限。疑問點在于此文件夾到底是需要哪個賬戶的寫入權限,因為選擇默認的匿名賬戶時,即時禁止IUSR在此文件的寫入權限,只要應用程序池賬戶在此文件夾有寫權限,一樣運行正常?

            2. 當匿名用戶為程序默認的時候,應該就是IUSR,但為什么又傳遞的進程池賬戶?

            ?

            <span id="7ztzv"></span>
            <sub id="7ztzv"></sub>

            <span id="7ztzv"></span><form id="7ztzv"></form>

            <span id="7ztzv"></span>

                  <address id="7ztzv"></address>

                      亚洲欧美在线