Network 101
This skill should be used when the user asks to "set up a web server", "configure HTTP or HTTPS", "perform SNMP enumeration", "configure SMB shares", "test network services", or needs guidance on configuring and testing network services for penetration testing labs.
Network 101
Purpose
Configure and test common network services (HTTP, HTTPS, SNMP, SMB) for penetration testing lab environments. Enable hands-on practice with service enumeration, log analysis, and security testing against properly configured target systems.
Inputs/Prerequisites
Outputs/Deliverables
Core Workflow
1. Configure HTTP Server (Port 80)
Set up a basic HTTP web server for testing:
Windows IIS Setup:
Linux Apache Setup:
# Install Apache
sudo apt update && sudo apt install apache2Start service
sudo systemctl start apache2
sudo systemctl enable apache2Create test page
echo "<html><body><h1>Test Page</h1></body></html>" | sudo tee /var/www/html/index.htmlVerify service
curl http://localhostConfigure Firewall for HTTP:
# Linux (UFW)
sudo ufw allow 80/tcpWindows PowerShell
New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow2. Configure HTTPS Server (Port 443)
Set up secure HTTPS with SSL/TLS:
Generate Self-Signed Certificate:
# Linux - Generate certificate
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/apache-selfsigned.key \
-out /etc/ssl/certs/apache-selfsigned.crtEnable SSL module
sudo a2enmod ssl
sudo systemctl restart apache2Configure Apache for HTTPS:
# Edit SSL virtual host
sudo nano /etc/apache2/sites-available/default-ssl.confEnable site
sudo a2ensite default-ssl
sudo systemctl reload apache2Verify HTTPS Setup:
# Check port 443 is open
nmap -p 443 192.168.1.1Test SSL connection
openssl s_client -connect 192.168.1.1:443Check certificate
curl -kv https://192.168.1.13. Configure SNMP Service (Port 161)
Set up SNMP for enumeration practice:
Linux SNMP Setup:
# Install SNMP daemon
sudo apt install snmpd snmpConfigure community strings
sudo nano /etc/snmp/snmpd.confAdd these lines:
rocommunity public
rwcommunity private
Restart service
sudo systemctl restart snmpdWindows SNMP Setup:
SNMP Enumeration Commands:
# Basic SNMP walk
snmpwalk -c public -v1 192.168.1.1Enumerate system info
snmpwalk -c public -v1 192.168.1.1 1.3.6.1.2.1.1Get running processes
snmpwalk -c public -v1 192.168.1.1 1.3.6.1.2.1.25.4.2.1.2SNMP check tool
snmp-check 192.168.1.1 -c publicBrute force community strings
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt 192.168.1.14. Configure SMB Service (Port 445)
Set up SMB file shares for enumeration:
Windows SMB Share:
Linux Samba Setup:
# Install Samba
sudo apt install sambaCreate share directory
sudo mkdir -p /srv/samba/share
sudo chmod 777 /srv/samba/shareConfigure Samba
sudo nano /etc/samba/smb.confAdd share:
[public]
path = /srv/samba/share
browsable = yes
guest ok = yes
read only = no
Restart service
sudo systemctl restart smbdSMB Enumeration Commands:
# List shares anonymously
smbclient -L //192.168.1.1 -NConnect to share
smbclient //192.168.1.1/share -NEnumerate with smbmap
smbmap -H 192.168.1.1Full enumeration
enum4linux -a 192.168.1.1Check for vulnerabilities
nmap --script smb-vuln* 192.168.1.15. Analyze Service Logs
Review logs for security analysis:
HTTP/HTTPS Logs:
# Apache access log
sudo tail -f /var/log/apache2/access.logApache error log
sudo tail -f /var/log/apache2/error.logWindows IIS logs
Location: C:\inetpub\logs\LogFiles\W3SVC1\
Parse Log for Credentials:
# Search for POST requests
grep "POST" /var/log/apache2/access.logExtract user agents
awk '{print $12}' /var/log/apache2/access.log | sort | uniq -cQuick Reference
Essential Ports
| Service | Port | Protocol |
|---|---|---|
| HTTP | 80 | TCP |
| HTTPS | 443 | TCP |
| SNMP | 161 | UDP |
| SMB | 445 | TCP |
| NetBIOS | 137-139 | TCP/UDP |
Service Verification Commands
# Check HTTP
curl -I http://targetCheck HTTPS
curl -kI https://targetCheck SNMP
snmpwalk -c public -v1 targetCheck SMB
smbclient -L //target -NCommon Enumeration Tools
| Tool | Purpose |
|---|---|
| nmap | Port scanning and scripts |
| nikto | Web vulnerability scanning |
| snmpwalk | SNMP enumeration |
| enum4linux | SMB/NetBIOS enumeration |
| smbclient | SMB connection |
| gobuster | Directory brute forcing |
Constraints
Examples
Example 1: Complete HTTP Lab Setup
# Install and configure
sudo apt install apache2
sudo systemctl start apache2Create login page
cat << 'EOF' | sudo tee /var/www/html/login.html
<html>
<body>
<form method="POST" action="login.php">
Username: <input type="text" name="user"><br>
Password: <input type="password" name="pass"><br>
<input type="submit" value="Login">
</form>
</body>
</html>
EOFAllow through firewall
sudo ufw allow 80/tcpExample 2: SNMP Testing Setup
# Quick SNMP configuration
sudo apt install snmpd
echo "rocommunity public" | sudo tee -a /etc/snmp/snmpd.conf
sudo systemctl restart snmpdTest enumeration
snmpwalk -c public -v1 localhostExample 3: SMB Anonymous Access
# Configure anonymous share
sudo apt install samba
sudo mkdir /srv/samba/anonymous
sudo chmod 777 /srv/samba/anonymousTest access
smbclient //localhost/anonymous -NTroubleshooting
| Issue | Solution |
|---|---|
| Port not accessible | Check firewall rules (ufw, iptables, Windows Firewall) |
| Service not starting | Check logs with journalctl -u service-name |
| SNMP timeout | Verify UDP 161 is open, check community string |
| SMB access denied | Verify share permissions and user credentials |
| HTTPS certificate error | Accept self-signed cert or add to trusted store |
| Cannot connect remotely | Bind service to 0.0.0.0 instead of localhost |