[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Executable installers are vulnerable^WEVIL (case 16): Trend Micro's installers allows arbitrary (remote) code execution



Hi @ll,

TrendMicro_MAX_10.0_US-en_Downloader.exe (available from
<http://trial.trendmicro.com/US/TM/2016/TrendMicro_MAX_10.0_US-en_Downloader.exe>)
loads and executes ProfAPI.dll and UXTheme.dll (and other DLLs
too) eventually found in the directory it is started from
(the "application directory").

For software downloaded with a web browser the application
directory is typically the user's "Downloads" directory: see
<https://insights.sei.cmu.edu/cert/2008/09/carpet-bombing-and-directory-poisoning.html>,
<http://blog.acrossecurity.com/2012/02/downloads-folder-binary-planting.html>
and <http://seclists.org/fulldisclosure/2012/Aug/134>

If one of the DLLs named above gets planted in the user's
"Downloads" directory per "drive-by download" or "social
engineering" this vulnerability becomes a remote code execution.


Proof of concept/demonstration:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. visit <http://home.arcor.de/skanthak/sentinel.html>, download
   <http://home.arcor.de/skanthak/download/SENTINEL.DLL>, save it
   as UXTheme.dll in your "Downloads" directory, then copy it as
   ProfAPI.dll;

2. download TrendMicro_MAX_10.0_US-en_Downloader.exe and save it
   in your "Downloads" directory;

3. execute TrendMicro_MAX_10.0_US-en_Downloader.exe from your
   "Downloads" directory;

4. notice the message boxes displayed from the DLLs placed in step 1.

PWNED!


For a denial of service instead of arbitrary (remote) code execution
copy the downloaded UXTheme.dll as OLEAcc.dll and WinSpool.drv.
This is easily turned into arbitrary (remote) code execution too:
just add the exports OpenPrinterW, ClosePrinter and DocumentPropertiesW
respectively LresultFromObject and CreateStdAccessibleObject to the DLL.


See <http://seclists.org/fulldisclosure/2015/Nov/101> and
<http://seclists.org/fulldisclosure/2015/Dec/86> as well as
<http://home.arcor.de/skanthak/sentinel.html> and the still unfinished
<http://home.arcor.de/skanthak/!execute.html> for more details about
this well-known and well-documented BEGINNER'S error and why
executable installers (and self-extractors too) are bad.


Additionally, TrendMicro_MAX_10.0_US-en_Downloader.exe creates an
unsafe temporary directory where it unpacks its payload to and 
executes it from.

...\TrendMicro_MAX_10.0_US-en_Downloader\Agent\TisEzIns.exe loads
and executes multiple DLLs too from its unsafe application directory:
ProfAPI.dll, NTMarta.dll, RASAdHlp.dll, NTShrUI.dll, UXTheme.dll and
Secur32.dll plus WinMM.dll, Version.dll, WinSpool.drv, WinHttp.dll
and OLEAcc.dll


Proof of concept/demonstration:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

5. unpack TrendMicro_MAX_10.0_US-en_Downloader.exe (basically a
   7-Zip self-extractor) into an arbitrary directory, say "%TEMP%"
   (this creates a subdirectory "%TEMP%\Agent" with the payload);

6. copy the downloaded UXTheme.dll from step 1 into "%TEMP%\Agent",
   then copy it as ProfAPI.dll, NTMarta.dll, RASAdHlp.dll, NTShrUI.dll,
   Secur32.dll plus WinMM.dll, Version.dll, WinSpool.drv, WinHttp.dll
   and OLEAcc.dll there;

7. execute "%TEMP%\Agent\TisEZIns.exe";

8. notice the message boxes displayed from the DLLs placed in steps 5
   and 6.

PWNED!


stay tuned
Stefan Kanthak


Timeline:
~~~~~~~~~

2015-12-20    multiple reports sent to vendor

2015-12-20    one report bounced due to braindead mail setup by vendor

2015-12-20    resent bounced report via alternative provider

2015-12-21    vendor acknowledges receipt and names further contact

2015-12-28    vendor verifies reports, can reproduce it on Windows 7

2015-12-30    vendor asks for verification:
              "We did not reproduce the vulnerability relating to
               ProfAPI.dll and UXTheme.dll on Windows 7."

2015-12-31    sent verification to vendor

2015-12-31    bounced due to braindead mail setup by vendor

<GCC_CONSRECEIVE@xxxxxxxxxxxxxxxxxxxxxx>: host
    support.trendmicro.com.e0018.g0009.ng0090.im.emailsecurity.trendmicro.com[150.70.178.57]
    said: 554 5.7.1 <GCC_CONSRECEIVE@xxxxxxxxxxxxxxxxxxxxxx>: Recipient address
    rejected: ERS-RBL. (in reply to RCPT TO command)

<tm-csirt@xxxxxxxxxxxxxx>: host sjdc-itpf-04.udc.trendmicro.com[66.180.82.132]
    said: 550 5.7.1 Service unavailable; Client host [151.189.21.43] blocked
    using Trend Micro RBL+. Please see
    http://www.mail-abuse.com/cgi-bin/lookup?ip_address=151.189.21.43; Mail
    from 151.189.21.43 blocked using Trend Micro Email Reputation database.
    Please see <http://www.mail-abuse.com/cgi-bin/lookup?151.189.21.43>;
    from=<<stefan.kanthak@xxxxxxxx> ; SIZE=8184> to=<<tm-csirt@xxxxxxxxxxxxxx>
    ; ORCPT=rfc822;tm-csirt@xxxxxxxxxxxxxx> proto=ESMTP
    helo=<mail-in-03.arcor-online.net> (in reply to end of DATA command)

2015-12-31    report published: vendor is obviously not interested in
              communication