Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2017-1000367 — إثبات المفهوم لاستغلال CVE-2017-1000367، وهو ثغرة تصعيد امتيازات محلية في دالة get_process_ttyname() في Sudo على Linux، تسمح بالكتابة فوق أي ملف عبر التلاعب برقم جهاز tty. | Kitploit
أدوات/GitHubGitHub/homjxi0e/cve-2017-1000367
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاختبار الاختراقالفريق الأحمراستغلال الملفات الثنائية
GitHubhomjxi0e/cve-2017-1000367

CVE-2017-1000367

إثبات المفهوم لاستغلال CVE-2017-1000367، وهو ثغرة تصعيد امتيازات محلية في دالة get_process_ttyname() في Sudo على Linux، تسمح بالكتابة فوق أي ملف عبر التلاعب برقم جهاز tty.

عرض المستودع
162منذ 9 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2017-1000367

اكتشفنا ثغرة أمنية في دالة get_process_ttyname() الخاصة بـ Sudo على نظام لينكس: هذه الدالة تفتح الملف “/proc/[pid]/stat” (man proc) وتقرأ رقم جهاز tty من الحقل 7 (tty_nr). لسوء الحظ، هذه الحقول مفصولة بمسافات والحقل 2 (comm، اسم ملف الأمر) يمكن أن يحتوي على مسافات (CVE-2017-1000367).

على سبيل المثال، إذا قمنا بتنفيذ Sudo عبر الرابط الرمزي “./ 1 “، فإن get_process_ttyname() تستدعي sudo_ttyname_dev() للبحث عن رقم جهاز tty غير موجود “1” في المصفوفة المدمجة search_devs[].

بعد ذلك، تستدعي sudo_ttyname_dev() الدالة sudo_ttyname_scan() للبحث عن رقم جهاز tty غير الموجود “1” في اجتياز عرضي (breadth-first) عبر “/dev”.

أخيراً، نستغل هذه الدالة أثناء اجتيازها للمسار القابل للكتابة عالمياً “/dev/shm”: من خلال هذه الثغرة، يمكن لمستخدم محلي التظاهر بأن tty الخاص به هو أي جهاز حرفي (character device) على نظام الملفات، وبعد شرطين سباق (race conditions)، يمكنه التظاهر بأن tty الخاص به هو أي ملف على نظام الملفات.

على نظام مزوّد بـ SELinux، إذا كان المستخدم لديه صلاحية Sudoer لأمر لا يمنحه صلاحيات جذر كاملة، فيمكنه الكتابة فوق أي ملف على نظام الملفات (بما في ذلك الملفات المملوكة لـ root) بمخرجات الأمر الخاص به، لأن relabel_tty() (في src/selinux.c) تستدعي open(O_RDWR|O_NONBLOCK) على tty الخاص به وتقوم بـ dup2() له على stdin، stdout، وstderr للأمر. وهذا يسمح لأي مستخدم Sudoer بالحصول على صلاحيات جذر كاملة.

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 | ✅ |

كيف يمكنني تحديث sudo على خادم CentOS/RHEL/Scientific/Oracle Linux؟ ✅ |

الطرفية:> sudo yum update

كيف يمكنني تحديث sudo على خادم Fedora Linux؟

الطرفية:> sudo dnf update

كيف يمكنني تحديث sudo على خادم Suse/OpenSUSE Linux؟ ✅ |

الطرفية:> sudo zypper update

كيف يمكنني تحديث sudo على خادم Arch Linux؟ ✅ |

الطرفية:> sudo pacman -Syu

كيف يمكنني تحديث sudo على خادم Alpine Linux؟ ✅ |

الطرفية:> apk update && apk upgrade

كيف يمكنني تحديث sudo على خادم Slackware Linux؟ ✅ |

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

كيف يمكنني تحديث sudo على خادم Gentoo Linux؟ ✅ |

الطرفية:> emerge --sync

الطرفية:> emerge --ask --oneshot --verbose ">=app-admin/sudo-1.8.20_p1"

تنزيل الأداة