35
35
import threading
36
36
import base64
37
37
import time
38
+ import ConfigParser
38
39
from sys import argv
39
40
from commands import *
40
41
from getpass import getpass
@@ -70,17 +71,16 @@ def yesOrNo():
70
71
71
72
72
73
'''
73
- Variables
74
+ Config
74
75
'''
76
+ configFile = 'fsociety.cfg'
75
77
76
- toolDir = "tools/"
77
- logDir = "logs/"
78
- directories = ['/uploads/' , '/upload/' , '/files/' , '/resume/' , '/resumes/' , '/documents/' , '/docs/' , '/pictures/' , '/file/' , '/Upload/' , '/Uploads/' , '/Resume/' , '/Resume/' , '/UsersFiles/' , '/Usersiles/' , '/usersFiles/' , '/Users_Files/' , '/UploadedFiles/' ,
79
- '/Uploaded_Files/' , '/uploadedfiles/' , '/uploadedFiles/' , '/hpage/' , '/admin/upload/' , '/admin/uploads/' , '/admin/resume/' , '/admin/resumes/' , '/admin/pictures/' , '/pics/' , '/photos/' , '/Alumni_Photos/' , '/alumni_photos/' , '/AlumniPhotos/' , '/users/' ]
80
- shells = ['wso.php' , 'shell.php' , 'an.php' , 'hacker.php' , 'lol.php' , 'up.php' , 'cp.php' , 'upload.php' ,
81
- 'sh.php' , 'pk.php' , 'mad.php' , 'x00x.php' , 'worm.php' , '1337worm.php' , 'config.php' , 'x.php' , 'haha.php' ]
82
- upload = []
83
- yes = ['yes' , 'y' , 'ye' , 'Y' ]
78
+ config = ConfigParser .RawConfigParser ()
79
+ config .read (configFile )
80
+
81
+ toolDir = config .get ('fsociety' , 'toolDir' )
82
+ logDir = config .get ('fsociety' , 'logDir' )
83
+ yes = config .get ('fsociety' , 'yes' ).split ()
84
84
85
85
fsocietylogo = color .END + '''
86
86
d88888b .d8888. .d88b. .o88b. d888888b d88888b d888888b db db
@@ -90,14 +90,32 @@ def yesOrNo():
90
90
88 db 8D `8b d8' Y8b d8 .88. 88. 88 88
91
91
YP `8888Y' `Y88P' `Y88P' Y888888P Y88888P YP YP
92
92
'''
93
+ fsocietyPrompt = "fsociety ~# "
93
94
alreadyInstalled = "Already Installed"
94
95
continuePrompt = "\n Click [Return] to continue"
95
96
97
+ termsAndConditions = '''
98
+ I shall not use fsociety to:
99
+ (i) upload or otherwise transmit, display or distribute any
100
+ content that infringes any trademark, trade secret, copyright
101
+ or other proprietary or intellectual property rights of any
102
+ person; (ii) upload or otherwise transmit any material that contains
103
+ software viruses or any other computer code, files or programs
104
+ designed to interrupt, destroy or limit the functionality of any
105
+ computer software or hardware or telecommunications equipment;
106
+ '''
107
+
96
108
97
109
'''
98
110
Starts Menu Classes
99
111
'''
100
-
112
+ def agreement ():
113
+ while not config .getboolean ("fsociety" , "agreement" ):
114
+ clearScr ()
115
+ print (termsAndConditions )
116
+ agree = raw_input ("You must agree to our terms and conditions first (Y/n) " ).lower ()
117
+ if agree in yes :
118
+ config .set ('fsociety' , 'agreement' , 'true' )
101
119
102
120
class fsociety :
103
121
def __init__ (self ):
@@ -119,7 +137,7 @@ def __init__(self):
119
137
{11}-CONTRIBUTORS
120
138
{99}-EXIT\n
121
139
''' )
122
- choice = raw_input ("fsociety~# " )
140
+ choice = raw_input (fsocietyPrompt )
123
141
clearScr ()
124
142
if choice == "1" :
125
143
informationGatheringMenu ()
@@ -142,12 +160,16 @@ def __init__(self):
142
160
elif choice == "11" :
143
161
self .githubContributors ()
144
162
elif choice == "99" :
163
+ #with open(configFile, 'wb') as configfile:
164
+ #config.write(configfile)
145
165
sys .exit ()
166
+ elif choice == "\r " or choice == "\n " or choice == "" or choice == " " :
167
+ self .__init__ ()
146
168
else :
147
169
try :
148
170
print (os .system (choice ))
149
171
except :
150
- self . __init__ ()
172
+ pass
151
173
self .completed ()
152
174
153
175
def githubContributors (self ):
@@ -198,7 +220,7 @@ def __init__(self):
198
220
" {3}--pyPISHER - Tool to create a mallicious website for password pishing" )
199
221
print (" {4}--SMTP Mailer - Tool to send SMTP mail\n " )
200
222
print (" {99}-Back To Main Menu \n " )
201
- choice6 = raw_input ("fsociety~# " )
223
+ choice6 = raw_input (fsocietyPrompt )
202
224
clearScr ()
203
225
if choice6 == "1" :
204
226
setoolkit ()
@@ -244,7 +266,7 @@ def __init__(self):
244
266
" {11}-BruteX - Automatically brute force all services running on a target" )
245
267
print (" {12}-Arachni - Web Application Security Scanner Framework \n " )
246
268
print (" {99}-Back To Main Menu \n " )
247
- choiceweb = raw_input ("fsociety~# " )
269
+ choiceweb = raw_input (fsocietyPrompt )
248
270
clearScr ()
249
271
if choiceweb == "1" :
250
272
maine ()
@@ -316,7 +338,7 @@ def __init__(self):
316
338
print (" {2}--POET" )
317
339
print (" {3}--Phishing Framework \n " )
318
340
print (" {99}-Return to main menu \n " )
319
- choice11 = raw_input ("fsociety~# " )
341
+ choice11 = raw_input (fsocietyPrompt )
320
342
clearScr ()
321
343
if choice11 == "1" :
322
344
sitechecker ()
@@ -361,7 +383,7 @@ def __init__(self):
361
383
print (" {7}--Doork" )
362
384
print (" {8}--Crips\n " )
363
385
print (" {99}-Back To Main Menu \n " )
364
- choice2 = raw_input ("fsociety~# " )
386
+ choice2 = raw_input (fsocietyPrompt )
365
387
clearScr ()
366
388
if choice2 == "1" :
367
389
nmap ()
@@ -433,7 +455,7 @@ def menu(self, target):
433
455
print (" {2}--Port Scan [-Pn]" )
434
456
print (" {3}--Operating System Detection [-A]\n " )
435
457
print (" {99}-Return to information gathering menu \n " )
436
- response = raw_input ("nmap~# " )
458
+ response = raw_input ("nmap ~# " )
437
459
clearScr ()
438
460
logPath = "logs/nmap-" + strftime ("%Y-%m-%d_%H:%M:%S" , gmtime ())
439
461
try :
@@ -532,7 +554,7 @@ def menu(self, target):
532
554
print (" {2}--Plugin Enumeration [--enumerate p]" )
533
555
print (" {3}--All Enumeration Tools [--enumerate]\n " )
534
556
print (" {99}-Return to information gathering menu \n " )
535
- response = raw_input ("wpscan~# " )
557
+ response = raw_input ("wpscan ~# " )
536
558
clearScr ()
537
559
logPath = "../../logs/wpscan-" + \
538
560
strftime ("%Y-%m-%d_%H:%M:%S" , gmtime ()) + ".txt"
@@ -719,7 +741,7 @@ def __init__(self):
719
741
print (
720
742
" {2}--BruteX - Automatically bruteforces all services running on a target\n " )
721
743
print (" {99}-Back To Main Menu \n " )
722
- choice3 = raw_input ("passwd~# " )
744
+ choice3 = raw_input ("passwd ~# " )
723
745
clearScr ()
724
746
if choice3 == "1" :
725
747
cupp ()
@@ -785,7 +807,7 @@ def __init__(self):
785
807
print (" {2}--pixiewps" )
786
808
print (" {3}--Bluetooth Honeypot GUI Framework \n " )
787
809
print (" {99}-Back To The Main Menu \n " )
788
- choice4 = raw_input ("fsociety~# " )
810
+ choice4 = raw_input (fsocietyPrompt )
789
811
clearScr ()
790
812
if choice4 == "1" :
791
813
reaver ()
@@ -903,7 +925,7 @@ def __init__(self):
903
925
print (" {8}--Bruteforce the Android Passcode given the hash and salt" )
904
926
print (" {9}--Joomla SQL injection Scanner \n " )
905
927
print (" {99}-Go Back To Main Menu \n " )
906
- choice5 = raw_input ("fsociety~# " )
928
+ choice5 = raw_input (fsocietyPrompt )
907
929
clearScr ()
908
930
if choice5 == "1" :
909
931
atscan ()
@@ -1329,7 +1351,7 @@ def __init__(self, serverip):
1329
1351
self .getSites (False )
1330
1352
print menuu
1331
1353
while True :
1332
- choice = raw_input ('fsociety~# ' )
1354
+ choice = raw_input (fsocietyPrompt )
1333
1355
if choice == '1' :
1334
1356
self .getSites (True )
1335
1357
elif choice == '2' :
@@ -1747,7 +1769,7 @@ def getdrupal():
1747
1769
1748
1770
1749
1771
def drupallist ():
1750
- listop = raw_input ("Enter The list Txt ~# " )
1772
+ listop = raw_input ("Enter The list Txt: " )
1751
1773
fileopen = open (listop , 'r' )
1752
1774
content = fileopen .readlines ()
1753
1775
for i in content :
@@ -2050,6 +2072,7 @@ def wpminiscanner():
2050
2072
2051
2073
if __name__ == "__main__" :
2052
2074
try :
2075
+ agreement ()
2053
2076
fsociety ()
2054
2077
except KeyboardInterrupt :
2055
2078
print (" Finishing up...\r " ),
0 commit comments