smb服务简介
SMB是一个协议名,全称是Server Message Block(服务器消息块协议),用于在计算机间共享文件、打印机、串口等 它是应用层(和表示层)协议,使用C/S架构 注意:smb的默认端口是139或是445,其工作的端口与其使用的协议有关 一般nmap目标机后若发现有139或445端口,即可考虑采用相关针对smb服务的工具
1. enum4linux
enum4linux是用于枚举windows和linux系统上的SMB服务的工具,可以从SMB服务有关的目标中快速提权信息
一些用于枚举的选项:
官方附加的选项命令:
实战中最常用的其实也就是使用 -a 命令,进行一次大范围信息探测:
enum4linux -a -o 目标IP
2. smbclient
smbclient命令属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源
语法:
smbclient (选项) (参数)
选项:
-B<ip地址>:传送广播数据包时所用的IP地址;
-d<排错层级>:指定记录文件所记载事件的详细程度;
-E:将信息送到标准错误输出设备;
-h:显示帮助;
-i<范围>:设置NetBIOS名称范围;
-I<IP地址>:指定服务器的IP地址;
-l<记录文件>:指定记录文件的名称;
-L:显示服务器端所分享出来的所有资源;
-M<NetBIOS名称>:可利用WinPopup协议,将信息送给选项中所指定的主机;
-n<NetBIOS名称>:指定用户端所要使用的NetBIOS名称;
-N:不用询问密码;
-O<连接槽选项>:设置用户端TCP连接槽的选项;
-p<TCP连接端口>:指定服务器端TCP连接端口编号;
-R<名称解析顺序>:设置NetBIOS名称解析的顺序;
-s<目录>:指定smb.conf所在的目录;
-t<服务器字码>:设置用何种字符码来解析服务器端的文件名称;
-T<tar选项>:备份服务器端分享的全部文件,并打包成tar格式的文件;
-U<用户名称>:指定用户名称;
-w<工作群组>:指定工作群组名称。
参数:
smb服务器:指定要连接的smb服务器
实例:
1.列出某个IP地址所提供的共享文件夹:
smbclient -L 目标IP地址 -U 用户名%密码
2.像ftp客户端一样使用smbclient:
smbclient //目标IP地址/tmp -U 用户名%密码
3.创建一个共享文件夹:
smbclient -c "mkdir share1" //目标IP地址/tmp -U 用户名%密码
如果创建的//目标IP地址/tmp的方式是只读的,会提示:
NT_STATUS_ACCESS_DENIED making remote directory /share1
3. smbmap
smbmap也是一个快速扫描和检查SMB的命令行工具,类似enum4linux
用法:
1.先用smbmap工具查看可利用的信息:
smbmap -H 目标IP -u guest //使用guest的身份访问目标主机的SMB服务
2.如果发现了可以利用的用户名,例如 Anoymous,则可以尝试使用smbclient以该用户名来登录smb服务
smbclient '\\目标IP\Anoymous' -u guest
3.查看有没有可以download的文件,例如 backup.zip,则:
get backup.zip