CVE-2019-7304实战

前言

snap是一个Linux系统上的包管理软件。在Ubuntu18.04后默认预安装到了系统中。
利用该漏洞可以让普通用户伪装成root用户向snapd提供的REST API发送请求。攻击者利用精心构造的安装脚本或Ubuntu SSO可以让并不具有sudo权限的普通用户获得执行sudo的权限,从而获得提升到root用户权限的能力,达到本地提权的效果。

操作

在打靶机的时候发现这个本地提权漏洞,于是顺手测试了一下。

影响范围

  • snap 2.37.1版本以下
  • Ubuntu 18.10
  • Ubuntu 18.04 LTS
  • Ubuntu 16.04 LTS
  • Ubuntu 14.04 LTS

测试环境

1
2
3
4
5
6
7
8
9
10
11
$ snap version
snap 2.32.8+18.04
snapd 2.32.8+18.04
series 16
ubuntu 18.04
kernel 4.15.0-22-generic

$ python3
Python 3.6.5 (default, Apr 1 2018, 05:46:30)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.

动手

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

得到两个版本的利用脚本,我这里仅仅使用第二个脚本进行测试。

操作比较简单,直接运行python3脚本就行了。

1
python3 ./dirty_sockv2.py

等待十几秒时间之后,可以看到用户名/密码均为dirty_sock的账户创建成功

2

这里有一个坑,在创建账户成功后,会遇到No passwd entry for user ‘dirty_sock’的问题(我没遇到),需要进行如下操作,直到所有status均为done

3
4

之后,就是切换到dirty_sock用户,再执行sudo -i,提权成功

1
2
su dirty_sock
sudo -i

5
6

后话

很简单的一个利用,希望以后能用得到

参考:
https://www.chabug.org/web/648.html