基础网络与系统知识:TCP/IP协议、OSI模型、常见端口与服务、Windows/Linux基础命令

红队与蓝队的对抗,本质上是在网络协议栈与操作系统内核之上展开的攻防博弈。无论是渗透测试中的端口扫描、中间人攻击,还是防御侧的流量分析、日志审计,都离不开对TCP/IP协议族、OSI参考模型、常见服务端口以及双平台命令体系的深刻理解。本章将系统梳理这些地基性知识,并重点剖析攻防视角下的实际应用逻辑,帮助学员建立从“数据包”到“主机控制台”的完整认知链路。

攻防视角下的网络协议与系统命令知识框架 OSI 七层模型 7 应用层 (HTTP/FTP) 6 表示层 (加密/编码) 5 会话层 (Session) 4 传输层 (TCP/UDP) 3 网络层 (IP/ICMP) 2 数据链路层 (MAC) 1 物理层 (比特流) 封装/解封装 TCP/IP 四层模型 应用层 HTTP/SSH/DNS/SMB ← 攻击面最广 传输层 TCP三次握手/UDP 网络层 IP寻址/路由 网络接口层 以太网/ARP 常见端口与服务映射 端口 服务 攻防关注点 22 SSH 暴力破解/隧道 80/443 HTTP/HTTPS Web漏洞入口 445 SMB 永恒之蓝/横向 3389 RDP 远程控制/暴破 3306 MySQL 数据库攻击 6379 Redis 未授权访问 8080 Tomcat 管理后台/弱口令 53 DNS DNS劫持/隧道 135/137/139 RPC/NetBIOS 信息泄露/漏洞 Windows: netstat / ipconfig / tasklist | Linux: ss / ifconfig / ps aux

核心原理:从OSI到TCP/IP的攻防映射

OSI七层模型是理论上的网络通信参考框架,而TCP/IP四层模型则是实际互联网运行的协议栈。在攻防实战中,我们更关注TCP/IP模型,因为它直接对应数据包的封装与解析过程。红队在进行网络侦察时,通常从应用层开始向下探测——先识别目标开放了哪些端口(对应传输层),再通过端口判断运行的服务(应用层),进而推断操作系统类型(网络层与数据链路层的TTL值、窗口大小等特征)。蓝队则相反,防御视角是从物理层向上审计,从流量捕获(数据链路层)开始,分析数据包特征,最终定位到应用层的攻击载荷。

TCP协议的三次握手与四次挥手是理解端口扫描原理的基础。以半连接扫描(SYN扫描)为例,攻击者发送SYN包后,若收到SYN+ACK响应,则说明端口开放;若收到RST包,则端口关闭。这种扫描方式不完成完整握手,因此日志记录较少,是红队最常用的隐蔽扫描手段。而蓝队在检测此类行为时,需要关注单位时间内大量SYN包但无后续ACK的异常流量模式。

判断方法:端口扫描与服务识别操作流程

在实际攻防演练中,端口扫描与服务识别是信息收集的关键环节。以下是标准化的操作流程:

  1. 主机存活探测:使用ICMP Ping或ARP扫描确认目标主机在线,但需注意防火墙可能过滤ICMP,此时可改用TCP Ping(发送SYN到常见端口)。
  2. 全端口扫描:使用Nmap的-p-参数扫描1-65535端口,但全端口扫描耗时长且容易被IDS检测,实战中通常先扫描Top 1000端口。
  3. 服务版本识别:通过-sV参数进行服务指纹识别,Nmap会发送特定探测包并比对特征库,识别出具体服务及版本号。
  4. 操作系统指纹:使用-O参数,通过TTL值、TCP窗口大小、IP ID序列等特征推断操作系统类型。
  5. 脚本引擎扫描:使用-sC调用默认脚本,检测服务配置漏洞、弱口令等风险点。

对于蓝队而言,需要熟悉上述扫描特征,在防火墙和IDS中配置相应的检测规则。例如,Nmap的SYN扫描会产生大量源端口为随机高位、目的端口递增的TCP包,且无完整连接记录,这些特征可作为告警规则的基础。

案例拆解:一次针对内网Web服务器的攻防对抗

在某次企业红蓝对抗演练中,红队首先对目标IP段进行快速扫描,发现一台Windows Server 2016主机开放了80端口(HTTP)、443端口(HTTPS)和3389端口(RDP)。通过Nmap服务识别,确认80端口运行IIS 8.5,443端口为自签名证书的HTTPS服务,3389端口开放但启用了NLA(网络级身份验证)。

红队进一步使用curl -I命令查看HTTP响应头,发现X-Powered-By: ASP.NET和Server: Microsoft-IIS/8.5,确认目标为ASP.NET应用。通过目录扫描发现/admin/login.aspx后台登录页面,尝试常见弱口令组合未果后,改用SQL注入测试,最终在用户名参数中发现基于时间的盲注漏洞,成功获取管理员密码哈希。

与此同时,蓝队通过流量监控发现来自攻击IP的异常扫描行为——短时间内大量SYN包且无后续连接,触发IDS告警。安全分析师通过Wireshark抓包分析,确认是Nmap的SYN扫描,随即在防火墙上封禁攻击IP。但红队已提前通过代理池切换IP,并利用HTTP代理继续渗透。蓝队随后调整策略,在IIS日志中启用详细的URL审计,最终在SQL注入尝试阶段发现异常请求,通过WAF规则拦截并溯源到真实攻击IP。

此案例说明:端口扫描只是攻击的第一步,真正的攻防博弈在于服务漏洞利用与日志监控的赛跑。蓝队需要建立多层检测机制,不能仅依赖单一维度的告警。

Windows/Linux基础命令对比与实战应用

掌握双平台命令是红队横向移动和蓝队应急响应的基本功。以下是攻防场景中高频使用的命令对比:

功能类别Windows命令Linux命令攻防用途
网络连接查看netstat -anoss -tulnp查看开放端口与对应PID,发现可疑监听
路由与ARProute print / arp -aip route / ip neigh判断网络拓扑,发现ARP欺骗
进程管理tasklist / taskkillps aux / kill定位恶意进程,结束异常进程
文件查找dir /s /bfind / -name搜索敏感文件(如web.config、id_rsa)
系统信息systeminfouname -a / cat /etc/os-release获取补丁版本,判断可利用漏洞
日志查询wevtutil qejournalctl / grep /var/log审计登录日志、服务日志
远程连接mstsc / winrsssh / scp远程管理,横向移动

在红队视角下,Windows环境中常使用whoami /priv查看当前用户权限,net user枚举域用户,wmic process list获取进程详细信息。Linux环境中则常用id查看UID/GID,sudo -l检查sudo权限配置,crontab -l查看计划任务。蓝队应急响应时,应优先执行netstat -ano | findstr ESTABLISHED(Windows)或ss -tnp state established(Linux)查看当前活跃连接,快速定位外连IP。

实战提示:在Windows上使用netstat -b可以显示每个连接对应的可执行文件名称,但需要管理员权限。在Linux上,lsof -i :端口号可以快速定位占用该端口的进程,比ss更直观。红队在获取初始权限后,应第一时间执行这些命令收集网络信息,为后续横向移动做准备。

常见误区与总结复盘

在基础网络与系统知识的学习中,学员常陷入以下误区:

  • 误区一:认为OSI模型与实战无关。实际上,理解分层有助于定位问题——例如,能Ping通但无法访问Web服务,问题可能出在传输层(端口未监听)或应用层(服务崩溃),而非网络层。
  • 误区二:过度依赖图形化工具。在真实攻防中,目标环境可能没有GUI,只有命令行。熟练使用curl、nc、telnet等命令行工具进行手工探测,往往比图形化工具更灵活、更隐蔽。
  • 误区三:忽略Windows与Linux命令的差异。例如,Windows的ipconfig与Linux的ifconfig输出格式不同,且Linux的ifconfig已逐渐被ip addr替代。在编写自动化脚本时,必须考虑平台兼容性。
  • 误区四:端口扫描只关注开放端口,忽略服务版本。实际上,服务版本信息直接关联到已知CVE漏洞的匹配,是漏洞利用的关键输入。

总结复盘时,建议学员建立自己的命令速查手册,将攻防场景中高频使用的命令按“信息收集、权限提升、横向移动、痕迹清理”四个阶段分类整理。同时,务必在本地虚拟机中搭建Windows和Linux双平台实验环境,反复练习端口扫描、服务识别、日志分析等操作,直到形成肌肉记忆。只有将协议原理与命令操作深度融合,才能在实战中做到快速响应、精准判断。

风险提示:在进行端口扫描或服务探测时,务必确认已获得目标系统的书面授权。未经授权的扫描行为可能违反《网络安全法》等相关法律法规,在攻防演练中应严格遵守演练范围和规则,避免对生产系统造成不必要的影响。