SSH远程访问位于内网的安卓手机,用NetHunter和花生壳实现

关键词: 内网穿透, 端口映射, SSH协议, 花生壳, Kali NetHunter

2benben原创,是方法总会有人发现,转载请注明,以便造福大众。

本文针对普通家庭内网用户,有条件架设ngrok的大拿可以忽略。

在我国,由于网民众多,运营商无法保证为每一个宽带用户提供全球唯一的公网IPv4地址,每个宽带用户其实都处于一个“大的局域网”内,使用着运营商指定的IP。 没有公网IP,自然不能架设网站,使用SSH等服务。快这好比国外地广人稀,家家是独立门牌(公网IP)的别墅,快递员上门就可以找到你。我们人多地少,xx大街多少号这样的地址给了小区,每家人用公寓的门牌号(运营商指定IP),快递由小区的物业代收,再转发给你。这个转发过程,即端口映射(NAT),实现包裹从商家发到你手里的过程,就是内网穿透。

SSH是基于应用层的加密传输协议,由于其加密传输的特性,适合于不安全的网络环境中远程访问设备,常用的朋友都知道,但是如果在公网上使用,作为接收方必须有一个公网地址。(好比让快递员直接找到你,递送密件)

那么怎样通过SSH连上让没有公网地址的家庭设备,实现远程访问呢?最简单的方法是使用在设备上跑花生壳,通过端口映射实现内网穿透,这软件在win/mac/linux和树莓派上都有终端,唯独不支持安卓移动设备。手机可是最方便的设备啊! 有没有想过,远在天边的你拿一IPad,通过SSH访问位于任意内网的远程手机,在控制手机打开局域网内电脑,远程辅导孩子功课或者关掉电视节目?或者在不那么友好的滲透测试环境里,靠放一台手机优雅的完成任务,避免笨重的PC和一看就不是好人的树莓派的尴尬。 如何实现呢? 最简单的思路就是在手机上用虚拟机跑Linux,再装个Linux的花生壳客户端就可以了。

经过多次实测,我选择安装了Kali NetHunter Linux, 主要的原因是自带了大量网络测试工具,对于各位少侠来说轻车熟路。

实现的必要条件是:

1.一台Kali NetHunter支持的安卓手机(作者使用的是Nexus 6)

2.一个可运行ssh的终端(所作者使用的是iphone 5,随便装个Terminal软件)

实现步骤是:

1. 安装Kali NetHunter到安卓移动设备, 让Linux以Chroot方式在安卓移动设备上运行

2. 在Kali NeHunter Linux的Shell下安装和配置花生壳客户端

3. 在花生壳账户上配置端口映射

4. 将安卓移动设备接入目标内网,从任意外网设备通过SSH远程访问

如果这些您都熟悉,那么看到这可以结束了,如果有疑问,请跟着下面步骤一步步来:

1. 安装Kali Net Hunter到安卓移动设备

1.1 支持设备

首先需要一台 NetHunter 支持的移动设备,https://www.offensive-security.com/kali-linux-nethunter-download/所列的都可以。

1.2 刷原厂Rom和Kali NetHunter固件

先刷原厂rom,再刷NetHunter,具体的刷机方式请参考此链接:https://github.com/offensive-security/kali-nethunter/wiki%EF%BC%8C安卓下建议使用Team Winning Recovery Project从SD卡刷机,WIndows推荐Nexus Root Kit, Linux下使用NetHunter Linux Root Kit

1.3 当然你也可以通过虚拟机装Ubuntu、 Debian。。。

1.4 成功后你的移动设备里会出现 名为 NetHunter 的 APP 和 NetHunter Terminal 的 Shell

2. 在Kali NetHunter下安装和配置花生壳

2.1 打开Kali Net Hunter APP - 》 左上角的三道杠 -》Kali Service,在界面中选择打开SSH

2.2 下载花生壳客户端

浏览器打开https://hsk.oray.com/download/选择树莓派版本后复制下载地址(因为Andriod手机也是ARM架构,我抱着试一试的心态下载了树莓派版本而不是Linux版本,成功)

打开Nethunter Terminal APP (或用其他有键盘的终端SSH连接,手机打命令太麻烦)在Shell提示符下输入wget https://hsk.oray.com/download/download?id=25(这是我复制的地址,不一样请用你的)

2.3 安装客户端

Shell提示符下输入ls命令,看一下下载的文件名。Shell提示符下输入dpkg -i 刚才看到的文件名用dpkg命令安装

2.4 客户端启动和状态

安装结束后,Shell提示符下输入phddns start, 启动花生壳客户端,默认开机自行启动

Shell提示符下输入phddns status, 复制下图高亮所示区部位的SN

2.5 更改Root密码

Shell提示符下输入passwd命令, 设置Kali NetHunter的初始root密码

3.在花生壳账户上配置端口映射

3.3 登录管理页面

打开b.oray.com 这个管理页面,用SN码登录,默认密码是admin。

由于是第一次登录,需要手机验证,照做就好。用SN码登录是没有内网穿透的,这个登录操作相当于是激活了这个SN所在的设备,现在换用之前注册的帐号登录。此时如果连接成功,你注册的账号和设备账号前的图标是绿色的

3.4 添加映射

用自己的帐号登录。打开管理中心的"内网穿透" ,点击"添加映射"

映射类型: 自定义端口

域名: 注册的时候会送壳域名,随便选一个

应用名称: 随便填,就写ssh吧

内网主机: 填写需要映射的主机的内网ip如192.168.1.100,可以用ifconfig查到

内网端口: 22(SSH端口是22)

外网端口: 选临时端口,系统会随即给你指定一个。

如果成功会有提示。

3.5 通过SSH远程登陆内网手机

上一步成功后,“内网穿透”界面会有外网访问地址一项,显示您的“外网地址(主机名):端口号“。

4. 将安卓移动设备接入目标内网,从任意外网设备通过SSH远程访问

恭喜,用所给的地址和端口号就可以外网远程登陆SSH了。

在远程设备的Linux控制台输入ssh 用户名@外网地址(主机名):端口号, 由于Kali NetHunter默认root, 用户名这里写root就好,密码用刚才自己改的。

或者在客户端软件上自行配置以上信息。

在任意内网联网后,记得在Kali 的 shell下运行 ifconfig看下本机地址,对应更改花生壳的网站设置。

这是成功外网客户端(iphone 5)的运行效果,好了少年们,怎么用发挥你们的想象力吧!

  • 发表于:
  • 原文链接:https://kuaibao.qq.com/s/20180605G053FV00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

扫码关注云+社区

领取腾讯云代金券