简介
SMB(全称是Server Message Block)是一个协议名,它能被用于Web连接和客户端与服务器之间的信息沟通。
用于局域网分享网络文件用,也可以打印。
samba 是基于SMB协议(ServerMessage Block,信息服务块)的开源软件,samba也可以是SMB协议的商标。SMB是一种Linux、UNIX系统上可用于共享文件和打印机等资源的协议,这种协议是基于Client\Server型的协议,Client端可以通过SMB访问到Server(服务器)上的共享资源。当Windows是 Client,CentOS是服务器时,通过Samba就可以实现window访问Linux的资源,实现两个系统间的数据交互。
kali安装
apt-get install samba
配置samba共享目录
mkdir /root/share
sudo chmod 777 -R /root/share //赋予可读可写权限
cd /etc/samba
cp smb.conf smb.conf.bak
leafpad smb.conf
//然后在尾部加入
[share]
path =/root/share
available = yes
browsealbe = yes
public= yes
writable = yes
参数说明:
(a)path:共享的目录
(b)browseable:是否允许在工作组里面(no:网上邻居看不到你的)
(c)public:公开的 public,因为匿名任何人都能访问,所以要yes
(d)writetable:可写
配置用户登录密码验证:
root@kali:~# smbpasswd -a root
New SMB password: Retype new SMB password:
root@kali:~# vi /etc/samba/smb.conf
在/etc/samba/smb.conf末尾追加
[share]
path=/root/share
writable=yes
public=yes
valid users=root
root@kali:~# service smbd restart
启动samba服务器
service smbd start
service nmbd start
Samba是一套程序,其中最重要的两个进程是nmbd和smbd:
smb:提供SMB / CIFS服务(文件共享和打印)的守护进程,使用SMB协议与客户进行连接,完成用户认证,权限管理和文件共享任务。
nmb:提供NetBIOS名称服务的守护进程,可以帮助客户端定位服务器和域,相当于WindowsNT中的WINS服务器,如果只是单纯的共享文件可以关闭这个服务,这样就不用在防火墙中开发137、138端口,但是在Windows中“桌面”上的“网络”里不会在显示共享的主机,只能通过“运行” 打开 \\IP 的方式连接到共享的目录。
windows下访问
我的kali的ip是 192.168.71.105
在windows运行中输入
\\192.168.71.105 //win+r快捷键
在文件夹中可以看见 Share
验证是否可读可写
在Share文件夹中新建一个 hello.txt,写入任意字符,如 hello, kali
进入kali,cd /root/Public
查看 hello.txt,显示 hello, kali
编辑 hello.txt,新加一行,如 hello, windows
windows 开启smb协议
1.进入控制面板,选择“网络和 INTERNET”后进入“网络和共享中心”,如下图,把活动
网络选择为“网络:工作网络”。
2.选中左侧“更改高级共享设置”
3.进入高级共享
设置并且选择该箭头展开详细设置项(切勿选择“公用”,设置将不会生效)。
4.如下图进行设置,其中“6.”“7.”“9.” 项可以酌情设置,其余必须按所示设置。
步骤阅读
5. 5
5.设置完成,win7已经打开smb服务
linux连接windows smb
1,列出某个IP地址所提供的共享文件夹
smbclient -L 198.168.0.1 -U username -W domain //(会提示输密码)
smbclient -L 198.168.0.1 -U username%password -W domain
提示错误,可以用以下方法:
用-L 命令查看远程服务器共享的目录:
smbclient -L //192.168.1.108/ -U username%password
smbclient -L 192.168.1.108 -U username%password
上面的两条命令分别用了FTP的地址表达格式和IP地址的表达方式,在ubuntu13.04下亲测两种都行。
然后可以看到远程服务器上的共享目录都被列了出来:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 远程管理
C$ Disk 默认共享
E$ Disk 默认共享
F$ Disk 默认共享
forshare Disk
IPC$ IPC 远程 IPC
此外,还会报错:
session request to 192.168.1.108 failed (Called name not present)
session request to 192 failed (Called name not present)
session request to *SMBSERVER failed (Called name not present)
NetBIOS over TCP disabled -- no workgroup available
不用管它。
然后就可以去访问具体的目录:
smbclient //192.168.1.108/directory -U username%password
然后进入smb的子shell:
smb: \>
在其中可以用cd(进入目录),ls(罗列文件和文件夹),get(下载文件),put(上载文件) 等命令进行 相应操作。
注意:在哪一个目录下运行smbclient,smb就会把下载的文件放到该目录下,某些目录创建文件需要权限,要sudo smbclient //ip/dir -U username%psd