实战技巧 | 云函数反溯源方式(上)

admin 2022年7月12日11:46:30评论277 views字数 2533阅读8分26秒阅读模式
实战技巧 | 云函数反溯源方式(上)

点击上方“蓝字”,关注更多精彩

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


实战技巧 | 云函数反溯源方式(上)


往期推荐

中间件安全 | Tomcat部署与常见漏洞全总结

内网渗透 | 正向代理与nginx反向代理详解

Linux系统安全 | 交互与非交互式shell详解

内网渗透 | bash反弹失败情况与应对总结

内网渗透 | 文件共享服务与ipc横向详解


郑重声明该公众号大部分文章来自作者日常工作与学习笔记,也有少数文章是经过原作者授权转载而来,未经授权,严禁转载。如需要,请公众号私信联系作者。

请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与原作者以及本公众号无关。

实战技巧 | 云函数反溯源方式(上)
实战技巧 | 云函数反溯源方式(上)
扫码关注
人若无名便可潜心练剑
专注渗透测试、工具开发


原文始发于微信公众号(HACK技术沉淀营):实战技巧 | 云函数反溯源方式(上)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年7月12日11:46:30
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战技巧 | 云函数反溯源方式(上)http://cn-sec.com/archives/1171808.html

发表评论

匿名网友 填写信息