mcpField
N
network-101

network-101

github.com/zebbern安全4.7k120 次安装今天更新
代码仓库

关于 network-101

用于安全实验环境的技能,指导配置和测试 HTTP、HTTPS、SNMP 与 SMB 服务。适合在 Windows 或 Linux 系统上练习服务枚举和日志分析。

主要功能

  1. 01配置 HTTP 和 HTTPS 服务
  2. 02配置并枚举 SNMP 服务
  3. 03设置和测试 SMB 共享
  4. 04查看服务日志
  5. 05验证端口与连接

适用场景

  1. 01搭建渗透测试练习用的 Web 服务
  2. 02创建用于枚举练习的 SNMP 目标
  3. 03测试 SMB 共享访问和权限
  4. 04在安全分析中检查服务日志

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zebbern/claude-code-guide --skill network-101

安装后在 Claude Code 中输入/network-101确认已加载。

详细介绍

网络基础 101

目的

为渗透测试实验环境配置和测试常见网络服务(HTTP、HTTPS、SNMP、SMB)。通过针对正确配置的目标系统开展服务枚举、日志分析和安全测试,进行实践练习。

输入/前提条件

  • 用于托管服务的 Windows Server 或 Linux 系统
  • 用于测试的 Kali Linux 或类似系统
  • 对目标系统的管理访问权限
  • 基本网络知识(IP 寻址、端口)
  • 用于配置端口的防火墙访问权限

输出/交付成果

  • 已配置的 HTTP/HTTPS Web 服务器
  • 可访问社区字符串的 SNMP 服务
  • 具有不同权限级别的 SMB 文件共享
  • 用于分析的日志
  • 已记录的枚举结果

核心工作流

1. 配置 HTTP 服务器(端口 80)

设置基本的 HTTP Web 服务器以供测试:

Windows IIS 设置:

  1. 打开 IIS 管理器(Internet Information Services)
  2. 右键单击“站点” →“添加网站”
  3. 配置站点名称和物理路径
  4. 绑定到 IP 地址和端口 80

Linux Apache 设置:

# Install Apache
sudo apt update && sudo apt install apache2

# Start service
sudo systemctl start apache2
sudo systemctl enable apache2

# Create test page
echo "<html><body><h1>Test Page</h1></body></html>" | sudo tee /var/www/html/index.html

# Verify service
curl http://localhost

配置 HTTP 防火墙:

# Linux (UFW)
sudo ufw allow 80/tcp

# Windows PowerShell
New-NetFirewallRule -DisplayName "HTTP" -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow
2. 配置 HTTPS 服务器(端口 443)

设置使用 SSL/TLS 的安全 HTTPS:

生成自签名证书:

# 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.crt

# Enable SSL module
sudo a2enmod ssl
sudo systemctl restart apache2

配置 Apache 使用 HTTPS:

# Edit SSL virtual host
sudo nano /etc/apache2/sites-available/default-ssl.conf

# Enable site
sudo a2ensite default-ssl
sudo systemctl reload apache2

验证 HTTPS 设置:

# Check port 443 is open
nmap -p 443 192.168.1.1

# Test SSL connection
openssl s_client -connect 192.168.1.1:443

# Check certificate
curl -kv https://192.168.1.1
3. 配置 SNMP 服务(端口 161)

设置 SNMP 以练习枚举:

Linux SNMP 设置:

# Install SNMP daemon
sudo apt install snmpd snmp

# Configure community strings
sudo nano /etc/snmp/snmpd.conf

# Add these lines:
# rocommunity public
# rwcommunity private

# Restart service
sudo systemctl restart snmpd

Windows SNMP 设置:

  1. 打开服务器管理器 →“添加功能”
  2. 选择 SNMP 服务
  3. 在“服务”→“SNMP 服务”→“属性”中配置社区字符串

SNMP 枚举命令:

# Basic SNMP walk
snmpwalk -c public -v1 192.168.1.1

# Enumerate system info
snmpwalk -c public -v1 192.168.1.1 1.3.6.1.2.1.1

# Get running processes
snmpwalk -c public -v1 192.168.1.1 1.3.6.1.2.1.25.4.2.1.2

# SNMP check tool
snmp-check 192.168.1.1 -c public

# Brute force community strings
onesixtyone -c /usr/share/seclists/Discovery/SNMP/common-snmp-community-strings.txt 192.168.1.1
4. 配置 SMB 服务(端口 445)

设置 SMB 文件共享以供枚举:

Windows SMB 共享:

  1. 创建要共享的文件夹
  2. 右键单击 →“属性”→“共享”→“高级共享”
  3. 启用共享并设置权限
  4. 配置 NTFS 权限

Linux Samba 设置:

# Install Samba
sudo apt install samba

# Create share directory
sudo mkdir -p /srv/samba/share
sudo chmod 777 /srv/samba/share

# Configure Samba
sudo nano /etc/samba/smb.conf

# Add share:
# [public]
#    path = /srv/samba/share
#    browsable = yes
#    guest ok = yes
#    read only = no

# Restart service
sudo systemctl restart smbd

SMB 枚举命令:

# List shares anonymously
smbclient -L //192.168.1.1 -N

# Connect to share
smbclient //192.168.1.1/share -N

# Enumerate with smbmap
smbmap -H 192.168.1.1

# Full enumeration
enum4linux -a 192.168.1.1

# Check for vulnerabilities
nmap --script smb-vuln* 192.168.1.1
5. 分析服务日志

查看日志以进行安全分析:

HTTP/HTTPS 日志:

# Apache access log
sudo tail -f /var/log/apache2/access.log

# Apache error log
sudo tail -f /var/log/apache2/error.log

# Windows IIS logs
# Location: C:\inetpub\logs\LogFiles\W3SVC1\

解析日志以查找凭据:

# Search for POST requests
grep "POST" /var/log/apache2/access.log

# Extract user agents
awk '{print $12}' /var/log/apache2/access.log | sort | uniq -c

快速参考

必需端口
服务端口协议
HTTP80TCP
HTTPS443TCP
SNMP161UDP
SMB445TCP
NetBIOS137-139TCP/UDP
服务验证命令
# Check HTTP
curl -I http://target

# Check HTTPS
curl -kI https://target

# Check SNMP
snmpwalk -c public -v1 target

# Check SMB
smbclient -L //target -N
常见枚举工具
工具用途
nmap端口扫描和脚本
niktoWeb 漏洞扫描
snmpwalkSNMP 枚举
enum4linuxSMB/NetBIOS 枚举
smbclientSMB 连接
gobuster目录暴力破解

限制

  • 自签名证书会触发浏览器警告
  • SNMP v1/v2c 社区字符串以明文传输
  • 默认情况下通常会禁用 SMB 匿名访问
  • 防火墙规则必须允许入站连接
  • 实验环境应与生产环境隔离

示例

示例 1:完整的 HTTP 实验环境设置
# Install and configure
sudo apt install apache2
sudo systemctl start apache2

# Create 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>
EOF

# Allow through firewall
sudo ufw allow 80/tcp
示例 2:SNMP 测试设置
# Quick SNMP configuration
sudo apt install snmpd
echo "rocommunity public" | sudo tee -a /etc/snmp/snmpd.conf
sudo systemctl restart snmpd

# Test enumeration
snmpwalk -c public -v1 localhost
示例 3:SMB 匿名访问
# Configure anonymous share
sudo apt install samba
sudo mkdir /srv/samba/anonymous
sudo chmod 777 /srv/samba/anonymous

# Test access
smbclient //localhost/anonymous -N

故障排除

问题解决方案
端口无法访问检查防火墙规则(ufw、iptables、Windows 防火墙)
服务无法启动使用 journalctl -u service-name 检查日志
SNMP 超时确认 UDP 161 端口已开放,并检查社区字符串
SMB 访问被拒绝确认共享权限和用户凭据
HTTPS 证书错误接受自签名证书,或将其添加到受信任存储区
无法远程连接将服务绑定到 0.0.0.0,而不是 localhost

评论

支持 Markdown