Example #1
0
File: tftp.py Project: Acey9/cowrie
    def start(self):
        """
        """
        parser = CustomParser(self)
        parser.prog = "tftp"
        parser.add_argument("hostname", nargs='?', default=None)
        parser.add_argument("-c", nargs=2)
        parser.add_argument("-l")
        parser.add_argument("-g")
        parser.add_argument("-p")
        parser.add_argument("-r")

        try:
            args = parser.parse_args(self.args)
            if args.c:
                if len(args.c) > 1:
                    command = args.c[0]
                    self.file_to_get = args.c[1]
                    if args.hostname is None:
                        raise OptionNotFound("Hostname is invalid")
                    self.hostname = args.hostname

            elif args.r:
                self.file_to_get = args.r
                self.hostname = args.g
            else:
                parser.print_usage()
                raise OptionNotFound("Missing!!")

            if self.hostname is None:
                raise OptionNotFound("Hostname is invalid")

            self.makeTftpRetrieval()

        except OptionNotFound:
            self.exit()
            return
        except ExitException:
            self.exit()
            return
        except Exception:
            self.exit()
            return

        self.exit()
Example #2
0
    def start(self):
        parser = CustomParser(self)
        parser.prog = "tftp"
        parser.add_argument("hostname", nargs='?', default=None)
        parser.add_argument("-c", nargs=2)
        parser.add_argument("-l")
        parser.add_argument("-g")
        parser.add_argument("-p")
        parser.add_argument("-r")

        args = parser.parse_args(self.args)
        if args.c:
            if len(args.c) > 1:
                self.file_to_get = args.c[1]
                if args.hostname is None:
                    self.exit()
                    return
                self.hostname = args.hostname
        elif args.r:
            self.file_to_get = args.r
            self.hostname = args.g
        else:
            self.write(
                'usage: tftp [-h] [-c C C] [-l L] [-g G] [-p P] [-r R] [hostname]\n'
            )
            self.exit()
            return

        if self.hostname is None:
            self.exit()
            return

        if self.hostname.find(':') != -1:
            host, port = self.hostname.split(':')
            self.hostname = host
            self.port = int(port)

        url = 'tftp://%s/%s' % (self.hostname, self.file_to_get.strip('/'))
        self.protocol.logDispatch(eventid='cowrie.session.file_download',
                                  format='Downloaded URL (%(url)s)',
                                  url=self.url)

        #self.makeTftpRetrieval()
        self.exit()
        return
Example #3
0
    def start(self):
        parser = CustomParser(self)
        parser.prog = "tftp"
        parser.add_argument("hostname", nargs='?', default=None)
        parser.add_argument("-c", nargs=2)
        parser.add_argument("-l")
        parser.add_argument("-g")
        parser.add_argument("-p")
        parser.add_argument("-r")

        try:
            args = parser.parse_args(self.args)
            if args.c:
                if len(args.c) > 1:
                    self.file_to_get = args.c[1]
                    if args.hostname is None:
                        raise OptionNotFound("Hostname is invalid")
                    self.hostname = args.hostname

            elif args.r:
                self.file_to_get = args.r
                self.hostname = args.g
            else:
                parser.print_usage()
                raise OptionNotFound("Missing!!")

            if self.hostname is None:
                raise OptionNotFound("Hostname is invalid")

            if self.hostname.find(':') != -1:
                host, port = self.hostname.split(':')
                self.hostname = host
                self.port = int(port)

            self.makeTftpRetrieval()

        except Exception as err:
            log.err(str(err))

        self.exit()
Example #4
0
    def start(self):
        parser = CustomParser(self)
        parser.prog = "tftp"
        parser.add_argument("hostname", nargs="?", default=None)
        parser.add_argument("-c", nargs=2)
        parser.add_argument("-l")
        parser.add_argument("-g")
        parser.add_argument("-p")
        parser.add_argument("-r")

        args = parser.parse_args(self.args)
        if args.c:
            if len(args.c) > 1:
                self.file_to_get = args.c[1]
                if args.hostname is None:
                    self.exit()
                    return
                self.hostname = args.hostname
        elif args.r:
            self.file_to_get = args.r
            self.hostname = args.g
        else:
            self.write(
                "usage: tftp [-h] [-c C C] [-l L] [-g G] [-p P] [-r R] [hostname]\n"
            )
            self.exit()
            return

        if self.hostname is None:
            self.exit()
            return

        if self.hostname.find(":") != -1:
            host, port = self.hostname.split(":")
            self.hostname = host
            self.port = int(port)

        self.makeTftpRetrieval()
        self.exit()
Example #5
0
    def start(self):
        parser = CustomParser(self)
        parser.prog = "tftp"
        parser.add_argument("hostname", nargs='?', default=None)
        parser.add_argument("-c", nargs=2)
        parser.add_argument("-l")
        parser.add_argument("-g")
        parser.add_argument("-p")
        parser.add_argument("-r")

        args = parser.parse_args(self.args)
        if args.c:
            if len(args.c) > 1:
                self.file_to_get = args.c[1]
                if args.hostname is None:
                    self.exit()
                    return
                self.hostname = args.hostname
        elif args.r:
            self.file_to_get = args.r
            self.hostname = args.g
        else:
            parser.print_usage()
            self.exit()
            return

        if self.hostname is None:
            self.exit()
            return

        if self.hostname.find(':') != -1:
            host, port = self.hostname.split(':')
            self.hostname = host
            self.port = int(port)

        self.makeTftpRetrieval()
        self.exit()