# 前言
“关关难过关关过,前路漫漫亦灿灿。日日煎熬日日熬,往事堪堪亦澜澜。”,骚话说完了开始今天了打靶任务
# 靶机描述
难度等级:中级偏低
打靶目标:取得 root 权限
涉及攻击方法:
- 主机发现
- 网络扫描
- 强制访问
- 参数爆破
- 文件包含
- PHP 封装器
- 任意文件读取
- SSH 公钥登录
- 离线密码破解
- 系统权限漏洞利用
虚拟机:
- 格式: 虚拟机 (Virtualbox OVA)
- 操作系统: Linux.
联网:
- DHCP 服务:已启用
- IP 地址自动分配
# 攻击流程
# 信息收集
这里扫描到 ip 为 192.168.13.254,接下来扫描开放的接口
接下来协议的发现
就是老一套的东西,接下来通过浏览器去访问 80 端口
没有什么能利用的地方,接着去扫描目录
这里分别访问这几个目录
但是这里发现是空的
这里进一步路径爆破
sudo gobuster dir -u http://192.168.13.254/secret -w /usr/share/seclists/Discovery/Web-Content/directory-list-1.0.txt -x txt,php,html |
# 文件包含漏洞利用
这里可以看到,新爆破出来了一个 evil.php,这里的暗示已经很明显了
但是这里访问还是没有东西,这里接下来就进行一个参数的爆破
ffuf -w /usr/share/seclists/Discovery/Web-Content/burp-parameter-names.txt:A -w /home/joker/Desktop/1.txt:B -u http://192.168.13.254/secret/evil.php?A=B -fs 0 |
这里 1.txt 是我自己写的一个小字典,这里可以看到当参数为 command,值为 /etc/passwd 的时候是有回显的,这里去访问尝试一下
这里可以看到,这里是可以直接读取文件,这里去尝试./eval.php
这里发现回显也是空的,这里可以猜测这里是使用了 include 函数,这里使用 php 伪协议来读取,先尝试有没有开启远程文件包含,如果有就很简单了
这里启动 kali 上的 http 服务,用上面的文件包含来包含一个木马文件
但是这里很显然失败了,这里可能是远程包含未开启,这里使用伪协议进行文件读取
解码
很显然刚刚猜测的没有问题,但是这里我没有看见能够进一步利用的点
# ssh 登录
这里可以看到有一个 mowre 用户,这里很显然要从这里突破,这里又回头去探测了一下 ssh 连接时的信息
这里可以看见,它可以支持密码和公钥文件,这里可以去读取这个文件
这里就拿到了这个私钥文件
但是这里还有一个密码,这里尝试爆破一下
现将文件转化为 john 能够识别的格式
这里使用 john 破解
john 1 --wordlist=rockyou.txt |
PS: 这份密码文档是哪来的请看下图详解
再去连接
这里就成功拿到一个 shell
# 提权
接下来就是提权到 root
find / -writable 2>/dev/null |
这里在进一步信息收集的过程中发现,当前用户对 /etc/passwd 文件是有可写的权限的,很显然这是不合理的
这里看到所有的用户都是可以改写这个文件的,这里就可以更改 root 用户的密码
先生成一个新的密码
将这个密码写到 passwd 文件中
su