跳转到帖子

Kali 渗透工具实战:用 Nmap、Nuclei 与 Impacket 完成授权内网验证、留痕和复测

精选回复

发布于

背景在已取得书面授权的内网渗透测试中,工具的价值不在于一次性跑出大量结果,而在于建立可复现、可审计的验证链路。本文以 Kali Linux 为操作端,覆盖资产发现、服务确认、漏洞模板验证、Windows 权限边界检查以及日志留存。测试前应明确目标网段、允许时段、速率上限、禁测资产和停止条件;以下命令中的 10.20.30.0/24 均为实验网段示例。工具安装与版本固定Kali 滚动更新较快,项目执行前应记录系统、工具和模板版本。优先使用官方仓库;Python 工具放入隔离环境,避免直接修改系统 Python。sudo apt update
sudo apt install -y nmap nuclei impacket-scripts jq pipx

mkdir -p ~/engagement/{raw,parsed,notes}
cd ~/engagement

{
date -Is
uname -a
nmap --version | head -n 1
nuclei -version
impacket-smbclient -h 2>&1 | head -n 1
} | tee notes/tool-versions.txt

# 模板更新后记录版本;正式项目建议在测试周期内固定模板
nuclei -update-templates
nuclei -tl | sha256sum | tee notes/nuclei-template-set.sha256不建议从不明网盘下载二进制工具。确需使用上游发布包时,应核对项目签名或 SHA-256,并在项目记录中保存下载地址、版本号和校验值。问题定位:先区分存活、开放端口与真实服务内网常见误判来自三个方面:ICMP 被过滤导致主机被认为离线;端口开放但后端是代理或蜜罐;扫描速率过高触发丢包。建议分阶段执行,并保留 XML 原始结果,不要只保存终端截图。cd ~/engagement

# 第一阶段:低影响存活探测
sudo nmap -sn -PE -PS22,80,443,445,3389 \
--max-retries 1 --host-timeout 20s \
-oA raw/01-discovery 10.20.30.0/24

# 从 XML 提取确认存活的地址
xmlstarlet sel -t -m '//host[status/@state=

服务器与云环境安全示意图
服务器、云资产与权限边界梳理示意
安全工具参数与流程示意图
工具配置、参数调优与结果校验示意

这个流程里最容易被忽略的不是“扫到什么”,而是每一步能否和授权范围、日志证据、复测结果对应起来。建议先固定源地址、时间窗口和扫描速率,再执行工具,避免后面无法区分验证流量与真实告警。

Nmap 首轮可以只做存活与关键端口确认,随后再对命中主机定向识别服务,不建议一上来全端口加默认脚本:

mkdir -p evidence/{nmap,nuclei,impacket}

nmap -sn 10.10.20.0/24 -oA evidence/nmap/01-discovery
nmap -sT -Pn -T3 --max-rate 300 \
  -p 53,80,135,139,443,445,3389,5985,5986 \
  -sV --version-light \
  -oA evidence/nmap/02-services 10.10.20.0/24

这里使用 -sT 比 SYN 扫描更容易在主机和边界日志中形成完整连接记录,适合验证蓝队可见性。若必须全端口扫描,应拆分资产并明确限速,同时保存三种输出,后续用 XML 做差异复测。

Nuclei 建议锁定模板版本并只启用已审核模板,避免把带 fuzz、爆破或高侵入行为的模板混进验证:

nuclei -l urls.txt \
  -t ./reviewed-templates/ \
  -severity medium,high,critical \
  -rate-limit 20 -bulk-size 10 -concurrency 5 \
  -jsonl-export evidence/nuclei/result.jsonl

报告中应同时记录模板 ID、模板提交版本、目标 URL、请求时间和原始响应摘要。仅凭状态码或标题不要直接定漏洞,尤其是管理端暴露、默认页和版本识别类结果,最好手工复核一次。

Impacket 部分要把“认证成功”和“远程执行成功”分开。前者优先用低影响方式确认 SMB 协议、签名与账号权限;远程执行只在授权明确且需要验证控制面的情况下进行。不要把口令直接写进 shell 历史,可使用 Kerberos 缓存或交互输入。例如先做协议侧检查:

nmap -Pn -p445 --script smb-protocols,smb2-security-mode \
  -oA evidence/nmap/03-smb-check 10.10.20.15

export KRB5CCNAME="$PWD/testuser.ccache"
impacket-smbclient -k -no-pass 'CORP/[email protected]'

如果授权要求验证远程执行,建议使用专门测试账号、固定源 IP,并事先约定一个无副作用的标记命令,不落地持久化、不关闭防护、不清理日志。执行前后应重点核对 Windows 安全日志 4624/4625/4672/4688,服务方式执行还要关注 4697、系统日志 7045;WMI 路径则看 Microsoft-Windows-WMI-Activity/Operational。同时关联 Sysmon 的进程创建、网络连接和文件创建事件。

留痕不等于只保存终端截图。每次运行至少保留:原始命令、工具与模板版本、开始/结束时间、执行源 IP、目标清单、原始输出哈希以及对应 SIEM 查询结果:

date -Is | tee evidence/start.txt
nmap --version | head -n 1 | tee evidence/nmap-version.txt
nuclei -version 2>&1 | tee evidence/nuclei-version.txt
find evidence -type f -print0 | sort -z | xargs -0 sha256sum > evidence/SHA256SUMS

复测时不要简单重跑全部动作。先按漏洞根因设计最小验证:端口收敛就复扫对应端口,SMB 签名整改就复查 smb2-security-mode,Web 漏洞则固定同一模板版本并比对请求/响应。最后再从 SIEM 反查测试源 IP 和时间窗,确认“攻击面已关闭”和“检测链路仍有效”这两个结论都成立。

创建帐户或登录后发表意见

最近浏览 0

  • 没有会员查看此页面。