🌀 鱼油のB10g

✦ 不定期更新技术随想

✦ 分享奇妙发现

📌 近期动态:

探索AI和工具使用...

第5章 第40课

Nmap实战指南:从校园网络探测到企业安全


Nmap工具简介:网络世界的"听诊器"

作为经常帮同学排查网络问题的学长,Nmap是我背包里的必备工具。它就像网络工程师的"瑞士军刀",能快速诊断网络状态。

# Nmap核心功能图解
class Nmap:
def __init__(self):
self.capabilities = [
"主机发现",# 哪些设备在线
"端口扫描",# 哪些端口开放
"服务识别",# 运行什么服务
"系统识别",# 操作系统类型
"脚本扩展"# 漏洞检测
]

def zenmap_gui(self):# 图形界面
print("可视化网络拓扑 → 一键生成报告")

# 校园案例:查宿舍楼网络设备
nmap = Nmap()
nmap.scan("172.18.0.0/24")# 扫描整个宿舍网段

入门实战:校园网络自查手册

环境准备(学生党友好方案)
# 无需Kali!普通电脑也能用
# Windows安装:https://nmap.org/download.html
# Mac安装:brew install nmap

# 关闭防火墙(临时测试)
# Windows:netsh advfirewall set allprofiles state off
# Mac:sudo pfctl -d
主机发现(查舍友设备)
# 扫描整个宿舍楼
nmap -sP 172.18.1.0/24

# 结果示例
Host 172.18.1.12 is up# 张三的电脑
Host 172.18.1.15 is up# 李四的游戏主机
Host 172.18.1.23 is up# 未知设备(可能是智能插座)
端口扫描基础命令
# TCP全连接扫描(最基础)
nmap -sT 172.18.1.12

# 结果
PORTSTATE SERVICE
80/tcpopenhttp# 可能开了网页服务
443/tcp openhttps
3389/tcp openms-wbt-server# 远程桌面!

扫描技术详解:6种状态×8种方法

端口状态实例(以宿舍路由器为例)
nmap 192.168.0.1# 宿舍路由器

# 可能结果:
22/tcpopenssh# 开放:可连接
53/tcpcloseddomain# 关闭:端口未使用
80/tcpfiltered http# 过滤:被防火墙阻挡
5000/tcp open|filtered upnp# 不确定:可能被干扰
八种扫描技术实战
  1. TCP SYN扫描(最常用)
nmap -sS 202.119.32.1# 学校DNS服务器
# 特点:速度快,不易触发告警
  1. TCP FIN扫描(绕过防火墙)
nmap -sF 172.16.108.10# 实验室服务器
# 特点:隐蔽性强,模拟正常结束连接
  1. UDP扫描(查DNS/DHCP)
nmap -sU -p 53,67,68 172.16.108.9# 查网络服务
# 注意:UDP扫描较慢,需耐心等待
  1. ARP扫描(局域网最快)
nmap -PR 192.168.0.0/24# 宿舍局域网
# 特点:仅限同网段,速度快到飞起
  1. 综合扫描(课程设计案例)
nmap -T4 -A -v 172.16.108.10
# -T4: 加速模式
# -A: 全面探测(系统+服务)
# -v: 显示详细信息

进阶实战:从校园到企业级应用

脚本扫描(漏洞检测)
# 查常见漏洞(使用NSE脚本)
nmap --script=vuln 202.119.32.1

# 典型输出
| http-vuln-cve2021-41773:
|VULNERABLE:
|Apache HTTPd路径穿越漏洞
|Risk factor: HIGH
|修复建议:升级到2.4.51
防御绕过(瞒过安全设备)
# 绕过校园网防火墙
nmap -sS -T2 --max-parallelism 1 --scan-delay 30s 172.16.108.9

# 参数解析:
# -T2: 减速模式(降低被发现概率)
# --max-parallelism 1: 每次只扫一个端口
# --scan-delay 30s: 每次扫描间隔30秒
Zenmap图形化实战
# 扫描学校官网服务器
1. 目标:www.xx.edu.cn
2. 配置文件:选择"Intense scan"
3. 结果可视化:
- 拓扑图显示网络设备关系
- 色块标识操作系统类型
- 端口列表标注服务风险等级

校园场景实战案例

案例1:实验室服务器安全检查
# 完整扫描指令
nmap -p- -sV -O -T4 172.16.108.10 -oN lab_server.txt

# 参数说明:
# -p- :扫描所有65535个端口
# -sV :探测服务版本
# -O :识别操作系统
# -oN :保存结果到文件
案例2:校园IoT设备普查
# 批量扫描摄像头设备
nmap -p 80,443,554 --open -oG - 172.18.0.0/24 | grep "Ports:"

# 结果快速解析:
Host: 172.18.1.25Ports: 80/open/tcp//http//Hikvision摄像头
Host: 172.18.1.32Ports: 554/open/tcp//rtsp//Dahua摄像头
案例3:毕业论文数据收集
# Python集成Nmap扫描
import nmap

nm = nmap.PortScanner()
nm.scan(hosts='172.16.108.0/24', arguments='-sS -p 1-1024')

# 生成CSV报告
with open('network_report.csv', 'w') as f:
f.write("IP,状态,开放端口\n")
for host in nm.all_hosts():
if nm[host].state() == 'up':
ports = ','.join(nm[host]['tcp'].keys())
f.write(f"{host},在线,{ports}\n")

防御视角:网络管理员必修课

Nmap检测与防护
# 检测Nmap扫描(Snort规则)
alert tcp any any -> any any ( \
msg:"Nmap TCP SYN Scan"; \
flags:S; \
detection_filter:track by_src, count 3, seconds 10; \
sid:1000001;)

# 防护措施:
1. 配置防火墙丢弃非法探测包
2. 修改默认服务端口(如SSH改到2222)
3. 部署入侵检测系统(如Suricata)
安全配置自查表
1. 关闭无用端口
`netstat -tuln` # 查看监听端口

2. 服务版本隐藏
# Nginx配置示例
server_tokens off;

3. 防范OS探测
# Linux内核参数
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all

学习路线与职场应用

新手成长路径

graph LR A[基础] --> B(主机发现) B --> C[端口扫描] C --> D[服务识别] D --> E[脚本使用] E --> F[综合项目]

企业级应用场景

# 安全工程师日常工作
def daily_tasks():
tasks = [
"晨间:Nmap巡检核心服务器",
"上午:分析扫描报告",
"下午:编写自动化监控脚本",
"傍晚:输出安全加固方案"
]
return tasks

附赠资源包(公众号回复 Nmap校园版 获取):

  • 校园网扫描合规指南
  • 常用NSE脚本手册
  • 课程设计模板

记住:能力越大责任越大,扫描前务必获得授权 —— 这是网络安全的第一准则 (•̀ω•́)✧

posted on 2025-08-04 13:38  鱼油YOU  阅读(39)  评论(0)    收藏  举报