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

从Rickdiculously Easy靶机拆解渗透测试核心流程:信息搜集到权限提升

从Rickdiculously Easy靶机拆解渗透测试核心流程:信息搜集到权限提升
📅 发布时间:2026/6/23 21:57:27

1. 项目概述:从“Rickdiculously Easy”靶机说起

最近在渗透测试的圈子里,一个名为“Rickdiculously Easy”的虚拟机靶机热度不低。这个名字本身就很有意思,它戏谑地暗示了其难度之低,仿佛在说“这简直简单得离谱”。对于很多刚入门网络安全、想上手实战渗透的朋友来说,这种靶机是绝佳的“新手村”体验。它不像那些配置复杂、路径刁钻的“地狱级”靶场,而是提供了一个结构相对清晰、漏洞点比较典型的模拟环境,让你能够快速建立起“发现漏洞-利用漏洞-获取权限”的完整闭环信心。我花了点时间把这个靶机从头到尾走了一遍,过程确实如名字所言,非常顺畅,但其中涉及到的思路和工具使用,恰恰是构建渗透测试基础能力的核心。所以,这篇内容不只是复现步骤,更想拆解每一步背后的“为什么”,以及在实际操作中那些容易忽略的细节和“坑点”。无论你是想验证自己所学,还是准备踏入这个领域,这篇基于实战的拆解应该都能给你带来一些直接的参考。

2. 环境准备与信息搜集:一切攻击的起点

渗透测试的第一步永远不是直接上工具狂轰滥炸,而是耐心且细致的信息搜集。这就像侦探破案前要勘察现场、收集线索一样。对于“Rickdiculously Easy”这类在本地虚拟机(如VMware或VirtualBox)中运行的靶机,我们的“现场”就是它的网络服务和可能暴露的信息。

2.1 靶机网络配置与发现

首先,确保你的攻击机(通常是Kali Linux或Parrot OS)和靶机处于同一网络段。最常见的方式是将两者都设置为NAT模式或桥接模式。我个人的习惯是使用VMware的NAT网络,因为它能提供一个相对隔离的虚拟网络环境,避免干扰到物理网络。

启动靶机后,第一件事就是找出它的IP地址。由于靶机通常不会主动告诉我们,我们需要进行网络扫描。

sudo netdiscover -r 192.168.1.0/24

或者使用更强大的nmap进行存活主机扫描:

sudo nmap -sn 192.168.1.0/24

这里的-sn参数代表 Ping 扫描,用于发现存活主机。执行后,你会看到一个不属于你已知设备的IP地址,那很可能就是靶机。假设我们发现的靶机IP是192.168.1.105。

注意:网络扫描是信息搜集的常规操作,但务必仅在你自己搭建的实验室环境或获得明确授权的范围内进行。未经授权的扫描行为是违法的。

2.2 端口与服务深度探测

找到IP后,下一步就是“敲门”,看看靶机上开了哪些“门”(端口),以及每扇门后提供什么“服务”(服务类型和版本)。这是发现潜在攻击面的关键。

sudo nmap -sV -sC -O -p- 192.168.1.105

这个命令组合非常强大:

  • -sV: 探测服务版本。知道运行的是Apache 2.4.49还是Nginx 1.18,对于寻找已知漏洞至关重要。
  • -sC: 使用默认的Nmap脚本进行扫描。这些脚本能进行更深入的探测,比如检查HTTP服务的robots.txt,或者尝试识别一些简单的漏洞。
  • -O: 尝试识别操作系统。虽然虚拟机靶机通常是Linux,但确认一下没坏处。
  • -p-: 扫描所有65535个端口。默认nmap只扫描前1000个常用端口,但有些服务可能开在非常用端口上,这个参数确保全覆盖。

扫描完成后,你可能会得到类似这样的结果:

PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.9p1 (protocol 2.0) 80/tcp open http Apache httpd 2.4.41 111/tcp open rpcbind 2049/tcp open nfs NFS (Network File System)

这个结果已经非常丰富了。我们看到了SSH(22端口)、HTTP网页服务(80端口)、RPC(111端口)和NFS(2049端口)。一个简单的Web服务器同时开放了NFS服务,这本身就是一个需要重点关注的组合。

2.3 Web目录枚举与初步探查

既然有HTTP服务(80端口),浏览器访问http://192.168.1.105是必然的。打开后,你可能会看到一个默认的Apache页面,或者一些简单的提示。但这只是冰山一角,我们需要找出隐藏的目录或文件。

这里使用gobuster或dirb进行目录爆破:

gobuster dir -u http://192.168.1.105 -w /usr/share/wordlists/dirb/common.txt -x php,txt,html
  • dir: 指定进行目录扫描模式。
  • -u: 指定目标URL。
  • -w: 指定字典文件。common.txt是一个常用的目录和文件字典。
  • -x: 指定尝试的文件扩展名。这里我们寻找.php,.txt,.html结尾的文件。

扫描结果可能会发现一些有趣的路径,比如/robots.txt、/admin、/backup等。访问/robots.txt文件有时能发现开发者不想被搜索引擎抓取的目录,这些地方往往存放着测试页面、备份文件或管理界面,是重要的信息来源。

3. 漏洞分析与利用路径拆解

信息搜集完毕后,我们手头有了一份“资产清单”:开放的服务、可能的隐藏目录。接下来就是分析这些资产中哪些可能存在弱点。针对“Rickdiculously Easy”靶机的典型配置,我们往往会发现一条清晰的利用链。

3.1 NFS服务信息泄露与权限滥用

从nmap扫描结果我们看到2049端口开放了NFS服务。NFS(网络文件系统)允许将远程目录挂载到本地,像访问本地文件夹一样访问远程文件。如果配置不当,可能导致未授权访问。

首先,查看靶机共享了哪些目录:

showmount -e 192.168.1.105

如果返回类似/home/user/share *(rw,sync,no_root_squash)的信息,那就意味着任何人都可以挂载这个共享目录,并且具有读写权限。参数no_root_squash尤其危险,它允许客户端的root用户保留root权限访问共享文件,这为权限提升埋下了伏笔。

我们可以创建一个本地目录,并将靶机的共享挂载上来:

mkdir /tmp/target_nfs sudo mount -t nfs 192.168.1.105:/home/user/share /tmp/target_nfs

挂载成功后,/tmp/target_nfs目录下的内容就是靶机/home/user/share目录下的内容。仔细检查这些文件,你可能会发现:

  1. 备份文件:如.bak文件、数据库转储文件(.sql)。
  2. 配置文件:可能包含数据库密码、API密钥等敏感信息。
  3. 用户文件:如.bash_history(命令历史),可能泄露用户执行过的敏感命令。
  4. SSH密钥:如果存在.ssh/id_rsa私钥文件,那将是我们获取SSH访问权限的“金钥匙”。

实操心得:检查文件时,别只看文件名,要用cat、strings、file命令查看文件内容。一个看似普通的文本文件,里面可能就藏着密码。另外,注意文件的权限(ls -la),如果发现了属于特定用户的私钥,但权限是600(仅所有者可读),在挂载的NFS上你可能可以直接读取,这正是no_root_squash配置不当的后果。

3.2 SSH私钥获取与登录

假设我们在挂载的NFS共享目录中,幸运地找到了/home/rick/.ssh/id_rsa文件。这就是用户rick的SSH私钥。我们需要做以下几件事:

  1. 将私钥复制到攻击机:cp /tmp/target_nfs/.ssh/id_rsa ~/.ssh/target_id_rsa
  2. 修改私钥文件权限:SSH客户端对私钥文件的权限有严格限制,过于开放的权限会被拒绝使用。
    chmod 600 ~/.ssh/target_id_rsa
  3. 尝试使用私钥登录:
    ssh -i ~/.ssh/target_id_rsa rick@192.168.1.105
    -i参数指定使用的私钥文件。

如果靶机上用户rick的.ssh/authorized_keys文件中包含了对应公钥,并且私钥未被加密(没有设置密码短语),那么你将直接获得一个SSH shell。

常见问题:如果登录失败,可能有几个原因。一是私钥被加密(有密码短语),这时需要破解密码,可以使用ssh2john和john工具。二是靶机上的authorized_keys文件里没有对应的公钥。三是防火墙或SSH配置(如PermitRootLogin、PasswordAuthentication)限制。这时需要回到信息搜集阶段,看看是否有其他线索(比如从备份文件中找到的密码可能用于SSH密码登录)。

3.3 Web应用漏洞的辅助利用

在通过SSH获得初步立足点之前或之后,对80端口的Web服务进行深入测试也是重要一环。除了目录枚举,还可以:

  • 手动测试参数:对发现的任何表单或URL参数(如?id=1)进行SQL注入或命令注入测试。一个简单的测试是在参数后加一个单引号‘,观察页面返回是否有数据库错误信息。
  • 检查源代码:浏览器查看网页源代码,注释里有时会藏着开发者的笔记、测试凭证或隐藏路径。
  • 分析技术栈:通过浏览器的开发者工具(F12)查看网络请求响应头,获取Web框架(如Flask、Express)、服务器软件具体版本等信息,便于搜索公开漏洞。

对于“Rickdiculously Easy”这类靶机,Web端可能设置了一个简单的登录页面,并存在SQL注入漏洞。你可以使用sqlmap进行自动化检测:

sqlmap -u "http://192.168.1.105/login.php" --data="username=admin&password=pass" --level=3 --risk=2

但作为学习,我更推荐先手动尝试经典的单引号、‘ or ‘1’=’1等Payload,理解漏洞原理,再使用工具辅助。

4. 权限提升与最终立足

通过SSH私钥,我们很可能以普通用户身份(如rick)登录进了系统。在渗透测试中,获得一个shell只是开始,我们最终的目标通常是获取最高权限(root)。这个过程称为权限提升(Privilege Escalation)。

4.1 系统内部信息搜集

登录后的第一件事,是在靶机内部再次进行信息搜集,寻找提权线索。以下是一些关键命令:

# 查看当前用户权限 id sudo -l # 查看当前用户可以以root身份执行哪些命令,这是最直接的提权路径 # 查看系统信息 uname -a # 内核版本 cat /etc/os-release # 发行版信息 # 查找具有SUID权限的特殊文件 find / -perm -u=s -type f 2>/dev/null # 查找当前用户可写的文件 find / -writable -type f 2>/dev/null | grep -v "/proc/" # 查看计划任务 crontab -l ls -la /etc/cron* /var/spool/cron/ # 查看网络连接和监听端口 netstat -tulnp ss -tulnp # 查看进程列表 ps aux

这些命令的输出蕴含着大量提权机会。例如,sudo -l可能显示用户rick可以无需密码以root身份运行/usr/bin/vim,那么通过sudo vim进入vim后,就可以用:!bash命令轻松获得一个root shell。

4.2 利用SUID二进制文件提权

find / -perm -u=s -type f 2>/dev/null这个命令会找出所有设置了SUID位的文件。SUID位意味着当任何用户执行这个文件时,它将以文件所有者的权限运行。如果这个文件的所有者是root,并且程序本身存在漏洞(或者可以被滥用),就可能用来提权。

一些经典的、易被滥用的SUID程序包括:

  • find(如果版本较老):find . -exec /bin/bash \;
  • vim/vi:vim -c ‘:!bash’
  • bash(特定版本):bash -p
  • nmap(交互模式旧版本):nmap --interactive然后!sh
  • cp/mv: 如果可以对敏感文件(如/etc/passwd)进行写操作。

在“Rickdiculously Easy”靶机中,可能会故意放置一个这样的易滥用SUID程序。你需要根据找到的程序名称,去搜索对应的利用方法(例如,搜索“SUID privilege escalation [程序名]”)。

4.3 利用Cron Jobs计划任务提权

Cron是Linux系统的计划任务工具。如果有一个以root权限定期运行的脚本,并且这个脚本当前用户有写入权限,那么我们就可以修改这个脚本,让它执行我们的恶意命令,从而在计划任务执行时获得root权限。

检查方法:

  1. crontab -l查看当前用户的计划任务。
  2. ls -la /etc/cron.d/ /etc/cron.hourly/ /etc/cron.daily/等目录查看系统级任务。
  3. 使用cat查看发现的cron文件内容,找到它具体执行什么命令或脚本。

假设发现一个任务* * * * * root /opt/scripts/backup.sh,而经过检查,你发现/opt/scripts/backup.sh这个文件,用户rick有写入权限。那么,你可以用以下命令替换其内容:

echo ‘cp /bin/bash /tmp/rootbash; chmod +s /tmp/rootbash’ > /opt/scripts/backup.sh

然后等待最多一分钟,cron任务以root身份执行这个脚本,就会在/tmp目录下创建一个具有SUID位的bash副本。之后,你执行/tmp/rootbash -p就能获得一个root shell。

注意事项:在修改系统文件前,最好先备份原文件(cp backup.sh backup.sh.bak),并且在获得权限后,尽量恢复原状,这是渗透测试职业道德的一部分。同时,要注意脚本的格式,确保你写入的命令是有效的Shell命令。

4.4 内核漏洞提权

如果以上方法都行不通,最后的手段是寻找内核漏洞。使用uname -a获取内核版本,然后在攻击机上搜索该版本的公开漏洞利用代码(Exploit)。你可以使用searchsploit工具(Kali自带):

searchsploit “Linux Kernel 3.10” Privilege Escalation

找到合适的 exploit 后,将其上传到靶机(例如用python3 -m http.server在攻击机开启临时web服务,在靶机用wget下载),编译并执行。但必须极其谨慎:内核 exploit 不稳定,可能导致系统崩溃(在靶机环境中无所谓,在生产环境绝对禁止未经授权的测试)。而且,现代系统通常有安全机制(如SELinux, AppArmor)缓解此类攻击。

5. 总结与防御思考

走完“Rickdiculously Easy”靶机的全程,你会发现其渗透路径设计得非常经典:信息泄露(NFS共享)→ 凭证获取(SSH私钥)→ 权限提升(SUID/Cron滥用)。这几乎涵盖了初级渗透测试的核心知识点。

从防御者的角度来看,这个靶机暴露出的每一个问题,都是现实世界中需要加固的点:

  1. 最小化服务暴露:如非必要,关闭NFS、RPCbind等非关键服务。如果必须使用,应严格配置访问控制列表(ACL),禁止匿名访问,并避免使用no_root_squash这样危险的选项。
  2. 妥善管理密钥与凭证:SSH私钥应加密存储(设置强密码短语),并严格限制其文件权限(600)。绝对不要将私钥放在可被网络访问的共享目录中。定期轮换密钥。
  3. 遵循最小权限原则:
    • 对SUID二进制文件进行严格审计,只给绝对必要的程序设置SUID位。
    • 配置sudo时,精确授权,避免使用NOPASSWD和过于宽泛的命令路径(如允许ALL)。
    • 确保计划任务(Cron Jobs)执行的脚本和其所在目录的权限设置正确,避免低权限用户可写。
  4. 保持系统与软件更新:及时安装安全补丁,修复已知的软件漏洞和内核漏洞。
  5. 加强日志与监控:记录并监控SSH登录尝试、文件访问(尤其是敏感文件)、特权命令执行等行为,以便在发生入侵时能快速发现和响应。

这个靶机之所以“简单”,是因为它将这些常见的安全配置错误集中展示了出来。对于学习者而言,成功渗透它能带来成就感,但更重要的是要理解每一步成功的原理,并反过来思考如何防御。真正的安全能力,正是在这种“攻”与“防”的思维切换中逐渐构建起来的。我自己的习惯是,每次打完一个靶机,都会以管理员视角重新审视一遍,假设我要守护这台服务器,我会如何配置和监控,这份思考往往比利用漏洞本身更有价值。

相关新闻

  • Selenium自动化测试入门:从环境搭建到实战封装
  • 深度剖析WordPress破解主题安全风险与性能优化实战
  • 在野漏洞应急响应实战指南:从预警到复盘的全流程解析

最新新闻

  • Engula核心组件解析:从Raft协议到分片策略的实现原理
  • Yeng-Website移动端体验评测:Android原生UI设计带来的极致流畅感受 [特殊字符]
  • 革命性多智能体辩论框架platform-war-public:从社交评论到AI辩论的完整指南
  • AgentScope终极指南:轻松构建可视化智能体应用的完整教程
  • 电容充放电和电容滤波相关基础知识及Multisim电路仿真
  • Rust + Go FFI 高级技巧:内存安全处理与 C 字符串转换终极指南 [特殊字符]

日新闻

  • Arduino-ESP32项目深度解析:解锁隐藏芯片支持与架构演进
  • 2026年 系统窗厂家/品牌推荐榜单:隔音系统窗+高端系统门窗的核心优势与选购指南 - 品牌发掘
  • NVBench:首个双语非言语发声语音合成评测基准详解与实践

周新闻

  • Visual C++运行库修复终极指南:5分钟快速解决Windows软件启动错误
  • 手把手教你构建统计局地区经济数据爬虫:从环境搭建到数据持久化全指南
  • 2026多Agent深度解析:用AI团队替代单一模型,四种架构实战落地

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

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

服务项目

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

快速链接

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

联系方式

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

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