Example #1
0
    def launch(self):
        """
        Main function for the module
        """

        print("[{}] Attempting to open port {}".format(self.name, self.port))

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.settimeout(5)
        s.bind(('0.0.0.0', self.port))
        s.listen(5)
        string = ""
        while True:
                c, addr = s.accept()
                print(str(addr) + " is connected")
                try:
                    string = c.recv(4096).decode()
                except (socket.error, socket.timeout) as e:
                    print("Connection closed")
                    message = amx_comm.create_message(\
                          addr[0], self.port, self.name, 1, "Conn established")
                    message.send(self.queue)
                    continue
                if len(string) == 0:
                    message = amx_comm.create_message(\
                          addr[0], self.port, self.name, 1, "Conn established")
                matches = re.search('(?<=(GET\s)).*', string)

                if matches != None:
                    getmess = matches.group(0).rstrip()
                    print("GET requested {}".format(getmess))
                    message = amx_comm.create_message(\
                            addr[0], self.port, self.name, 2, \
                            "GET request: {}".format(getmess))
                message.send(self.queue)

                c.close()

        s.close()
Example #2
0
    def launch(self):
        """
        Main function for the module
        """

        print("Consider thyself launched")

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('0.0.0.0', self.port))
        s.listen(5)

        while True:
                c, addr = s.accept()
                print(str(addr) + " is connected")
                message = amx_comm.create_message(\
                                   addr[0], self.port, self.name, 1, "Conn established")
                message.send(self.queue)
                c.close()

        s.close()
Example #3
0
    def launch(self):
        """
        Main function for the module
        """

        print("[{}] Attempting to open socket on port {}".format(self.name, self.port))
        print("[{}] Banner is {}".format(self.name, self.banner))

        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        s.bind(('0.0.0.0', self.port))
        s.listen(5)
        level = 0
        string = ""
        username = ""
        passwd = ""
        while True:
                level = 0
                username = None
                passwd = None
                c, addr = s.accept()
                print(str(addr) + " is connected")
                level = 1
                c.settimeout(60)
                try:
                    c.send(("220 " + self.banner + "\n").encode())
                except socket.error as e:
                    print(e)
                    continue
                try:
                    string = c.recv(1024).decode()
                except socket.error:
                    message = amx_comm.create_message(\
                            addr[0], self.port, self.name, 1, \
                            "Connection established, no further action")
                    message.send(self.queue)
                    continue
                matches = re.search('(?<=(USER\s)).*(?=$)', string)
                if matches != None:
                    username = matches.group(0).rstrip()
                    print("Username is {}".format(username))
                else:
                    c.close()

                try:
                    c.send("331 Password required to access user account {}\n".format(username).encode())
                    string = c.recv(1024).decode()
                except socket.error:
                    message = amx_comm.create_message(\
                            addr[0], self.port, self.name, 2, \
                            "Identification attempt with username {}".format(username))
                    message.send(self.queue)
                    continue

                matches = re.search('(?<=(PASS\s)).*', string)
                if matches != None:
                    passwd = matches.group(0).rstrip()
                    print("Password is {}".format(passwd))
                else:
                    c.close()

                if passwd != "":
                    message = amx_comm.create_message(\
                        addr[0], self.port, self.name, 3, \
                        "Identification attempt with {} : {}".format(\
                                                            username, passwd))
                    message.send(self.queue)

                else:
                    message = amx_comm.create_message(\
                            addr[0], self.port, self.name, 2, \
                            "Identification attempt with username {}".format(username))
                    message.send(self.queue)

                c.close()

        s.close()