SMB枚举怎么绕

极客

SMB枚举怎么绕?聊聊我在内网渗透里踩过的那些坑

说实话,每次一提到 SMB枚举怎么绕 这个话题,我脑子里就浮现出半夜三点盯着终端刷屏的画面……唉,真是一把辛酸泪,很多新手朋友上来就问我:“为啥我 smbclient -L 一跑就被挡了?” 兄弟,这不是你命令写错了,是人家早就把门锁死了啊!今天就用大白话聊聊 SMB枚举怎么绕 这件事儿,全是我自己趟出来的经验,不整那些虚头巴脑的。

SMB枚举怎么绕

先搞清楚:为啥枚举会被拦?

你别急着上工具,得先明白对手是谁,现在稍微有点安全意识的环境,SMB 签名(SMB Signing)基本是强制开的,Guest 账户早就禁了,再加上各种 ACL 和防火墙规则,你直接 enum4linux 扫过去,返回一堆 Access Denied,心态直接就崩了对吧?我第一次遇到这情况的时候还以为是网络不通,ping 了半天……后来才反应过来,是枚举这条路被堵了。

SMB枚举怎么绕 的核心思路其实就一句话:别硬闯,换个姿势进门。

第一招:匿名不行,那就试试“合法身份”

很多环境里匿名枚举(null session)是被关的,但你要是手上正好有个低权限域账号——哪怕就是个普通员工账号——那情况就完全不一样了,我习惯用 crackmapexec 先验证一下凭据:

crackmapexec smb 10.10.10.0/24 -u 'lowuser' -p 'Passw0rd!' --shares

哎,你别小看这一步,有时候一个普通域用户就能把共享列表、用户列表全给你吐出来,为啥?因为很多管理员只记得关匿名,忘了普通认证用户的枚举权限也没收紧,这就是 SMB枚举怎么绕 里最朴实的一招——用合法身份做不合规的事,哈哈。

第二招:RID 循环,绕过用户列表限制

有时候你连用户列表都拿不到,net user 直接给你来个拒绝访问,这时候我一般会上 lookupsid 或者 crackmapexec --rid-brute:

crackmapexec smb 10.10.10.5 -u 'lowuser' -p 'Passw0rd!' --rid-brute 4000

这招的原理就是暴力遍历 RID,从 500 开始一路撸下去,把域内用户、组、机器账号全给枚举出来,虽然有点“笨”,但胜在稳啊!我第一次用这招撸出三百多个账号的时候,那叫一个兴奋,差点把咖啡洒键盘上。SMB枚举怎么绕?RID 循环绝对算一条实用路径,尤其是面对那些只做了表面防护的环境。

第三招:换协议,别死磕 445

这招我觉得最容易被忽略,很多兄弟一门心思扑在 445 端口上,结果防火墙把 SMB 封得死死的,诶,你试试 139 呢?试试 NetBIOS 呢?再不行,看看有没有 WinRM(5985/5986)、LDAP(389)这些旁路,我上次遇到一个环境,445 完全不通,结果 139 端口开着,nmblookup 一跑,主机名、工作组信息全出来了,顺藤摸瓜就摸到了域控。

说白了,SMB枚举怎么绕 不一定非得在 SMB 这一棵树上吊死,横向想想,LDAP 查询有时候比 SMB 枚举还香,尤其是你有域账号的时候,ldapsearch 一把梭,用户、组、OU 结构清清楚楚。

第四招:签名不是万能的,但没签名是真香

反过来想,如果你扫到一台机器 没强制 SMB 签名,那恭喜你,中继攻击(NTLM Relay)的路子就打开了,虽然这不完全是“枚举”,但通过中继拿到认证后,枚举还不是手到擒来?我一般会先用 crackmapexec smb --gen-relay-list 筛一遍:

crackmapexec smb 10.10.10.0/24 --gen-relay-list relay.txt

看到那些 signing:False 的机器,眼睛都亮了,哈哈,不过话说回来,这招现在越来越难用了,微软这几年的补丁打得挺勤快,且用且珍惜吧。

最后唠两句掏心窝子的

SMB枚举怎么绕 这个问题,本质上不是技术问题,是“信息收集思维”的问题,你别老想着一个工具一条命令解决战斗,得多问自己:这个环境缺了啥?管理员漏了啥?我还能从哪个角度切进去?

还有啊,别嫌麻烦,枚举阶段多花一小时,后面渗透能省一整天,我见过太多人枚举没做透,上来就怼漏洞,结果打半天打不动,回头一看,人家共享里明晃晃躺着一份密码本……那心情,你懂的。

好了,今天就唠到这儿,希望这篇关于 SMB枚举怎么绕 的碎碎念能帮到你,少踩点坑,多拿点 shell,有问题评论区见,我看到就回! 🔥


PS:本文仅用于授权渗透测试与安全学习,别拿去干坏事啊兄弟,进去了可别怪我没提醒你。

文章版权声明:除非注明,否则均为极客网安-咸鱼原创文章,转载或复制请以超链接形式并注明出处。

目录[+]