本章阐述重点在于如何搭建起一个C2服务器并且如何隐藏CS相关特征
#client
scp Cobalt-Stike.tar.gz username@<vps_ip>:~
#server
tar -zxvf Cobalt-Stike.tar.gz
#server
nohup ./teamserver <vps_ip> <connect_password> &
#client
java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
#输入<vps_ip> <connect_password>
#名字任意填入
#server
nohup ./teamserver <vps_ip> <connect_password> your_mode.profile &
#client
java -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -jar cobaltstrike.jar
#输入<vps_ip> <connect_password>
#名字任意填入
区别在于加上自制profile可以针对修改受害客户端和C2服务器HTTP/S的流量特征,避免被「简单的局域网爬虫们」爬到以至于被挂黑名单。
CS服务器默认监听在50050端口,可以在启动前编辑teamserver
文件更改监听端口:
sed -i 's/50050/10080/g' teamserver
chmod +x teamserver
nohup ./teamserver <vps_ip> <connect_password> &
可以看到日志:
[+] Team server is up on 0.0.0.0:10080
删除默认的证书
rm ./cobaltstrike.store
查看teamserver
代码中原证书
keytool -list -v -storepass 123456 -keystore cobaltstrike.store
并重签一个伪造证书
rm ./cobaltstrike.store
sed -i 's!-alias cobaltstrike -dname "CN=Major Cobalt Strike, OU=AdvancedPenTesting, O=cobaltstrike, L=Somewhere, S=Cyberspace, C=Earth"!-alias common-domain.com -dname "CN=common-domain Windows, OU=MOPR, O=Sentrylab Inc, L=Redmond, ST=HEFEI, C=CN"!g' teamserver
nmap扫描/消除特征效果:
PORT STATE SERVICE VERSION
10080/tcp open ssl/unknown
| ssl-cert: Subject: commonName=common-domain Windows/organizationName=Sentrylab Inc/stateOrProvinceName=HEFEI/countryName=CN
| Issuer: commonName=common-domain Windows/organizationName=Sentrylab Inc/stateOrProvinceName=HEFEI/countryName=CN
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2022-02-17T09:06:25
| Not valid after: 2022-05-18T09:06:25
| MD5: 2d0b efaa d942 3336 f561 bb5d 9e0b 9751
|_SHA-1: ee50 0484 7d73 d8c4 fe5d 3ef0 80fe 390c a3ed 5bcc
|_ssl-date: TLS randomness does not represent time
Cloudflare导航栏 -> SSL/TLS -> 源服务器 -> 创建证书
#生成p12文件
openssl pkcs12 -export -in public.pem -inkey private.key -out domain-test.p12 -name domain-test.com -passout pass:123456
#生成store文件
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore domain-test.store -srckeystore domain-test.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias domain-test.com
#生成的文件名字可以随意,域名需对应上;
完成后修改teamserver
中对应的store文件然后启动,证书就是Cloudflare签发的了;
以上是几个常见搭建的隐匿思路,不过在网络测绘平台的无差别测绘面前仍然可以寻出蛛丝马迹,参阅以下文章:
在Cobalt Strike特征隐藏一文中提到:
在cobalt strike的
c2 malleable
配置文件中没有自定义http-stager的uri,默认情况下,通过访问默认的uri,就能获取到cs的shellcode。加密shellcode的密钥又是固定的(3.x 0x69,4.x 0x2e),所以能从shellcode中解出c2域名等配置信息
点击以查看更多与「C2服务器隐匿」相关的文章