点击上方“蓝字”,关注更多精彩
0x00 云函数介绍
云函数(Serverless Cloud Function,SCF)是腾讯云为企业和开发者们提供的无服务器执行环境,可以无需购买和管理服务器的情况下运行代码。只需使用平台支持的语言编写核心代码并设置代码运行的条件,即可在腾讯云基础设施上弹性、安全地运行代码。SCF 是实时文件处理和数据处理等场景下理想的计算平台。总结云函数的几个特性:
多出口 调用时创建执行 无需服务器承载
由于云函数无法长驻,调用的时候创建,执行完之后立即就销毁,所以无法直接保存状态。也正是这一点,让我们无法代理像 SSH 这种需要长连接的服务,只能代理 HTTP (s) 这种无状态的协议。
云函数不能直接调用,同时还需要创建一个触发器来触发云函数,为了方便,我们选择使用 API 网关触发器,只需要一个 HTTP 请求就能触发。
0x01 隐藏webshell客户端ip地址
痛点分析
1、我在我的博客根目录下放了一个马
2、连接蚁剑,每次选择一个目录,都会发起一次http
请求并且目标能够记录我连接的同一个ip
,这与挂不挂代理无关,对方溯源查看日志的时候,直接搜一个ip
就全出来了。
所以可以通过云函数来做到,每次访问目标都能保证ip
发生变化
云函数配置
1、新建一个云函数
2、同理,如下配置
3、继续往下划,看到函数代码这里,将这段代码放入
# -*- coding: utf8 -*-
import requests
import json
def geturl(urlstr):
jurlstr = json.dumps(urlstr)
dict_url = json.loads(jurlstr)
return dict_url['u']
def main_handler(event, context):
url = geturl(event['queryString'])
postdata = event['body']
headers=event['headers']
resp=requests.post(url,data=postdata,headers=headers,verify=False)
response={
"isBase64Encoded": False,
"statusCode": 200,
"headers": {'Content-Type': 'text/html;charset='+resp.apparent_encoding},
"body": resp.text
}
return response
4、高级配置只需要设置一个执行超时时间即可,为了防止webshell掉线,把时间调高于蚁剑的超时时间即可。
5、最后一步,设置触发方式和API服务类型如图,随后点击完成即可。
6、创建成功后我们就获得了一个URL如图,
7、将这个URL拼接到我们的webshell
地址前面,加一个u
参数,再使用蚁剑去链接即可。
https://service-hhhhh-123456.xxxx.xxxx.xxxx.com/release/iloveyou?u=http://x.x.x.x/shell.php
8、我们在蚁剑翻动目录,对方的访问日志中,**ip
是一直发生变化的,显示的是TX云函数CDN的地址。**
为了达到更加隐秘的目的,可以对 Webshell
流量进行加解密的来逃逸流量检测,通过流量检测 + 白名单 IOC 的方式可以完美的逃避检测。
0x02 云函数快速部署代理池
痛点分析
平时我们使用dirsearch去扫描的时候,速度十分快,对方日志分析就能看出是同一个ip
进行的扫描,这时我们的ip
的很容易被溯源封禁等。
那么我们就可以使用云函数来快速部署代理池:通过客户端监听获取请求并且组装API请求,服务端云函数解析且重组API请求。。
下载脚本并kali配置go语言环境
项目地址:https://github.com/hashsecteam/scf-proxy
git clone https://github.com/hashsecteam/scf-proxy.git
apt install -y golang
go env -w GOPROXY=https://goproxy.cn #更改go代理,方便下载模块
cd scf-proxy & make #编译
云函数配置
1、新建函数后,如图进行配置,注意选择go
语言;函数代码就是刚才编译出来的server.zip
文件,执行方法一定要写上server
不然会报错。随后点击完成配置完毕。
2、刚才忘了创建触发器了,创建一个,一样的配置。
3、生成完毕后可以看到下方的URL
4、在kali
上使用客户端测试,-port
后面就是指定开启的本地代理端口。
./client -port 10086 https://service-xxxx.com/release/xxx
5、dirsearch
挂代理扫描,得出的ip
python3 dirsearch.py -u http://url -e * -x 301 --proxy=127.0.0.1:10086
云函数还有很多配置代理池的方法,这里补充一个:https://www.cnblogs.com/supdon/p/15099742.html
往期推荐
郑重声明:该公众号大部分文章来自作者日常工作与学习笔记,也有少数文章是经过原作者授权转载而来,未经授权,严禁转载。如需要,请公众号私信联系作者。
请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与原作者以及本公众号无关。
原文始发于微信公众号(HACK技术沉淀营):实战技巧 | 云函数反溯源方式(上)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论