mcpField
N
network-101

network-101

github.com/sickn33安全48.7k372 次安装今天更新
代码仓库

关于 network-101

用于授权安全评估或隔离实验室的网络服务配置与测试指导技能,面向网络安全学习和测试人员。覆盖 HTTP、HTTPS、SNMP、SMB 的搭建、枚举和日志分析,并要求在执行目标探测前确认授权与范围。

主要功能

  1. 01HTTP 与 HTTPS 服务配置
  2. 02SNMP 与 SMB 实验环境配置
  3. 03常见网络服务枚举
  4. 04访问日志分析
  5. 05授权与范围确认门槛
  6. 06隔离实验环境安全提示

适用场景

  1. 01搭建隔离的网络服务测试实验室
  2. 02练习 SNMP 或 SMB 枚举
  3. 03分析 HTTP 服务访问日志
  4. 04在授权范围内验证服务配置

安装

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

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill network-101

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

详细介绍

⚠️ 仅限授权使用 此技能仅用于教育目的或经授权的安全评估。 使用此工具前,必须获得系统所有者明确的书面许可。 滥用此工具属于违法行为,严禁进行。

强制确认门槛 在运行任何会探测、利用、修改目标、在目标上建立持久化、从目标提取数据或尝试访问目标凭据的命令前:

  1. 请用户说明确切的目标 URL、IP、账户或资源。
  2. 请用户确认已获得书面授权,并说明许可范围。
  3. 展示确切的命令,并说明命令预期产生的影响。
  4. 等待用户在当前对话中明确确认。

未获得确认时,请保持只读,并且仅提供防御性指导。优先使用沙盒、一次性 VM 或受控实验室。

网络入门

用途

配置并测试常见网络服务(HTTP、HTTPS、SNMP、SMB),用于渗透测试实验环境。针对正确配置的目标系统,开展服务枚举、日志分析和安全测试的实践操作。

输入/前提条件

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

输出/交付成果

  • 已配置的 HTTP/HTTPS Web 服务器
  • 可访问公共团体名的 SNMP 服务
  • 具有不同权限级别的 SMB 文件共享
  • 用于分析的捕获日志
  • 已记录的枚举结果

实验室边界

以下公共/私有 SNMP 团体名、匿名可写共享、宽泛的防火墙规则和 curl -k 均为有意设置的不安全实验示例。请绑定到隔离的实验室接口并限制源地址;切勿在生产环境或面向互联网的主机上重复使用这些设置。-k 会跳过证书验证,无法证明 TLS 身份。登录表单未附带 login.php 处理程序,普通访问日志也不包含 POST 正文/密码。之后请移除实验室服务/规则,并确认访问已关闭。

核心工作流

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

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

Windows IIS 设置:

  1. 打开 IIS Manager(Internet Information Services)
  2. 右键单击 Sites → Add Website
  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. 打开 Server Manager → Add Features
  2. 选择 SNMP Service
  3. 在 Services → SNMP Service → Properties 中配置团体字符串

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. 右键单击 → Properties → Sharing → Advanced Sharing
  3. 启用共享并设置权限
  4. 配置 NTFS 权限

Linux Samba 设置:

# Install Samba
sudo apt install samba

# Create a group-scoped share directory instead of a world-writable one
sudo install -d -m 0770 -o root -g sambashare /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
# Keep the service-owned anonymous share non-world-writable.
sudo install -d -m 0770 -o root -g sambashare /srv/samba/anonymous

# Test access
smbclient //localhost/anonymous -N

故障排除

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

适用场景

此技能适用于执行概述中描述的工作流或操作。

评论

支持 Markdown