smb未授权访问漏洞
SMB(Server Message Block)协议,授权说白了就是访问Windows系统上共享文件和打印机的“官方语言”。它默认监听445端口,漏洞让局域网里的授权机器互相传文件、访问共享目录。访问但问题在于,漏洞很多管理员部署SMB服务时,授权压根没想过要设访问密码,访问或者干脆图省事把匿名访问权限全开了。漏洞这就等于给内网里的授权任何人留了一扇没上锁的后门——不需要账号密码,直接就能连上去看文件、访问传东西,漏洞甚至执行命令。授权
这个漏洞有多“香”?访问我见过一次真实的演示,攻击者用一条简单的漏洞net use \\192.168.1.10\C$命令,就把目标服务器的整个C盘挂载到了自己电脑上。全程没触发任何告警,因为流量看起来就是正常的SMB访问。更可怕的是,如果共享目录里恰好有数据库备份、配置文件或者运维脚本,那基本就等于把服务器权限拱手送人了。某次渗透测试里,我就在一个开放共享的文件夹里翻出了`web.config`,里面明文写着SQL Server的sa密码——那种感觉,就像捡到一串万能钥匙。
漏洞根源不在协议本身,而在配置习惯。Windows默认的`Everyone`组权限、某些NAS设备出厂自带的匿名共享、还有那些为了图省事把共享目录设为“可写”的管理员,都是帮凶。Linux上跑的Samba如果配置了`map to guest = Bad User`,同样会中招。这玩意儿不分系统阵营,只要SMB服务开着且没做认证,全裸奔。
检测方法简单到令人发指。拿Linux自带的`smbclient`,敲一句smbclient -L //目标IP -N,如果返回了共享列表,哪怕只有一个`IPC$`,都说明服务在响应匿名请求。再用`smbclient //目标IP/共享名 -N`试着连一下,连上了就直接进目录。Windows下更省事,打开资源管理器输入`\\目标IP\共享名`,回车就进去了。整个过程用不了十秒。
修复方案也不复杂,但总有人不当回事。第一,关掉SMBv1协议——这老古董漏洞百出,微软都建议弃用。第二,给共享目录设强密码,且别用`Everyone`组,改成指定用户。第三,对外的SMB服务要么加防火墙白名单,要么干脆别开。第四,如果是Windows 10/Server 2016以上系统,开启SMB签名和加密,能防中间人篡改。另外,定期扫一下内网,用`Nmap`的`smb-enum-shares`脚本检查哪些机器开了匿名共享,发现一个修一个。
这漏洞在实战里被利用的频率极高,因为内网渗透的第一步就是找共享资产。很多企业觉得内网是“安全区”,结果横向移动全靠着SMB裸奔一路畅通。记住,漏洞利用的门槛越低,危害就越容易被低估——但真实世界里,攻击者最爱的就是这种不设防的入口。
本文地址:http://www.79wt.cn/news/883d0499112.html
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。