mcpField
C
conducting-network-penetration-test

conducting-network-penetration-test

github.com/mukul975安全35.2k302 次安装8 周前更新
代码仓库

关于 conducting-network-penetration-test

该技能为获授权的网络渗透测试提供分阶段流程,供安全测试人员评估网络基础设施、服务和防护措施。内容从范围确认、资产发现延伸至漏洞验证、受控利用、清理和报告,并强调书面授权及测试边界。

主要功能

  1. 01确认书面授权和测试范围
  2. 02发现主机并绘制网络结构
  3. 03扫描端口并枚举服务
  4. 04识别并优先处理漏洞
  5. 05受控验证漏洞与访问影响
  6. 06清理测试痕迹并编写报告

适用场景

  1. 01部署前后评估网络安全状况
  2. 02验证防火墙规则和网络分段
  3. 03满足 PCI-DSS、HIPAA、SOC 2 或 ISO 27001 测试要求
  4. 04评估 IDS/IPS、SIEM 和 SOC 的检测能力

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mukul975/anthropic-cybersecurity-skills --skill conducting-network-penetration-test

安装后在 Claude Code 中输入/conducting-network-penetration-test确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE
references/
api-reference.md
scripts/
agent.py

详细介绍

实施网络渗透测试

何时使用

  • 在部署前或部署后评估内部或外部网络基础设施的安全状况
  • 在真实攻击条件下验证防火墙规则、网络分段和访问控制
  • 识别网络服务、协议和配置中可利用的漏洞
  • 满足 PCI-DSS、HIPAA、SOC 2 或 ISO 27001 中要求定期进行渗透测试的合规要求
  • 评估 IDS/IPS、SIEM 和 SOC 检测能力对真实攻击流量的有效性

请勿使用于在未获得资产所有者明确书面授权的情况下测试网络、在未预先批准变更窗口和回滚计划的情况下针对生产系统进行测试,或进行拒绝服务测试,除非已明确界定范围并获得授权。

前提条件

  • 已签署的交战规则(RoE)文档,其中指定目标 IP 范围、排除主机、测试时段和紧急联系人
  • 网络所有者出具的书面授权书(免责授权书)
  • 配备 Kali Linux 或同等发行版及最新工具的专用测试笔记本电脑
  • 按照 RoE 中所定义,通过 VPN 或直接网络访问目标范围
  • 与客户事件响应团队之间的带外通信渠道
  • 范围文档,列出范围内的 IP 范围、域以及任何明确排除的系统(医疗设备、SCADA、关键基础设施)

工作流

步骤 1:前期准备与范围验证

通过与客户确认 IP 范围来验证范围。使用 ARIN/RIPE WHOIS 查询验证范围内的所有 IP 地址均归客户所有。确认测试窗口、升级流程以及任何敏感性约束。使用专用 VM、VPN 连接设置测试环境,并在所有工具上启用日志记录。创建一个带时间戳的活动日志,记录整个交战过程中执行的每条命令、发起的每次扫描以及尝试的每个漏洞利用。

步骤 2:主机发现与网络测绘

使用分层发现技术识别授权范围内的活动主机:

  • ICMP 扫描:nmap -sn -PE -PP -PM 10.10.0.0/16 -oA discovery_icmp 以查找响应 ping 的主机
  • ARP 扫描(内部网络):nmap -sn -PR 10.10.0.0/24 -oA discovery_arp 或 arp-scan -l 用于本地子网枚举
  • TCP SYN 发现:nmap -sn -PS21,22,25,80,443,445,3389,8080 10.10.0.0/16 -oA discovery_tcp 以查找阻止 ICMP 的主机
  • UDP 发现:nmap -sn -PU53,161,500 10.10.0.0/16 -oA discovery_udp 用于仅响应 UDP 的主机

将活动主机合并到目标列表中。在获得授权的情况下,使用 traceroute 和 SNMP 团体字符串猜测,通过识别网关、VLAN 边界和信任关系来绘制网络拓扑。

步骤 3:端口扫描与服务枚举

对发现的主机执行详细端口扫描:

  • 完整 TCP 扫描:nmap -sS -p- --min-rate 1000 -T4 -oA full_tcp <target> 以识别所有开放的 TCP 端口
  • 常见 UDP 端口:nmap -sU --top-ports 200 -T4 -oA top_udp <target> 用于常见易受利用的 UDP 服务
  • 服务版本检测:nmap -sV -sC -p <open_ports> -oA service_enum <target> 以识别服务版本并运行默认 NSE 脚本
  • 操作系统指纹识别:nmap -O --osscan-guess -oA os_detection <target> 以识别操作系统

使用协议专用工具深入枚举发现的服务:

  • SMB:enum4linux -a <target>、crackmapexec smb <target> --shares
  • SNMP:snmpwalk -v2c -c public <target>
  • DNS:dig axfr @<dns_server> <domain> 用于区域传送尝试
  • LDAP:ldapsearch -x -H ldap://<target> -b "dc=example,dc=com"
步骤 4:漏洞识别

将发现的服务版本与已知漏洞数据库进行关联:

  • 运行 nmap --script vuln -p <ports> <target> 以执行 NSE 漏洞脚本
  • 使用 searchsploit <service> <version> 查询 Exploit-DB 离线数据库
  • 与 NVD(国家漏洞数据库)和 CVE 记录交叉比对,以确认漏洞
  • 检查管理界面(Tomcat Manager、Jenkins、phpMyAdmin、数据库控制台)上的默认凭据
  • 测试常见错误配置:匿名 FTP、开放 SMTP 中继、不受限制的 SNMP 社区、无需身份验证的 NFS 导出

根据 CVSS 评分、可利用性和业务影响对漏洞进行优先级排序。记录每项发现,包括 CVE 标识符、受影响主机、服务和版本。

步骤 5:漏洞利用

遵循最小必要访问原则,对已验证的漏洞尝试受控利用:

  • Metasploit Framework:使用 msfconsole,并搭配与已确认漏洞相匹配的适当利用模块。设置 RHOSTS、RPORT 和 payload 选项。优先使用 bind/reverse TCP Meterpreter,以获得更大的后渗透灵活性。
  • 手动利用:在完成代码审查后,使用来自 Exploit-DB 的公开概念验证漏洞利用。根据目标环境需要编译和修改。
  • 凭据攻击:使用 hydra 或 crackmapexec,配合常见凭据列表,对发现的服务(SSH、RDP、SMB、HTTP 基本认证)进行密码喷洒。遵守锁定策略。
  • 传递哈希 / 中继:如果获得了 NTLM 哈希,在 SMB 签名禁用的情况下,尝试使用 impacket-psexec 进行传递哈希,或使用 impacket-ntlmrelayx 进行中继攻击。

记录每一次漏洞利用尝试,包括失败尝试。对成功入侵进行截图,显示主机名、IP、当前用户和权限级别。

步骤 6:后渗透与横向移动

在获得对主机的访问权限后,展示业务影响:

  • 权限提升:使用 linpeas.sh(Linux)或 winPEAS.exe(Windows)检查本地权限提升路径。查找配置错误的服务、SUID 二进制文件、未加引号的服务路径或内核漏洞。
  • 凭据收集:从内存(mimikatz)、文件(配置文件、浏览器存储)或缓存哈希(hashdump)中提取存储的凭据。
  • 横向移动:使用获得的凭据转向其他系统。通过尝试从已入侵主机访问范围外网络,测试网络分段。
  • 数据访问演示:识别可从已入侵系统访问的敏感数据(PII 数据库、文件共享、备份文件),并记录访问情况,但不窃取实际数据。

详细记录每一个横向移动点、获得的凭据和访问的系统,以构建攻击链叙述。

步骤 7:清理与报告

从已入侵系统中移除所有测试痕迹:

  • 删除上传的工具、shell 和临时文件
  • 移除测试期间创建的任何账户
  • 还原漏洞利用期间所做的配置更改
  • 通过重新扫描受影响主机验证清理情况

准备渗透测试报告,包括执行摘要、方法论描述、带 CVSS 评分的发现详情、概念验证证据,以及按优先级排序的修复建议。

核心概念

术语定义
交战规则(RoE)定义渗透测试的范围、边界、测试时间、授权操作和升级流程的正式文档
跳板(Pivot)利用已攻陷的主机作为中继点,访问测试人员位置无法直接到达的其他网段
服务枚举识别已发现主机上运行的服务、其版本和配置,以绘制攻击面的过程
凭据喷洒同时对多个账户测试少量常用密码,以避开账户锁定阈值
CVSS通用漏洞评分系统;用于按 0-10 分制评定漏洞严重程度的行业标准框架
横向移动在网络内从一台已攻陷系统移动到另一台系统的技术,用于扩大访问范围
后渗透在初始攻陷后执行的活动,包括权限提升、持久化、凭据收集和数据访问

工具与系统

  • Nmap:通过 Nmap Scripting Engine(NSE)进行网络发现、端口扫描、服务枚举和漏洞检测
  • Metasploit Framework:利用框架,提供漏洞利用模块、载荷、编码器和后渗透工具,用于已验证漏洞的利用
  • CrackMapExec:面向 Windows/Active Directory 环境的瑞士军刀,支持 SMB、WinRM、LDAP 和 MSSQL 枚举与利用
  • Impacket:Python 库,提供对网络协议(SMB、MSRPC、Kerberos)的低层编程访问,用于中继攻击和远程执行
  • Burp Suite:当网络服务暴露基于 HTTP 的管理界面时使用的 Web 应用代理

常见场景

场景:金融机构内部网络渗透测试

背景:客户是一家中型银行,需要满足 PCI-DSS 合规要求。范围包括内部企业网络(10.10.0.0/16),不包括位于单独 VLAN 中的支付处理系统。测试窗口为周一至周五 20:00-06:00,以尽量减少对运营的影响。

方法:

  1. 对可访问子网执行基于 ARP 的主机发现,并对禁用 ICMP 的主机执行 TCP SYN 发现
  2. 对所有已发现主机进行全面端口扫描,优先处理 Windows 服务器和域控制器
  3. 枚举 SMB 共享、SNMP 团体字符串和 Web 管理界面,寻找快速突破口
  4. 识别并利用使用默认凭据且未打补丁的 Apache Tomcat 实例,以获得初始立足点
  5. 通过本地 Windows 内核漏洞提升权限,然后使用 Mimikatz 提取缓存的域凭据
  6. 演示向包含客户记录的数据库服务器进行横向移动,证明网络分段不足
  7. 记录从初始访问到敏感数据的完整攻击路径,并针对每个漏洞提供修复步骤

陷阱:

  • 在业务时间扫描过于激进,触发 IDS 告警或服务中断
  • 未在扫描前验证所有目标 IP 确实由客户拥有
  • 未记录失败的利用尝试,错失报告有效控制措施的机会
  • 测试结束后忘记清理 Meterpreter 会话和上传的工具

输出格式

## Finding: Unpatched Apache Tomcat with Default Credentials

**ID**: NET-001
**Severity**: Critical (CVSS 9.8)
**Affected Host**: 10.10.5.23 (tomcat-prod.internal.corp)
**Service**: Apache Tomcat 8.5.31 on port 8080
**CVE**: CVE-2019-0232

**Description**:
The Apache Tomcat instance on 10.10.5.23:8080 is running version 8.5.31, which is
vulnerable to CVE-2019-0232 (remote code execution via CGI Servlet). Additionally,
the Tomcat Manager interface is accessible with default credentials (tomcat:tomcat),
allowing deployment of arbitrary WAR files.

**Proof of Concept**:
1. Accessed http://10.10.5.23:8080/manager/html with credentials tomcat:tomcat
2. Deployed malicious WAR file containing a reverse shell payload
3. Obtained command execution as NT AUTHORITY\SYSTEM

**Impact**:
Full system compromise of the Tomcat server. From this host, the tester
pivoted to 3 additional systems on the same subnet using harvested credentials,
ultimately accessing the customer database containing 50,000+ records.

**Remediation**:
1. Immediately change default Tomcat Manager credentials
2. Upgrade Apache Tomcat to the latest stable release (currently 10.1.x)
3. Restrict access to the Tomcat Manager interface to authorized management IPs only
4. Implement network segmentation between web servers and database tier

评论

支持 Markdown