发布于5小时前5小时 ip route resolvectl status 2>/dev/null || cat /etc/resolv.conf ss -tunlp重点看三项:tun0 或 ppp0 是否存在;是否有到 10.10.20.0/24 的路由;DNS 是否能解析内网域名,例如 dc01.corp.local。2. 配置 proxychains4 仅用于需要走代理的工具如果客户提供了 SOCKS5 跳板,例如 127.0.0.1:1080,可以修改 /etc/proxychains4.conf。建议使用 strict_chain,避免代理不可用时工具直接走本地出口。sudo cp /etc/proxychains4.conf /etc/proxychains4.conf.bak sudo sed -i 's/^dynamic_chain/#dynamic_chain/' /etc/proxychains4.conf sudo sed -i 's/^#strict_chain/strict_chain/' /etc/proxychains4.conf sudo tee -a /etc/proxychains4.conf >/dev/null <<'EOF' socks5 127.0.0.1 1080 EOF proxychains4 -q curl -I --connect-timeout 5如果这个测试失败,不要直接扩大扫描,应先确认跳板可达性、代理类型和目标 ACL。3. Nmap 做低噪声资产发现先做 Ping 探测和常见端口确认,不建议一上来 -A -p-。在内网蓝队有告警的环境里,大规模全端口扫描很容易产生误会。mkdir -p ~/pentest-10.10.20/recon cd ~/pentest-10.10.20/recon # 存活探测:输出三种格式,便于后续处理 sudo nmap -sn 10.10.20.0/24 -oA alive_10.10.20 # 提取存活 IP awk '/Nmap scan report/{print $NF}' alive_10.10.20.gnmap | tr -d '()' > alive_hosts.txt # 常见端口快速识别 sudo nmap -sS -Pn --top-ports 100 --open -iL alive_hosts.txt -oA top100_open # 对重点端口做服务识别 sudo nmap -sV -sC -Pn -p 22,80,135,139,389,443,445,3389,5985,5986 -iL alive_hosts.txt -oA svc_detail这里的关键点:-sn 仅做主机发现,适合第一轮摸底;--top-ports 100 控制探测规模;-sV -sC 只对重点端口做,减少噪声;-oA 同时保存 normal、grepable、XML,方便报告和复盘。代码/命令示例:从 Nmap 结果提取 SMB 目标拿到服务识别结果后,可以从 grepable 文件里提取开放 445 的主机,作为 SMB 权限边界验证目标。awk '/445\\/open/{print $2}' svc_detail.gnmap | sort -u > smb_hosts.txt wc -l smb_hosts.txt cat smb_hosts.txt如果需要更稳一点,可以直接从 XML 转换,但在现场临时排查时,上面的方式足够快速。使用 CrackMapExec 验证 SMB 凭据边界假设客户提供了一个普通域账号 CORP\\audit.user,目标是验证它是否被错误加入本地管理员组,或是否能访问不该访问的共享。不要用大字典爆破生产域账号,这通常会触发锁定策略。mkdir -p ~/pentest-10.10.20/cme cd ~/pentest-10.10.20/cme # 使用客户提供的授权账号做 SMB 登录验证 crackmapexec smb ../recon/smb_hosts.txt \\ -d CORP \\ -u audit.user \\ -p 'ExamplePassword123!' \\ --shares \\ --continue-on-success \\ | tee cme_smb_shares.log # 检查是否具备本地管理员权限,注意仅做权限判断 crackmapexec smb ../recon/smb_hosts.txt \\ -d CORP \\ -u audit.user \\ -p 'ExamplePassword123!' \\ --local-auth \\ | tee cme_smb_auth.log结果里需要重点关注:Pwn3d!:通常表示具备本地管理员权限,需要确认是否符合授权账号定位;READ、WRITE:共享目录读写权限,特别是 SYSVOL、部门共享、备份目录;主机名、域名、操作系统版本:用于后续资产归属确认。如果只需要检查共享权限,不建议加 --sam、--lsa、--ntds 这类高敏操作参数,除非授权文件明确允许。日志留痕与排查方法授权测试最好从一开始就保留命令输出。除了工具自身输出,还可以用 script 记录终端会话。mkdir -p ~/pentest-10.10.20/logs script -af ~/pentest-10.10.20/logs/session_$(date +%F_%H%M).log # 测试完成后输入 exit 结束录制 exitWindows 侧常见可关联日志:4624:成功登录,关注 Logon Type 3,来源 IP 为 Kali 或跳板;4625:失败登录,若数量过多说明认证验证策略不当;5140:访问网络共享;7045:服务创建,本文流程不应产生该类事件;SMB 服务日志、EDR 网络连接日志:用于确认扫描和认证时间线。Linux/Kali 侧建议保留:nmap 的 -oA 原始结果;crackmapexec 的 tee 输出;script 终端录屏文本;测试窗口时间、出口 IP、VPN 地址。风险与修复建议发现项判断方法风险修复建议普通账号具备本地管理员权限CME 返回 Pwn3d!可能被用于横向移动、远程执行清理本地 Administrators 组,使用 GPO 限制本地管理员成员共享目录可写--shares 显示 WRITE可能被投放恶意文件或覆盖业务文件按最小权限重设 ACL,区分读写组SMB 暴露范围过大Nmap 发现大量 445 开放扩大认证攻击面通过防火墙限制 SMB 访问源,仅允许管理网段访问失败登录过多事件 4625 激增可能触发账号锁定或蓝队误报降低验证频率,禁止字典爆破,使用授权账号单点验证总结在 Kali 上做授权内网渗透,工具链不需要复杂,关键是控制范围、保留证据、把每一步和修复建议对应起来。本文的流程适合做内网第一轮资产与权限边界验证:先用 Nmap 低噪声识别资产,再用 proxychains 控制代理链路,最后用 CrackMapExec 验证 SMB 凭据和共享权限。真正有价值的不是扫出多少端口,而是能说明“哪个账号在什么主机上拥有了不该有的权限”,并给出可执行的收敛方案。"} 服务器、云资产与权限边界梳理示意
5小时前5小时 补充几个实战里容易踩坑的点,尤其是把 Nmap、proxychains 和 CME 串起来做内网验证时: 1. **Nmap 走代理要注意扫描类型** `proxychains` 只适合 TCP connect 这类基于系统 socket 的连接,`-sS` 半开扫描通常不会按预期走代理。内网跳板场景建议明确使用: proxychains4 -q nmap -sT -Pn -n --max-retries 2 --host-timeout 60s -p 445,135,139,3389,5985 10.10.10.0/24 如果只是验证 SMB/WinRM/RDP 这些常见服务,不建议一上来扫全端口,容易慢且噪声大。 2. **proxychains 配置建议用 dynamic_chain** 授权测试里代理链经常不稳定,`strict_chain` 断一个节点就全断。一般我会这样配: dynamic_chain proxy_dns tcp_read_time_out 15000 tcp_connect_time_out 8000 [ProxyList] socks5 127.0.0.1 1080 如果目标内网 DNS 无法解析,优先用 IP 段验证;需要域名解析时再确认 `proxy_dns` 是否生效,避免本机 DNS 泄露。 3. **CME 验证账户时控制并发和范围** CME 很方便,但并发过高会触发域控日志和账户锁定策略。建议先确认密码策略: crackmapexec smb 10.10.10.10 -u user -p 'Passw0rd!' --pass-pol 然后再做小范围验证: crackmapexec smb 10.10.10.0/24 -u users.txt -p 'Passw0rd!' --continue-on-success --rate 5 如果是授权的“资产验证”,不建议直接大规模喷密码,更适合用已授权凭据确认哪些主机可访问、哪些权限可用。 4. **区分“可达”和“有权限”** Nmap 发现 445 开放,只能说明服务可达;CME 显示 `Pwn3d!` 才能说明当前凭据具备本地管理员级别权限。常见输出可以这样看: - `STATUS_LOGON_FAILURE`:凭据错误 - `STATUS_ACCOUNT_LOCKED_OUT`:账户已锁,立即停 - `STATUS_PASSWORD_EXPIRED`:密码过期 - `Pwn3d!`:通常表示本地管理员权限 - `STATUS_ACCESS_DENIED`:认证成功但权限不足 5. **建议保留可复现记录** 授权内网验证最后交付时,最好把命令、时间、源地址、目标范围、凭据类型、关键结果留清楚,避免后面复盘时说不清楚: date ip a | grep -E "inet " proxychains4 -q crackmapexec smb 10.10.10.0/24 -u user -p '***' --shares | tee cme_smb_shares_$(date +%F).log 整体思路可以是:先用低噪声 Nmap 确认关键端口,再用 CME 做协议级认证和权限判断,最后只对明确授权范围内的主机做进一步验证。这样效率和风险都比较可控。
创建帐户或登录后发表意见