1.【安全干货】DockerCVE-2018-6552
【安全干货】DockerCVE-2018-6552
cve--
此漏洞未有公开分析,源码唯一的源码参考是长亭在滴滴安全大会的PPT,信息简略,源码仅在完成利用后发现一些未注意到的源码易语言粉丝源码细节。漏洞基于条件竞争,源码主要影响未修复版本的源码is_same_as函数,通过特殊方法使其不执行正常逻辑,源码继续往下执行。源码
源码分析
展示了is_same_as源码,源码以及修复前后版本的源码对比。apport源码位于2..9版本,源码dnf九剑源码追踪源码找到更改过的源码pid进入get_pid_info,贴出源码。源码
apport为ubuntu程序,源码用于处理程序崩溃信息,源码配置文件如/sys/kernel/core_pattern影响生成core文件的jquery ui 源码之家命名方式。核心是确定生成的core文件路径,以及内核coredump.c传入的参数。
核心配置文件为/sys/kernel/core_uses_pid,值为1代表生成的core文件带.pid,0代表不带。驾校信息查询源码同时,/proc/sys/kernel/pid_max限制最大pid值,影响核心循环计数。logrotate配置用于日志管理。
在Ubuntu .中,彩虹云4.2源码apport与漏洞版本差异大,选择替换整个apport文件。遇到程序不运行问题,可能涉及core_pattern配置。通过日志分析发现入参多了一个%E,删去后程序恢复正常。
逃逸步骤
利用条件竞争绕过分支,首先kill对应pid,然后通过大量fork等待创建进程,占用pid。利用docker内进程路径控制物理机中core生成路径。生成core前检查ulimit -c,限制core文件大小,设置ulimit -c unlimited。
逃逸第二步
通过logrotate定时任务触发执行core中的指令,将想运行的指令写成字符串形式,保存在core文件中。使用logrotate格式编写命令,确保成功执行。手动触发logrotate命令,监听对应端口以获取返回结果。