SMB扫描

ServerMessage Block

SMB协议大家应该都有所了解,毕竟2017年的MS17-010血洗整个互联网,加上之前的MS08-067 漏洞,这些都是SMB协议上出现过的著名漏洞

SMB 主要完成的工作主要就是文件共享,假如同一个工作组使用smb 互相传输文件

SMB 协议还可以被用在sql注入的带外通道上,我曾经遇到的一个CTF的题目就是考察这个考点·,遗憾的是当时没有公网IP,后来发现很多网站已经集成了接收SMB信息的功能

端口

139,445

直至Windows10,微软才默认SMB服务关闭状态(即使很多人根本就没有感知)

版本信息

SMB1 win2000/xp/win2003

SMB2 winvista sp1/win2008

SMB2.1 win7/win2008 r2

SMB3 win8/win2012

SMB最初版本的时候存在一个空会话访问的问题,这可以说是一个很古老的漏洞了,如果你看08年左右的书应该会看到IPC$ 空会话连接等攻击手段,我在两年前尝试过复现这个漏洞,由于当时技术差也没有复现成功,如果现在再进行复现也没有太大的意义了

空会话访问我们可以获取到的信息

密码策略

用户名

组名

机器名

用户和组的 sid

这些信息都是对于我们十分重要的,就拿一个不起眼的密码策略来说明吧!

密码策略规则规定了密码的最基本条件,比如至少多少位,包含几种字符,很多时候我们在提权建立账号时候就因为不满足密码策略而失败,失败之后还一头雾水

由于Windows用户众多,而且SMB协议也是经常使用的一个协议,所以Linux也自己实现了一个类似的Samba服务,这个服务也是这两个端口,并且可以与windows 上的SMB服务对接


关于RID

windows系统中用来区分用户的就是RID

administrator500

Guest 501

自己创建的 1000+

关于SID

SID是由计算机的一些不确定的因素产生的一个随机字符

一般SID+RID成为一个完整的SID

SMB 和SAMBA 都是工作在ISO七层模型中的第五层:会话层

关于Netbios

Network basic input output system

netbios是原来TCP/IP协议未推广时期工作在会话层的一个协议,TCP/IP协议推行后也兼容netbios

netbios实现文件共享主要识别主机靠的就是netbios名称,每一个主机都有,一般都是取主机名的前15个字符

在windows的cmd下可以使用

c:/>hostname 查看主机名

c:/>nbtstat -A 192.168.1.1 查看netbios信息,其中192.168.1.1是自己的IP

可以查看主机的netbios名称

如果netbios的字符不足15个,netbios会添加空格补齐15个

准确得说netbios的名称是16个,最后一个字符是一个16进制数,用来标明服务类型 20表示文件服务器

TCP/IP成为事实协议标准后,内网中也开始使用dns做域名解析,TCP/IP作为传输协议,NetBT负责将netbios的名称解析成IP地址,以供Netbios正常工作,这个也叫做 NetBios over TCP/IP (简称NetBT)

NetBIOS提供标准网络通信接口

就是说程序员在设计的时候基于netbios的程序不需要在考率TCP/IP怎么样,只需要实现这个接口就行了

UDPport 137 (name services) 名称服务(名称解析,名称注册)

UDPport 138 (datagram services) 数据段,数据报文服务,通过这个段阔传输数据

TCPport 139 (session services) 会话服务,保证传输的会话。(客户端向139提出TCP连接请求,之后基于这个连接进行文件共享的会话)

名称唯一

节点类型

B(广播)、P(点对点)、M(混合)、H(超级)

如何关闭这些端口呢?

在windows的网络连接里面 Internet协议版本4里面的属性中高级可以看到wins,直接禁用就会关闭了

检测

Nmap

扫描内网使用smb 或者samba 服务的主机

这个是一台没有打补丁的win7 主机

我们来看一下smb的脚本有哪些

首先来查询一下操作系统吧

可以看到清晰的识别出了是win7 旗舰版,比我们之前获取到的信息要详细得多

如果我们有账号和密码能够获取更加详细的信息

--script-args=smbuser=administrator,smbpass=123456

这些枚举信息的脚本我就不一个一个尝试了,一起来吧

漏洞检测

之前 nmap 有 smb-check-vulns 这个脚本,这个脚本会自动测试几个漏洞是否存在,不过后来被官方去掉了,换成了smb-vuln-conficker、smb-vuln-cve2009-3103、smb-vuln-ms06-025、smb-vuln-ms07-029、smb-vuln-regsvc-dos、smb-vuln-ms08-067等等几个脚本,我没有看官方的说明,也不知道为什么会这样,不过我猜测可能是因为漏洞之间会互相影响(比如如果先检测一个DoS类型的漏洞,可能直接主机就宕机了,导致其他的检测出现问题),当然只是我的猜测。

nmap -p139,445 192.168.1.108 –script=smb-vuln-*.nse--script-args=safe=1

safe=1 这个参数是保证扫描过程中不会导致主机宕机,从而影响正常使用

可以看到存在ms17-010 漏洞,危害等级高,RCE漏洞

还有很多脚本大家可以自行学习一下,当然可以同时使用所有的关于smb的脚本

nmap -p139,445 192.168.1.108 --script=smb-*.nse

当然这种方式是不推荐的,毕竟会产生大量的数据包

nbtscan

nbtscan -r 192.168.60.0/24

这个工具可以扫描不同的网段,就比如你在192.168.1.x,你可以扫描192.168.2.x

enum4linux

enum4linux –a –u administrator –p 123456192.168.60.108

不允许进行整个网段的扫描

【使用方法】

Linux SAMBA服务枚举

enum4linux1.1.1.1

Windows系统枚举

这个工具最开始设计时候比较早,主要是针对2000和xp进行设计的,所以对于win2003等做了一定默认安全配置的服务器其实并不能查询到信息,只有当我们已经有一个账号以后,根据账号密码进行查询

一下这些查询的参数需要放在前面,指定用户名密码和目标IP放在后面

-U 用户列表

-S 共享列表

-P 密码策略

-G 组账号

-d 详细信息

-u 指定用户

-p 指定用户密码

-a (-U -S -G -P -r -o -n -i)全都用上

-r 循环枚举RID

-R 自定义范围循环枚举RID -R 600-650

-l 通过TCP/389端口枚举域信息

-kuser 查询已知用户SID

-sfile 爆破共享名

-o 操作系统信息

5.02000

5.1xp

5.22003

-i 打印机信息

enum4linux -U -d -u administrator -p 123 192.168.2.1

关于SMB协议的扫描也就介绍这些,不过关于SMB的漏洞还有很多,由于SMB协议本身就有漏洞,没有打补丁的主机就可以直接获取shell,结合msf可以很简单的就完成。

本文分享自微信公众号 - 漫流砂(yidalidemao)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-07-03

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 开篇讲--关于Kali的碎碎念

    Kali 作为当今安全测试系统中的佼佼者,获得了多方的认可,并且现在已经有了自己的培训书籍和认证体系

    意大利的猫
  • 三进三出 | 渗透测试

    测试一个单位,其中一个官网,点进去一看,质朴中透露着一股有问题的气息,看了一下架构:IIS+PHP,美妙的组合。

    意大利的猫
  • Nmap 脚本研究

    >>> 为了写这一系列的文章,我用这段时间学习了 Lua语言,学习了Nmap的API,翻译了NSE库的部分源码,希望给喜欢Nmap的小伙伴带来惊喜吧!

    意大利的猫
  • 给GitHub "彩蛋" readme 生成自定义统计信息

    Github上通过创建一个与github用户名一致的仓库名称,然后在该仓库上自定义README信息,即可在github上的Overview上展示自定义说明信息了

    公众号: 云原生生态圈
  • URPC 2019 水下目标检测竞赛冠军方案:多图像融合增强

    下面要介绍的论文发于2019年12月,题为「ROIMIX: PROPOSAL-FUSION AMONG MULTIPLE IMAGESFOR UNDERWATE...

    BBuf
  • 【原创】知识付费时代

    从网络影视媒体开始收费,到听音乐要购买版权,再到阅读电子书收费,甚至到现在看一篇“优质帖子”都要收费,你已经很难在网上搜索到优质而免费的学习资料,你可以花更多的...

    sumsmile
  • RocketMQ系列(三)消息的生产与消费

    前面的章节,我们已经把RocketMQ的环境搭建起来了,是一个两主两从的异步集群。接下来,我们就看看怎么去使用RocketMQ,在使用之前,先要在NameSer...

    小忽悠
  • RocketMQ系列(三)消息的生产与消费

    前面的章节,我们已经把RocketMQ的环境搭建起来了,是一个两主两从的异步集群。接下来,我们就看看怎么去使用RocketMQ,在使用之前,先要在NameSer...

    小忽悠
  • 微信跳一跳之深度实践

    最近微信的跳一跳小程序火了一把,所以前天也更新了微信玩了几局,最多手动到200左右就不行了。

    疯狂的小程序
  • 一次不成功的深度学习实践-微信跳一跳

    最近微信的跳一跳小程序火了一把,所以前天也更新了微信玩了几盘,最多手动到200左右就不行了。 ? 后来准备用代码写个辅助工具,上Github一查,已经有人做出来...

    企鹅号小编

扫码关注云+社区

领取腾讯云代金券