2017-2018-2 20155225《网络对抗技术》实验五 MSF基础应用
ms08_067
- 用search命令,搜索与ms08_067相关的模块,如图:
找到了对应的攻击模块exploit/windows/smb/ms08_067_netapi ,可知这是一个针对windows下,SMB服务的攻击模块。
服务器信息块(SMB)是一个网络文件共享协议,它允许应用程序和终端用户从远端的文件服务器访问文件资源。
描述里说,这是一个微软服务器服务相对路径堆栈损坏漏洞。
具体什么原理也不清楚,反正是一个服务器服务相关的漏洞。
2.用info命令,查看exploit/windows/smb/ms08_067_netapi相关信息。可以看到存在该漏洞的目标主机类型,选择的目标靶机是Windows XP SP3 English,如图。
里面提到NX
NX是一种CPU技术,用来把存储器区域分隔为只供存储处理器指令集单元,或只供数据使用单元。任何使用NX技术的存储器,代表仅供数据使用,因此处理器的指令集并不能在这些区域存储。
NX技术可防止大多数的缓冲溢出攻击。
- 用show payloads命令,查看可用的payload。选择一般类的(generic),tcp回连。
4.设置参数,出现一个无法建立会话的问题。
首先检查了网络连接,发现本机是桥接模式,改为NAT模式后,两台主机联通,攻击成功,如图:
ms11_050
- search 命令搜索与ms11_050相关模块。
根据描述,ms11_050是一个关于mshtml里的cobjectelement的一个漏洞。
mshtml是IE浏览器排版引擎的名称,是微软公司的一个COM组件,该组件封装了HTML语言中的所有元素及其属性,通过其提供的标准接口,可以访问指定网页的所有元素。
总之是关于IE浏览器的。这是exploit database里对ms11_050的介绍
- 用info命令查看详细信息。
如图,可以看到有可以进行攻击的IE浏览器和对应的操作系统,以及基础选项,比如服务器端地址和端口等。
用use命令,进入该模块。
设置payload为windows/meterpreter/reverse_http,并用show options查看选项。
经过我的多次尝试和分析,我发现,Module options里的SRVHOST、SRVPORT与Payload options里的LHOST、LPORT是一样的。
当使用SRVHOST、SRVPORT这组地址、端口、URI,虽然没有回连成功,但得到的回复是这样的:
而使用LHOST、LPORT这组地址时,也没有成功,但这个端口下找不到URI,只能定位到主机,得到的回复是这样的:
可见,其实只需指明SRVHOST、SRVPORT,不用指明LHOST、LPORT就可以攻击。SRVHOST、SRVPORT会自动传给LHOST、LPORT。
最后,不知道为什么总是提醒我Unknown request to with UA 'Mozilla/4.0。在网上查了些解决方法也都无果。这个漏洞虽然没有成功,但学到了如何设置参数,尝试参数的作用,以及分析并尝试msf反馈的问题。
对Adobe阅读器攻击
- 使用windows/fileformat/adobe_cooltype_sing模块。show options查看参数,设置本机为监听主机,端口默认为4444,pdf文件名默认为msf,成功生成msf文件,如图:
- 把msf.pdf拷贝到被攻击机上,然后开启本机监听模块。一点击pdf,就中招了,如图:
辅助模块
CVE:漏洞库
NVD:美国漏洞库
kali里metasploit的框架目录是:/usr/share/metasploit-framework
再进入/modules,进入/auxiliary,可以看到辅助模块源码,如图。
进入msfconsole控制台,show auxiliary查看可用的辅助模块,通过命名可以知道每个模块对应的操作系统/类型/模块名称,info查看某个模块的详细信息。
首先我选了admin/vmware/poweroff_vm模块,描述中说这个模块将登录到VMware的Web API并尝试关闭指定的虚拟机电源。
我在百度上搜这个模块的配置方法都找不到,肯定没有人跟我重复了。
根据每个选项的描述和我自己的理解,
PASSWORD和USERNAME是登陆靶机的用户名、口令,
RHOST和RPORT是靶机的IP和开放的TCP端口,
VM指明具体是关闭哪台靶机的电源。
然后配置了一下如图:
然后意料之中的失败,毕竟怎么可能以来就成功呢,对吧。
分析exploit失败的反馈消息,连接被拒接。
突然想到靶机开放端口默认设置为443,万一443没开放呢?所以用namp扫描了一下,靶机开放的端口,发现只有22和111端口。所以修改靶机端口设置为22.
还是失败了,但反馈结果里连接已经成功,但靶机里不支持ssl协议,所以无法建立ssl连接。老师说不要纠结于环境问题,老师还说学习的目的不是成功而是体验,所以我就放弃了。但我已经尝试过使用admin/vmware/poweroff_vm模块,并分析解决了一个连接问题。
基础问题回答
- 用自己的话解释什么是exploit,payload,encode.
很显然这三个是由大到小的层次关系,exploit是如何利用这个漏洞的代码,payload是攻击漏洞成功以后的功能代码,encode又是payload里的核心代码。
- 实践总结与体会
这次实验给我最大的感受就是,失败是常态,成功是很多次失败后的成果。既然失败几乎是必然,那我们最需要的就是分析问题、解决问题的能力,才能在数次失败后获得成功。
- 离实战还缺些什么技术或步骤?
最后我选择admin/vmware/poweroff_vm模块百度上都没有资料,仅凭几句description,猜测尝试这个模块的用法,是有难度的,而且实战中你也不知道你的靶机是什么情况,比如我这里想使用admin/vmware/poweroff_vm模块,但靶机不支持ssl,这也进一步体现了,信息收集扫描的重要性,掌握准确的信息是成功的关键因素。