KDC Spoofing com Kerberos MIT

             Marcelo Machado Fleury
         marcelomf[noSpam]gmail[p]com
    marcelo[p]fleury[noSpam]4linux[p]com[p]br
          Http://marcelomf.blogspot.com
       Http://www.slideshare.com/marcelomf
           Http://twitter.com/marcelomf


    #h2hc-community, #pev, #gojava, #gophp,
                  #owasp...


   “Vamos assar uns GNUs, quebrar umas janelas,
    comer umas maçãs ou matar uns demônios”
2

                        Agenda
    ●   Ambiente SSO
    ●   Kerberos
    ●   Pré-requisitos: DNS/BIND, NTP, /etc/...
    ●   Kerberização de serviços
    ●   Spoofing e Poisoning
    ●   KDC Spoofing
    ●   Demonstração
3

                     Ambiente SSO
    ●   SSO ? Single Sign-On.
    ●   Vantagens
           –   Autenticação centralizada
           –   Usabilidade
           –   Segurança (Kerberos/GSSAPI)
    ●   Cuidados
           –   Segurança (KDCSpoofing, vide apresentações
                 na blackhat)
           –   Disponibilidade
           –   Manutenção
4

                           Kerberos
    ●   História
            –   Projeto Athena. O Cão Cérbero do deus Hades.
            –   Versão 4 no final dos anos 80, por Steve Miller
                 e Clifford Neuman no MIT.
    ●   RFCs: 4120, 4537, 5021, 5896
    ●   Curiosidades
    ●   Implementações
            –   MIT, Heimdal, Micro$oft
                ...
5

                O ambiente Kerberos
    ●   TTP – Trusted Third Party
    ●   KDC – Key Distribution Center
            –   AS – Authentication Server
            –   TGS – Ticket Granting Server
    ●   SS – Service Server
    ●   TGT - Ticket Granting Ticket
    ●   Cliente
6

                   … o ambiente
    ●   REALMs
    ●   Cross-Realm Operation
    ●   PrincipalNames: primary/instance@REALM
    ●   ACLs
    ●   Backends diversos
    ●   Replicação, master/slave
    ●   Vários serviços podem ser kerberizados
    ●   APIs para diferentes linguagens
7




    ... Autenticação Kerberos ...
8
9
10

     Autenticação Kerberos
11

     Autenticação Kerberos
12

     Autenticação Kerberos
13

     Autenticação Kerberos
14

                    Kerberos CLI


     ●   Kinit
     ●   Klist
     ●   Kdestroy
15

            Daemons Kerberos MIT
     ●   Kadmind
            –   TCP: 749 (Administração, kadmin)
            –   TCP: 754 (Propagação)
            –   UDP: 464 (Alteração de senhas)
     ●   Krb5kdc
            –   TCP/UDP: 88 (KDC V.5)
            –   TCP/UDP: 750 (V. 4)
            –   TCP/UDP: 751 (V.4)
16

                   Os pré-requisitos
     ●   NTP/NTPD
            –   Clientes    e    servidores   com    relógios
                  sincronizados. Garantia de vida dos tickets
                  Kerberos.
     ●   DNS/BIND
            –   Utilizado pelos KDCs, clientes e serviços
                  kerberos e programas de administração
                  como o kadmin(.local).
     ●   IMPORTANTES
            –   /etc/hosts, /etc/hostname, /etc/resolv.conf
17

                 Entradas no DNS

     ●   _kerberos
     ●   _kerberos-master._udp
     ●   _kerberos-adm._tcp
     ●   _kpasswd._udp
     ●   _kerberos._udp
     ●   _ldap._tcp.seu.realm
18

             Serviços kerberizaveis
     ●   OpenLDAP, Pam, Samba, Squid, Apache, SSH,
         Postfix, Cyrus ...
     ●   Aplicações escritas em diversas linguagens
         como JAVA, PHP e C.
     ●   WS-Security
     ●   ***** SEMPRE VERIFIQUE SE A APLICAÇÃO
         ENVIA A SENHA EM TEXTO PLANO NO
         PRIMEIRO LOGIN *****
19

               Spoofing e Poisoning


     ●   ARP
     ●   DNS
     ●   KDC
20

                       KDC Spoofing

     ●   Não foge a regra
             –   BlackHat 2009
     ●   Possibilidade de realizar replay attacks
             –   Autenticação(AS_REQ/AS_REP)
             –   Autorização(TGS_REQ/TGS_REP
                  AP_REQ/AP_REP)
21

             Serviços kerberizaveis
     ●   OpenLDAP, Pam, Samba, Squid, Apache, SSH,
         Postfix, Cyrus ...
     ●   Aplicações escritas em diversas linguagens
         como JAVA, PHP e C.
     ●   WS-Security
     ●   ***** SEMPRE VERIFIQUE SE A APLICAÇÃO
         ENVIA A SENHA EM TEXTO PLANO NO
         PRIMEIRO LOGIN *****
22

                           POC



     ●   AS_REQ / AS_REP
Muito Obrigado!

               Marcelo Machado Fleury
           marcelomf[noSpam]gmail[p]com
      marcelo[p]fleury[noSpam]4linux[p]com[p]br
            Http://marcelomf.blogspot.com
         Http://www.slideshare.com/marcelomf
             Http://twitter.com/marcelomf


      #h2hc-community, #pev, #gojava, #gophp,
                    #owasp...


   "Conheço muitos que não puderam quando deviam,
    porque não quiseram quando podiam." By François
                       Rabelais

Kdc spoofing com kerberos mit

  • 1.
    KDC Spoofing comKerberos MIT Marcelo Machado Fleury marcelomf[noSpam]gmail[p]com marcelo[p]fleury[noSpam]4linux[p]com[p]br Http://marcelomf.blogspot.com Http://www.slideshare.com/marcelomf Http://twitter.com/marcelomf #h2hc-community, #pev, #gojava, #gophp, #owasp... “Vamos assar uns GNUs, quebrar umas janelas, comer umas maçãs ou matar uns demônios”
  • 2.
    2 Agenda ● Ambiente SSO ● Kerberos ● Pré-requisitos: DNS/BIND, NTP, /etc/... ● Kerberização de serviços ● Spoofing e Poisoning ● KDC Spoofing ● Demonstração
  • 3.
    3 Ambiente SSO ● SSO ? Single Sign-On. ● Vantagens – Autenticação centralizada – Usabilidade – Segurança (Kerberos/GSSAPI) ● Cuidados – Segurança (KDCSpoofing, vide apresentações na blackhat) – Disponibilidade – Manutenção
  • 4.
    4 Kerberos ● História – Projeto Athena. O Cão Cérbero do deus Hades. – Versão 4 no final dos anos 80, por Steve Miller e Clifford Neuman no MIT. ● RFCs: 4120, 4537, 5021, 5896 ● Curiosidades ● Implementações – MIT, Heimdal, Micro$oft ...
  • 5.
    5 O ambiente Kerberos ● TTP – Trusted Third Party ● KDC – Key Distribution Center – AS – Authentication Server – TGS – Ticket Granting Server ● SS – Service Server ● TGT - Ticket Granting Ticket ● Cliente
  • 6.
    6 … o ambiente ● REALMs ● Cross-Realm Operation ● PrincipalNames: primary/instance@REALM ● ACLs ● Backends diversos ● Replicação, master/slave ● Vários serviços podem ser kerberizados ● APIs para diferentes linguagens
  • 7.
    7 ... Autenticação Kerberos ...
  • 8.
  • 9.
  • 10.
    10 Autenticação Kerberos
  • 11.
    11 Autenticação Kerberos
  • 12.
    12 Autenticação Kerberos
  • 13.
    13 Autenticação Kerberos
  • 14.
    14 Kerberos CLI ● Kinit ● Klist ● Kdestroy
  • 15.
    15 Daemons Kerberos MIT ● Kadmind – TCP: 749 (Administração, kadmin) – TCP: 754 (Propagação) – UDP: 464 (Alteração de senhas) ● Krb5kdc – TCP/UDP: 88 (KDC V.5) – TCP/UDP: 750 (V. 4) – TCP/UDP: 751 (V.4)
  • 16.
    16 Os pré-requisitos ● NTP/NTPD – Clientes e servidores com relógios sincronizados. Garantia de vida dos tickets Kerberos. ● DNS/BIND – Utilizado pelos KDCs, clientes e serviços kerberos e programas de administração como o kadmin(.local). ● IMPORTANTES – /etc/hosts, /etc/hostname, /etc/resolv.conf
  • 17.
    17 Entradas no DNS ● _kerberos ● _kerberos-master._udp ● _kerberos-adm._tcp ● _kpasswd._udp ● _kerberos._udp ● _ldap._tcp.seu.realm
  • 18.
    18 Serviços kerberizaveis ● OpenLDAP, Pam, Samba, Squid, Apache, SSH, Postfix, Cyrus ... ● Aplicações escritas em diversas linguagens como JAVA, PHP e C. ● WS-Security ● ***** SEMPRE VERIFIQUE SE A APLICAÇÃO ENVIA A SENHA EM TEXTO PLANO NO PRIMEIRO LOGIN *****
  • 19.
    19 Spoofing e Poisoning ● ARP ● DNS ● KDC
  • 20.
    20 KDC Spoofing ● Não foge a regra – BlackHat 2009 ● Possibilidade de realizar replay attacks – Autenticação(AS_REQ/AS_REP) – Autorização(TGS_REQ/TGS_REP AP_REQ/AP_REP)
  • 21.
    21 Serviços kerberizaveis ● OpenLDAP, Pam, Samba, Squid, Apache, SSH, Postfix, Cyrus ... ● Aplicações escritas em diversas linguagens como JAVA, PHP e C. ● WS-Security ● ***** SEMPRE VERIFIQUE SE A APLICAÇÃO ENVIA A SENHA EM TEXTO PLANO NO PRIMEIRO LOGIN *****
  • 22.
    22 POC ● AS_REQ / AS_REP
  • 23.
    Muito Obrigado! Marcelo Machado Fleury marcelomf[noSpam]gmail[p]com marcelo[p]fleury[noSpam]4linux[p]com[p]br Http://marcelomf.blogspot.com Http://www.slideshare.com/marcelomf Http://twitter.com/marcelomf #h2hc-community, #pev, #gojava, #gophp, #owasp... "Conheço muitos que não puderam quando deviam, porque não quiseram quando podiam." By François Rabelais