vulnhub之DC9这应该是DC系列的最后一篇,相较于其他靶机而言,会比较难一些,提权的方式也较为多样,本文参考
https://blog.csdn.net/weixin_44288604/article/details/122950710
https://blog.mzfr.me/vulnhub-writeups/2019-12-25-DC9
下面的是官方出的wp,上面为一位师傅写的,简述一些流程
主机发现,端口扫描——web服务发现注入,获取账号密码——登录后台,爆破文件读取参数——获取knock参数——爆破ssh——登录ssh——获取信息——提权
主机发现,端口扫描
主机开放了22和80端口,但是22端口为过滤状态,无法进行暴力破解
对80端口开放的服务进行指纹识别,这里使用whatweb,棱洞之类也可以
并未识别到网站使用的框架,只能够自己进行检测,这里使用burp和xray联合进行检测,具体操作方法这里不再进行描述,
经过检测,发现result.php界面存在sql注入,但是因为后台只接受post传递的参数,这里使用bp抓包,使用sqlmap对数据请求包进行检测
存在三个数据库,查看后面两个数据库中的表格内容
以上就是两个数据库中三个表的是全部内容,我们需要使用Staff中users的账号密码进行登录后台,再将users中userdetails中的账号密码进行保存,作为字典,当然了一个筛选可能有些复杂,各位可以使用
一列一列进行下载,将图上的密文输入到
https://www.somd5.com/
该网址中获取明文
别问我为啥不用cmd5,白嫖就是香,使用admin/transorbital1
登录后台
界面显示没有文件,猜测可能存在文件读取,使用bp暴力破解参数以及路径,这里使用的字典,在之前dc5已经给出链接,这里不再进行描述,这里使用破解版burpsuit进行测试,主要没有线程限制,会有很快的效率
这里也是爆破出来了参数以及路径,可以进行后续的利用,本来想着读取/etc/shodaw然后直接爽歪歪的,但是行不通,这里使用最开始的那位师傅写的博客里面,/proc/sched_debug 来查看Linux系统中任务的调度情况
查看界面返回内容时候,从下往上翻阅,会比较容易发现存在knockd端口敲门,获取端口敲门对应的参数,
进行端口敲门,这里可以使用csdn师傅提供的knockd方法
knock 192.168.43.143 7469,8475,9842
也可以使用官方的方法
for x in 7469 8475 9842; do nmap -Pn --max-retries 0 -p $x 192.168.43.143; done
官方的方式为一个循环,--max-retries 0
避免重复发包,对结果造成影响
然后对目标的22端口进行检测,就会发现该目标的22端口已经开放之前上文的sql注入中的users中userdetails中的账号密码字典,hydra进行暴力破解
爆破成功三个用户,登录查看相应目录下是否存在内容
最后在janitor用户下发现
/.secrets-for-putin/passwords-found-on-post-it-notes.txt
该文件为一个密码字典,保存然后再次使用hydra进行暴力破解
又枚举到两个用户,再次登录,当以 fredf 身份登录时候发现可以无密码root执行/opt/devstuff/dist/test/test
,切换到当前目录,查看此文件内容
找到相应的test.py文件,find / -name test.py 2>/dev/null
使用师傅的命令,进行查找
切换目录,查看文件权限和文件内容,发现为一段追加脚本,这里有两种思路,一种是将当前用户添加到管理员组,另外一种新建一个用于管理员去哪权限的账号,这里使用csdn师傅的方法
通过OpenSSL passwd生成一个新的用户mzkr,密码为toor
echo 'mzfr:sXuCKi7k3Xh/s:0:0::/root:/bin/bash' > /tmp/hack
sudo ./test /tmp/hack /etc/passwd
切换到mzfr用户即可