关于绕过移动屏蔽的技术方法详解

July 27, 2025 ・0 comments

 该方法最早在去年推出,去年年底曾有消息称其已失效,但经实际多次测试与体验,目前已恢复可用,能稳定实现绕过移动屏蔽的效果。此方法操作对象为已安装节点且正常运行的服务器(行业内常称 “小鸡”),具体步骤如下:

步骤一:准备工作
确保你的 “小鸡” 处于正常运行状态。你可以通过远程连接工具(如 Xshell、Putty 等)尝试登录服务器终端界面,若能成功登录,说明 “小鸡” 状态正常,可进行后续操作。
步骤二:获取代码文件内容

cat <<'EOF' >geneva.py
#!/usr/bin/env python3

import os
import signal
from scapy.all import *
from netfilterqueue import NetfilterQueue
import argparse

window_size = 4

def modify_window(pkt):
    try:
        ip = IP(pkt.get_payload())
        if ip.haslayer(TCP) and ip[TCP].flags == "SA":
            ip[TCP].window = window_size
            del ip[IP].chksum
            del ip[TCP].chksum
            pkt.set_payload(bytes(ip))
        elif ip.haslayer(TCP) and ip[TCP].flags == "FA":
            ip[TCP].window = window_size
            del ip[IP].chksum
            del ip[TCP].chksum
            pkt.set_payload(bytes(ip))
        elif ip.haslayer(TCP) and ip[TCP].flags == "PA":
            ip[TCP].window = window_size
            del ip[IP].chksum
            del ip[TCP].chksum
            pkt.set_payload(bytes(ip))
        elif ip.haslayer(TCP) and ip[TCP].flags == "A":
            ip[TCP].window = window_size
            del ip[IP].chksum
            del ip[TCP].chksum
            pkt.set_payload(bytes(ip))
    except:
        pass

    pkt.accept()

def parsearg():
    parser = argparse.ArgumentParser(description='Description of your program')

    parser.add_argument('-q', '--queue', type=int, help='iptables Queue Num')
    parser.add_argument('-w', '--window_size', type=int, help='Tcp Window Size')

    args = parser.parse_args()

    if args.queue is None or args.window_size is None:
        exit(1)
    
    window_size = args.window_size

    return args.queue

def main():
    queue_num = parsearg()
    nfqueue = NetfilterQueue()
    nfqueue.bind(queue_num, modify_window)

    try:
        print("Starting netfilter_queue process...")
        nfqueue.run()
    except KeyboardInterrupt:
        pass

if __name__ == "__main__":
    #sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 0)
    signal.signal(signal.SIGINT, lambda signal, frame: sys.exit(0))
    main()
EOF

安裝依賴:
yum install -y python3 python3-devel gcc gcc-c++ git libnetfilter* libffi-devel
pip3 install --upgrade pip
pip3 install scapy netfilterqueue

執行程序:
nohup python3 geneva.py -q 100 -w 4 &
iptables -I OUTPUT -p tcp -m multiport --sports 80,443 --tcp-flags SYN,RST,ACK,FIN,PSH SYN,ACK -j NFQUEUE --queue-num 100
步骤三:执行 “安装依赖” 上方内容
  1. 在浏览器中选中 “安装依赖” 上方的所有内容,选中后右键点击,选择 “复制” 选项。
  1. 切换到已成功登录 “小鸡” 的远程连接工具终端界面,右键点击终端空白处,选择 “粘贴”,将复制的内容粘贴到终端中。
  1. 粘贴完成后,按下键盘上的 “回车键”,系统会自动执行该部分代码,完成相应的配置操作。在此过程中,终端会显示执行进度和相关信息,你只需等待执行完成即可。
步骤四:执行 “安装依赖” 下方内容
  1. 回到浏览器中,找到 “安装依赖” 下方的内容,这些内容是一系列独立的命令。
  1. 选中第一条命令,右键点击选择 “复制”,然后切换到终端界面,右键粘贴该命令,按下 “回车键” 执行。
  1. 等待第一条命令执行完成(终端不再有新的信息输出,且出现命令输入提示符)后,再按照同样的方法复制第二条命令,粘贴到终端并执行。
  1. 重复上述操作,直到 “安装依赖” 下方的所有命令都被逐行复制并执行完毕。
步骤五:了解技术原理与延伸方法
  1. 技术原理:该方法核心理论来源于技术帖《301 海外跳转原理解析兼谈缓解假墙伪墙攻击勒索的多种技术手段(一)》,链接https://github.com/lehui99/articles/blob/main/301 海外跳转原理解析兼谈缓解假墙伪墙攻击勒索的多种技术手段(一).md。该技术帖详细阐述了 301 海外跳转的底层逻辑以及应对相关网络攻击的技术思路。若你具备一定编程基础,尤其是熟悉 C 语言,使用 C 语言实现该方法会更有优势,因为 C 语言执行效率高、底层控制能力强,能提升绕过效果的稳定性和效率。
  1. 延伸方法:除上述方法外,还有使用 Go 语言实现绕过移动屏蔽的方法,项目地址https://github.com/linwoodpendleton/gogo2。Go 语言简洁高效、并发性能好,该项目基于其特性实现了类似的绕过逻辑,也能达到目的。
实际上,只要深入理解上述技术帖阐述的核心原理,即网络请求的跳转机制、数据传输的封装与解析等关键技术点,就能举一反三,衍生出多种实现方法。这些方法虽在编程语言和代码实现上有差异,但本质围绕相同技术原理,通过对网络传输过程进行特定处理,实现绕过移动屏蔽的效果。
內容來自HOSTLOC作者:番職男孩

Post a Comment

If you can't commemt, try using Chrome instead.