靶机地址:https://www.vulnhub.com/entry/pwnos-20-pre-release,34/
靶机难度:中级(CTF)
靶机发布日期:2011年7月4日
靶机描述:pWnOS v2.0是一个Virutal机器映像,它托管一个服务器以进行实践渗透测试。它将测试您利用服务器的能力,并包含多个达到目标(根)的入口点。它是为与WMWare Workstation 7.0一起使用而设计的,但也可以与大多数其他虚拟机软件一起使用。
目标:得到root权限&找到flag.txt
作者:DXR嗯嗯呐
配置虚拟机
靶机规定了IP、网关、子网掩码,需要修改攻击者的地址,才能访问。
auto eth0
iface eth0 inet static
#配置eth0使用默认的静态地址
address 10.10.10.101
#配置eth0的IP地址
netmask 255.255.255.0
#配置eth0的子网掩码
gateway 10.10.10.15
#配置当前主机的默认网关
启动网卡,修改IP成功
如果你想你的物理机连接虚拟机,修改一下网卡 VMware Virtual Ethernet Adapter for VMnet8 的信息即可
信息收集
上面说了靶机的地址为10.10.10.100,现在nmap扫描一下看看
nmap扫描端口信息
22 SSH
80 http
访问80端口,在前台界面获得一个邮箱,记下来
nikto扫描找到很多信息,这是一个登陆界面
利用mysql LOCAL_INFILE 函数getshell
访问这个php,是个登陆界面,看一下有没有sql注入
email参数存在sql注入
看一下可不可以直接使用sqlmap将反弹shell写入靶机
执行sqlmap命令,通过mysql的LOCAL_INFILE 函数写入木马
sqlmap -r 2.txt --batch --file-write /tmp/shell.php --file-dest /var/www/shell1.php
配置msf,获得shell
利用文件上传getshell
我们这里采用其他思路获得shell
登陆界面
sqlmap测试email参数存在注入
在ch16数据库存在users表,找到了admin@isints.com密码
sqlmap -r sqlmap.txt --batch -D ch16 -T users --dump
MD5解密
获得账号密码admin@isints.com/killerbeesareflying
登陆没获得有用信息
dirb扫描发现blog目录
查看网页源代码发现靶机使用的是Simple PHP Blog 0.4.0
百度介绍
看一下这个程序存在一个远程代码漏洞
配置msf
启动,没有获得shell,但是创建了一个账号
RG5Bqr/DHmsZA
登陆找到了一个图片上传点,上传一个木马
在之前dirb扫描的时候,我们发现过一个图片目录,看一下是不是上传这里了
连个过滤都没有,可能是靶机太老了,毕竟是11年的
找到木马的路径http://10.10.10.100/blog/images/shell.php,连接木马,获得shell
UDF提权
看mysql程序是root用户启动
没有没配置文件,记录了mysql的用户密码
在/var/www目录下找到
但是登陆失败
又在/var目录下找到
登陆mysql
因为前面都可以将文件写入/var/www目录了,应该可以UDF提权
show global variables like 'secure%';
- 当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出文件,此时无法提权
- 当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出文件只能发生在 /tmp/ 目录下,此时也无法提权
- 当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出文件做限制,此时可提权
- 查看mysql框架
查看mysql框架
在msf中找到合适的udf文件
将文件上传到靶机上
查看mysql数据库plugin目录位置
随便进入一个库,创建表,将文件内容写到表中
将表中数据,写到plugin目录,自定义一个文件名,并创建sys_eval函数
使用sys_eveal函数执行命令,获得root权限
打算获得一个root权限的交互式界面,给find命令赋root的sid权限,并执行find命令,获得一个拥有sid root权限
完成!!!
提权的方法就很多了,这里使用的是UDF提权,其他的方法就不测试了,有兴趣的同学可以试一下。总体来说这个靶机比较老了,我做的方法可能就和靶机设计的初衷不太一致了,不过也是学到了很多,现在靶机做的越来越顺了,高兴。
总结
- 1、使用nikto找到login.php,登陆界面,使用sqlmap对登陆参数测试,发现email参数存在注入。
- 2、直接使用sqlmap利用mysql的local_infile函数上传木马,获得shell;或者利用simple PHP Blog 0.4.0漏洞,创建一个账号,在利用文件上传漏洞,上面木马,获得shell。
- 3、利用mysql数据库程序为root用户启动,利用mysql的udf漏洞提权,获得root用户。