445端口被封之后,在公网实现smb文件共享
背景
在最近项目中需要使用到windows smb文件共享,并且该项目过程不允许重启系统,其使用到的TCP连接端口为445,该项目测试环境一直处在内部网络,所以一开始没发现什么问题,项目进展到一定程度后,需要在公网环境中进行仿真测试,突然发现smb通道不能使用了,查了半天,发现是ISP把445端口给禁了,这让整个项目处于一个非常尴尬的处境,同时发现很多同行遇到了在原项目中使用了smb文件共享现在公网环境也无法正常工作,所以需要找到一个优雅的方法来完美解决这个问题。
找出SMB监听445的服务
HKLM:\SYSTEM\CurrentControlSet\Services\NetBT
按正常思路,修改注册表,重启对应服务。那接下来使用netstat命令查看一下监听445端口的进程:
可以看出是pid为4的进程进行监听,从任务管理器上看是名叫System,备注"NT Kernel & System",这玩意儿要重启,岂不是直接告诉你系统重启,但是该项目最大的特点就是不允许重启系统,事情发展到这个形态,不由得让我们Linux开发出身的程序员对一个封闭系统的感叹,唏嘘。
端口代理
但问题总要解决,这个时候我想到了端口代理/端口转发,只要网络流量在公网上不使用445端口就可以,我就设计出了一个思路:
Windows smb客户端访问本地445:
net use \\127.0.0.1\C$
1.客户端通过访问本地445,端口转发成访问远端,将访问本地445转发成访问远端8445端口,假设smb服务器IP为192.168.1.81:
netsh interface portproxy add v4tov4 listenport=445 connectaddress=192.168.1.81 connectport=8445
netsh interface portproxy add v4tov4 listenport=8445 connectaddress=192.168.1.81 connectport=445
端口拦截、端口代理
windows 数据包转移 (WinDivert) 是一种用户模式的数据包捕获和转移包,WinDivert 允许用户模式应用程序捕获、修改、丢弃从 windows 网络堆栈发送的网络数据包。
基于这个工具,在github找到衍生开源项目divertTCPconn。
这个项目利用WinDivert驱动可以把指定目的端口的流量转换成访问本地其它端口,这不就正是我们想要的东西,那问题基本解决了,跃跃欲试,重新整理架构图:
把WinDivert和DivertTCPconn结合编译、执行,将访问远端445端口的流量转换成访问本地8445,然后再写一条端口代理从本地8445代理到远端8445,对应命令如下:
端口拦截
divertTCPconn.exe 445 8445
- 1
端口代理
假设远端smb服务器IP为192.168.1.81
netsh interface portproxy add v4tov4 listenport=8445 connectaddress=192.168.1.81 connectport=8445
- 1
经过客户端smb连接
net use \\192.168.1.81\C$
- 1
测试发现,流量并没有走8445端口,后面对divertTCPconn项目源码进行分析,发现在使用过滤器时,针对的是inbound&dst-port=445进行匹配。但对于我们这种情景来说,本地访问远端445是属于outbound&dst-port=445,赶紧把divertTCPconn代码修改:
经再次测试,在服务器之间走的是8445端口,而客户端和服务器内部也能够将445和8445进行转换,总结本案例是通过用户态端口拦截加端口重定向技术,最终达到我们想要的效果,并且在整个过程中,不用修改注册表,不用重启系统。
445端口被封之后,在公网实现smb文件共享相关推荐
- 继勒索病毒“永恒之蓝”445端口被封之后,在公网实现smb文件共享
背景 在最近项目中需要使用到windows smb文件共享,并且该项目过程不允许重启系统,其使用到的TCP连接端口为445,该项目测试环境一直处在内部网络,所以一开始没发现什么问题,项目进展到一定程度 ...
- Winows通过非445端口远程访问公网Samba
一.用管理员账号打开CMD,以下命令查询445端口占用情况 输入命令: netstat -ano | findstr 445 可以看出是pid为4的进程进行监听,从任务管理器上看是名叫System,备 ...
- win10关闭445端口
有时我会在互联网上看到一些新闻.在哪个区域,哪个计算机是勒索软件通过入侵端口传输,造成严重损坏.其实这些病毒主要是通过445端口入侵,需要关闭,如何关闭445端口呢?事实上,关闭445端口并不困难.让 ...
- Windows禁用端口(445端口为例)
Windows禁用端口(445端口为例) Win+R 输入gpedit.msc 回车进入本地组策略编辑器 计算机配置–>Windows设置–>安全设置–>IP安全策略–>创建I ...
- 针对ONION勒索病毒!如何关闭139端口及445端口等危险端口
系统有些端口是我们平时用不到但是又存在危险的端口,例如139.135.445等端口,windows默认是开着的,这时我们可以手动关闭这些端口!下边为大家介绍一种通过windows组策略来一次性关闭所有 ...
- Ubuntu Frp内网穿透+Samba 445端口
安装Frp和smb服务启动程序 1,frp下载地址 下载 wget https://github.com/fatedier/frp/releases/download/v0.44.0/frp_0.44 ...
- 判断445端口是否已经关闭的方法
当我们按照某个关闭445端口的教程操作完之后,我们如何去检测是否真的已经关闭了445端口呢?本文给你介绍一个常用的又是最简单的方法. 按 WIN+R 组合键打开运行对话框(不知道哪个是WIN键?),输 ...
- 应对WannaCry勒索危机之关闭445端口等危险端口——以本人Windows7系统为例
应对WannaCry勒索危机之关闭445端口等危险端口--以本人Windows7系统为例 近日,全球范围内爆发WannaCry勒索病毒危机 我国很多大学纷纷中招.受灾严重,甚至连刘老师的电脑也-- 拿 ...
- 如何网络监测其他计算机关闭445端口,关闭445端口的方法,教您电脑如何关闭445端口...
系统有些端口是我们平时用不到,但是又存在危险的端口,例如139.135.445等端口,windows默认是开着的,如果不关闭就有可能"躺枪",那么如何关闭445端口,一般的用户都对 ...
最新文章
- 使用模板库的几个注意点
- svn 单独导出某一个目录文件
- 没有bug队——加贝——Python 练习实例 15,16
- visio一分二的箭头_Microsoft Office Visio绘画双箭头直线的具体步骤介绍
- 爱奇艺开源的高性能网络安全监控引擎
- Echarts 图表放大功能
- 算法竞赛入门经典(刘汝佳)——基础篇心得
- RainMeter学习2
- 思科CCNP认证介绍
- Web(牛腩)概念知识总结
- 复制链接到剪切板php,剪切复制粘贴
- 气液增压缸用于风扇叶铆钉铆接(产品试压)
- 软件测试 | 测试开发 | 黑盒测试方法论—场景法
- CAN接受和发送失败的原因有哪些---之前调试MCP2515驱动时,数据一直发不出去,三个发送邮箱都被占满.至今未解决,读寄存器-总线错误
- SpringBoot + Springmvc集成guava
- 算法(六):图解贪婪算法
- kaggle Airbus Ship Detection Challenge 船舶检测
- 【Python实战】再分享一款商品秒杀小工具,我已经把压箱底的宝贝拿出来啦~
- uniapp canvas画板
- 动态算法一(转载——逸仙时空)
热门文章
- Ios android crash report,iOS App 后台 Crash 调查
- Photoshop CS6 实例之用快速选择工具扣取美女
- [渝粤教育] 中国地质大学 工业通风及除尘 复习题 (2)
- 聊聊新股市盈率的那些事
- Selenium Gird下文件上传问题的解决(WebUI自动化测试)
- 影集制作php源码_php 源码编译
- 关乎Java多线程+Runnable和Thread…
- 线性约束最小方差准则
- matlab绘图 作业,实验作业2 - -MATLAB作图
- Hexo 搭建博客提交百度 sitemap 抓取失败