目 录CONTENT

文章目录

绕过检测移动设备的一种思路

GrantLi
2018-10-27 / 0 评论 / 2 点赞 / 729 阅读 / 23855 字 / 正在检测是否收录...

Abstract
本教程是基于OpenWrt固件Drcom校园网客户端进行绕过检测移动设备到达反防代理设备的一种思路及实现方法,教程内容主要由三部分组成:刷OpenWrt固件,安装Dr.com插件和配置Privoxy防代理.
教程还介绍了如何用OpenWrt对Dr.com进行编译客户端UA的获取方法,对于动手能力强的小伙伴,可以自己尝试折腾一下;对于其他小伙伴,我都提供了已经编译好的ipk软件包和UA配置文件,主要用WinSCP对路由器后台相应文件进行操作就行了.

准备工作

应用环境

  • 所有支持OpenWrt固件的路由器
要求
  • 路由器联网并安装开发者插件
  • 熟悉WinSCP的使用
  • 熟悉putty登录路由器后台的操作
  • 熟悉Linux基本命令行的操作

刷OpenWrt

以极路由1S HC5661A为例

1.刷解锁版不死U-Root

进固件作者网站查找对应u-boot,下载自己路由器对应版本的固件, 以极路由1S HC5661A为例,如下图:
MQTT Logo
通过putty进入路由器后台,并下载安装uboot:

#连上路由器后台,进入tmp目录下
cd /tmp
#下载对应版本的U-Root
wget http://rssn.cn/roms/uboot/HC5661A-uboot.bin
#安装U-Root
mtd write HC5661A-uboot.bin u-boot

# 如果失败,可以试试下面的命令
mtd write HC5661A-uboot.bin firmware

2.刷OpenWrt固件

如果你是极路由1S或者是斐讯K2T,点开下面折叠内容可以让你提前结束战斗,其他小伙伴继续往下面奋斗吧:

New World(此部分为折叠内容,极路由1SHC5661A或者是斐讯K2T用户进入)

1.下载固件
(1)极路由HC5661A
下载链接:https://pan.baidu.com/s/1j70FVPeUYKBE7lvvNSVfEA
提取密码:GJXS
(2)斐讯K2T
下载链接:https://pan.baidu.com/s/1ZiMpEWsqWdRSenJywoOSaQ
提取密码:GJXS

2.通过Breed刷入下载的固件
首先,请确保你已经刷入了不死uboot,进入方法:
(1)拔掉电源,只留一根和电脑连接的网线(lan口)
(2)拿一个东西来捅住复位键,一边上电,等待路由器三个灯闪成一个灯的时候就松开(如果一直都是两个灯,那只能用命令行安装固件,直接看第五步)
(3)电脑浏览器打开192.168.1.1,就可以进入Breed Web
(4)形成好的习惯,刷之前把所有的东西备份一下,然后到固件更新那里选择刚刚下载的固件刷进去,(到这里结束,直接看第3步).
(5)通过WinSCP把固件上传到/tmp目录下
(6)用putty登录路由器后台(下面以极路由1S为例,K2T的把下面命令行相应的固件名改一下就行了):
    cd /tmp/
    sysupgrade -F -n HC5661A.bin

(7)等待安装完固件(到这里结束)

3.修改校园网账号
(1)登录OpenWrt后台: 地址:192.168.1.1 密码:admin (2)修改校园网账号和密码,MAC地址复制粘贴lan的MAC地址,然后任意修改后两位值 (3)重启生效

(1)查看一下路由器CPU的型号,以确定我们要刷什么版本的固件

cat /proc/cpuinfo

(2) 进入Table of Hardware: Firmware downloads查找cpu和型号对应的固件,并下载.

极路由1S HC5661A为例,如下图:

MQTT Logo
可以直接点击图中红框的网址直接下载,然后再通过WinSCP上传到路由器的/tmp目录下,下面操作是直接下载到路由器的/tmp目录下(要连网):

#下载固件
cd /tmp
wget http://downloads.openwrt.org/releases/18.06.1/targets/ramips/mt76x8/openwrt-18.06.1-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin

#刷机
sysupgrade -F -n openwrt-18.06.1-ramips-mt76x8-hc5661a-squashfs-sysupgrade.bin

等待路由器重启,到这里OpenWrt固件就安装成功了.

温馨提示:
1.刷机的时候最好用网线直连.

2.等待几分钟,当路由器自动重启说明成功(期间不要断开电源,不然就变砖了)


安装OpenWrt插件

登录路由器后台网址:192.168.1.1 起始密码:admin

1.安装gdut-drcom客户端

各个路由器相应版本Dr.com插件下载

路由器版本 下载链接 密码
极路由HC5661、HC5761和HC5861 下载链接 GJXS
极路由HC5661A和HC5861B 下载链接 GJXS
极路由HC5962 下载链接 GJXS
极路由HC6361 下载链接 GJXS
斐讯K2T 下载链接 GJXS
斐讯K2P 下载链接 GJXS
斐讯K1-PSG1208、K2-PSG1218和K2G 下载链接 GJXS

说明:由于路由器版本太多,可以选择自己编译,或者在评论区留言,提供路由器的型号,我看到会帮你们编译。

将下载是Drcom插件WinSCP传到路由器tmp文件夹下安装:

cd /tmp
#安装gdut-drcom客户端
opkg install gdut-drcom_6.0-4_mipsel_24kc.ipk

到这里,gdut-drcom客户端已经安装完了,直接到第2步配置网络,如果上面没有提供到gdut-drcom客户端的小伙伴继续看选做部分

选做:OpenWrt SDK编译gdut-drcom客户端

(1)下载OpenWrt SDK

首先进入OpenWrt 18.06

MQTT Logo

根据自己路由器的路由器型号进入相应的网站,以极路由HC5661A为例,进入ramips/mt76x8
MQTT Logo

找到openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz并下载

MQTT Logo

蓝色框表示SDK支持的路由器型号,红色框为SDK文件

2.编译drcom插件教程:

#解压文件夹
tar xjf openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz
cd ~/openwrt-sdk-18.06.0-ramips-mt76x8_gcc-7.3.0_musl.Linux-x86_64.tar.xz/
#进入package下载软件包
cd package && git clone https://github.com/GJXS1980/ODP.git
#编译
cd .. && make package/ODP/compile

最后编译完的软件包在/bin/packages/xxxx/base/目录下,到这里你也有一个适合自己路由器的drcom插件了,回到步骤1安装gdut-drcom客户端.

2.配置网络

(1)先查看lan的MAC地址并复制lan的MAC地址

MQTT Logo

(2)修改Dr.com客户端的配置:

MQTT Logo

说明:311xxxxxxx为自己的学号,MAC地址为刚刚复制的,然后随便改MAC地址后两位数字

重启,完成配置,应该可以拨号成功.


配置privoxy代理

1.安装privoxy及相关软件

先进入软件选项,如下图:
MQTT Logo

下载图中红框里面的三个软件,如下图:
MQTT Logo

2.配置privoxy

进入privoxy选项,开启privoxy网络代理,如下图:
MQTT Logo

开启Accept intercepted requests选项,如下图:
MQTT Logo

3.获取UserAgent

由于我已经整合了大部分的UA,基本可以满足要求,可以直接跳到第4步

获取UA有两个常用的方法:

方法一:通过网站直接查UA

(1) 点击UA查询网站:useragent

(2) 在AppleWebKit前面的就是我们想要的UA,如图所示,Mozilla/5.0 (X11; Linux x86_64)即我们要用到的UA
MQTT Logo
方法二:使用fiddler对手机上的程序进行抓包

由于网上很多教程,我这里就不展开讨论

推荐教程:
使用fiddler对手机上的程序进行抓包

使用fiddler实现手机抓包

4.修改UserAgent

通过WinSCP进入路由器后台,打开etc/privoxy/default.action文件,在文件最后面添加下面折叠部分的内容:

view code(此部分为折叠内容,点击即可打开)
#hide-user-agent
{+client-header-filter{android}}
/
{+client-header-filter{android1}}
/
{+client-header-filter{android2}}
/
{+client-header-filter{android3}}
/
{+client-header-filter{android4}}
/
{+client-header-filter{android5}}
/
{+client-header-filter{android6}}
/
{+client-header-filter{iPhone}}
/
{+client-header-filter{MACOS}}
/
{+client-header-filter{iPod}}
/
{+client-header-filter{iPad}}
/
{+client-header-filter{phone}}
/
{+client-header-filter{PHONE}}
/
{+client-header-filter{OS}}
/
{+client-header-filter{iPhone1}}
/
{+client-header-filter{iPhone2}}
/
{+client-header-filter{iPhone3}}
/
{+client-header-filter{Linux}}
/
{+client-header-filter{wv}}
/
{+client-header-filter{zh}}
/
{+client-header-filter{wifi}}
/
{+client-header-filter{WIFI}}
/
{+client-header-filter{PandoraBox}}
/
{+client-header-filter{OpenWrt}}
/
{+client-header-filter{mi51}}
/
{+client-header-filter{mi52}}
/
{+client-header-filter{mi61}}
/
{+client-header-filter{mi62}}
/
{+client-header-filter{mip1}}
/
{+client-header-filter{mip2}}
/
{+client-header-filter{mip3}}
/
{+client-header-filter{HUAWEI}}
/
{+client-header-filter{Honor}}
/
{+client-header-filter{TBS}}
/
{+client-header-filter{MI}}
/
{+client-header-filter{ONEPLUS}}
/
{+client-header-filter{vivo}}
/
{+client-header-filter{OPPO}}
/
{+client-header-filter{Redmi}}
/
{+client-header-filter{XiaoMi}}
/
{+client-header-filter{Xiaodu}}
/
{+client-header-filter{Xiaodu1}}
/
{+client-header-filter{AudioSpeaker}}
/
{+client-header-filter{TYPE}}
/
{+client-header-filter{mobile}}
/
{+client-header-filter{Mobile}}
/
{+client-header-filter{MicroMessenger}}
/
{+client-header-filter{MQQBrowser}}
/
{+client-header-filter{compatible}}
/
{+client-header-filter{MSIE}}
/
{+client-header-filter{Dalvik}}
/
{+client-header-filter{Safari}}
/
{+client-header-filter{IEMobile}}
/
{+client-header-filter{WAP}}
/
{+client-header-filter{MiuiBrowser}}
/
{+client-header-filter{BlackBerry}}
/
{+client-header-filter{Easemob}}
/
{+client-header-filter{Proxy}}
/
{+client-header-filter{app}}
/
{+client-header-filter{app1}}
/
{+client-header-filter{app2}}
/
{+client-header-filter{app3}}
/

+hide-user-agent{Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:62.0) Gecko/20100101 Firefox/62.0}
打开etc/privoxy/default.filter文件,在文件最后面添加下面折叠部分的内容:
view code(此部分为折叠内容,点击即可打开)
####################### Android System  #################
CLIENT-HEADER-FILTER: android Replace all "Android" with ""
s@\b(Android)\b@@ig

CLIENT-HEADER-FILTER: android1 Replace all "U" with ""
s@\b(U|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: android2 Replace all "Android 2.2.1" with ""
s@\b(Android 2.2.1|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: android3 Replace all "Android 8.1.0" with ""
s@\b(Android 8.1.0|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: android4 Replace all "Android 8.1" with ""
s@\b(Android 8.1|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: android5 Replace all "Android 8.0.0" with ""
s@\b(Android 8.0.0|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: android6 Replace all "Nexus One" with ""
s@\b(Nexus One|iP\w+)\b@@ig

###########################################################
####################### IOS System  #################
CLIENT-HEADER-FILTER: iPhone Replace all "iPhone" with ""
s@\b(iPhone)\b@@ig

CLIENT-HEADER-FILTER: MACOS Replace all "MAC OS" with ""
s@\b(MAC OS)\b@@ig

CLIENT-HEADER-FILTER: iPod Replace all "iPod" with ""
s@\b(iPod)\b@@ig

CLIENT-HEADER-FILTER: iPad Replace all "iPad" with ""
s@\b(iPad)\b@@ig

CLIENT-HEADER-FILTER: phone Replace all "phone" with ""
s@\b(phone)\b@@ig

CLIENT-HEADER-FILTER: PHONE Replace all "PHONE" with ""
s@\b(PHONE)\b@@ig

CLIENT-HEADER-FILTER: OS Replace all "OS" with ""
s@\b(OS)\b@@ig

CLIENT-HEADER-FILTER: iPhone1 Replace all "live4iphone" with ""
s@\b(live4iphone|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: iPhone2 Replace all "iOS 12.0" with ""
s@\b(iOS 12.0|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: iPhone3 Replace all "CPU iPhone OS 12_0 like Mac OS X" with ""
s@\b(CPU iPhone OS 12_0 like Mac OS X|iP\w+)\b@@ig
###########################################################
####################### Linux System  #################
CLIENT-HEADER-FILTER: Linux Replace all "Linux" with "Windows"
s@\b(Linux)\b@Windows@ig

CLIENT-HEADER-FILTER: wv Replace all "wv" with ""
s@\b(wv|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: zh Replace all "zh-cn" with ""
s@\b(zh-cn|iP\w+)\b@@ig
###########################################################
####################### wifi  #################
CLIENT-HEADER-FILTER: wifi Replace all "wifi" with ""
s@\b(wifi)\b@@ig

CLIENT-HEADER-FILTER: WIFI Replace all "WIFI" with ""
s@\b(WIFI)\b@@ig

CLIENT-HEADER-FILTER: PandoraBox Replace all "PandoraBox" with ""
s@\b(PandoraBox)\b@@ig

CLIENT-HEADER-FILTER: OpenWrt Replace all "OpenWrt" with ""
s@\b(OpenWrt)\b@@ig
###########################################################
####################### phone  #################
CLIENT-HEADER-FILTER: mi51 Replace all "MI 5 Build/OPR1.170623.032" with ""
s@\b(MI 5 Build\/OPR1\.170623\.032|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: mi52 Replace all "MI 5 MIUI" with ""
s@\b(MI 5 MIUI|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: mi61 Replace all "MI 6 Build/OPR1.170623.027" with ""
s@\b(MI 6 Build\/OPR1\.170623\.027|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: mi62 Replace all "MI 6 MIUI/V10.0.2.0.OCACNFH" with ""
s@\b(MI 6 MIUI\/V10\.0\.2\.0\.OCACNFH|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: mip1 Replace all "MI PAD 4 Build/OPM1.171019.019" with ""
s@\b(MI PAD 4 Build\/OPM1\.171019\.019|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: mip2 Replace all "MI PAD 4 MIUI" with ""
s@\b(MI PAD 4 MIUI|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: mip3 Replace all "Xiaomi-MI PAD" with ""
s@\b(Xiaomi-MI PAD|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: HUAWEI Replace all "HUAWEI" with ""
s@\b(HUAWEI)\b@@ig

CLIENT-HEADER-FILTER: Honor Replace all "Honor" with ""
s@\b(Honor)\b@@ig

CLIENT-HEADER-FILTER: TBS Replace all "TBS" with ""
s@\b(TBS)\b@@ig

CLIENT-HEADER-FILTER: MI Replace all "MI" with ""
s@\b(MI)\b@@ig

CLIENT-HEADER-FILTER: ONEPLUS Replace all "ONEPLUS" with ""
s@\b(ONEPLUS)\b@@ig

CLIENT-HEADER-FILTER: vivo Replace all "vivo" with ""
s@\b(vivo)\b@@ig

CLIENT-HEADER-FILTER: OPPO Replace all "OPPO" with ""
s@\b(OPPO)\b@@ig

CLIENT-HEADER-FILTER: Redmi Replace all "Redmi" with ""
s@\b(Redmi)\b@@ig

CLIENT-HEADER-FILTER: XiaoMi Replace all "XiaoMi" with ""
s@\b(XiaoMi)\b@@ig

CLIENT-HEADER-FILTER: Xiaodu Replace all "Xiaodu" with ""
s@\b(Xiaodu)\b@@ig

CLIENT-HEADER-FILTER: Xiaodu1 Replace all "Xiaodu-AudioSpeaker" with ""
s@\b(Xiaodu-AudioSpeaker)\b@@ig

CLIENT-HEADER-FILTER: AudioSpeaker Replace all "AudioSpeaker" with ""
s@\b(AudioSpeaker)\b@@ig
###########################################################
####################### others  #################
CLIENT-HEADER-FILTER: TYPE Replace all "NMF26X|R11s|NMF26F|1607-A01|R16NW|SM-G9500|HUAWEIBAC-AL00|BAC-AL00|HUAWEISTF-AL10|STF-AL10|KNT-UL10|NRD90M|M5 Note|HONORPRA-AL00|PRA-AL00|R16NW|SM-C9000|N2G47H|HUAWEIHWI-AL00|HWI-AL00|MMB29M|N2G47H|X9s|NJH47F|HUAWEIKNT-AL20|KNT-AL20|HONORLLD-AL10|LLD-AL10|HUAWEICOL-AL10|COL-AL10|R16NW|SM-G8850|OD103|OPPO|XIAOMI|MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE" with ""
s@\b(NMF26X|R11s|NMF26F|1607-A01|R16NW|SM-G9500|HUAWEIBAC-AL00|BAC-AL00|HUAWEISTF-AL10|STF-AL10|KNT-UL10|NRD90M|M5 Note|HONORPRA-AL00|PRA-AL00|R16NW|SM-C9000|N2G47H|HUAWEIHWI-AL00|HWI-AL00|MMB29M|N2G47H|X9s|NJH47F|HUAWEIKNT-AL20|KNT-AL20|HONORLLD-AL10|LLD-AL10|HUAWEICOL-AL10|COL-AL10|R16NW|SM-G8850|OD103|OPPO|XIAOMI|MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE)\b@@ig
###########################################################
####################### Web server  #################
CLIENT-HEADER-FILTER: mobile Replace all "mobile" with ""
s@\b(mobile)\b@@ig

CLIENT-HEADER-FILTER: Mobile Replace all "Mobile" with ""
s@\b(Mobile)\b@@ig

CLIENT-HEADER-FILTER: MicroMessenger Replace all "MicroMessenger" with ""
s@\b(MicroMessenger)\b@@ig

CLIENT-HEADER-FILTER: MQQBrowser Replace all "MQQBrowser" with ""
s@\b(MQQBrowser)\b@@ig

CLIENT-HEADER-FILTER: compatible Replace all "compatible" with ""
s@\b(compatible)\b@@ig

CLIENT-HEADER-FILTER: MSIE Replace all "MSIE" with ""
s@\b(MSIE)\b@@ig

CLIENT-HEADER-FILTER: Dalvik Replace all "Dalvik" with "Mozilla"
s@\b(Dalvik)\b@Mozilla@ig

CLIENT-HEADER-FILTER: Safari Replace all "Safari" with "Chrome"
s@\b(Safari)\b@Chrome@ig

CLIENT-HEADER-FILTER: IEMobile Replace all "IEMobile" with ""
s@\b(IEMobile)\b@@ig

CLIENT-HEADER-FILTER: WAP Replace all "WAP" with ""
s@\b(WAP)\b@@ig

CLIENT-HEADER-FILTER: MiuiBrowser Replace all "MiuiBrowser" with "Chrome"
s@\b(MiuiBrowser)\b@Chrome@ig

CLIENT-HEADER-FILTER: BlackBerry Replace all "BlackBerry" with ""
s@\b(BlackBerry)\b@@ig

CLIENT-HEADER-FILTER: Easemob Replace all "Easemob-SDK" with ""
s@\b(Easemob-SDK)\b@@ig

CLIENT-HEADER-FILTER: Proxy Replace all "Proxy" with ""
s@\b(Proxy)\b@@ig
###########################################################
############## app ################
CLIENT-HEADER-FILTER: app Replace all "AMAP_Location_SDK_Android" with ""
s@\b(AMAP_Location_SDK_Android|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: app1 Replace all "qqlive4iphone" with ""
s@\b(qqlive4iphone|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: app2 Replace all "Bilibili Freedoooooom/MarkII" with ""
s@\b(Bilibili Freedoooooom\/MarkII|iP\w+)\b@@ig

CLIENT-HEADER-FILTER: app3 Replace all "AndroidSDK_27_clover_8.1.0" with ""
s@\b(AndroidSDK_27_clover_8.1.0|iP\w+)\b@@ig

5.添加每天自动重启

进入路由器网页版后台,找到系统–>计划任务,在框里添加下面代码:

00 6 * * * sleep 5 && touch /etc/banner && reboot

每天早上6点钟会自动重启路由器,如果你想要其他时间重启,可以改成其他时间.

6.使环境生效

iptables -t nat -N PrivoxyUA
iptables -t nat -A PREROUTING -i br-lan -p tcp -j PrivoxyUA
iptables -t nat -A PrivoxyUA -p tcp --dport 80 -j REDIRECT --to-ports 8118

最后重启路由器,到这里路由器的配置基本完成,可以安心搞科研了。


可能产生的问题

问题1:

 * opkg_conf_load: Could not lock /var/lock/opkg.lock: Resource temporarily unavailable.

解决方法:

 echo "nameserver 114.114.114.114">/tmp/resolv.conf
rm -f /var/lock/opkg.lock
opkg update

问题2:如果发现按照这个教程来,还是发现会断线

解决方法:可能是没有找全所有在连设备的UA(同一设备,不同浏览器的UA会不一样),这时候建议看看privoxy的日志,一般都有相关User-Agent显示,再把它们按照教程隐藏就好了,具体操作如下:

执行使环境生效那一步,然后在Privoxy网络代理里面的日志查看器,点击读取/刷新日志文件,就可以查看具体的日志文件,如下图:

MQTT Logo

然后找到相关的User-Agent,添加到etc/privoxy/default.action文件里面就行了.

问题3:编译mt7620版本的插件时,会缺依赖

解决方法:安装下面的依赖

sudo apt-get install gawk
sudo apt-get install libncurses5-dev

然后再重新编译。


参考链接:
[1] 使用OpenWrt路由自动修改http请求的UserAgent来躲过移动设备检测


2

评论区