#!/bin/bash # Simple-Ducky Payload Generator Installer v1.1.1 # Last Updated: 24 Jun 2013 # Author: Travis Weathers (skysploit) | skysploit@gmail.com ####################################################### # Simple-Ducky Download ####################################################### f_installer(){ clear echo -e "\e[1;34m[*] Please wait while I download and install the Simple-Ducky Payload Generator\e[0m" echo "" sleep 4 rm -rf /usr/share/ducky rm -rf /usr/share/simple-ducky/ git clone --recursive git://github.com/skysploit/simple-ducky.git /usr/share/simple-ducky bash /usr/share/simple-ducky/install.sh echo "" echo -e "\e[1;32m[+] The Simple-Ducky installed sucessfully.\e[0m" echo "" sleep 4 clear echo -e "\e[1;34m[*] Performing an APT Update prior to installing dependencies...\e[0m\n" sleep 3 apt-get update echo "" echo -e "\e[1;32m[+] APT Update complete...\e[0m" sleep 3 clear echo -e "\e[1;34m[*] Please wait while I install some dependencies...\e[0m\n" sleep 3 updatedb mkdir /tmp/simple-ducky/ echo "" machine=$(cat /etc/issue) if [ "$machine" == "Kali GNU/Linux 1.0 \n \l" ]; then echo -e "\n\e[1;34m[*] I see that you are using Kali-Linux. This will only take a few moments...\e[0m" echo "" sleep 3 f_kaliinstall else f_otherdebian fi } ######################################################## # Kali Install ######################################################## f_kaliinstall(){ reqs="pure-ftpd dfu-programmer burpsuite mingw32" for i in $reqs; do dpkg -s "$i" &> /tmp/simple-ducky/$i-install.txt isinstalled=$(cat /tmp/simple-ducky/$i-install.txt | grep -o "Status: install ok installed") if [ ! -e /usr/bin/$i ] && [ ! -e /usr/sbin/$i ] && [ ! -e /usr/local/sbin/$i ] && [ ! -e /usr/local/bin/$i ] && [ -z "$isinstalled" ]; then echo -e "\e[1;33m[-] It doesn't appear that $i is installed on your system. Installing it now...\e[0m" echo "" if [ ! -z $(apt-get install -y "$i" | grep -o "E: Couldn") ]; then echo -e "\e[1;31m[-] I had a hard time installing $i from the Kali-Linux repository.\e[0m" touch /tmp/simple-ducky/$i-fail else dpkg -s "$i" &> /tmp/simple-ducky/$i-install.txt isinstalled=$(cat /tmp/simple-ducky/$i-install.txt | grep -o "Status: install ok installed") if [ ! -z "$isinstalled" ]; then update=1 echo -e "\e[1;32m[+] Good news, $i installed without any issues.\e[0m" echo "" sleep 2 else echo "" echo -e "\e[1;31m[!] It doesn't appear that I will be able to install $i right now.\e[0m" echo "" sleep 2 fi fi else echo -e "\e[1;32m[+] $i is already installed on your system, moving on...\e[0m" echo "" sleep 2 fi done f_java } ######################################################## # Other Debian Install ######################################################## f_otherdebian(){ reqs="pure-ftpd file-roller dfu-programmer apache2 burpsuite netcat p7zip-full nmap mingw32 john" for i in $reqs; do dpkg -s "$i" &> /tmp/simple-ducky/$i-install.txt isinstalled=$(cat /tmp/simple-ducky/$i-install.txt | grep -o "Status: install ok installed") if [ ! -e /usr/bin/$i ] && [ ! -e /usr/sbin/$i ] && [ ! -e /usr/local/sbin/$i ] && [ ! -e /usr/local/bin/$i ] && [ -z "$isinstalled" ]; then echo -e "\e[1;33m[-] It doesn't appear that $i is installed on your system. Installing it now...\e[0m" echo "" if [ ! -z $(apt-get install -y "$i" | grep -o "E: Couldn") ]; then echo -e "\e[1;31m[-] I had a hard time installing $i from the Kali-Linux repository.\e[0m" touch /tmp/simple-ducky/$i-fail.txt else dpkg -s "$i" &> /tmp/simple-ducky/$i-install.txt isinstalled=$(cat /tmp/simple-ducky/$i-install.txt | grep -o "Status: install ok installed") if [ ! -z "$isinstalled" ]; then update=1 echo -e "\e[1;32m[+] Good news, $i installed without any issues.\e[0m" echo "" sleep 2 else echo "" echo -e "\e[1;31m[!] It doesn't appear that I will be able to install $i right now.\e[0m" echo "" sleep 2 fi fi else echo -e "\e[1;32m[+] $i is already installed on your system, moving on...\e[0m" echo "" sleep 2 fi done f_metasploit } ######################################################## # Metasploit ######################################################## f_metasploit(){ clear echo -e "\e[1;34m[*] Checking to see if Metasploit is installed...\e[0m\n" if [ ! -e /usr/bin/msfconsole ] && [ ! -e /usr/sbin/msfconsole ] && [ ! -e /usr/local/sbin/msfconsole ] && [ ! -e /usr/local/bin/msfconsole ]; then update=1 echo -e "\n\e[1;34m[*] It doesn't appear that Metasploit is installed on your system. Installing it now...\e[0m" echo "" machine=$(uname -m) if [ "$machine" == "x86_64" ]; then wget http://downloads.metasploit.com/data/releases/metasploit-latest-linux-x64-installer.run -O /tmp/simple-ducky/metasploit-latest-linux-x64-installer.run echo -e "\n\e[1;33m[*] Launching the Metasploit installer. Select all the defaults and DONT launch the web UI...\e[0m" echo "" sleep 3 chmod 755 /tmp/simple-ducky/metasploit-latest-linux-x64-installer.run /tmp/simple-ducky/metasploit-latest-linux-x64-installer.run else wget http://downloads.metasploit.com/data/releases/metasploit-latest-linux-installer.run -O /tmp/simple-ducky/metasploit-latest-linux-installer.run echo -e "\n\e[1;33m[*] Launching the Metasploit installer. Select all the defaults and DONT launch the web UI...\e[0m" echo "" sleep 3 chmod 755 /tmp/simple-ducky/metasploit-latest-linux-installer.run /tmp/simple-ducky/metasploit-latest-linux-installer.run fi cd /usr/bin msfprogs="msfconsole msfupdate msfencode msfpayload" for z in $msfprogs; do if [ ! -e /usr/bin/$z ]; then ln -f -s /usr/local/bin/$z $z fi done fi echo -e "\e[1;32m[+] Good news, Metasploit installed without any issues.\e[0m" echo "" sleep 2 f_setoolkit } ######################################################## # SE-Toolkit ######################################################## f_setoolkit(){ clear echo -e "\e[1;34m[+] Checking to see if the Social Engineering Toolkit is installed...\e[0m\n" echo "" sleep 4 dpkg -s "set" &> /tmp/simple-ducky/set-install.txt setoolkit=$(cat /tmp/simple-ducky/set-install.txt | grep -o "Status: install ok installed") if [ "$setoolkit" == "Status: install ok installed" ]; then echo -e "\e[1;32m[+] The SE-Toolkit is already installed on your system, moving on...\e[0m" echo "" sleep 4 else echo -e "\e[1;33m[-] It doesn't appear that the SE-Toolkit is installed on your system. Installing it now...\e[0m" echo -e "" sleep 3 git clone https://github.com/trustedsec/social-engineer-toolkit/ /tmp/simple-ducky/set/ chmod 755 /tmp/simple-ducky/set/setup.py python /tmp/simple-ducky/set/setup.py install echo "" echo -e "\e[1;32m[+] Good news, the SE-Toolkit installed without any issues.\e[0m" echo "" sleep 2 fi bsuite=$(cat /tmp/simple-ducky/burpsuite-install.txt | grep -o "is not installed" ) if [ "$bsuite" == "is not installed" ]; then f_burpsuite else f_java fi } ######################################################## # Burpsuite ####################################################### f_burpsuite(){ clear echo -e "\e[1;34mTrying a different approach to install Burpsuite...\e[0m\n" echo "" sleep 3 mkdir /usr/share/burpsuite/ wget http://portswigger.net/burp/burpsuite_free_v1.5.jar -O /usr/share/burpsuite/burpsuite.jar chmod 755 /usr/share/burpsuite/burpsuite.jar ln -s /usr/share/burpsuite/burpsuite.jar /usr/bin/burpsuite.jar echo "" echo -e "\e[1;32m[+] Good news, Burpsuite installed without any issues.\e[0m" sleep 3 clear f_java } ######################################################## # JavaInstall ######################################################## f_java(){ clear echo -e "\e[1;34m[+] Checking your JDK version, I will update it if needed...\e[0m\n" echo "" sleep 4 java -version &> /tmp/simple-ducky/java-version.txt javainstall=$(cat /tmp/simple-ducky/java-version.txt | grep -o "1.7.0") if [ "$javainstall" == "1.7.0" ]; then echo -e "\e[1;32m[+] It looks like your JDK is up to date, moving on..." sleep 4 else echo -e "\e[1;33m[+] It looks like we need to update JDK to version 1.7.0\e[0m" echo -e "" sleep 3 apt-get install -y openjdk-7-jre-headless echo "" echo -e "\e[1;33m[*] When prompted select the option for: '...java-7-openjdk...'\e[0m" echo "" sleep 4 update-alternatives --config java echo "" echo -e "\e[1;32m[+] Your new JDK version is...\e[0m" echo "" java -version sleep 5 clear fi f_ftpconfig } ######################################################## # Alternate John Installer (Disabled) ######################################################## f_johninstall(){ echo -e "\n\e[1;34m[*] It doesn't appear that John is installed on your system. Installing it now...\e[0m" echo "" machine=$(uname -m) if [ "$machine" == "x86_64" ]; then wget http://www.openwall.com/john/g/john-1.7.9-jumbo-7.tar.gz -O /tmp/simple-ducky/john-1.7.9-jumbo-7.tar.gz mkdir /usr/share/john/ cd /tmp/simple-ducky/ tar zxvf /tmp/simple-ducky/john-1.7.9-jumbo-7.tar.gz cd john-1.7.9-jumbo-7/ cp * /usr/share/john/ cd /usr/share/john/src/ make make clean generic ln -s /usr/share/john/run/john /usr/bin/john touch /usr/bin/john.ini touch /usr/share/john/john.ini touch /root/john.ini else wget http://www.openwall.com/john/g/john-1.7.9-jumbo-7.tar.gz -O /tmp/simple-ducky/john-1.7.9-jumbo-7.tar.gz mkdir /usr/share/john/ cd /tmp/simple-ducky/ tar zxvf /tmp/simple-ducky/john-1.7.9-jumbo-7.tar.gz cd john-1.7.9-jumbo-7/ cp * /usr/share/john/ cd /usr/share/john/src/ make make clean generic ln -s /usr/share/john/run/john /usr/bin/john touch /usr/bin/john.ini touch /usr/share/john/john.ini touch /root/john.ini fi echo "" echo -e "\e[1;32m[+] Good news, Burpsuite installed without any issues.\e[0m" sleep 3 clear f_ftpconfig } ################################################################## # FTP Configuration ################################################################## f_ftpconfig(){ clear echo -e "\e[1;34mChecking to see if pure-ftpd has been configured. I will walk you through configuration if it is not...\e[0m\n" echo "" sleep 4 cat /etc/group &> /tmp/simple-ducky/ftp-group1.txt cat /etc/group &> /tmp/simple-ducky/ftp-group2.txt ftpconfig1=$(cat /tmp/simple-ducky/ftp-group1.txt | grep -o "ftpgroup:x:1000") ftpconfig2=$(cat /tmp/simple-ducky/ftp-group2.txt | grep -o "ftpgroup:x:1001") if [ "$ftpconfig1" == "ftpgroup:x:1000" ]; then echo -e "\e[1;32m[+] I see that you have already configured pure-ftpd, moving on...\e[0m" echo "" sleep 4 elif [ "$ftpconfig2" == "ftpgroup:x:1001" ]; then echo -e "\e[1;32m[+] I see that you have already configured pure-ftpd, moving on...\e[0m" echo "" sleep 4 else echo -e "\e[1;33m[*] It doesn't appear that you have setup pure-ftpd... Let's start!\e[0m" echo "" read -p "[-] Who would you like the primary user to be? " ftpusername echo "" echo -e "\e[1;33m[-] Configuring pure-FTPD for: $ftpusername\e[0m" echo "" sleep 3 groupadd ftpgroup useradd -g ftpgroup -d /dev/null -s /etc ftpuser echo -e "\e[1;33m[-] Please set the password for $ftpusername.\e[0m" pure-pw useradd $ftpusername -u ftpuser -d /ftphome pure-pw mkdb cd /etc/pure-ftpd/auth/ ln -s ../conf/PureDB 60pdb echo "" echo -e "\e[1;33m[-] Creating your home directory, it will reside at /ftphome/\e[0m" echo "" sleep 3 mkdir /ftphome chown -R ftpuser:ftpgroup /ftphome/ echo -e "\e[1;33m[-] Starting the FTP server.\e[0m" echo "" sleep 2 service pure-ftpd restart echo "" echo -e "\e[1;32m[+] Done! To test your new account, in a new terminal type: ftp 127.0.0.1\e[0m" echo "" read -p "Press any key to contiue" enter fi f_cleanupexit } ################################################################################# # Cleanup and exit ################################################################################# f_cleanupexit(){ clear echo "" echo -e "\e[1;32m[+] The installation process is complete!\e[0m" echo "" echo -e "\e[1;32m[+] Type: simple-ducky in the terminal to launch...\e[0m" echo "" echo -e "\e[1;32m[+] Note: The simple-ducky is now located at /usr/share/simple-ducky\e[0m" echo "" read -p "Press any key to continue" continue rm -rf /tmp/simple-ducky/ clear exit } ################################################################################# # Run as Root Query ################################################################################# resize -s 35 115 cd /usr/share/ducky/encoder if [ "$(id -u)" != "0" ]; then echo -e "\e[1;31m[!] This script must be run as root\e[0m" 1>&2 exit 1 else f_installer fi