【Vulnhub】w1r3s 靶机复盘

admin 2024年3月28日22:14:53评论6 views字数 4470阅读14分54秒阅读模式

0x01 靶机介绍 & 环境配置

0x01-1 靶机基本信息

靶机链接:https://www.vulnhub.com/entry/w1r3s-101,220/ 靶机介绍:您被雇用在 W1R3S.inc (Leetspeak)个人服务器上进行渗透测试并报告所有结果。他们要求您获得 root 访问权限并找到标志(位于/root目录中),这是一个易受攻击的 Ubuntu 环境,给你一些真实的世界的场景,让我想起了 OSCP 实验室

0x01-2 环境配置

  1. 下载靶场环境,导入虚拟机(VMware)【Vulnhub】w1r3s 靶机复盘

  2. 将 Kali Linux 与 w1r3s 靶机都开启 NAT 模式【Vulnhub】w1r3s 靶机复盘

  3. 在 Kali Linux 中测试是否与靶机通信正常,先使用ip a 探测 Kali Linux 所在网段,与本机 IP192.168.44.129【Vulnhub】w1r3s 靶机复盘

  4. 使用nmap扫描网段下所有存活主机

sudo nmap -sn 192.168.44.0/24

#sudo 命令:暂时使用 root 权限执行命令
#-sn :no port scan/发现主机后不进行端口扫描,用于主机探测

这里只针对靶机 IP 做针对性端口探测的原因是为了引起更小的注意,对所有网段 IP 进行端口探测的扫描强度远大于对某个 IP 进行端口探测

【Vulnhub】w1r3s 靶机复盘

对比靶机网卡 MAC 地址,确定靶机 IP192.168.44.131

【Vulnhub】w1r3s 靶机复盘

0x02 信息搜集

在执行所有信息搜集时,建议使用-oA命令,以全格式输出到文件夹中,方便随时取用

0x02-1 TCP 扫描

使用nmap对靶机进行详细扫描

sudo nmap --min-rate 10000 -p- 192.168.44.131

# --min-rate:nmap将尝试将发送速率保持在每秒10000个数据包或以上
# -p-:port,指定端口范围为1到65535(默认为常用1000端口)

-sS 和 -sT 的区别?-sS 是默认值,利用 TCP 的 SYN 标志位(只建立 TCP 连接的第一步)来探测目标主机上的开放端口,收到目标主机的 SYN 包和 ACK 回复则表明端口打开,-sT 是用三次握手过程判断开放端口,对于使用 SYN 过滤机制的防火墙有绕过的作用

当遇到看不懂的 shell 命令可以使用https://explainshell.com/进行快速查询【Vulnhub】w1r3s 靶机复盘

可以看到靶机开放了21、22、80、3306,这里随即就遇到了一个优先级的问题,可以再做一个详细的扫描再下定论,使用nmap对已知端口做一个详细扫描

sudo nmap -sT -sV -sC -O -p21,22,80,3306 192.168.44.131

# -sT:TCP扫描
# -sV:版本检测
# -sC:使用默认脚本集执行脚本扫描(--script=default)
# -O:启用操作系统检测

结果如下:【Vulnhub】w1r3s 靶机复盘

0x02-2 UDP 扫描

nmap 有多个协议一起扫描的语句写法,但因为表现的攻击面是不同的,所以建议分开扫描,也是为了方便查看

sudo nmap -sU --top-ports 20 

#-sU:指定以UDP协议进行扫描
#--top-ports 20:常用的20个端口

结果如下,因为 UDP 协议的特性,扫描过程会非常的快,这里扫描出来的结果都是疑问状态,没有明确开放的【Vulnhub】w1r3s 靶机复盘

0x02-3 漏洞脚本扫描

vlun 的全称是 vulnerabilities,译为漏洞

sudo nmap --script=vuln -p21,22,80,3306 192.168.44.132

扫描结果如下,比较有价值的是可以确定 80 端口使用了 Wordpress,DOS 漏洞没有太高的利用价值【Vulnhub】w1r3s 靶机复盘

0x03 渗透测试

0x03-1 FTP 服务(21)

这里看到 FTP code 为 230(用户已登录,继续进行),同时nmap回显出现文件,猜测可能存在 FTP 未授权访问漏洞,也称匿名登录漏洞【Vulnhub】w1r3s 靶机复盘

根据详细扫描提示Anonymous FTP login allowed,故尝试 anonymous(FTP 的匿名登录都是 anonymous),发现用户名正确,密码直接尝试空值(直接按回车),故登录 FTP 服务成功【Vulnhub】w1r3s 靶机复盘

成功登录 FTP 服务后,首先输入binary切换到二进制模式,这样可以有效避免下载下来的可执行文件是损坏的【Vulnhub】w1r3s 靶机复盘

之后使用ls命令,列出 FTP 服务中的文件夹,发现有 content、docs、new-emloyees 三个文件夹,先cd到 content 目录下,看到有三个 txt 文件【Vulnhub】w1r3s 靶机复盘

在下载文件时,先使用prompt命令关闭交互式 Shell,再使用mget *.txt下载所有 txt 文件,后面就是把文件夹中的所有内容按照这种方式下载,这里就不再赘述【Vulnhub】w1r3s 靶机复盘

之后我们使用cat *.txt命令读取我们刚才下载的所有文件【Vulnhub】w1r3s 靶机复盘

我们可以看到文档中有一段 MD5 01ec2d8fc11c493b25029fb1f47f39ce,如果不确定加密类型,可以使用 Kali 自带的 hash-identifier 进行识别【Vulnhub】w1r3s 靶机复盘

对 MD5 进行解密后显示 This is not a password,说明这里没有可以进一步的线索了【Vulnhub】w1r3s 靶机复盘

文档中还有一段 Base64 SXQgaXMgZWFzeSwgYnV0IG5vdCB0aGF0IGVhc3kuLg==,这里只能靠经验和特征来进行判断,没有太好的工具,解码后显示 It is easy, but not that easy..,也不是有用的信息

识别 Base64 的方法?

  1. 看特殊字符,只能出现 + / = 0-9 a-z A-Z
  2. = 只在文末出现,最多两个

再往下看有一个员工列表(employee list)暂时不知道有什么用,先做保存【Vulnhub】w1r3s 靶机复盘

最后一项是一个倒置的信息,我们可以用截图后调整图片得到信息,第一句直接平面翻转即可【Vulnhub】w1r3s 靶机复盘

第二句是一个倒置的倒序,使用https://www.upsidedowntext.com/进行处理,这里的信息依然意义不大【Vulnhub】w1r3s 靶机复盘

至此,FTP 中的信息基本已经物尽其用,没有发现太有价值的信息,故尝试其他攻击向量

0x03-2 Mysql 服务(3306)

对于 Mysql 来说,我们基本没有相关的信息,所以只能尝试用户名为 root 密码为空,尝试不成功【Vulnhub】w1r3s 靶机复盘

0x03-3 Web 服务(80)

打开后发现是 Ubuntu 的默认页面,没有太有价值的信息,之前在信息搜集环境发现的 Wordpress 路径也无效(跳转到https://localhost/wordpress/,修改 host 文件后依然无法访问)

使用 gobuster 进行目录扫描

sudo gobuster dir -u http://192.168.44.132 --wordlist=/usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt

这里扫描出唯一有价值的信息就是/administrator目录,打开后是 Cuppa CMS 的 Installation 页面,这里没有其他方法,只能执行 Next【Vulnhub】w1r3s 靶机复盘【Vulnhub】w1r3s 靶机复盘

此时我们目的是想要一个可以进行登录的页面,故尝试对系统进行安装,发现缺少管理员权限,无法进行安装【Vulnhub】w1r3s 靶机复盘

下面我们用 SearchSploit 对 Cuppa CMS 的漏洞进行搜索,SearchSploit 是Exploit-db的离线版,在 Kali 中已预安装,先使用searchsploit cuppa/cuppa cms进行漏洞检索,发现存在25971.txt,使用-m参数镜像到本地【Vulnhub】w1r3s 靶机复盘

根据漏洞详情可以看出,这是一个文件包含漏洞,给出了配合文件上传和本地读取两种 Payload 构造方式,目前没有发现上传点,故我们选择本地读取,详情中给出的路径如下

http://target/cuppa/alerts/alertConfigField.php?urlConfig=../../../../../../../../../etc/passwd

但访问这个路径时发现无效,/alerts目录一定存在(Github 源码),故猜测安装目录名称不为 cuppa,猜测为 administrator,成功得到回显,但是没有有效信息【Vulnhub】w1r3s 靶机复盘

这里我们需要回头对漏洞点进行进一步的查验,在漏洞详情中找到的漏洞点如下,漏洞路径为alerts/alertConfigField.php

<?php include($_REQUEST["urlConfig"]); ?>

我们可以使用关键词在 Github 中匹配这段代码,在 77 行找到类似的代码,发现我们需要构造 POST 请求来对漏洞进行利用【Vulnhub】w1r3s 靶机复盘

使用 Curl 进行漏洞利用

使用--data-urlencode参数可以以 POST 方式以 URL 编码发送数据,命令如下

curl --data-urlencode urlConfig=../../../../../../../../../etc/shadow http://192.168.44.132/administrator/alerts/alertConfigField.php

最终成功获取到 passwd 的内容,每个用户数据的第二段都是 x,代表密码是以哈希的方式存在了 shadow 文件中的【Vulnhub】w1r3s 靶机复盘

所以我们再次尝试获取 shadow 文件

/etc/shadow,是 Linux 系统中的重要系统文件,用于存储加密的用户密码,并且只有系统管理员 root 用户可以访问,防止未经授权的用户查看或者修改该文件,格式如下

用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
【Vulnhub】w1r3s 靶机复盘

使用 BurpSuite 进行漏洞利用

使用 BurpSuite 对利用点进行抓包,因为请求方式默认是 Get,需要右键后点击 Change request method 改为 POST 请求【Vulnhub】w1r3s 靶机复盘

最终只保留三条存在 Hash 的账密(Vim i 开启编辑模式,Esc 退出编辑模式,进入 Shell 模式,:wq保存退出)【Vulnhub】w1r3s 靶机复盘

之后交给 john 工具进行破解,成功破解两个密码,分别是 www-data 和 w1r3s,root 账户的密码没有被破解出来(有些 WP 说不能把 root 放入 john,会导致破解卡住,我觉得这个说法是错误的,只需加上-show参数显示出成功的破解即可)【Vulnhub】w1r3s 靶机复盘

0x03-4 SSH 登录 & 提权(22)

之后使用 w1r3s 用户登录 SSH,这里首先选择 w1r3s 是因为  www-data 是 Debian/Ubuntu 上运行默认服务的用户,发现可以成功登录

sudo ssh [email protected]
【Vulnhub】w1r3s 靶机复盘

先使用uname -a查看内核版本,这里也可以确定靶机是 Ubuntu 的【Vulnhub】w1r3s 靶机复盘

之后通过id命令查看此用户的权限,发现此用户有sudo命令的权限,故我们尝试提权【Vulnhub】w1r3s 靶机复盘

使用sudo -l查看当前用户有哪些系统级权限,这里看到有全部权限【Vulnhub】w1r3s 靶机复盘

之后的提权手法有很多,简单总结如下

# 以root权限启动一个新的bash shell
sudo /bin/bash

# Ubuntu默认的root密码是随机的(每次开机都是一个新的root密码),以root权限修改默认密码
sudo passwd
sudo passwd root

# 无密码进入root(先使用sudo提升权限,再使用su切换到root)
sudo su

提权后在根目录下找到 Flag,整个靶机到这里就结束了【Vulnhub】w1r3s 靶机复盘

原文始发于微信公众号(靶场手记):【Vulnhub】w1r3s 靶机复盘

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月28日22:14:53
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【Vulnhub】w1r3s 靶机复盘http://cn-sec.com/archives/2610558.html

发表评论

匿名网友 填写信息