vulnhub靶场之MOMENTUM: 1
准备:
攻击机:虚拟机kali、本机win10。
靶机:Momentum: 1,下载地址:https://download.vulnhub.com/momentum/Momentum.ova,下载后直接vbox打开即可。
知识点:redis未授权访问、xss漏洞、XSStrike使用。
一:信息收集
1.nmap扫描
使用nmap扫描下靶机地址,命令:nmap -sn 192.168.5.0/24,发现靶机地址:192.168.5.73。
使用nmap扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.5.73,显示开放了22端口、80端口,开启了ssh服务、http服务。
2.目录扫描
使用gobuster进行目录扫描,命令:gobuster dir -u http://192.168.5.73 -x php,bak,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt,发现/js目录,其他目录也看了没发现什么可以利用的信息。
使用web服务访问下js目录,发现main.js文件,查看该文件信息发现:opus-details.php文件并且该文件可以接受一个id的参数,其参数值为字符串类型。告诉我们使用AES进行解密,解密的密匙是SecretPassphraseMomentum。
3.web服务
访问web服务时显示了四张图片,访问四张图片时跳转到了上面发现的opus-details.php文件,猜测这里可能存在注入漏洞。
二:漏洞利用
1.sql注入
使用sqlmap进行下注入测试,命令:sqlmap -u http://192.168.5.73/opus-details.php?id=demon -banner,但是显示不存在sql注入。
2.xss注入验证
使用XSStrike扫描以下看是否存在xss注入,命令:python xsstrike.py -u http://192.168.5.73/opus-details.php?id=angel,发现存在xss注入。这里记录下这两个payload(或者只记第一个也行,第二个主要是验证的时候比较直观),下面要用到这两个。
#第一个payload
<dETAIlS%09OnToggle%0a=%0a[8].find(confirm)//
#第二个payload
<a%0dOnMoUSeOver%0a=%0a(prompt)``>v3dm0s
在web页面输入payload进行测试,这里用的第二个payload,发现确实存在xss注入。
3.xss注入利用
利用我们获取的第一个payload获取cookie信息,将payload中的数字8修改:document['cookie'],payload:<dETAIlS%09OnToggle%0a=%0a[document['cookie']].find(confirm)//,成功获得cookie值:cookie=U2FsdGVkX193yTOKOucUbHeDp1Wxd5r7YkoM8daRtj0rjABqGuQ6Mx28N1VbBSZt。
信息收集时告诉我们要使用aes方式对一个字符串进行解密,解密密匙是:SecretPassphraseMomentum,因此找一个可以在线解密AES的网站对cookie进行解密,网站:http://www.jsons.cn/aesencrypt/,解密后成功获得一串字符串:auxerre-alienum##。
三:获取shell
对获得字符串进行分析,猜测应该是账户和密码信息,后面经过简单登录测试发现账户和密码信息为:auxerre/auxerre-alienum##。利用获得账户信息成功获得shell权限。
获得root权限后在当前目录下发现user.txt文件,读取该文件成功获得第一个flag值。
四:提权
1.信息收集
使用sudo su和find / -perm -4000 -type f 2>/dev/null查找可以进行提权的相关信息,但是未发现可以利用的信息。
那就直接上传脚本:linpeas.sh进行信息收集,分析收集的信息发现存在一个CVE-2022-2588漏洞,将该漏洞的exp进行上传提权,但是提权失败。
继续对linpeas.sh脚本收集的信息进行分析,发现存在对6379端口的监听,6379端口是redis数据库的服务端口。
查看下本地进程验证是否存在redis服务,发现确实开启了redis服务。
2.redis服务
直接在shell中连接redis服务,命令:redis-cli,连接redis数据库后,在数据库中查看下所有的信息,发现只有一组值,读取数据获得:m0mentum-al1enum##。
3.提权-root
获得密码信息后尝试切换root账户,命令:su root,成功切换到root账户。
获得root权限后在/root目录下发现root.txt文件,读取该文件成功获得flag值。
ps:看到这里的话留下一句对你影响较大的话吧,emmm这几天比较迷茫,让我们互相学习以下。