def validate_programs(cls): if len(cls.programs) > 0: for p in cls.programs: if program_exists(p) is not True: print_error(f"Could not find program: {p}\n") sys.exit(1) print_check("All program dependencies checked")
def validate_files(cls): if len(cls.files) > 0: for f in cls.files: if file_exists(f) is not True: print_error(f"Could not find io in location: {f}\n") sys.exit(1) print_check("All io dependencies checked")
def download_scripts(): path = f"{scripts_path}/sslstrip.py" if os.path.exists(path): print_check(f"Found {path}, skipping download") return print("Downloading sslstrip.py ...") file = wget.download(sslstrip_url, path) print_check("\tFinished downloading")
def kill_processes(processes: List[Popen]): if len(processes) == 0: print("No processes to clean ¯\_(ツ)_/¯") else: print("Cleaning up:") for p in processes: print_kill_pid(p.pid) p.kill() print_check("Finished cleaning processes")
def execute_cmd(cmd: str, sudo: bool = False) -> Popen: print_executing(cmd) if not sudo: proccess = Popen(shlex.split(cmd)) else: proccess = Popen(shlex.split(cmd), stdin=subprocess.PIPE, stdout=subprocess.PIPE) print_check(f"Started PID: {proccess.pid}") return proccess
def ensure_port_fwd(): proccesses = [] fwd_var = "net.ipv4.ip_forward" print(f"Checking ip forwarding for arquitecture: {platform}") if platform == "darwin": fwd_var = "net.inet.ip.forwarding" cmd_red = f"sysctl -n {fwd_var}" sysctl_read_out = get_output_from_cmd(cmd_red) fwd = int(chr(sysctl_read_out[0])) if fwd == 1: print_check("\tIp forward value is 1") else: print_error(f"""Ip forwarding value is 0 Try to run this command: sudo sysctl -w {fwd_var}=1 """) sys.exit(1)
def ensure_etter_conf(): print("Checking ettercap config file diff from local optimal") search_path = "/etc" filename = "etter.conf" if platform == "darwin": search_path = "/usr/local" path_config = find_file_path(search_path, filename) local_config = f"{vars.get('src')}/scenarios/starbucks/scripts/{filename}" eq = filecmp.cmp(path_config, local_config) if eq: print_check(f"\t{filename} checked") else: print_error( f"""Ettercap config file differs from optimal for this attack. Try to run this command: [sudo] cp {local_config} {path_config} """) sys.exit(1)