歡迎來到 黑吧安全網 聚焦網絡安全前沿資訊,精華內容,交流技術心得!

利用IIS的模塊功能繞過防火墻

來源:本站整理 作者:佚名 時間:2020-02-28 TAG: 我要投稿

在之前的文章《利用IIS的端口共享功能繞過防火墻》曾介紹了如下問題的解決方法:
Windows服務器開啟了IIS服務,防火墻僅允許80或443端口進行通信,那么如何在不使用webshell的前提下,實現對該服務器的遠程管理?更進一步,如果只有低權限,有沒有辦法呢?
本文將介紹以上問題的另一種解決方法:利用IIS的模塊功能繞過防火墻。
0x01 簡介
本文將要介紹以下內容:
· IIS的模塊功能
· 使用c++開發模塊
· 使用c#開發模塊
· IIS-Raid測試
· 利用分析
· 防御檢測
0x02 IIS的模塊功能
自IIS7開始,開發人員可以通過模塊功能(Module)來擴展IIS的功能。
參考資料:
https://docs.microsoft.com/en-gb/iis/develop/runtime-extensibility/extending-web-server-functionality-in-net
如果我們通過模塊功能可以讀取HTTP請求的內容并控制HTTP回復的內容,完全可以利用模塊功能實現對服務器的遠程管理。
IIS的模塊以DLL的形式存在,加載后不會存在單獨的進程。
2018年,PaloAlto Unit42發現了APT34使用這種方式作為IIS后門,將其命名為RGDoor。
本文將復現RGDoor的部分功能,著重介紹這種利用方法的檢測和識別。
0x03 使用c++開發模塊
參考資料:
https://docs.microsoft.com/en-gb/iis/develop/runtime-extensibility/develop-a-native-cc-module-for-iis
IIS 7.0及更高版本允許通過以兩種方式開發的模塊來擴展服務器:
· 托管模塊(Managed Module),使用托管代碼(managed code)和ASP.NET服務器可擴展性API
· 本機模塊(Native Module),使用本機代碼(native code)和IIS本機服務器可擴展性API
參考資料中介紹了本機模塊(Native Module)的使用方法
需要注意以下問題:
· 可以使用Visual Studio進行開發
· DLL需要包含導出函數RegisterModule
· 使用CHttpModule作為模塊類繼承的實現
· 使用IHttpModuleFactory接口創建模塊實例
1.模塊開發
具體的實現代碼可以參考IIS-Raid,地址如下:
https://github.com/0x09AL/IIS-Raid
代碼細節可參考:
https://www.mdsec.co.uk/2020/02/iis-raid-backdooring-iis-using-native-modules/
IIS-Raid在RegisterModule函數注冊了RQ_BEGIN_REQUEST和RQ_SEND_RESPONSE兩個事件用來處理請求和響應。
2.模塊注冊
可選擇以下三種方法:
(1)使用APPCMD.EXE命令行工具
(2)使用IIS Administration Tool進行界面操作
(3)修改配置文件applicationHost.config
注:在0x05中會演示方法1和方法2
0x04 使用c#開發模塊
參考資料:
https://docs.microsoft.com/en-gb/iis/develop/runtime-extensibility/developing-a-module-using-net
IIS 7.0及更高版本允許通過以兩種方式開發的模塊來擴展服務器:
· 托管模塊(Managed Module),使用托管代碼(managed code)和ASP.NET服務器可擴展性API
· 本機模塊(Native Module),使用本機代碼(native code)和IIS本機服務器可擴展性API
參考資料中介紹了托管模塊(Managed Module)的使用方法
需要注意以下問題:
· 可以使用Visual Studio進行開發
· 是一個.NET類
· 使用System.Web.IHttpModule接口
1.模塊開發
具體的實現代碼可以參考IIS_backdoor,地址如下:
https://github.com/WBGlIl/IIS_backdoor
代碼細節可參考:
https://mp.weixin.qq.com/s/z1d3yvp14GWakyonTh_b8A
2.模塊注冊
可選擇以下三種方法:
(1)使用APPCMD.EXE命令行工具
(2)使用IIS Administration Tool進行界面操作
(3)修改配置文件web.config
具體的使用方法還可以參考以下資料:
https://docs.microsoft.com/en-gb/iis/develop/runtime-extensibility/developing-iis-modules-and-handlers-with-the-net-framework
https://docs.microsoft.com/en-us/previous-versions/aspnet/ms227673(v=vs.100)
0x05 IIS-Raid測試
測試系統:
Windows Server 2012r2 x64(需要獲得管理員權限)
IIS-Raid地址如下:
https://github.com/0x09AL/IIS-Raid
使用Visual Studio編譯生成IIS-Backdoor.dll
1.后門安裝
可以選擇以下兩種方法:
(1)使用APPCMD.EXE命令行工具
查看已安裝模塊的命令如下:
C:\Windows\system32\inetsrv\APPCMD.EXE list module
如下圖:

安裝模塊的命令如下:
C:\Windows\system32\inetsrv\APPCMD.EXE install module /name:test /image:"c:\test\IIS-Backdoor.dll" /add:true
刪除模塊的命令如下:
C:\Windows\system32\inetsrv\APPCMD.EXE uninstall module test
(2)使用IIS Administration Tool進行界面操作
運行inetmgr.exe,進入IIS管理器
選擇Modules,如下圖:

進入后選擇Configure Native Modules...,接著選擇Register...,如下圖:

填入Name和Path,如下圖:

添加成功后,在Modules頁面顯示新添加的內容,如下圖:

[1] [2]  下一頁

【聲明】:黑吧安全網(http://www.www.hfjixin.com)登載此文出于傳遞更多信息之目的,并不代表本站贊同其觀點和對其真實性負責,僅適于網絡安全技術愛好者學習研究使用,學習中請遵循國家相關法律法規。如有問題請聯系我們,聯系郵箱admin@www.hfjixin.com,我們會在最短的時間內進行處理。
  • 最新更新
    • 相關閱讀
      • 本類熱門
        • 最近下載
        百度 好搜 搜狗

        警告:本站禁止未滿18周歲訪客瀏覽,如果當地法律禁止請自覺離開本站!收藏本站:請使用Ctrl+D進行收藏