smb笔记

记录smb的学习笔记

什么是SMB?

smb全称Server Message Block,是一种客户端-服务器通信协议,用于共享对网络上文件,打印机,串行端口和其他资源的访问。
smb协议也被称为response-request protocol 响应请求协议,意味着它在客户端和服务器之间传输多个消息以建立连接。 客户端使用TCP/IP(实际上是RFC1001和RFC1002中指定的TCP/IP上的NetBIOS)连接到服务器,NetBEUI或IPX/SPX。
smbwork

一旦建立了连接,客户机就可以向服务器发送命令,这些命令允许客户机访问共享、打开文件、读取和写入文件,并且通常可以执行使用文件系统执行的所有操作。对于SMB来说,这些是通过网络完成的。

smaba最初是为unix系统而发布的,虽然现在已经也支持windows版本.

枚举smb信息

enum4linux

kali已集成此工具.

arch 安装方式:pacman -Ss enum4linux(可能需要先添加blackarch源)

或者去official github安装

语法: enum4linux [options] ip

参数 功能
-U get userlist
-M get machine list
-N get namelist dump (different from -U and-M)
-S get sharelist
-P get password policy information
-G get group and member list
-A all of the above (full basic enumeration)

nmap中的smb脚本

![脚本路径](file:///home/vkk/atsud0.me/publichttps://images.atsud0.me/images/post/Screenshot_20200615_08053

使用方法:

1
nmap -p139,445 -v --script=smb-enum-users.nse,smb-enum-groups.nse {--script-args=.....} {target_ip}

nbtscan

安装(kail应该是默认预装的)

1
sudo pacman -S nbtscan

查找已经打开的共享(windows共享)nbtscan-kali-tools

最简单的使用方法(扫描一个网段已经打开udp137的主机)

1
2
sudo nbtscan -r target_ip/subnet_mask
sudo nbtscan -r 192.168.1.0/24

rbcclient

1
rpcclient -U '' {target_ip}

如果一切正常,此时应该会让你输入密码。直接回车然后再输入

1
>enumdomusers

如果正常,应该会输出用户名信息。

smbclient

linux中用于登录smb

smbclient //[IP]/[SHAREPATH]

参数 功能
-U [name] 用户名
-p [port] 端口
-N no pass
-h help
smbclient 参数较多只列出几个.

smbget

linux中用于批量下载smb信息

smbget -R //[IP]/[SHAREPATH]

参数 功能
-U [name] 用户名
-a guest用户
-v 详细信息
-h help
-q 安静模式
-e 加密传输
-u 只下载远端更新的文件

mount

得先安装cifs-utils

除了使用smbclient,还可以通过mount和smbcount挂载远程共享文件夹

1
2
sudo mount -t cifs -o user=bob,sec=ntlm,dir_mode=0077,vers=1.0 "//10.11.1.136/Bob Share/" /tmp/bob
sudo umount /tmp/bob