使用云函数

ExpDepos 内置实现了腾讯云函数的自动部署与代理HTTP请求功能,在使用云函数之前需要确保账号已开通云函数权限,并在 config/config.py 文件中配置 Config["CloudFunctions"] 配置项。

警告

使用云函数可能产生一定费用,相关计费标准请参考使用的云函数服务对应计费规则。

配置

在配置云函数之前请参考云函数提供商帮助文档生成安全凭证,腾讯云可参考 签名方法 申请安全凭证帮助创建API秘钥对。并按如下格式配置云函数相关参数:

Config["CloudFunctions"] = [
{
"Tencent": {"SecretId": "*********************************",
            "SecretKey": "*********************************",
            "Provisioned": {"Number": 100},
            "useGlobal": False
            }
},
]

以上配置为单用户腾讯云函数配置,为最大限度利用云函数资源 ExpDepos 提供多用户配置模式,例如:

Config["CloudFunctions"] = {
"user1": {
            "Tencent": {"SecretId": "*********************************",
                        "SecretKey": "*********************************",
                        "Provisioned": {"Number": 100},
                        "useGlobal": False
                        }
         },
"user2": {
            "Tencent": {"SecretId": "*********************************",
                        "SecretKey": "*********************************",
                        "Provisioned": {"Number": 100},
                        "useGlobal": False
                        }
          },
}

每个用户下亦可以配置多个云函数类型(目前只支持腾讯云),其中 SecretIdSecretKey 为账户申请的API秘钥对。 Provisioned 为函数默认 预置并发 数, useGlobal 为是否使用全球的地区,默认只使用国内及香港地区。

部署

正确配置云函数后需要初始化云函数才能正常使用,在命令行下使用 --scfinit 选项自动完成云函数初始化,交互式Shell下则是 scfinit 命令。这个过程 ExpDepos 将使用 data/scf/functions/ExpDeposRequestProxy/src/index.py 的代码在您的账户下自动完成云函数的创建和部署,该过程可能需要1-5分钟时间。

初始化云函数:

$ python3 cli.py --scfinit

使用

在命令行中使用 --scf 选项来启用云函数功能,交互式Shell下则是使用 setg 命令设置 useScf 参数值为 true,启用云函数后模块中的所有HTTP请求将自动使用云函数进行代理。

使用云函数为模块的HTTP请求进行代理:

$ python3 cli.py -M modules/exploits/webapp/example.py -H http://www.target.com --scf

备注

启用云函数功能后云函数代理的每一个请求都会使用不同的IP地址发起。