使用云函数
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
}
},
}
每个用户下亦可以配置多个云函数类型(目前只支持腾讯云),其中 SecretId 和 SecretKey 为账户申请的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地址发起。