Sploitus

Exploit for CVE-2021-3156

kitploit ┬╖ 2026-08-27

Exploit Code

MARKDOWN52 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-WORAWIT-CVE-2021-3156
# CVE-2021-3156 (Sudo Baron Samedit)

рдпрд╣ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА CVE-2021-3156 рдХрд╛ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рд╣реИ рдЬреЛ Linux x64 рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рд▓реЗрдЦ (writeup) рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ https://datafarm-cybersecurity.medium.com/exploit-writeup-for-cve-2021-3156-sudo-baron-samedit-7a9a4282cb31 рдкрд░ рдЬрд╛рдПрдВред  
рдХреНрд╡рд╛рд▓рд┐рд╕ рдХреЗ рдмреНрд░реИрди рд╕рдореЗрдбрд┐рдЯ рдХреЛ рдореВрд▓ рд╕рд▓рд╛рд╣рдХрд╛рд░ рдХреЗ рд▓рд┐рдП рд╢реНрд░реЗрдп Braon Samedit of Qualys for the original advisory.

* * *

### рдлрд╝рд╛рдЗрд▓реЗрдВ

##### tcache рдХреЗ рд╕рд╛рде glibc рдкрд░ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ

  * **exploit_nss.py** рд╕рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдФрд░ /etc/nsswitch.conf рдореЗрдВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рд╕реНрд╡рддрдГ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ
  * **exploit_nss_manual.py** рдмреЗрд╣рддрд░ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рд╕рдордЭ рдХреЗ рд▓рд┐рдП exploit_nss.py рдХрд╛ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг
  * **exploit_timestamp_race.c** def_timestamp рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ /etc/passwd рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реЗрд╕ рдХрдВрдбреАрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ



##### tcache рдХреЗ рдмрд┐рдирд╛ glibc рдкрд░ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ

  * **exploit_defaults_mailer.py** рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ struct defaults рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ mailer рдмрд╛рдЗрдирд░реА рдкрде рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ sudo рдХреЛ --disable-root-mailer рдХреЗ рдмрд┐рдирд╛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреИрд╕реЗ CentOS 6 рдФрд░ 7ред
  * **exploit_userspec.py** рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ struct userspec рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рдХреЗ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдХреЛ рдмрд╛рдпрдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ /etc/passwd рдореЗрдВ рдПрдХ рдирдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдХреЗрд╡рд▓ sudo рд╕рдВрд╕реНрдХрд░рдг 1.8.9-1.8.23 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред
  * **exploit_cent7_userspec.py** рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП exploit_userspec.py рдХрд╛ рд╕рд░рд▓реАрдХреГрдд рд╕рдВрд╕реНрдХрд░рдг рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ CentOS 7 рдХреЛ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд▓рдХреНрд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ
  * **exploit_nss_d9.py** Debian 9 рдкрд░ struct service_user рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ /etc/nsswith.conf рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
  * **exploit_nss_u16.py** Ubuntu 16.04 рдкрд░ struct service_user рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ /etc/nsswith.conf рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ
  * **exploit_nss_u14.py** Ubuntu 14.04 рдкрд░ struct service_user рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ /etc/nsswith.conf рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ



##### рдЕрдиреНрдп

  * **asm/** рдкрд╛рдпрдерди рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдореЗрдВ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП tinyelf рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдФрд░ рдПрдХреНрд╕реЗрдХреНрдпреВрдЯреЗрдмрд▓
  * **gdb/** sudo рд╣реАрдк рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ



* * *

### рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдЪреБрдирдирд╛

_рдЙрди Linux рд╡рд┐рддрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдореЗрдВ glibc рдореЗрдВ tcache рд╕рдорд░реНрдерди рд╕рдХреНрд╖рдо рд╣реИ (CentOS 8, Ubuntu >= 17.10, Debian 10):_

  * рдкрд╣рд▓реЗ **exploit_nss.py** рдЖрдЬрд╝рдорд╛рдПрдВ
  * рдпрджрд┐ рддреНрд░реБрдЯрд┐ glibc tcache рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк рдЖрдЧреЗ **exploit_timestamp_race.c** рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВ



_рдЙрди Linux рд╡рд┐рддрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдирдореЗрдВ glibc рдореЗрдВ tcache рд╕рдорд░реНрдерди рдирд╣реАрдВ рд╣реИ:_

  * рдпрджрд┐ рд▓рдХреНрд╖реНрдп Debian 9, Ubuntu 16.04, рдпрд╛ Ubuntu 14.04 рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП **exploit_nss_xxx.py** рдЖрдЬрд╝рдорд╛рдПрдВ
  * рдЕрдЧрд▓рд╛, **exploit_defaults_mailer.py** рдЖрдЬрд╝рдорд╛рдПрдВред рдпрджрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рд▓рдХреНрд╖реНрдп sudo рдХреЛ _\--disable-root-mailer_ рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХреНрд╕рдкреНрд▓реЙрдЗрдЯ sudo рдмрд╛рдЗрдирд░реА рд╕реЗ рд░реВрдЯ рдореЗрд▓рд░ рдлреНрд▓реИрдЧ рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдХреБрдЫ Linux рд╡рд┐рддрд░рдгреЛрдВ рдкрд░ sudo рдХреА рдЕрдиреБрдорддрд┐ 4711 (-rws--x--x) рд╣реИ рдЬреЛ рд▓рдХреНрд╖реНрдп рдкреНрд░рдгрд╛рд▓реА рдкрд░ рдЬрд╛рдВрдЪрдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред (рдЬреНрдЮрд╛рдд рдХрд╛рд░реНрдп OS CentOS 6 рдФрд░ 7 рд╣реИрдВ)
  * рдЕрдВрдд рдореЗрдВ, **exploit_userspec.py** рдЖрдЬрд╝рдорд╛рдПрдВ