服务器模式指通过 SSH 使用完整 Kali Linux VM、物理主机或云实例。这是发挥 Kali 最大能力的推荐环境。
以下场景使用服务器模式:
使用密码 SSH 时,非交互脚本会因等待输入而挂起。首次连接时,生成密钥对并通过 expect 传递密码完成部署:
# 1. 生成密钥(如 ~/.ssh/kali_pentest 已存在则跳过)
ssh-keygen -t ed25519 -f ~/.ssh/kali_pentest -N ''
# 2. 通过 expect 部署公钥(一次性,需要密码)
expect -c "
spawn ssh-copy-id -i $HOME/.ssh/kali_pentest.pub -o StrictHostKeyChecking=no user@host
expect \"password:\"
send \"PASSWORD\r\"
expect eof
"
# 3. 后续所有命令使用密钥——无需密码
ssh -i ~/.ssh/kali_pentest user@host "command"
scp -i ~/.ssh/kali_pentest file user@host:/tmp/
# sudo 需要 TTY——使用 ssh -t:
ssh -t -i ~/.ssh/kali_pentest user@host "sudo apt-get install -y <package>"
如果主机密钥发生变化(如 Kali 重装),清除旧条目:ssh-keygen -R <host-ip>
运行以下命令验证系统环境是否可用。Playbook 会根据需求使用 which <tool> || apt-get install -y <tool> 逐个安装工具——不要在此处预装所有工具。
whoami && id
uname -a
ip addr
ip route
df -h
systemctl --version # 服务管理器可用
apt-get update -qq && echo "apt OK" # 包管理器可访问
ping -c 2 kali.org && echo "network OK"
ls /usr/share/wordlists /usr/share/seclists 2>/dev/null
如果 SSH 用户不是 root,安装软件包或管理服务前,使用用户授权的提权方式。
根据任务范围选择软件包:
| 软件包 | 用途 |
|---|---|
kali-linux-default |
包含常见工具的通用 Kali 环境 |
kali-linux-large |
面向完整评估的更广工具覆盖 |
kali-linux-everything |
最大覆盖;体积很大,按需使用 |
kali-tools-top10 |
快速基线工具集 |
kali-tools-web |
Web 测试 |
kali-tools-information-gathering |
侦察 |
kali-tools-exploitation |
漏洞利用框架 |
kali-tools-passwords |
密码攻击 |
kali-tools-forensics |
取证 |
kali-tools-wireless |
无线测试 |
apt-get update
apt-get install -y kali-linux-default seclists wordlists
完整 Kali 可以运行依赖服务或本地数据库的工具。
msfdb status
msfdb init
msfdb run
需要在大型评估中跟踪主机、服务、漏洞和凭据时,使用数据库支撑的 Metasploit 流程。
gvm-check-setup
gvm-start
仅在 Deep 评估或用户明确要求全面漏洞扫描时使用 GVM/OpenVAS。预期初始化和扫描时间都较长。
systemctl status neo4j
systemctl start neo4j
数据收集已授权后,使用 BloodHound 做 Active Directory 攻击路径分析。
zaproxy -cmd -version
zap.sh -daemon -host 127.0.0.1 -port 8080
无人值守的 Agent 工作流优先使用 ZAP Automation Framework、daemon/API 模式或打包扫描脚本。
深度扫描前检查本地数据是否过旧:
nuclei -version
nuclei -update-templates
searchsploit -u
nmap --script-updatedb
除非扫描需要或用户批准等待,不要在评估期间花大量时间更新大型数据库。
GPU 破解:
hashcat -I
无线测试:
iw dev
airmon-ng
同 LAN 测试应验证目标网络能从 Kali 本身访问,而不只是从用户工作站访问。