kali-pentest

服务器模式

服务器模式指通过 SSH 使用完整 Kali Linux VM、物理主机或云实例。这是发挥 Kali 最大能力的推荐环境。

适用场景

以下场景使用服务器模式:

非交互 SSH 访问

使用密码 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 软件包

根据任务范围选择软件包:

软件包 用途
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 可以运行依赖服务或本地数据库的工具。

Metasploit

msfdb status
msfdb init
msfdb run

需要在大型评估中跟踪主机、服务、漏洞和凭据时,使用数据库支撑的 Metasploit 流程。

GVM/OpenVAS

gvm-check-setup
gvm-start

仅在 Deep 评估或用户明确要求全面漏洞扫描时使用 GVM/OpenVAS。预期初始化和扫描时间都较长。

BloodHound/Neo4j

systemctl status neo4j
systemctl start neo4j

数据收集已授权后,使用 BloodHound 做 Active Directory 攻击路径分析。

OWASP ZAP

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 本身访问,而不只是从用户工作站访问。

操作说明