标签 smb 下的文章

“”

Samba 介绍
Samba,是种用来让UNIX系列的操作系统与微软Windows操作系统的SMB/CIFS网络协议做链接的自由软件。第三版不仅可访问及分享SMB的文件夹及打印机,本身还可以集成入Windows Server的网域,扮演为网域控制站以及加入Active Directory成员。
安装samba

sudo apt install samba

查看samba版本

samba -V
Version 4.13.14-Ubuntu

修改smb.conf配置
samba的配置文件在/etc/samba/路径下,文件名为smb.conf,注意需要root用户权限才能编辑该文件,我是用root用户下使用vim进行编辑修改的。
在文件末尾添加以下内容

[test]
comment = samba test
path = /home/d/share //共享文件路径
browseable = yes
read only = no
guest ok = yes
writable = yes

添加samba用户    
smbpasswd -a 用户名
接着需要两次输入密码
此处设置的用户和密码,是用来登录用的

安装smbclient

sudo apt install smbclient

打开samba SMBV1 enable

服务器端在/etc/samba/smb.conf文件中[global]段中加入
server min protocol NT1
客户端在/etc/samba/smb.conf文件中[global]段中加入
client min protocol NT1

启动samba

systemctl start smbd

重启samba

systemctl restart smbd

nmap 扫描Samba服务支持的SMB协议版本

nmap -p445 -Pn  --script smb-protocols 192.168.10.64
Nmap scan report for 192.168.10.64
Host is up (0.000071s latency).

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-protocols: 
|   dialects: 
|     NT LM 0.12 (SMBv1) [dangerous, but default]
|     2.02
|     2.10
|     3.00
|     3.02
|_    3.11

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds

错误解决:Max protocol NT1 is less than min protocol SMB2_02
一般出现在使用smbclient 连接samba服务器时,这是由于smb.conf的client min protocol配置默认是SMB2_02,将client min protocol 配置为NT1即可。

smbclient 连接samba服务器

sudo smbpasswd -a hehe
smbclient //192.168.10.64/test -U hehe

指定协议版本连接Samba服务器

smbclient //192.168.10.64/test -m NT1 -U hehe

指定SMB默认端口连接Samba服务器

smbclient //192.168.10.64/test -p 9445 -m NT1 -U hehe

smb 端口
TCP 139 和 TCP 445 端口
smb-protocols.nse not found
使用nmap --script smb-protocols.nse 192.168.10.64
提示smb-protocols.nse not found,应该是没有相应的script,网上下载即可。
扫描smb版本方法

nmap --script smb-protocols 192.168.10.64 -p139
nmap --script smb-protocols 192.168.10.64 -p445
nmap --script smb-protocols 192.168.10.64 

输出类似

Host script results:
| smb-protocols: 
|   dialects: 
|     NT LM 0.12 (SMBv1) [dangerous, but default]
|     2.02
|     2.10
|     3.00
|     3.02
|_    3.11

smbclient - 類似FTP操作方式的訪問SMB/CIFS服務器資源的客戶端

smbclient 是個可以和SMB/CIFS服務器“交談”的客戶端程序。它提供 了類似FTP程序(參見ftp

   (1))的用戶界面。它可以完成的操作包括象從服務
   器下載文件到本地,上傳本地文件到服務器及在服務器上查找目錄信息等。

http://manpages.ubuntu.com/manpages/bionic/zh_TW/man1/smbclient.1.html

smbclient url port
通过-p port 参数可指定端口,windows默认的网络共享好像不能够指定端口。只能使用默认的端口。

smbclient 示例
列出某个IP地址所提供的共享文件夹

smbclient -L 198.168.10.64 -U username%password

像ftp客户端一样使用smbclient

smbclient //192.168.10.64/tmp  -U username%password

执行smbclient命令成功后,进入smbclient环境,出现提示符:smb:/>

这里有许多命令和ftp命令相似,如cd 、lcd、get、megt、put、mput等。通过这些命令,我们可以访问远程主机的共享资源。

直接一次性使用smbclient命令

smbclient -c "ls"  //192.168.10.64/tmp  -U username%password

smbclient //192.168.10.64/tmp  -U username%password

smb:/>ls

功能一样的。

创建一个共享文件夹

smbclient -c "mkdir share1" //192.168.10.64/tmp -U username%password

smb-protocols对应说明

SMB3_00: Windows 8

SMB3_02: Windows 8.1

SMB3_10: early Windows 10

SMB3_11: Windows 10

By default SMB3 in smb.conf selects the SMB3_11 variant.*

server min protocol = nt1
设置samba 支持的SMB协议版本,因为SMBv1(NT1)不安全,默认被禁用。导致很多只支持SMBv1的设备(电视盒子之类很多都只支持SMBv1协议)无法查看共享文件。
nmap smb 扫描脚本相关

cd /usr/share/nmap/scripts; ls |  grep smb
smb2-capabilities.nse
smb2-security-mode.nse
smb2-time.nse
smb2-vuln-uptime.nse
smb-brute.nse
smb-double-pulsar-backdoor.nse
smb-enum-domains.nse
smb-enum-groups.nse
smb-enum-processes.nse
smb-enum-services.nse
smb-enum-sessions.nse
smb-enum-shares.nse
smb-enum-users.nse
smb-flood.nse
smb-ls.nse
smb-mbenum.nse
smb-os-discovery.nse
smb-print-text.nse
smb-protocols.nse
smb-psexec.nse
smb-security-mode.nse
smb-server-stats.nse
smb-system-info.nse
smb-vuln-conficker.nse
smb-vuln-cve2009-3103.nse
smb-vuln-cve-2017-7494.nse
smb-vuln-ms06-025.nse
smb-vuln-ms07-029.nse
smb-vuln-ms08-067.nse
smb-vuln-ms10-054.nse
smb-vuln-ms10-061.nse
smb-vuln-ms17-010.nse
smb-vuln-regsvc-dos.nse
smb-vuln-webexec.nse
smb-webexec-exploit.nse

nmap --script smb-os-discovery.nse -p445 192.168.10.64

输出:

Nmap scan report for 192.168.10.64
Host is up (0.000074s latency).

PORT    STATE SERVICE
445/tcp open  microsoft-ds

Host script results:
| smb-os-discovery: 
|   OS: Windows 6.1 (Samba 4.13.14-Ubuntu)
|   Computer name: xxx
|   NetBIOS computer name: xxx\x00
|   Domain name: \x00
|   FQDN: xxx-1
|_  System time: 2022-01-28T10:49:04+08:00

Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds

nmap 遍历samba共享

nmap --script smb-enum-shares.nse -p445 192.168.10.64

nmap 遍历samba用户

nmap –script smb-enum-users.nse -p445 192.168.10.64

nmap 同时运行多个脚本

nmap --script smb-enum-domains.nse,smb-enum-groups.nse,smb-enum-processes.nse,smb-enum-services.nse,smb-enum-sessions.nse,smb-enum-shares.nse,smb-enum-users.nse -p445 192.168.10.64

更多内容:https://www.infosecademy.com/nmap-smb-scripts-enumeration/

server min protocol (G)
This setting controls the minimum protocol version that the server will allow the client to use.

Normally this option should not be set as the automatic negotiation phase in the SMB protocol takes care of choosing the appropriate protocol unless you have legacy clients which are SMB1 capable only.

Default: server min protocol = SMB2_02
Example: server min protocol = NT1

所有的smb协议版本

  • LANMAN1: First modern version of the protocol. Long filename support.
  • LANMAN2: Updates to Lanman1 protocol.
  • NT1: Current up to date version of the protocol. Used by Windows NT. Known as CIFS.

SMB2: Re-implementation of the SMB protocol. Used by Windows Vista and later versions of Windows. SMB2 has sub protocols available.

  • SMB2_02: The earliest SMB2 version.
  • SMB2_10: Windows 7 SMB2 version.

By default SMB2 selects the SMB2_10 variant.

SMB3: The same as SMB2. Used by Windows 8. SMB3 has sub protocols available.

  • SMB3_00: Windows 8 SMB3 version.
  • SMB3_02: Windows 8.1 SMB3 version.
  • SMB3_11: Windows 10 SMB3 version.

By default SMB3 selects the SMB3_11 variant.

Configuring 20.04 samba for SMBv1

client min protocol = NT1
server min protocol = NT1
sudo service smbd restart
sudo service nmbd restart

How do I enable SMBv1 on my Raspberry Pi file server?
On the CLIENT and/or SERVER machine add to /etc/samba/smb.conf in the [global] section

client min protocol = NT1
server min protocol = NT1