Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2017-1000367 — CVE-2017-1000367 的概念验证利用代码,针对 Linux 上 Sudo 的 get_process_ttyname() 中的本地权限提升漏洞,允许通过 tty 设备号操纵覆盖任意文件。 | Kitploit
工具/GitHubGitHub/homjxi0e/cve-2017-1000367
权限提升漏洞分析漏洞利用渗透测试红队二进制利用
GitHubhomjxi0e/cve-2017-1000367

CVE-2017-1000367

CVE-2017-1000367 的概念验证利用代码,针对 Linux 上 Sudo 的 get_process_ttyname() 中的本地权限提升漏洞,允许通过 tty 设备号操纵覆盖任意文件。

查看仓库
1619年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2017-1000367

我们在 Sudo 的 get_process_ttyname() 函数中发现了一个针对 Linux 的漏洞: 该函数会打开 “/proc/[pid]/stat” (man proc) 并读取 tty 的设备号(字段 7,即 tty_nr)。然而,这些字段是以空格分隔的,而字段 2(comm,命令的文件名)可以包含空格(CVE-2017-1000367)。

例如,如果我们通过符号链接 “./ 1 “ 来执行 Sudo,get_process_ttyname() 会调用 sudo_ttyname_dev() 在内置的 search_devs[] 中搜索不存在的 tty 设备号 “1”。

接着,sudo_ttyname_dev() 调用函数 sudo_ttyname_scan(),在 “/dev” 的广度优先遍历中搜索这个不存在的 tty 设备号 “1”。

最后,我们在该函数遍历全局可写的 “/dev/shm” 的过程中利用这个漏洞:通过此漏洞,本地用户可以假装自己的 tty 是文件系统中的任意字符设备,并且在两次竞争条件之后,他可以假装自己的 tty 是文件系统中的任意文件。

在启用了 SELinux 的系统上,如果用户是 Sudoer(可以执行某个命令但未被授予完整 root 权限),他可以用该命令的输出覆盖文件系统上的任意文件(包括 root 拥有的文件),因为 relabel_tty()(位于 src/selinux.c 中)会以 open(O_RDWR|O_NONBLOCK) 的方式打开他的 tty,并通过 dup2() 将其连接到命令的 stdin、stdout 和 stderr。这使得任何 Sudoer 用户都能获得完整的 root 权限。

Red Hat Enterprise Linux 6 (sudo) | ✅ |

Red Hat Enterprise Linux 7 (sudo) | ✅ |

Red Hat Enterprise Linux Server (v. 5 ELS) (sudo) | ✅ |

Oracle Enterprise Linux 6 | ✅ |

Oracle Enterprise Linux 7 | ✅ |

Oracle Enterprise Linux Server 5 | ✅ |

CentOS Linux 6 (sudo) | ✅ |

CentOS Linux 7 (sudo) | ✅ |

Debian wheezy | ✅ |

Debian jessie | ✅ |

Debian stretch | ✅ |

Debian sid | ✅ |

Ubuntu 17.04 | ✅ |

Ubuntu 16.10 | ✅ |

Ubuntu 16.04 LTS | ✅ |

Ubuntu 14.04 LTS | ✅ |

SUSE Linux Enterprise Software Development Kit 12-SP2 | ✅ |

SUSE Linux Enterprise Server for Raspberry Pi 12-SP2 | ✅ |

SUSE Linux Enterprise Server 12-SP2 | ✅ |

SUSE Linux Enterprise Desktop 12-SP2 | ✅ |

OpenSuse, Slackware, and Gentoo Linux | ✅ |

如何在 CentOS/RHEL/Scientific/Oracle Linux 服务器上修补 sudo?✅ |

终端:> sudo yum update

如何在 Fedora Linux 服务器上修补 sudo?

终端:> sudo dnf update

如何在 Suse/OpenSUSE Linux 服务器上修补 sudo?✅ |

终端:> sudo zypper update

如何在 Arch Linux 服务器上修补 sudo?✅ |

终端:> sudo pacman -Syu

如何在 Alpine Linux 服务器上修补 sudo?✅ |

终端:> apk update && apk upgrade

如何在 Slackware Linux 服务器上修补 sudo?✅ |

upgradepkg sudo-1.8.20p1-i586-1_slack14.2.txz

如何在 Gentoo Linux 服务器上修补 sudo?✅ |

终端:> emerge --sync

终端:> emerge --ask --oneshot --verbose ">=app-admin/sudo-1.8.20_p1"

下载工具