针对smb服务的工具

野荷 / 2024-09-13 / 原文

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