Lazy loaded image
🗒️简单dockers逃逸学习
字数 774阅读时长 2 分钟
2020-8-4
2023-11-24
type
Post
status
Published
date
Aug 4, 2020 22:13
slug
page-1
summary
简单dockers逃逸学习
tags
内网渗透
docker逃逸
category
docker逃逸
icon
password
😀
初学者

1. 目标界面

notion image
搞半天,没进去。。。。
经过提示,了解到了一句话执行的原理,
一句话在每次执行时,接收变量cmd传进去的参数 cmd=phpinfo(); 使用eval函数执行 phpinfo(); 命令。
了解后就是猜参数名的过程。

2. 提权

连上shell后, whoami 查看为www-data权限,
notion image
通过uname -a 和 cat /etc/*-release 查看内核版本,没有提权exp
!
notion image
通过命令查看
notion image
notion image

3. 反弹shell ,以及获取完全交互式shell

公网nc 监听 端口
bash 反弹
失败。。。
使用 python 反弹shell 到公网
保存为shll.sh ,之后执行
notion image
到这里,反弹来的shell还有些问题:
  • 一些命令如su和ssh,需要一个正确的终端才能运行
  • 通常不显示STDERR
  • 无法正常使用vim等文本编辑器
  • 没有完成标签
  • 没有向上箭头使用历史
  • 没有jobcontrol等
    • 接下来使用python获取完全交互式shell
      完美了,但是反弹的shell并不是root 用户,接下来执行
      find suid -exec /bin/bash -p \;
      notion image

4. docker 逃逸

使用 ls -alh /.dockerenv 判断服务器是否为docker环境, 非docker环境是没有的
notion image
这是没有docker的
notion image
或者使用cat /proc/1/cgroup 查看系统进程的cgroup信息
notion image
这是没有的
notion image
fdisk -l 查看磁盘文件
notion image
新建一个目录, 将/dev/vda1挂载至新建的目录
notion image
充满波折,不懂。。。
换个方法,
使用 /etc/passwd 创建root用户,
首先,使用perl语言生成带有盐值的密码:
然后执行下面这条命令,成功将test用户的信息加入 /etc/passwd 文件
su test 切换过去
再执行 mount /dev/vda1 abc
notion image
现在能查看宿主机文件,接下来逃逸到宿主机
通过写入计划任务到宿主机
将python 反弹的脚本写进去,同样gg
最终,直接将反弹shell的脚本,写入宿主机的目录下
之后,赋予权限,直接执行反弹回shell
 
上一篇
sqlmap关于os-shell小记
下一篇
我的「贾维斯」计划:一个安全人的 AI Agent 野望

评论
Loading...