跨平台快速文件共享Samba-跨平台快速文件共享Samba-华盟网

跨平台快速文件共享Samba

华盟学院山东省第二期线下学习计划

0x01 关于smaba

主要用于实现不同系统平台间的文件共享,配置非常简单,轻量,适合用于常规办公内网环境中

linux <==> windows <==> unix

此次演示环境

CentOS6.9 x86_64 ip:192.168.3.55 samba服务器

CentOS6.9 x86_64 ip:192.168.3.57 用来模拟smb客户端进行访问测试

0x02 samba服务默认所监听的端口

137/udp,138/udp nmb 进程提供netbios解析,以满足基于 CIFS 协议的共享访问环境

138/tcp,445/tcp smb 进程主要为客户端提供文件共享,打印机服务以及用户权限验证

0x03 使用samba客户端工具 smbclient,其实有些类似于ftp的客户端工具,也是一种交互式的访问

在linux下使用smbclient访问windows中的共享目录

# smbclient -L 192.168.3.23 -U administrator

# smbclient //192.168.3.23/linux_dir -U dcadmin

# mount -t cifs //192.168.3.23/linux_dir /mnt/windows/ -o username=dcadmin 注意,此处要使用cifs协议进行挂载

在linux下使用smbclient访问linux中samba服务共享目录

# smbclient -L 192.168.3.55 -U webadmin

0x04 安装samba服务所需的各种软件包

# yum install samba samba-client samba-common -y

# /etc/init.d/nmb start;/etc/init.d/smb start

0x05 先来手工配置samba,编辑samba主配置文件

跨平台快速文件共享Samba

# testparm   用于测试samba主配置文件是否有语法错误,并显示最终生效的配置

# /etc/init.d/smb restart;/etc/init.d/nmb restart

# chkconfig smb on && chkconfig nmb on

0x06 创建用于共享访问的目录,并为该共享目录配置好权限,注意,如果要用户能写,务必要保证两点,首先,smb.conf中的共享目录要设置为read only = no,其次,还要对本地文件系统也能写才行,这里纯粹是为了方便才直接用facl来授权,你可以通过修改属主,属组来实现,比较简单,就不赘述了

# mkdir /data/tools -p

# setfacl -m u:sec:rx /data/tools/

# setfacl -m g:admins:rwx /data/tools/ 直接对指定组setfacl

# getfacl -c /data/tools/

0x07 创建samba用户并为每个用户设置samba密码,注意samba的验证方式,samba用户虽为系统本地用户,但samba用户的密码却为samba服务自己的密码,并存在它自己特定格式的数据库中,再次强调,严禁弱口令

# groupadd admins

# useradd -G admins -s /sbin/nologin -M webadmin

# useradd -G admins -s /sbin/nologin -M dbadmin

# useradd -s /sbin/nologin -M sec

# smbpasswd -a webadmin

# smbpasswd -a dbadmin

# smbpasswd -a sec

0x08 关于smbpasswd的基本使用,主要用来将系统用户添加为samba内置用户

-d 禁用指定系统用户

-e 启用指定系统用户

-x 删除指定系统用户

-a 添加指定系统用户

0x09 在192.168.3.57测试刚刚设置的权限是都已否生效,正常来讲,我们应该是一个用户对应一个目录,这样权限相对好控制,可自行写脚本实现

因为webadmin和dbadmin都属admins组,而admins组对共享目录可写,另外,在共享目录的可写用户列表中也有这俩用户,所以它俩才能往共享目录中写

smbclient //192.168.3.55/tools -U webadmin

跨平台快速文件共享Samba

smbclient //192.168.3.55/tools -U dbadmin

跨平台快速文件共享Samba

sec既不属于admins组,也不在可写用户列表中,所以,该用户在共享目录中只能看不能写,如下

smbclient //192.168.3.55/tools -U sec

跨平台快速文件共享Samba
跨平台快速文件共享Samba

0x10 如果嫌手工配置麻烦的话,还有一款纯图形化samba配置工具,实际中最好用完立马就关掉,个人觉得根本犯不着这样,其实写个一键脚本就好了

# yum install samba-swat -y

# vi /etc/xinetd.d/swat

service swat

{

 port = 901

socket_type = stream

wait = no

only_from = 192.168.3.0/24  # 允许连的ip

 user = root   # 因为工具中间还涉及到一些服务管理功能,所以此处最好直接用root身份来搞

 server = /usr/sbin/swat

log_on_failure += USERID

disable = no

}

# 另外,需要注意swat基于xinet管理

# /etc/init.d/xinetd start

# chkconfig xinetd on

跨平台快速文件共享Samba
跨平台快速文件共享Samba

0x11 关于samba的一些安全问题

绝大部分问题都出自samba自身的一些漏洞,如,各类RCE...直接可远程getshell的漏洞就已经出了好几次了,所以建议大家实际中尽量用新一点的版本

关于权限分配,问题不太大,毕竟只是个内网服务,别傻到直接把端口暴露在公网就行,不然,很可能哪天一不小心就成了别人的`矿鸡`了

...

后话:

服务比较简单,此处仅做学习实验之用,切勿直接照搬用于实际生产环境中…

文章出处:klion's blog

www.idc126.com

原文链接:https://klionsec.github.io/2017/12/12/samba-sec/

本文由 华盟网 作者:congtou 发表,其版权均为 华盟网 所有,文章内容系作者个人观点,不代表 华盟网 对观点赞同或支持。如需转载,请注明文章来源。
0

发表评论