Created
August 20, 2020 08:05
-
-
Save rootsploit/db83a6975c7c1337106950b81b6df733 to your computer and use it in GitHub Desktop.
Revisions
-
rootsploit created this gist
Aug 20, 2020 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,55 @@ #!/usr/bin/python3 import socket import itertools import sys import time import argparse class Knockit(object): def __init__(self, args: list): self._parse_args(args) def _parse_args(self, args: list): parser = argparse.ArgumentParser() parser.add_argument('-d', '--delay', type=int, default=200, help='Delay between each knock. Default is 200 ms.') parser.add_argument('-b', '--bruteforce', help='Try all possible combinations.', action='store_true') parser.add_argument('host', help='Hostname or IP address of the host.') parser.add_argument('ports', type=int, help='Port(s) to knock on', nargs='+') args = parser.parse_args(args) self.delay = args.delay / 1000 self.ports = args.ports self.bruteforce = args.bruteforce self.host= args.host def knockit(self): self.ports = list(map(int, self.ports)) if (self.bruteforce): print("[+] Knockit started attacking with all the possible combinations\n") print("******************************************************") for port_list in itertools.permutations(self.ports): print("[+] Knocking with sequence: %s" % (port_list,)) for port in port_list: print("[+] Knocking on port %s:%s" % (self.host,port)) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(self.delay) sock.connect_ex((self.host, port)) sock.close() print("******************************************************") else: for port in self.ports: print("[+] Knocking on port %s:%s" % (self.host,port)) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.settimeout(self.delay) sock.connect_ex((self.host, port)) sock.close() if __name__ == '__main__': Knockit(sys.argv[1:]).knockit()