簡介
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