social-engineer-toolkit/setup.py

84 lines
4 KiB
Python
Raw Normal View History

2012-12-31 22:11:37 +00:00
#!/usr/bin/env python
#
# Python installer
#
import subprocess
import sys
import os
2013-01-01 15:32:48 +00:00
import platform
2012-12-31 22:11:37 +00:00
# if nix then run installer
2013-01-01 15:32:48 +00:00
if platform.system() == "Linux":
2012-12-31 22:11:37 +00:00
# give installer a null value
installer = False
#Check user ID
if os.getuid() != 0:
print("Are you root? Please execute as root")
exit()
2012-12-31 22:11:37 +00:00
try:
# if our command option is true then install stuff
if sys.argv[1] == "install":
installer = True
# if index is out of range then flag options
except IndexError:
print("** SET Dependancy Installer **")
print("** Written by: Dave Kennedy (ReL1K) **")
print("** Visit: https://www.trustedsec.com **")
print("\nTo install: setup.py install")
2012-12-31 22:11:37 +00:00
# if user specified install then lets to the installation
if installer is True:
2012-12-31 22:11:37 +00:00
# if we trigger on sources.list then we know its ubuntu
if os.path.isfile("/etc/apt/sources.list"):
# force install of debian packages
subprocess.Popen("apt-get --force-yes -y install git build-essential python-pexpect python-pefile python-crypto python-openssl", shell=True).wait()
2012-12-31 22:11:37 +00:00
# If pacman.conf exists, we have a Arch based system
elif os.path.isfile("/etc/pacman.conf"):
subprocess.Popen("pacman -S --noconfirm --needed git python2 python2-beautifulsoup3 python2-pexpect python2-crypto", shell=True).wait()
subprocess.Popen("wget https://pefile.googlecode.com/files/pefile-1.2.10-139.tar.gz", shell=True).wait()
subprocess.Popen("tar xvfz pefile-1.2.10-139.tar.gz", shell=True).wait()
subprocess.Popen("chmod a+x pefile-1.2.10-139/setup.py", shell=True).wait()
subprocess.Popen("rm -rf pefile-1.2.10-139*", shell=True).wait()
# if sources.list or pacman.conf is not available then we're running something offset
2012-12-31 22:11:37 +00:00
else:
print("[!] You're not running a Debian or Arch variant. Installer not finished for this type of Linux distro.")
print("[!] Install git, python-pexpect, python-crypto, python-openssl, python-pefile manually for all of SET dependancies.")
2012-12-31 22:11:37 +00:00
sys.exit()
2013-01-01 15:32:48 +00:00
2013-04-15 14:26:00 +00:00
if os.path.isdir("/usr/share/setoolkit"):
print("[!] SET is already installed in /usr/share/setoolkit. Remove and start again.")
2013-04-15 14:26:00 +00:00
sys.exit()
if not os.path.isfile("/usr/bin/git"):
print("[-] Install failed. GIT is not installed. SET will not continue.")
print("[!] Install GIT and run the installer again.")
2013-04-15 14:26:00 +00:00
sys.exit()
print("[*] Moving SET into the /usr/share/ directory...")
subprocess.Popen("cd .. && mv social-engineer-toolkit setoolkit && mv setoolkit /usr/share/", shell=True).wait()
print("[*] Installing setoolkit installer to /usr/bin/setoolkit...")
subprocess.Popen("echo #!/bin/bash > /usr/bin/setoolkit", shell=True).wait()
subprocess.Popen("echo cd /usr/share/setoolkit >> /usr/bin/setoolkit", shell=True).wait()
subprocess.Popen("echo exec python2 setoolkit $@ >> /usr/bin/setoolkit", shell=True).wait()
subprocess.Popen("cp /usr/share/setoolkit/seupdate /usr/bin/", shell=True).wait()
subprocess.Popen("chmod +x /usr/bin/setoolkit", shell=True).wait()
print("[*] Note you will manually need to install Core Security 'Impacket'")
print("[*] Download link: http://corelabs.coresecurity.com/index.php?module=Wiki&action=view&type=tool&name=Impacket")
# https://impacket.googlecode.com/files/impacket-0.9.10.tar.gz
print("[*] Once downloaded, tar -zxvf impacket*, go to the directory and run python setup.py install.")
print("[*] We are now finished! To run SET, type setoolkit...")
2013-04-15 14:26:00 +00:00
2013-01-01 15:32:48 +00:00
if platform.system() =='Darwin':
subprocess.Popen("easy_install pexpect pycrypto pyopenssl pefile", shell=True).wait()
2013-01-01 15:32:48 +00:00
2013-04-15 14:26:00 +00:00
if platform.system() != "Linux":
2013-06-23 17:52:21 +00:00
if platform.system() != "Darwin":
print("[!] Sorry this installer is not designed for any other system other than Linux and Mac. Please install the Python dependencies manually.")