SMB(服务器消息块)是一种协议,它允许同一网络上的资源共享文件,浏览网络并通过网络进行打印。它最初用于Windows,但是Unix系统可以通过Samba使用SMB。今天,我们将使用名为Enum4linux的工具从目标中提取信息,并使用smbclient连接到SMB共享并传输文件。
通常,服务器上有SMB共享驱动器,可以连接到该驱动器并用于查看或传输文件。对于想要发现敏感信息的
一、使用Enum4linux收集信息我们需要做的第一件事是确定目标上是否存在SMB。通常可以确信,如果打开了端口139和445,则SMB正在运行。让我们做一个简单的NMAP扫描以查看打开了什么服务:
我们可以看到SMB已经开放
Enum4linux是用于枚举windows和Linux系统上的SMB服务的工具。可以轻松的从与SMB有关的目标中快速提取信息。
在终端中输入enum4linux查看帮助和使用信息:
~# enum4linux
可以在帮助中看到,需要安装Samba软件包才能使用该工具。
~# apt-get install samba
Enum4linux的最基本用法有一个选项和目标的IP地址。我们可以使用-U标志来查看目标用户:
(截图只是一部分内容,可以自行运行命令查看,发现更多有用信息)
我们可以看到,这为我们提供了有关工作组名称,服务器是否允许空会话(空用户名和密码-稍后将派上用场)以及系统中存在用户的信息。
该-S标志给我们介绍一下机器上的SMB共享的信息:
我们可以看到存在一些共享,例如print $,IPC $和ADMIN $之类的默认共享,还有opt和tmp之类的自定义共享。甚至似乎对其中之一发表了评论,以后可能会很有用。
它还尝试映射共享,告诉我们是否可以访问特定共享。我们可以使用-P标志查看目标上的密码策略:
这为我们提供了有关当前所有密码策略的信息。在这种情况下,我们可以看到“ METASPLOITABLE”域的一些信息。我们可以看到诸如最小密码长度,密码期限和复杂性要求之类的信息。这对于
我们可以使用-o标志来获取一些操作系统信息:
在这里,我们可以看到Samba版本号,并且该服务器是基于Debian的。
如果目标是域控制器,则-l标志将尝试获取有关服务器上运行的LDAP的一些有限信息:
在这种情况下,我们的目标不是DC,因此它不返回任何内容。
打印机通常是在网络上共享的,并且通常是被忽视的攻击媒介。我们可以使用-i标志来查看任何打印机信息:
此工具最有用的选项可能是一次运行所有这些测试的选项。这样,我们可以一次扫描快速获得所需的所有SMB信息-使用-a标志运行所有简单的枚举:
通常,这是枚举目标上SMB的最快方法,并且由于将结果全部集中在一个位置,因此可以轻松地保存它们以备后用。
二、使用Smbclient列出共享和传输文件
现在,我们已经使用Enum4linux收集了有关目标的一些信息,我们可以使用一种基础工具来与系统上的SMB进行实际交互。
Smbclient是一种用于访问服务器上SMB资源的工具,就像FTP客户端用于访问文件一样。它提供了一个简单的命令行界面,如果您完全熟悉FTP的话,可以轻松使用。
我们可以使用以下命令查看帮助和用法选项:
~# smbclient --help
连接和身份验证有很多不同的选项,但是今天我们将使其保持简单。我们可以通过使用-L标志后跟服务器的IP地址来获取目标上的共享列表,就像我们之前对Enum4linux所做的一样。
连接到SMB时,我们需要在地址周围使用斜杠。现在,它将提示我们输入root的密码,但如果配置不正确,我们只需在提示符下按Enter键即可匿名登录。
前面我们看到了允许空会话,这意味着我们也可以使用空白的用户名和密码登录。使用-U标志指定用户名(在这种情况下为空白字符串),使用-N标志指定无密码:
现在,我们列出了共享,但未提供任何凭据,并且现在可以通过指定主机IP地址和共享名称来连接到共享。关于tmp共享有一个文件,我们能够更早地成功映射它,因此让我们连接到它:
我们可以使用空白的root密码登录,也可以使用空白的用户名和密码登录,就像之前一样。连接后,我们可以键入help以获得可用命令的列表。
使用dir命令列出当前目录的内容: