Exp6 MSF应用基础
20191218 Exp6 MSF应用基础
目录
实验原理
目标:掌握metasploit的基本应用方式
MSF是一个免费的、可下载的框架,通过它可以很容易地获取、开发并对计算机软件漏洞实施攻击。它本身附带数百个已知软件漏洞的专业级漏洞攻击工具。
MSF的七大模块
进入/usr/share/metasploit-framework/modules/exploits
即可看到7个模块,其中evasion
是在msf5中更新的,信息比较少
-
Exploit
模块- 是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
- 形象点来说就是攻击模块
-
Payload
模块是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。
- 三种 payload:/usr/share/metasploit-framework/modules/payloads/
- Single:all-in-one
- Stager:目标计算机内存有限时,先传输一个较小的 payload 用于建立连接
- Stages:利用 stager 建立的连接下载的后续payload
- 三种 payload:/usr/share/metasploit-framework/modules/payloads/
-
Encoder
模块- 针对
payload
进行编码,可以通过多种编码手段、多次编码方式有效的改变payload
代码特征 - 不改变
payload
作用,但能对payload
进行加工
- 针对
-
Aux
模块- 能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
- 主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
-
Post
模块- 支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
- 这里主要指的是攻击之后可能用到的模块
-
Nops
模块- 是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90
- 因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置
-
evasion
模块- 对攻击载荷进行”免杀”处理。
- 具体使用方法可见Metasploit Basics for Hackers, Part 24: The New Evasion Modules in Metasploit 5
MSF常用漏洞利用命令
- search name :用指定关键字搜索可以利用的漏洞模块
- use exploit name :使用漏洞
- show options :显示配置选项
- set TARGET target number :设置目标版本
- exploit :开始漏洞攻击
- sessions -l :列出会话
- sessions -i id :选择会话
- sessions -k id :结束会话
- Ctrl+z :把会话放到后台
- Ctrl+c :结束会话
实践过程
一个主动攻击实践cve-2019-6340
原理
Drupal官方之前更新了一个非常关键的安全补丁,修复了因为接受的反序列化数据过滤不够严格,在开启REST的Web服务拓展模块的情况下,可能导致PHP代码执行的严重安全。
根据官方公告和自身实践,8.6.x或(<8.6.10)两种情况可能导致问题出现:
- RESTful Web Services拓展开启,并且启用了REST资源(默认配置即可),不需要区分GET,POST等方法即可完成攻击。
- JSON:API服务模块开启,此服务尚未分析。
环境
-
靶机
- 操作系统 Ubuntu18.04
- IP
192.168.174.147
-
攻击机
- 操作系统 Kali2021
- IP
192.168.174.148
docker部署
在靶机上安装docker
开启docker
加上管理员权限,查看docker version
新建一个docker组,然后把当前用户加入docker组,重启docker,切换当前会话到新 group
测试下效果docker version
在docker中使用search命令进行查找
然后拉取第一个镜像,使用pull
命令docker pull knqyf263/cve-2019-6340
等待镜像拉取完成后启动镜像,运行环境docker run -d -p 80:80 --name Drupal8 knqyf263/cve-2019-6340
注意docker提供了端口映射功能,启动docker时加-p 映射port:容器应用port
-p 80:80
中前一个80
是端口映射,即同一网段下其他主机可以通过访问Ubuntu18.04 IP192.168.174.147
的80
端口访问docker上跑的应用
docker ps -a
查看进程
实现攻击
我们通过访问192.168.174.147:80
在Kali上访问之前在靶机上开启的具有漏洞的服务
在github上可以找到关于此CVE漏洞编号的很多脚本,但是用法不一,因此,我们使用rapid官方给出的脚本进行测试。在kali下将metasploit更新到最新,使用模块use exploit/unix/webapp/drupal_restws_unserialize
:
设置RHOSTS参数和RPORT参数
然后show options
查看一下:
exploit
进行攻击
可以看到攻击成功,反弹回shell
一个针对浏览器的攻击ms14_064
首先是ms11_050(失败)
查看info
开展攻击
可是发现攻击失败,应该是版本问题,Windows XP上的浏览器显示的是火狐的UA,而Windows 7上的IE8有自带针对这一漏洞的保护机制
再换一个ms14_064
查看相关信息
设置选项并开始监听
Windows XP上访问http://192.168.174.148:8080/tqh1218
再回到Kali,发现有相应回显,查看当前sessions
用sessions -i 22
进入最后一个会话,发现成功获取到Windows XP的shell,用ipconfig
验证一下
发现确实是Windows XP的IP,攻击成功!
一个针对客户端的攻击Adobe
首先在Kali上搜索Adobe相关的漏洞
选择其中的exploit/windows/fileformat/adobe_cooltype_sing
,并info
查看信息和需要的选项
设置选项
此时生成msf.pdf
,我们进入保存目录cd /home/tangqiheng/.msf4/local
寻找msf.pdf`,移到Windows 7虚拟机中
在Kali中进入监听模块,并进行相应设置
exploit
开始监听,并在Windows 7上用Adobe Reader打开msf.pdf
发现攻击成功!
成功应用任何一个辅助模块browser_info
查看browser_info 相关组件
查看其需要设置内容
进行设置,将URIPATH
设置为20191218tqh
进行攻击
分别用IE和火狐访问对应网址
回到Kali,发现成功搜集到信息!
问题回答
用自己的话解释什么是exploit,payload,encode
- exploit是载具,连接漏洞,将payload传送到靶机中。
- payload是载荷,是exploit中shellcode中的主要功能代码,exploit把它送到靶机中后,是真正负责进行攻击代码。
- encode是编码,用来改变payload,避免payload中出现漏洞无法处理的字符;其次是为了实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码。
实验总结与体会
这次实验花费了大量的时间在验证一个一个的漏洞能不能匹配上我已有环境的版本上,尤其是针对浏览器的攻击那儿。我先后尝试了在msfconsole搜素browser、Microsoft Internet、Explorer等,找了对应Windows下罗列出的几十个漏洞(起码得三四十了吧,已经记不清了……),为了让攻击能够成功,我准备的环境都是尽可能老一点的Windows操作系统,像WindowsXP、Windows7等。可是发现在WindowsXP上反而很多漏洞对应不上,尝试了多次后发现我WindowsXP总是做不成功的一个原因竟然是我的IE竟然显示的是火狐的代理?!这就导致我所有查找的和IE相关的漏洞基本上都没法用。
虽然总的过程下来让我付出了很多,但在不断地尝试中我对msf这个Kali攻击神器的使用更加熟练,还是非常有收获的~
离实战还缺些什么技术或步骤
这次实验攻击开展的前提都是已经找到了对应的漏洞,然后去寻找漏洞对应版本的软件或操作系统,最后可以轻易通过Kali的msf中的模块实现攻击。但真实场景下往往都是比较完备的,我们几乎没有轻易找到漏洞的可能。就拿我这几天我在教育部2022年网络攻防演习渗透实战中的尝试一样,已有的系统基本上没有什么明显的漏洞,我们只能尝试通过社工或者若密钥等进入系统内部再进行更深入的攻击,真正想要用Kali实战,我们还有很长的路要走呀。