Yordamchi dasturda
Agar sudoers amalda, lekin amalda juda kamdan-kam hollarda, rootdan boshqa har qanday foydalanuvchining UID ostida ma'lum bir buyruqni bajarishga ruxsat beruvchi qoidalarga ega bo'lsa, ushbu buyruqni bajarish huquqiga ega bo'lgan tajovuzkor belgilangan cheklovni chetlab o'tishi va buyruqni bajarishi mumkin. ildiz huquqlari. Cheklovni chetlab o'tish uchun sozlamalarda ko'rsatilgan buyruqni UID "-1" yoki "4294967295" bilan bajarishga harakat qiling, bu esa uning UID 0 bilan bajarilishiga olib keladi.
Masalan, sozlamalarda har qanday foydalanuvchiga /usr/bin/id dasturini istalgan UID ostida bajarish huquqini beruvchi qoida mavjud bo'lsa:
myhost ALL = (ALL, !root) /usr/bin/id
yoki faqat ma'lum bir foydalanuvchi bob uchun bajarishga ruxsat beruvchi variant:
myhost bob = (ALL, !root) /usr/bin/id
Foydalanuvchi "sudo -u '#-1' id" ni bajarishi mumkin va sozlamalarda aniq taqiqlanganiga qaramay, /usr/bin/id yordam dasturi root sifatida ishga tushiriladi. Muammo UID ning o'zgarishiga olib kelmaydigan "-1" yoki "4294967295" maxsus qiymatlarini e'tiborsiz qoldirishdan kelib chiqadi, lekin sudo o'zi allaqachon ildiz sifatida ishlayotganligi sababli, UIDni o'zgartirmasdan, maqsadli buyruq ham ildiz huquqlari bilan ishga tushirildi.
SUSE va openSUSE tarqatishlarida qoidada βNOPASSWDβ koβrsatilmagan holda zaiflik mavjud.
myhost ALL = (ALL, !root) NOPASSWD: /usr/bin/id
Muammo nashrda hal qilindi
Manba: opennet.ru