隐匿自己的c2服务器(一)
隐匿自己的c2服务器(一)
服务器设置
安装java环境
yum install -y java-1.8.0-openjdk*
启动设置
遇到插件中中文乱码时,只需要更改启动的编码参数即可解决:
java -Dfile.encoding=utf-8 -XX:ParallelGCThreads=4 -XX:+AggressiveHeap -XX:+UseParallelGC -Xms512M -Xmx1024M -jar cobaltstrike.jar
开启禁ping
vim /etc/sysctl.conf
net.ipv4.icmp_echo_ignore_all = 1 //添加这一行
sysctl -p //保存之后刷新配置
微信机器人推送上线信息
首先先注册好企业微信,不清楚百度上搜一下就好了,下载好这个插件:项目地址上传到服务器,然后在群聊中添加机器人
一路点过来到这里就得到了机器人的webhook
地址了
然后开始修改下载好的文件,因为配置的是微信推送,所以在CS_bot.py这个文件里注释掉其他的不用项。然后注意这个py文件本来就有拼接url故需要将webhook里面key
的部分(?key=之后的)提出来替换掉那个xxxx
然后编辑CS_bot.cna,划线的地方需要修改为自己放这个py文件的绝对路径。再编辑好之后先运行一下这个文件,缺什么包就用pip3下载好。
使用agscript在后台启动,注意这里的格式为 user那里不要和自己登录的用户名重复
nohup ./agscript <host> <port> <user> <pass> </file/CS_bot.cna>
最后的效果如下:
️端口特征修改
修改teamserver默认端口
其位于teamserver的最后一段,将-Dcobaltstrike.server_port=改为自己想设置的端口,
证书特征修改
CobaltStrike的默认证书有三个:
- cobaltstrike.store 证书:用于服务端和客户端加密通讯
- proxy.store 证书:用于浏览器代理也就是browserpivot功能
- ssl.store 证书:如果你没有配置https-certificate选项,并且使用的是https监听器那么CobaltStrike默认就会使用这个证书
其中cobaltstrike.store证书和ssl.store证书比较敏感,特征也早已被各大厂商标记,建议自己生成替代不要使用其默认证书。我们可以使用keytool来管理或生成证书。keytool是一个Java数据证书的管理工具 ,keytool将密钥(key)和证书(certificates)存在一个称为keystore的文件中(即.store后缀文件)
可以使用 keytool -h
查看帮助,这里简单例举一点,其他的有需要就百度
cs的原始证书特征很明显就不看了,我这把原先的证书删了,用Keytool来重新生成证书
keytool -keystore cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias 别名 -dname "CN=(名字与姓氏), OU=(组织单位名称), O=(组织名称), L=(城市或区域名称), ST=(州或省份名称), C=(单位的两字母国家代码)"
eg:
keytool -keystore test.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias test.tk -dname "CN=Microsoft Windows, OU=MOPR, O=Microsoft Corporation, L=Redmond, ST=Washington, C=US"
查看一下生成的证书(密钥库密码默认为123456,密码取决于上面你改不改)
keytool -list -v -keystore 证书名.store
之后还要在teamsever里面修改一下keystore:
到这里简单的修改就完成了
流量特征修改
利用cdn加速进行隐匿
域名
正常情况下,第一步我们要做的是先申请一个域名(这个域名的作用是用来配合 CDN 来隐藏我们的C2服务器),然后再申请一个CDN对我们所申请的域名进行加速,在这个过程中CDN会要求我们在域名的解析配置中设置相应的 CNAME。
- 一句话核心原理:使用CDN内容分发网络的多节点分布式技术,通过“加速、代理、缓存”隐藏在后面的静态文件或服务;最终实现对外暴露的是CDN多节点的公网域名IP,很难甚至无法溯源真实后端服务器的域名或IP!
首先要做的就是申请一个域名,可以去下面这个外网的弄到免费域名https://www.freenom.com/zh/index.html?lang=zh。这里就细讲一下比较详细的过程:
没有账号不用管待会会有注册的,先搜索一个域名,最好就是搜全,加上.tk .ml之类的,否则有可能搜不到。
然后注册那里,我没截图但这里拿编辑页面来说。就是你的信息不能乱写,正确度不高的话是成功不了的,比如如果你是挂代理上来的,那就在编辑信息就得和你的IP所在地尽可能匹配。像我用的就是下面这个网站洛杉矶地址生成器 - 美国地址生成器 - 美国身份生成器 (meiguodizhi.com)来生成信息。
注册成功了就可以点上面横栏service里面查看。
cdn配置
cdn我用的是免费的Cloudflarehttps://www.cloudflare.com/zh-cn/。注册账号后登陆,选择免费计划然后添加刚刚弄到的欲与CS服务器绑定的域名
进入站点后,点击左侧的dns,查看Cloudflare的名称服务器,把这两个ns记录下
然后会带刚刚注册域名的网站,在service里面有管理页面,进来如下依次填入前面的两个ns记录。这样就可以将自己的域名的所有解析功能都托管在Cloudflare,这样Cloudflare可以提供CDN的解析功能了
然后接着就是添加两条记录,一个的名称@或者其他的也可以,一个为www。添加后保存
在页面规则这里也添加两条,一个的url为*.域名/*
,一个为.域名/*
。底下选缓存级别
和绕过
之后可以ping一下自己的域名,能ping通而底下的ip也已经不是我们服务器的ip了。
证书和密钥
这里的设置就是把下面的自动配置的功能都关了。
下面创建证书,如下图
很简单看图操作:
创建之后保存一下生成的密钥和证书
在服务器上加俩个文件分别为secret.key 和 cert.pem 来保存。使用以下命令生成 certout.p12 。再接着生成新的证书:
openssl pkcs12 -export -in 保存的源证书.pem -inkey 保存的私钥.key -out 输出的p12文件名(自定义).p12 -name 设置别名 -passout pass:设置密码
keytool -importkeystore -deststorepass 设置密码 -destkeypass 设置密码 -destkeystore 设置证书文件名.store -srckeystore 上面自定义的p12文件.p12 -srcstoretype PKCS12 -srcstorepass 上面设置的密码 -alias 设置别名
eg:
openssl pkcs12 -export -in cert.pem -inkey secret.key -out certout.p12 -name cloudflare_cert -passout pass:753015
keytool -importkeystore -deststorepass 753015 -destkeypass 753015 -destkeystore bk.store -srckeystore certout.p12 -srcstoretype PKCS12 -srcstorepass 753015 -alias cloudflare_cert
修改profile文件
然后就是修改以下profile文件,根据你自己的文件来改GitHub上有很多拿来改一下就可以用了。我这里就大概这样
最后检查一下域名能否正常使用,这个ip就是我们使用的Cloudflare的最近CDN节点的公网ip
上线效果
配置CS Listener,将高信誉域名填入HTTPS Hosts和HTTPS Host(Stager)中,将CS服务器域名填入HTTPS Host Header中
但是要注意:Cloudflare的代理模式只有部分端口能够使用,使用时要注意端口的设置,否则是监听不到的。(Cloudflare 支持的 HTTP 端口:80、8080、8880、2052、2082、2086、2095;Cloudflare 支持的 HTTPS 端口:443、2053、2083、2087、2096、8443)
还有因为我是使用的国内云主机,域名没有进行备案,所以没有办法使用80、8080、443、8443端口提供服务;这里就直接拿https的来了
上线之后等一会是可以看到,CS上显示该机器的外部ip为某云的ip,并且该ip是动态变化
的。
查看受控主机本地回接C2服务器的ip地址已经是CDN节点IP,而不是我们自己服务器的真实ip
查一下这个IP可以看到来自cloudflare
至此就简单完成了,后面还会接着尝试其他方法来隐匿
隐匿自己的c2服务器(一)的更多相关文章
- 恶意软件/BOT/C2隐蔽上线方式研究
catalogue . 传统木马上线方式 . 新型木马上线方式 . QQ昵称上线 . QQ空间资料上线 . 第三方域名上线 . UDP/TCP二阶段混合上线 . Gmail CNC . NetBot两 ...
- CC攻击和C2的区别
[一]背景 今天被旁边姐姐问C2.CC是什么,虽然平时老看到这个词,身边也有自己写C2工具的大佬.但好像突然被问到有点懵,不知道怎么回答. [二]内容 CC ( Challenge Collapsar ...
- Cobalt Strike 之: Malleable C2 流量伪造与加密
郑重声明: 本笔记编写目的只用于安全知识提升,并与更多人共享安全知识,切勿使用笔记中的技术进行违法活动,利用笔记中的技术造成的后果与作者本人无关.倡导维护网络安全人人有责,共同维护网络文明和谐. 目录 ...
- Linux服务器中了挖矿木马怎么办?-挖矿木马自助清理手册
什么是挖矿木马 挖矿木马会占用CPU进行超频运算,从而占用主机大量的CPU资源,严重影响服务器上的其他应用的正常运行.黑客为了得到更多的算力资源,一般都会对全网进行无差别扫描,同时利用SSH爆破和漏洞 ...
- Red Team远程控制软件
开源远程管理控制 https://github.com/malwaredllc/byob 僵尸网络生成框架 https://github.com/panda-re/lava 大规模向程序中植入恶意程序 ...
- paloalto防火墙安装内容和软件更新
1.为了确保您始终不会受到最新威胁(包括尚未发现的威胁)的攻击,您必须确保防火墙始终具有 Palo Alto Networks 发布的最新更新内容及软件. • Antivirus(防病毒)— 包括新的 ...
- Coablt strike官方教程中文译版本
安装和设置 系统要求 Cobalt Strike的最低系统要求 2 GHz +以上的cpu 2 GB RAM 500MB +可用空间 在Amazon的EC2上,至少使用较高核数的CPU(c1.medi ...
- 【转载】Chrome 0day漏洞:不要用Chrome查看pdf文件
英文原文地址:https://blog.edgespot.io/2019/02/edgespot-detects-pdf-zero-day-samples.html 中文原文地址:https://ww ...
- 揭秘Patchwork APT攻击-恶意软件样本BADNEWS
1.前言 在2016年左右研究人员发现一个与东南亚和中国南海问题的APT攻击,该APT攻击利用MS Offcie系列漏洞通过钓鱼邮件的形式欺骗受害者点击木马.以美国在内的各国政府和公司为目标发送了大量 ...
- 2018上半年DDoS攻击报告:流量峰值达1.7Tbps
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 2018年上半年DDoS攻防仍如火如荼发展,以IoT设备为反射点的SSDP反射放大尚未平息,Memcached DDoS又异军突起,以最高可 ...
随机推荐
- Vue-进阶:路由及elementUI组合开发
Vue-router路由 什么是vue-router? 服务端路由指的是服务器根据用户访问的 URL 路径返回不同的响应结果.当我们在一个传统的服务端渲染的 web 应用中点击一个链接时,浏览器会从服 ...
- HashMap底层源码分析
HashMap底层原理实现 1.HashMap初始化 jdk1.8版本之后:数组+链表+红黑树实现,先去观看HashMap的构造方法: 构造方法: public HashMap() { this.lo ...
- 不能显式拦截ajax请求的302响应?
记录工作中早该加深印象的一个小case: ajax请求不能显式拦截 302响应. 我们先来看一个常规的登录case: 浏览器请求资源,服务器发现该请求未携带相关凭据(cookie或者token) 服务 ...
- c语言代码练习3改进
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { int x = 0; printf("请输入一 ...
- Django框架项目之课程主页——课程页页面、课程表分析、课程表数据、课程页面、课程接口、前台、后台
文章目录 1-课程页页面 课程组件 2 课程主页之课程表分析 课程表分析 免费课案例 创建models:course/models.py 注册models:course/adminx.py 数据库迁移 ...
- Python基础——计算机组成原理、操作系统概述、编程语言的由来、编程语言分类、python介绍、 安装Cpython解释器、 第一个python程序
文章目录 一 引子: 1.1 什么是语言?什么是编程语言?为何要有编程语言? 1.2 什么是编程?为什么要编程? 二 计算机组成原理 2.1.什么是计算机? 2.2.为什么要用计算机? 2.3.计算机 ...
- 8. 用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP改造篇之HPACK原理
用Rust手把手编写一个wmproxy(代理,内网穿透等), HTTP改造篇之HPACK原理 项目 ++wmproxy++ gite: https://gitee.com/tickbh/wmproxy ...
- sql优化的方法总结
1.对查询进行优化,应该尽量避免全表扫描,首先应考虑在where和order by涉及的列上建立索引 2.应尽量避免在where子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表 ...
- Android_Camera2_ImageReader_onImageAvailable拍照秒退的解决办法
public void onImageAvailable(ImageReader reader) { try{ Image image = reader.acquireLatestImage();// ...
- [C++]P3379 LCA 最近公共祖先
最近公共祖先 LCA 倍增写法 LCA的倍增主要由三个重要的过程组成 预处理lg数组 DFS求fa depth 倍增节点 观看以下内容前建议先把完整代码大致纵览一遍,有利于理解各个函数的意义 倍增思想 ...