-
Notifications
You must be signed in to change notification settings - Fork 62
Expand file tree
/
Copy pathset
More file actions
176 lines (142 loc) · 6.77 KB
/
set
File metadata and controls
176 lines (142 loc) · 6.77 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
#!/usr/bin/python
from src.core.setcore import *
from src.core.menu import text
from config.update_config import update_config
import os
import subprocess
import sys
import shutil
import re
#########################################
# The Social-Engineer Toolkit (SET) #
# Written by: David Kennedy (ReL1K) #
# Email: davek@secmaniac.com #
#########################################
#
# this is the main menu structure for SET
# main menu
# grab the operating system
operating_system = check_os()
# chmod routine
if operating_system == "posix":
# change permissions if nix
subprocess.Popen("chmod +x set-automate;chmod +x set-update;chmod +x setup.py;chmod +x set-proxy;chmod +x src/payloads/ratte/ratteserver;chmod +x src/payloads/set_payloads/listener.py", stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=True)
# remove old files
for root, dirs, files in os.walk('src/program_junk/'):
for f in files:
try:
match = re.search(".svn|entries|all-wcprops|props|text-base|prop-base|tmp", f)
if not match:
os.unlink(os.path.join(root, f))
# if they are being used then ignore
except: pass
# loop through all the directories
for d in dirs:
try:
match = re.search(".svn|entries|all-wcprops|props|text-base|prop-base|tmp", d)
if not match:
shutil.rmtree(os.path.join(root, d))
except: pass
# if windows then do some stuff
if operating_system == "posix":
################################################
# ROOT CHECK
################################################
if os.geteuid() != 0:
print "\n The Social-Engineer Toolkit (SET) - by David Kennedy (ReL1K)"
print "\n Not running as root. \n\nExiting the Social-Engineer Toolkit (SET).\n"
exit_set()
if operating_system != "windows":
check_pexpect()
# if there isn't a set_config.py file yet, create one
if not os.path.isfile("config/set_config.py"):
update_config()
check_beautifulsoup()
define_version = get_version()
cleanup_routine()
# create the set.options routine
filewrite = file("src/program_junk/set.options", "w")
filewrite.write("{This is the main SET configuration file for all options used in SET}\n")
filewrite.close()
try:
# Remove old Signed_Updates
if os.path.isfile("src/program_junk/Signed_Update.jar"):
os.remove("src/program_junk/Signed_Update.jar")
# intitial user menu
if not os.path.isfile("src/agreement4"):
fileopen = file("readme/LICENSE", "r")
for line in fileopen:
print line.rstrip()
print bcolors.RED + """
The Social-Engineer Toolkit is designed purely for good and not evil. If you are planning on using this tool for malicious purposes that are
not authorized by the company you are performing assessments for, you are violating the terms of service and license of this toolset. By hitting
yes (only one time), you agree to the terms of service and that you will only use this tool for lawful purposes only.""" + bcolors.GREEN
choice = raw_input("\nDo you agree to the terms of service [y/n]: ")
if choice == "yes" or choice == "y":
filewrite = file("src/agreement4", "w")
filewrite.write("user accepted")
filewrite.close()
print bcolors.ENDC
else:
print "[!] Exiting the Social-Engineer Toolkit, have a nice day." + bcolors.ENDC
sys.exit()
while 1:
show_banner(define_version,'1')
show_main_menu = create_menu(text.main_text, text.main_menu)
# special case of list item 99
print '\n 99) Exit the Social-Engineer Toolkit\n'
# mainc ore menu
main_menu_choice = (raw_input(setprompt("0", "")))
# funny
if main_menu_choice == "hugs":
print_warning("Have you given someone a hug today? Remember a hug can change the world.")
pause = raw_input("\nPlease give someone a hug then press {return} to continue.")
# funny2
if main_menu_choice == "derbycon":
print_warning(bcolors.BOLD + "YAYYYYYYYYYYYYYYYYYYYYYY DerbyCon.\n\nDerbyCon 2.0 'Dropping the Deuce' -- September 27th through September 30th 2012" + bcolors.ENDC)
pause = raw_input(bcolors.BOLD + "\nWe reunite! Sep 27 - Sep 30! Press {return} to continue." + bcolors.ENDC)
# quit out
if main_menu_choice == 'exit' or main_menu_choice == "99" or main_menu_choice == "quit":
exit_set()
# cleans up stale processes from SET
try:
# kill anything python running on 80
kill_proc("80","python")
# kill anything on 443 ruby which is generally a rogue listener
kill_proc("443", "ruby")
except: pass
# load set
if main_menu_choice == '1':
try:
reload(src.core.set)
except:
import src.core.set
# load fasttrack
if main_menu_choice == '2':
try: reload(src.core.fasttrack)
except: import src.core.fasttrack
# third party modules
if main_menu_choice == '3':
try: reload(src.core.module_handler)
except: import src.core.module_handler
# update metasploit
if main_menu_choice == '4':
update_metasploit()
# update set
if main_menu_choice == '5':
update_set()
# credits
if main_menu_choice == '6':
update_config()
# update config
if main_menu_choice == '7':
help_menu()
# handle keyboard interrupts
except KeyboardInterrupt:
print "\n\n Thank you for " + bcolors.RED+"shopping" + bcolors.ENDC+" at the Social-Engineer Toolkit.\n\n Hack the Gibson...and remember...hugs are worth more than handshakes.\n"
# handle exceptions
except Exception, error:
log(error)
print "\n\n Something went wrong, printing the error: "+ str(error)
# cleanup routine
cleanup_routine()