SMB工具利用

SMB是一个协议名,全称是Server Message Block(服务器消息块协议),用于在计算机间共享文件、打印机、串口等

它是应用层(和表示层)协议,使用C/S架构

注意:smb的默认端口是139或是445,其工作的端口与其使用的协议有关

一般nmap目标机后若发现有139或445端口,即可考虑采用相关针对smb服务的工具

1. enum4linux

enum4linux是用于枚举windows和linux系统上的SMB服务的工具,可以从SMB服务有关的目标中快速提权信息

常用命令

enum4linux -a -o 目标IP

2. smbclient

smbclient命令属于samba套件,它提供一种命令行使用交互式方式访问samba服务器的共享资源

smbclient (选项) (参数)
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

smb命令

allinfo 文件/夹 查看属性

选项:

-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服务器

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