Hack The Box -----------------------Waldo

本文详细记录了一次渗透测试过程,通过Nmap扫描、目录爆破、源码分析等手段,发现并利用了一个文件读取漏洞。最终成功获取SSH私钥,登陆目标服务器,并进一步获取root权限。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这次的靶机是Hachthebox的靶机

IP地址为:10.10.10.87

================================================================================================

先用Nmap对目标机器进行扫描

 nmap  -sV 10.10.10.87 -sT -o hawk.txt

然后我们用gobrust 来爆破下目录

gobuster -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -u http://10.10.10.87
 

 

没有什么发下,我们访问下页面看看

 

我们分析下源码

进去list.js看看他的源码

我们可以看到js是通过post数据给php脚本来执行的。

我们试着抓包看看

刷新下页面抓到这个

 

把数据包发送到Repeater然后尝试通过path来列出目录文件

 尝试访问/etc目录发现被拒绝

 

然后我们通过网页的其他操作,抓到其他的包发送到Repeater

 

我们通过fileRead.php读取下页面源码

 同样的试着访问下/etc/passwd的文件

发现也是被拒绝的

 

那我们用fileRead.php读取它自己的代码看下

<?php\n\n\nif($_SERVER['REQUEST_METHOD'] === \"POST\"){\n\t$fileContent['file'] = false;\n\theader('Content-Type: application\/json');\n\tif(isset($_POST['file'])){\n\t\theader('Content-Type: application\/json');\n\t\t$_POST['file'] = str_replace( array(\"..\/\", \"..\\\"\"), \"\", $_POST['file']);\n\t\tif(strpos($_POST['file'], \"user.txt\") === false){\n\t\t\t$file = fopen(\"\/var\/www\/html\/\" . $_POST['file'], \"r\");\n\t\t\t$fileContent['file'] = fread($file,filesize($_POST['file']));  \n\t\t\tfclose();\n\t\t}\n\t}\n\techo json_encode($fileContent);\n}\n

我们把这段代码通过sed整理下

先把代码放到fileRead.php.tmp下然后

通过 at fileRead.php.tmp | sed 's/\\n/\n/g' | sed 's/\\t/\t/g' | sed 's/\\//g' > fileRead.php

(把\n替换为换行,把\t替换为tab,把\替换为/,s 命令用于替换。命令末端的 g 表示在行内全局替换)

这里我们还需要改下,因为sed替换多了,就是str_replace那个位置

最后结果如下

 

 

在这里我们可以看到有一个str_replace函数,array里面的字符替换为空。所有我们刚刚在读取的/etc的时候出错了

 

那我们就用..././来绕过

 

 

然后我们用dirRea.php都去下用户nobody家目录的文件

 

看到一个user.txt

那么我们再用fileRead.php试着读取下,发现还是不是

 

那么我们回到dirRead.php来读取下.ssh文件的内容

关于SSH文件介绍:https://blog.youkuaiyun.com/chenaini119/article/details/79391041

 

 

我们用fileRead.php   都去下monitor的内容

这样我们就拿到了ssh连接私钥

同样我们还需要对这个私钥进行处理

vim key

cat key | sed 's/\\n/\n/g' | sed 's/\\//g' > key.rsa

然后我们需要把key的权限改为600

然后通过ssh -i key.rsa -l nobody 10.10.10.87

登陆shell

 

 

我们ifconfig下

然后在看下.ssh下的knows_hosts

这个文件是记录这我们登陆过的 计算机的公钥,说明我们可以登陆到127.17.0.1的计算

 

然后我们ssh -i .monitor -l monitor 172.17.0.1 -t bash

我们执行下cat /etc/passwd发现出错

我们输出下环境变量

 

这里我们要更改下我们的环境变量

输入

export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:$PATH


 

我们试下ifconfig发现没有这个命令 ,那么我们用ip addr

 

接下来的知识点超出了认知 只能照搬别的大佬的wp

cat无法访问/root的目录

用了tac来访问

最后可以通过 tac /root/root.txt了得到flag

原视频地址:https://www.youtube.com/watch?v=Wm_oA9P3oDA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值