这次的靶机是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读取下页面源码
发现也是被拒绝的
那我们用fileRead.php读取它自己的代码看下
我们把这段代码通过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.csdn.net/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