前言
考虑整一个近源网络跳板,平均下来便宜+简单的实现就是弄一个安卓手机了,4G卡用来控制手机,然后用WIFI接入,再选择是否通过4G卡转发。感觉可以试着整一个,毕竟自带4G上网模块又有wifi模块不考虑性能低端机成本又低
稍微看了下第一个问题就是安卓默认机制是不能同时使用wifi和4G。
第二个是得考虑如何转发emmmmm
看了一下,其实也不需要魔改安卓系统,倒是可以用命令行进行一些操作。具体操作基本就是insmod加载wifi驱动然后启用网卡然后用命令行连接ap然后写路由就行
大概有了点思路,就弄一个openvpn,作为服务写到安卓系统里默认启动,然后再做一个c2控制器,用来控制连接wifi,断开wifi等以及修改openvpn路由等操作,然后这个c2控制器永远走4G流量,必要的时候可以通过c2控制器修改路由表进行桥接wifi流量啊,转发wifi流量啊或者让指定程序只走wifi流量这样子。。大概就能简单又轻松的实现想要的功能了。
现在的问题是,有什么机器是,便宜(<=100)又电池(>=3500毫安)又大又能解锁(虽然我觉得低端机大多数都是直接拿exp就能拿root的)的
更新
后面思考了一下,其实并不一定需要内置openvpn,其实只要内置一个标准的tty给反弹出来,需要的时候根据需求起动相关服务就行。本篇文章就记录下当你有一个安卓shell时候的一些小操作。
获得temux环境
直接使用adb,如果你想在adb中直接操作termux,可以在adb中使用如下代码
resize > /dev/null
export PREFIX='/data/data/com.termux/files/usr'
export HOME='/data/data/com.termux/files/home'
export LD_LIBRARY_PATH='/data/data/com.termux/files/usr/lib'
export PATH="/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:$PATH"
export LANG='en_US.UTF-8'
export SHELL='/data/data/com.termux/files/usr/bin/bash'
cd "$HOME"
exec "$SHELL" -l
注意,此时会遇到一个坑!有时候运行如上代码会发现没有权限问题,这时候一定要使用su切换到root,运行ls -al /data/data/com.termux
查看termux的用户是哪个用户,然后exit推出root权限之后用su切换过去。
因为有时候adb的默认权限是shell,会引发一些权限问题。如图
配置wifi/4g/otg共通
这章才是本篇的重头戏,毕竟openvpn配不来无所谓,实在不行起个frp也是一样凑合的打,不一定要openvpn。但是不能wifi和4g同时上网那可是不行的,不然遇到奇怪的网络环境甚至是不出网的网络环境,我们的这个跳板也就基本白费了。
默认手机基本是根据网络路由来连接的,我们只需要设置一下路由就行。
比如我们的4G使用的是rmnet_data3网卡,wifi走的是wlan0网卡
那么我们只需要使用命令
ip rule add to 我们管理端IP/32 table rmnet_data3
就可以让管理端IP通过4g出网
使用iw连接目标wifi
iw list // 列出WIFI网卡的性能
svc wifi enable //启用wifi模块
iw dev wlan0 scan // 扫描附近可连接WIFI AP
iw wlan0 connect dswei // 连接到不加密的WIFI,WIFI名字为dswei
iw wlan0 connect dswei keys d:0:baiwenwang123 // 连接到WEP加密的WIFI,WIFI名为dswei,d: default, 0: 第0个密码
连接成功以后可以在手机上看到有设备连接,这样我们就能连进目标内网进行愉快的玩耍啦
配置开机自启动
adb切换usb传输模式
进阶:path 添加模拟hid设备支持
这章可能会咕咕咕
openvpn(废弃,没啥用,不如直接frp反弹个个出来)
第一步,既然是作为跳板,其实直接部署一个frp或者natsocks直接转发出一个socks5出来是最最最简单的状态,并且这些东西都是用golang编写的,直接跨平台交叉编译arm版本的frp或者natsocks就行。简单粗暴。但是考虑到内网实战环境,比如一些路由、数据嗅探(这个是主要的)、桥接等等七七八八的问题。所以打算整一套openvpn先。
为了后续方便,我们先安装一个termux先。termux自带了openvpn,理论上可以直接pkg install openvpn,然后我看它给的单独那个二进制有点问题。起不来,还阉割了许多东西。所以直接进行一个openvpn的编译就行。
正巧,termux能很方便的给我们整出一个完整的编译链。所以接下来的调试我们都直接用termux进行,然而在电脑上操作手机都是直接使用adb,如果你想在adb中直接操作termux,可以在adb中使用如下代码
resize > /dev/null
export PREFIX='/data/data/com.termux/files/usr'
export HOME='/data/data/com.termux/files/home'
export LD_LIBRARY_PATH='/data/data/com.termux/files/usr/lib'
export PATH="/data/data/com.termux/files/usr/bin:/data/data/com.termux/files/usr/bin/applets:$PATH"
export LANG='en_US.UTF-8'
export SHELL='/data/data/com.termux/files/usr/bin/bash'
cd "$HOME"
exec "$SHELL" -l
注意,此时会遇到一个坑!有时候运行如上代码会发现没有权限问题,这时候一定要使用su切换到root,运行ls -al /data/data/com.termux
查看termux的用户是哪个用户,然后exit推出root权限之后用su切换过去。
因为有时候adb的默认权限是shell,会引发一些权限问题。如图
之后在termux中的shell里,我们只需要
pkg install clang
pkg install cmake
安装基础环境,之后直接去github下载openvpn,github地址:https://github.com/OpenVPN/openvpn
切换成root进行编译,因为安卓的一些读写机制,/sdcard这类地方是没办法设置权限的,所以尽量把下载的数据放到/tmp或者放到termux目录(/data/data/com.termux/files/home)下,这类地方才可以设置权限。
给configure设置u+x权限,然后执行后。会出现以下各种奇奇怪怪的问题,首先就是缺少依赖
这种直接使用pkg安装就行,比如如图的lzo,我们可以用pkg install liblzo-dev
解决。
再或者就是遇到这种:
直接在编译后面加上它的--disable-xxxxx
就行,总之它说啥就是啥。加上这些之后,基本configure就会通过生成MakeFile文件啦。
之后自信满满的make,就会发现,啊
所以直接运行pkg install automake
,之后使用automake
就能编译出这些依赖。
之后使用make
等待编译成功就行了。然后就可以使用make install
了。这时候你就会发现一些/或者/usr这些目录是没有办法写的,因为挂载的时候就没有相关权限。这时候我们就需要运行df -h
,查看相关挂载,并使用mount -o rw,remount /
来对相关目录就行重新读写挂载
MakeFile默认的安装目录是/usr/local
,我这挂载点是/,所以直接运行mount -o rw,remount /
就行了。如果要修改地址就自己修改脚本修改到其他地址即可。
然后你就会发现openvpn安装成功了。
直接使用easy-rsa
,直接去github上下载,直接下载release,然后chmod下就能使用了。之后直接参考:[OpenVPN服务部署
][8]
生成完证书,再根据需要写一下配置文件,最后运行 openvpn --config /your_conf_path.conf
就可以跑起来啦
大概可以考虑下随身Wifi,这东西跑的也是安卓,有4g有wifi,有些还自带openwrt。。。