vulhub W1r3s1.0.1

vulhub W1r3s1.0.1 walkthrough

0x01 端口扫描

主机发现

image.png

全端口扫描:

image.png

排序: 80 web、21 ftp、3306 mysql、22 ssh

详细信息扫描:

image.png

ubuntu、mysql、apache、ftp存在匿名访问,考虑把ftp优先级提前到web前

脚本扫描:

image.png

扫到了wordpress登录页面,先记下来
还是准备先从ftp渗透开始

0x02 ftp渗透

image.png

匿名空密码登录,换binary模式,发现三个目录,其中的文件都可读,全部get下来

image.png

image.png

02.txt 好像有些信息,先存下两个字符串

image.png

employee给了员工信息
worktodo说 I don't think this is the way to root,不知道它想表达什么
先去处理刚刚的两个字符串:

image.png

一个md5,一个base64,解码:

image.png

image.png

虽然他说不是密码,但还是先存下来
ftp渗透暂时应该结束了,转入web渗透:

0x03 web渗透

刚刚看到了有wordpress,先跑起gobuster目录爆破:

image.png

唯一的收获就是有admin后台,但是301了
再跑下dirb的:

image.png

image.png

image.png

收获只有uploads路径可以访问

image.png

web页面又是熟悉的ubuntu默认页面,省了不少事
可以直接去看wordpress登录界面了:

image.png

查看源码发现了好像是wordpress的版本4.9.24

image.png

尝试sql注入,不管输什么都会报无法连接:

image.png

很奇怪,为什么是跳转到了localhost?看源码:

image.png

果然是写死的跳转localhost
想了想好像也没有ssrf的点,突发奇想他的其他301页面可能也是这个逻辑,跳转到localhost,拿刚开始扫出来没管的administrator页面尝试:

image.png

一试发现是直接转到了另一个有效页面,居然能直接访问到管理页面
当时一看到管理页面是301就想当然的以为跳转的目标是登录界面,导致走了不少弯路
那么就顺着新线索往下走:

cms公开漏洞利用

该页面暴露了:php配置文件可写、php版本、可文件上传、cms为cuppa
点next前往下一个页面:

image.png

暴露了:
mysql:root可能是空密码
管理员账户:admin@admin

尝试连接数据库:

image.png

尝试ssh:

image.png

没办法,接着next:

image.png

反复测注入:

image.png

毫无收获
虽然并未发现cuppa的版本,但也只能尝试一下公开漏洞利用了
(实在不行就只剩wordpress的孤公开漏洞利用这条路尝试了)

image.png

在我们目前没有进到wordpress后台时,可能的利用只有25971(cuppa)和47690

image.png

看文档好像是个未授权的洞,谷歌后发现也是需要登录后才可能的利用

image.png

说这个页面写了可控的文件包含语句,尝试访问该页面:

image.png

没报404,有希望

image.png

没包含到,但是因为是request接收,尝试同时传个post:

image.png

文件包含模糊测试

包含成功了,尝试远程文件包含:

image.png

包含失败,应该是关掉了远程包含
尝试包含日志文件getshell:

image.png

1
2
3
4
../../../../../var/log/httpd/access.log
../../../../../var/log/apache2/access.log
../../../../../var/log/apache2/error.log
../../../../../var/log/httpd/error.log

测试了apache的几个常规日志路径,均失败
尝试data写马:

image.png

image.png

1
2
data:text/plain,<?php fputs(fopen('hack.php','w'),'<?php @eval($_POST[v])?>');?>
data:text/plain,<?php system('whoami');?>

尝试data协议写马,失败
尝试包含ssh日志:

image.png

image.png

1
2
../../../../../../../var/log/auth.log
../../../../../../../var/log/secure

测试常见路径包含ssh日志getshell失败
尝试UA写马:

image.png

1
../../../../../../../proc/self/environ

又失败了,麻了,感觉可以放弃rce了
转回读文件,先读读web路径下的:

image.png

没有回显,可能是web路径错了,但是保险起见还是拿passwd试试:

image.png

可以确定了,好像不能使用伪协议,也难怪前面的测试全都没用
从web路径拿配置文件这条路也断了
只能转回最开始的passwd看看了:

image.png

密码也都隐藏了
根本没抱希望的包含了shadow文件,意外的发现居然配置错误,我们能访问:

image.png

shadow破解

image.png

passwd和shadow存下来,unshadow一下,john破解:

image.png

image.png

解出了www-data的密码,先尝试登录www-data:

image.png

发现可能是有每次ssh后直接断开的自动脚本,之后提权可以注意

image.png

w1r3s的破解也成功了,这里应该已经可以结束了,毕竟不可能把root也让解出来
尝试登录到w1r3s:

image.png

拿到立足点

john历史记录问题

被 john 破解过的hash会被存储在john.pot中,再次破解会报错:

image.png

解决方法:

  1. 删除/root/.john/john.pot的内容
  2. 使用john --show <文件名>查看历史记录(推荐)

image.png

0x04 提权到root

刚准备开始提权坐牢,刚sudo枚举,发现是ALL:

image.png

拿到flag

0x05 反思补足

关于为什么测试的所有php伪协议均未成功:

image.png

该文件包含漏洞点已经写死了拼接的前半句路径,也就是为什么必须要目录穿越才能包含到的原因

0x06 看wp及视频后反思补足

nmap

  1. nmap全端口扫描时最好加入-sT 参数,以发送完整数据包
  1. nmap -oA后,查看.nmap文件获得标准扫描结果
  1. 保险起见的udp扫描语句: nmap -sU --top-ports 20 <IP>
  1. 所有路走不通时,必要时要考虑ipv6

ftp

  1. prompt关闭交互,即不用每次选确定
  1. mget *.txt 批量下载文件

  1. ascii generator可生成ascii组成的logo
    image.png
  1. echo -n '<string>' | md5sum 可以md5编码
  1. 当发现cms存在公开漏洞时,甚至可以github等地查看源码,看代码逻辑
  1. 虽然此靶机ssh密码很弱,可以hydra爆破ssh登录达成秒杀,但打靶过程尽量不选择爆破ssh

0x07 总结

  1. 端口扫描:ftp匿名登录、web wordpress、ssh、mysql
  2. ftp匿名登录 :无有效信息
  3. web渗透:与wordpress相关页面均跳转localhost判断行不通;目录爆破出管理后台cms,存在文件包含公开漏洞,测试各文件包含姿势后,目录穿越拿到shadow文件,破解出ssh密钥
  4. 提权:sudo ALL直接提权

vulhub W1r3s1.0.1
https://fyhypo.github.io/blog/vulnhub/vulnhub W1r3s1.0.1/
作者
FYHypo
发布于
2024年3月27日
许可协议