Network 101
当用户要求“设置网络服务器”、“配置HTTP或HTTPS”、“执行SNMP枚举”、“配置SMB共享”、“测试网络服务”,或需要指导在渗透测试实验室中配置和测试网络服务时,应使用此技能。
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 |