信息搜集
启动dc9靶机。
先使用nmap工具扫描网段,获取到dc9靶机的地址192.168.85.140,且靶机开启了22端口以及80端口。
sql注入漏洞利用
打开dc9靶机的http网站。搜集下网站信息。
在搜索处,测试下是否存在sql注入。将请求信息保存到文本文件中,使用sqlmap指定文件进行注入测试。
发现该处确实存在注入点。
成功读取到账号密码,但密码是hash值,因此需要破解。
破解成功,获取到密码。
文件包含漏洞的利用
经过一段时间的测试,发现该处好像存在文件包含漏洞,fuzz尝试下。
wfuzz -w Traversal.txt -u “http://192.168.85.140/manage.php?file=FUZZ” -b “PHPSESSID=13s5vf80b97h1qqiog11btkfh1”
使用wfuzz工具测试 -w 指定爆破字典, file=FUZZ中的FUZZ是payload占位符。file参数是自己猜测的,一般文件包含的参数变量大致就是,file,require,include,content等参数。
-u 参数是指定目标http地址,-b 指定cookie值。
通过wfuzz工具大量数据爆破,获取到需要的值。
获取到/etc/passwd文件中信息。
但是此处,只存在文件包含漏洞,并没有其它漏洞可以结合。思路卡住了。想了下,还有ssh端口没有尝试,尝试下ssh链接。
发现ssh端口开启了过滤。
直接连接ssh服务提示没有权限。
ssh之knockd初现
百度了下,发现是开启了knockd服务。。。人傻了。。。
下一步需要获取knockd服务的配置文件
获取访问ssh前的端口顺序。
先在kali主机上安装knockd服务。
配置ssh访问端口顺序。
尝试ssh链接,发现可以了。
下一步,考虑爆破ssh服务。考虑到当时sql注入时还有其它数据库的存在,先去看下。
在users数据库中存在一个UserDetails数据表。
爆出三个账号
login: chandlerb password: UrAG0D!
login: joeyt password: Passw0rd
login: janitor password: Ilovepeepee
三个账号都登录了下,发现在janitor用户目录下存在一些密码,尝试将改密码放到sshpass文件中,再次爆破ssh登录。
爆破处四个账号,除了前面爆破处的三个账号外,还有一个fredf账号
login: fredf password: B4-Tru3-001
系统提权
使用sudo -l指令发现存在root用户无需密码使用的指令。
发现test指令的用法,可以将数据写入到指定文件中。
尝试创建临时账号,发现失败。
百度了下,可以使用openssl指令生成password.
写入带有密码的账号到/etc/passwd文件中即可。
使用Openssl passwd -1 -salt test password
生成hash密码。
首先使用openssl生成password,将生成的密码以及账号信息使用双引号包围输入到文本文件中,发现写入失败,后来考虑到由于存在$符号,因此使用双引号会让系统认为时系统变量执行,因此需要使用单引号包围写入到文本文件中。
成功将账号写如到/etc/passwd配置文件中。
使用su test 指令切换到test账号,密码就是password.
成功获取flag。
参考链接
knockd服务链接:https://zhuanlan.zhihu.com/p/348319749.
llinux 写/etc/passwd文件添加用户:https://blog.youkuaiyun.com/qq_41631806/article/details/105361868.
/etc/shadow中密码段的生成方式:https://blog.youkuaiyun.com/jiajiren11/article/details/80376371.