靶机说明
NinevehV0.3.7z是一个难度为初级到中级的BooT2Root/CTF挑战。
VM虚机配置有静态IP地址(192.168.0.150)
目标
Boot to root:获得root权限,查看flag。
运行环境
- 靶机:静态IP是192.168.0.150。
- 攻击机:同网段下有kali攻击机(物理机),IP地址:192.168.0.128,安装有Nmap、Burpsuit、Wireshark、Sqlmap、nc、Python2.7、JDK、DirBuster、AWVS、Nessus等渗透工具,也可以使用windows攻击机。
信息收集
- 端口服务识别
启动NinevehV0.3.7z虚拟机,由于IP已知,使用nmap扫描端口,并做服务识别和深度扫描(加-A参数),命令:
nmap -T4 -A -p 1-65535 192.168.0.150
发现只开放了80和443这2个端口,但是后面有一个ssl-cert 也就是ssl证书
比较敏感也就是443端口,
我们先访问 http://192.168.0.150
简单来说,HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
我们再访问 https://192.168.0.105
我们尝试扫描目录,大家在windows常用御剑,这里推荐kali下的dirb ,或者dirsearch.py脚本
dirsearch.py 具体脚本及其用法:http://www.freebuf.com/column/153277.html
我们先扫描 https://192.168.0.150
我们顺带扫描一波 http://192.168.0.150
综上所述,我们发现https有个 /db/ 目录,http 有个 /department/ 目录
我们先访问 /db/ 目录看看:
发现是个登陆页面,而且系统cms为 phpLiteAdmin v1.9 我们google hacker一把
发现存在远程php代码执行漏洞 :http://blog.51cto.com/penright/1116853
不过我们首先需要登陆进去,看来只有使用爆破了
我们用burpsuite抓包,加载字典,爆破
爆破得出密码为 password123 ,如果爆破不出来,只能说明你的字典不够强大
登陆进去后发现:
登陆成功后就按照爆出的漏洞payload开始尝试破解
先创建一个数据库 test.php
发现创建成功:
在test.php为扩展名的数据库中新建表a,并插入一句话代码<? php echo system($_REQUEST['cmd']); ?>
一切准备就绪,我们还差一个能触发的点,现在我们回头看这个 http 下的 /department 目录:
发现登陆框,我们先来一波弱口令,万能密码....发现失败,但是看源代码有了其他发现:
怀疑用户名是admin
根据页面回显的不同,确定是admin ,就剩密码的话。。。。爆破吧
爆破发现密码是 1q2w3e4r5t ,这密码也是够新奇的
登陆:
我们分别点击几个栏目,当点到 notes 时
登录在 http://192.168.0.150/department/manage.php?notes=files/ninevehNotes.txt 是一个简单任意文件读取,但是这里的读取文件是被写入白名单里的,就是它只能读取结尾带 ‘ ninevehNotes ’ 的文件,测试如图:
这样的话,我们在数据库中插了一个马,如果能被远程文件包含利用,必须是 ninevehNotes 结尾的
这就需要我们修改数据库名:
这样的话,我们尝试文件包含,来执行我们的linux命令:
解析下来我们选择 nc监听端口 来getshell
反向shell获取参考 http://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet
python -c 'import pty;pty.spawn('/bin/bash')'
python2没有spawn,我们使用python3
python3 -c 'import pty;pty.spawn("/bin/bash")'
我们需要设置tty 保证我们在nc shell 上与终端完全交互,以便使用所有功能(tab-complete,history,job control等):
参考:如何将简单的Shell转换成为完全交互式的TTY
http://www.52bug.cn/%E9%BB%91%E5%AE%A2%E6%8A%80%E6%9C%AF/3529.html
或者:
学习人家的方法,
用kali的msf来生成马,进而进行反弹shell
本菜使用比较笨的方法,就是把所知道的关于rookit的检测工具都进行全盘搜索,最后定位到使用了“chkrootkit”,
通过查看其版本号和配置信息结合google搜索,发现一个本地提权漏洞,而MSF也已经有该利用脚本,如图:
来源:oschina
链接:https://my.oschina.net/u/4373309/blog/3929650