# Vuln Title: Skype Click to Call Update Service local privilege escalation # Date: 10.12.2012 # Author: otr # Software Link: http://www.skype.com # Vendor: Microsoft Corporation # Version: <= 6.2.0.106 # Tested on: Windows 7, Windows XP # Type: Privilege Escalation, DLL Hijacking # # CVE : MS does not assign CVE for Skype vulnerabilities # Risk: Medium # # Status: disclosed Timeline: 2012-12-10 Flaw Discovered 2013-01-07 Vendor contacted 2013-01-08 Vendor response 2013-02-07 Vendor works on fix 2013-02-11 Vendor provides fix 2013-03-15 Public disclosure Summary: The default installation of Skype is vulnerable to a local privilege escalation attack that allows an unprivileged attacker to execute arbitrary code with NT AUTHORITY/SYSTEM privileges. Context: The Click to Call feature installed together with Skype is run as a service with SYSTEM privileges on Windows systems. An unprivileged user may use the c2c_service.exe to elevate his privileges on the system. The Skype Click to Call Update Service is not always installed by the Skype installer. In particular it is not installed (and no further option is given to do so) if the user cancels the installation of Skype and then starts it again (even if the Click to Call feature was selected the first time the installer was run). This may actually constitute another bug, though not security relevant. However if the user installs Skype with all the default options in one run the service usually is present on the system. Vulnerability: The application directory of c2c_service.exe is writable by everybody. As c2c_service.exe loads various shared libraries in an unsafe way it is prone to a dll search order hijacking vulnerability (the application tries to load required dlls from its application directory first). Even without order hijacking it is possible to load a custom dll into the c2c_service.exe as it searches explicitly in its own application directory for the file msi.dll and loads it if found. Depending on the Windows version the Skype C2C Service application directory differs: On Windows 7: C:\ProgramData\Skype\Toolbars\Skype C2C Service On Windows XP: C:\Documents and Settings\All Users\Application Data\Skype\Toolbars\Skype C2C Service In order to get successful code execution the attacker needs to force the Click to Call service to be restarted. This can be archieved by rebooting the system. Exploitation Steps: Example using a modified msi.dll. In this case msi.dll simply imports another dll in order to keep the exploit and the payload seperate. - Modify original msi.dll to import another dll, e.g. payload.dll # wine binject -i msi.dll -m payload.dll -o msi-import-payload.dll - Create payload.dll file # msfpayload windows/adduser D > payload.dll - Copy modified msi.dll inside the "Skype C2C Service" directory - Copy payload.dll inside "Skype C2C Service" directory - Restart Windows - payload.dll is run with SYSTEM privileges. Possible Mitigations and Fixes: - securely load dlls using modified options for LoadLibraryEx (setting LOAD_LIBRARY_SEARCH_SYSTEM32 only in dwFlags) by modifying the program - disable loading msi.dll from the APPLICATION_DIR - make the "Skype C2C Service" folder is not world-writable - run the c2c_services.exe with lower privileges - uninstall the "Skype Click to Call Update Service" Fix: This issue was fixed in the February update of Skype by revoking write permission to the concerned folder.