CobaltStrike
团队服务器搭建
1)配置Profile
需要使用Profile让Beacon和Teamserver之间的交互看起来尽可能像正常的流量
下载:https://github.com/threatexpress/malleable-c2/blob/master/jquery-c2.4.3.profile
根据我们的域名对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";
即可正常执行命令回显
2)启动团队服务器
nohup ./teamserver VPS-IP cs@admin.886 jquery.profile &
回连IP隐藏(长期控制)
cs4.5的监听器可以设置socks代理(可以直接使用公开socks上线,但是GWF肯定能记录)
1)用Clash在目标机器上开一个本地代理
2)监听器代理填写127.0.0.1
3)目标机器上木马的回连地址会显示为IPV4回连地址,且流量监测设备不会抓取存储回连地址的流量
常用功能
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
黄金票据需要以下四项信息
- 要伪造票据的用户
- 要伪造票据的域
- 域的 SID
- 域控制器中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.info
在我们的 C2-VPS 执行以下命令监听 UDP53 端口,在任意一台机器上执行 nslookup ns记录
如果有查询数据,证明配置有效
tcpdump -n -i eth0 udp dst port 53
4、listener 选择Beacon DNS,DNS-Host都填NS记录
5、只有在有任务可用时,DNS Beacon才会激活,使用checkin命令来请求DNS信标激活