예제 #1
0
파일: tool.py 프로젝트: zorroroot/Veil
    def use_payload(self, selected_payload):
        # Tab completion, thanks Will :)
        comp = completer.PayloadCompleter(self.payload_option_commands, selected_payload)
        readline.set_completer_delims(' \t\n;')
        readline.parse_and_bind("tab: complete")
        readline.set_completer(comp.complete)

        self.display_payload_options(selected_payload)

        payload_options_command = ""
        evasion_helpers.print_dict_message(self.payload_option_commands, show_title=False)

        while True:
            payload_options_command = input("[" + selected_payload.path + ">>]: ").strip().lower()

            if payload_options_command.startswith("back") or payload_options_command.startswith("main") or payload_options_command.startswith("menu"):
                break

            elif payload_options_command.startswith("gen") or payload_options_command.startswith("run"):
                # Checking for Ruby specific payloads because of dumbass sleep check
                if selected_payload.language == 'ruby' and selected_payload.required_options["SLEEP"][0] != "X" and selected_payload.required_options["USERNAME"][0] == "X" and selected_payload.required_options["DOMAIN"][0] == "X" and selected_payload.required_options["HOSTNAME"][0] == "X":
                    print(helpers.color("[*] If using SLEEP check with Ruby, you must also provide an additional check (like HOSTNAME)!", warning=True))
                else:
                    selected_payload.generate()
                    if outfile.compiler(selected_payload):
                        break

            elif payload_options_command.startswith("exit") or payload_options_command.startswith("quit"):
                sys.exit(0)

            elif payload_options_command.startswith("help") or payload_options_command.startswith("option"):
                self.print_options_screen(selected_payload)
                evasion_helpers.print_dict_message(self.payload_option_commands, show_title=False)

            elif payload_options_command.startswith("set"):
                if len(payload_options_command.split()) == 3:
                    set_command, key, value = payload_options_command.split()
                    # Make sure it is uppercase
                    key = key.upper()
                    if key in selected_payload.required_options:
                        # Validate LHOST value
                        if key == "LHOST":
                            if helpers.validate_ip(value):
                                selected_payload.required_options[key][0] = value
                            else:
                                print()
                                print(helpers.color(" [!] ERROR: You did not provide a valid IP!", warning=True))
                                print()
                        # Validate LPORT
                        elif key == "LPORT":
                            if helpers.validate_port(value):
                                selected_payload.required_options[key][0] = value
                            else:
                                print()
                                print(helpers.color(" [!] ERROR: You did not provide a valid port number!", warning=True))
                                print()

                        else:
                            # Set other options
                            selected_payload.required_options[key][0] = value
                    else:
                        print()
                        print(helpers.color(" [!] ERROR: You did not provide a valid option!", warning=True))
                        print(helpers.color(" [*] Ex: set LHOST 8.8.8.8", warning=True))
                        print()

                else:
                    print()
                    print(helpers.color(" [!] ERROR: You did not provide a valid amount of arguments!", warning=True))
                    print(helpers.color(" [*] Ex: set DOMAIN christest.com", warning=True))
                    print()
        return
예제 #2
0
파일: tool.py 프로젝트: Veil-Framework/Veil
    def use_payload(self, selected_payload):
        # Tab completion, thanks Will :)
        comp = completer.PayloadCompleter(self.payload_option_commands, selected_payload)
        readline.set_completer_delims(' \t\n;')
        readline.parse_and_bind("tab: complete")
        readline.set_completer(comp.complete)

        self.display_payload_options(selected_payload)

        payload_options_command = ""
        evasion_helpers.print_dict_message(self.payload_option_commands, show_title=False)

        while True:
            payload_options_command = input("[" + selected_payload.path + ">>]: ").strip().lower()

            if payload_options_command.startswith("back") or payload_options_command.startswith("main") or payload_options_command.startswith("menu"):
                break

            elif payload_options_command.startswith("gen") or payload_options_command.startswith("run"):
                # Checking for Ruby specific payloads because of dumbass sleep check
                if selected_payload.language == 'ruby' and selected_payload.required_options["SLEEP"][0] != "X" and selected_payload.required_options["USERNAME"][0] == "X" and selected_payload.required_options["DOMAIN"][0] == "X" and selected_payload.required_options["HOSTNAME"][0] == "X":
                    print(helpers.color("[*] If using SLEEP check with Ruby, you must also provide an additional check (like HOSTNAME)!", warning=True))
                else:
                    selected_payload.generate()
                    if outfile.compiler(selected_payload):
                        break

            elif payload_options_command.startswith("exit") or payload_options_command.startswith("quit"):
                sys.exit(0)

            elif payload_options_command.startswith("help") or payload_options_command.startswith("option"):
                self.print_options_screen(selected_payload)
                evasion_helpers.print_dict_message(self.payload_option_commands, show_title=False)

            elif payload_options_command.startswith("set"):
                if len(payload_options_command.split()) == 3:
                    set_command, key, value = payload_options_command.split()
                    # Make sure it is uppercase
                    key = key.upper()
                    if key in selected_payload.required_options:
                        # Validate LHOST value
                        if key is "LHOST":
                            if helpers.validate_ip(value):
                                selected_payload.required_options[key][0] = value
                            else:
                                print()
                                print(helpers.color(" [!] ERROR: You did not provide a valid IP!", warning=True))
                                print()
                        # Validate LPORT
                        elif key is "LPORT":
                            if helpers.validate_port(value):
                                selected_payload.required_options[key][0] = value
                            else:
                                print()
                                print(helpers.color(" [!] ERROR: You did not provide a valid port number!", warning=True))
                                print()

                        else:
                            # Set other options
                            selected_payload.required_options[key][0] = value
                    else:
                        print()
                        print(helpers.color(" [!] ERROR: You did not provide a valid option!", warning=True))
                        print(helpers.color(" [*] Ex: set LHOST 8.8.8.8", warning=True))
                        print()

                else:
                    print()
                    print(helpers.color(" [!] ERROR: You did not provide a valid amount of arguments!", warning=True))
                    print(helpers.color(" [*] Ex: set DOMAIN christest.com", warning=True))
                    print()
        return