vulnhub练习 DC-1复现及分析
内容提要
本文介绍了利用Metasploit对Drupal 7进行漏洞利用的过程,包括扫描靶机信息、攻击漏洞模块、获取账户密码、提权至管理员权限等。同时还介绍了扫描局域网主机、开放端口扫描、hydra爆破和suid提权等相关技术。
延伸解读
环境搭建与网络模式选择
文章强调攻击机与靶机的网络连接方式必须相同,DC-1采用NAT模式,与Kali一致。这种设置能确保双方在同一虚拟网络中通信,避免因模式不同导致扫描不到靶机。同时,通过查看靶机MAC地址,可在扫描IP时快速识别目标,提高信息收集效率。
信息收集的多工具组合
文章使用arp-scan、nmap和netdiscover扫描存活主机,其中arp-scan速度快,netdiscover较慢但可加参数优化。端口扫描采用nmap -sV -p-,全面探测开放端口及服务版本。指纹识别借助wappalyzer插件和whatweb工具,准确识别出CMS为Drupal 7,为后续漏洞利用奠定基础。
Drupal漏洞利用与权限获取
针对Drupal 7的CVE-2018-7600远程代码执行漏洞,使用Metasploit的drupal_drupalgeddon2模块获取Meterpreter会话。通过反弹shell和python伪终端,读取配置文件settings.php获得数据库凭据。利用Drupal自带的password-hash.sh脚本生成新密码,或通过SQL注入添加admin用户,最终登录后台获取flag3。
提权方法与密码爆破
文章展示了两种提权路径:一是利用SUID命令,通过find / -perm -4000查找并执行find ./misc -exec "/bin/sh" \;获取root权限;二是使用hydra配合John密码包爆破flag4用户的SSH密码,成功登录后再用同样方法提权。两种方式均能获取最终flag,体现了渗透测试中灵活运用多种技术的重要性。
Q&A
DC-1靶机渗透测试中,如何发现靶机的IP地址和开放端口?
可以使用arp-scan、nmap或netdiscover扫描局域网内存活主机,例如arp-scan -l或nmap -sP 192.168.200.0/24。发现IP后,使用nmap -sV -p- 192.168.200.17扫描全部端口及服务版本。
DC-1靶机使用的CMS是什么?如何识别?
DC-1使用的CMS是Drupal 7。可以通过浏览器插件Wappalyzer或Kali自带的whatweb工具识别,例如whatweb -v 192.168.200.17。
如何利用Metasploit对Drupal 7进行漏洞利用并获取shell?
在Metasploit中搜索drupal模块,使用exploit/unix/webapp/drupal_drupalgeddon2(CVE-2018-7600),设置RHOSTS为靶机IP,执行exploit即可获得Meterpreter会话,然后可反弹shell。
获取shell后,如何找到数据库凭据并连接数据库?
查看Drupal配置文件sites/default/settings.php,获取数据库用户名dbuser和密码R0ck3t。然后使用mysql -udbuser -pR0ck3t连接数据库,查询drupaldb中的users表获取用户信息。
如何修改Drupal中admin用户的密码或添加新的admin用户?
方法一:使用Drupal自带的密码加密脚本/var/www/scripts/password-hash.sh生成新密码哈希,然后更新users表中admin用户的pass字段。方法二:利用Drupal 7的SQL注入漏洞(CVE-2014-3704)添加一个admin权限的用户。
在DC-1靶机中,如何从www-data用户提权到root?
使用find / -perm -4000查找SUID命令,发现find命令具有SUID权限,然后执行find ./misc -exec "/bin/sh" \; 即可获取root权限。另一种方法是爆破flag4用户密码,通过ssh登录后同样利用find提权。