TIER 0: Dancing

SMB

Server Message Block 是一种网络协议,用于在计算机网络上共享文件、打印机和其他资源。它最初由微软开发,用于在 Windows 操作系统之间进行文件和资源共享。

  • SMB 在 OSI 模型的应⽤层或表⽰层运⾏
  • SMB 协议使用 TCP 作为传输协议,通常使用 TCP/445 端口
  • Microsoft SMB 协议最常使⽤的传输层协议是 NetBIOS over TCP/IP (NBT)

SMB 相关概念

  • SMB-enabled storage: 在网络上,支持 SMB 协议的存储被称为 共享(share)。这些共享可以被具有服务器地址和正确凭据的任何客户端访问。
  • 访问共享:客户端可以使用正确的凭据访问 SMB 共享,以创建、编辑、检索和删除共享上的文件。这意味着只有经过身份验证的用户才能查看或与 SMB 共享的内容进行交互。

SMB 协议需要在网络拓扑中使用一些安全层来正常运行。这意味着在 SMB 中,客户端需要提供用户名和密码的组合来进行身份验证。

SMB 协议允许在网络上的存储设备上创建共享,并使用安全机制来确保只有经过身份验证的用户才能访问和操作共享中的文件。通过提供用户名和密码的组合,SMB 客户端可以访问 SMB 共享的内容。

在某些情况下,网络管理员可能配置了共享,使得未经身份验证的用户可以使用 无效的凭据匿名登录 方式进行访问。这可能导致未经授权的用户获得对共享的访问权限。

smbclient

smbclient 是一个用于与 SMB/CIFS(Server Message Block/Common Internet File System)服务器进行通信的命令行工具。它提供了在命令行下访问和操作 SMB 共享的功能。

通过 smbclient,您可以使用各种命令和选项来执行以下操作:

  1. 访问共享:您可以使用 smbclient 连接到远程 SMB 服务器,并指定服务器的地址、共享名称以及登录凭据(用户名和密码)。一旦连接建立,您就可以浏览和操作 SMB 共享中的文件和目录。

  2. 上传和下载文件:使用 smbclient,您可以从本地系统上传文件到远程 SMB 共享,或从共享下载文件到本地系统。这使得在 SMB 共享和本地系统之间进行文件传输成为可能。

  3. 列出目录内容:您可以使用 smbclient 列出远程 SMB 共享中的文件和目录内容。这允许您查看共享中的文件和目录结构,以及文件的属性和权限信息。

  4. 执行命令:除了文件传输和浏览之外,smbclient 还允许您在远程 SMB 服务器上执行命令。您可以通过 smbclient 发送命令到服务器,并查看命令的输出结果。

以下是 smbclient 的一些常用参数:

  1. -L <host>:列出指定主机上可用的共享列表。

  2. //<host>/<share>:连接到指定主机上的共享。

  3. -U <username>:使用指定的用户名进行认证。

  4. -N:使用空密码进行认证。

  5. -c <command>:执行指定的命令。

  6. -T <transport>:指定传输协议,如TCP或NBT(NetBIOS over TCP/IP)。

  7. -p <port>:指定要使用的端口号。

  8. -D <directory>:设置远程共享的工作目录。

  9. -d <debuglevel>:设置调试级别,用于输出详细的调试信息。

  10. -s <script>:执行指定的脚本文件。

使用 smbclient --help 命令可以查看完整的参数列表和说明。

通信分析

SMB 协议通信分析示例:

sequenceDiagram
participant Client
participant Server

Client->>Server: SMB Negotiate Protocol Request
Server-->>Client: SMB Negotiate Protocol Response

Client->>Server: SMB Session Setup Request
Server-->>Client: SMB Session Setup Response

Client->>Server: SMB Tree Connect Request
Server-->>Client: SMB Tree Connect Response

Client->>Server: SMB Create Request
Server-->>Client: SMB Create Response

Client->>Server: SMB Write Request
Server-->>Client: SMB Write Response

Client->>Server: SMB Read Request
Server-->>Client: SMB Read Response

Client->>Server: SMB Close Request
Server-->>Client: SMB Close Response

  • 客户端发送 SMB Negotiate Protocol 请求进行协议协商,服务器发送SMB Negotiate Protocol响应进行确认。
  • 客户端发送 SMB Session Setup 请求进行会话建立,服务器发送 SMB Session Setup 响应进行确认。
  • 客户端发送 SMB Tree Connect 请求进行共享连接,服务器发送 SMB Tree Connect 响应进行确认。
  • 客户端发送 SMB Create 请求创建文件,服务器发送 SMB Create 响应进行确认。
  • 客户端发送 SMB Write 请求进行写入操作,服务器发送 SMB Write 响应进行确认。
  • 客户端发送 SMB Read 请求进行读取操作,服务器发送 SMB Read 响应返回数据。
  • 客户端发送 SMB Close 请求关闭文件,服务器发送 SMB Close 响应进行确认。

实际的 SMB 通信过程可能还涉及其他命令和数据传输,具体的通信流程可能更加复杂。在本次靶机中主要涉及匿名登录,在 -L 列出共享列表里 WorkShares,使用其登录 //<host>/<share> 匿名。

TIER 0: Dancing的更多相关文章

  1. Hack The Box( Starting Point )

    Hack The Box [Starting Point] 初始点 -- 了解渗透测试的基础知识. 这一章节对于一个渗透小白来说,可以快速的成长.以下将提供详细的解题思路,与实操步骤. TIER 0 ...

  2. 2000条你应知的WPF小姿势 基础篇<1-7>

    在正文开始之前需要介绍一个人:Sean Sexton. 来自明尼苏达双城的软件工程师,对C#和WPF有着极深的热情.最为出色的是他维护了两个博客:2,000Things You Should Know ...

  3. Windows Live Write 日志客户端

    下载地址 下载地址:http://wl.dlservice.microsoft.com/download/E/4/9/E494934D-C33E-486A-AB1A-82248C800922/zh-c ...

  4. ssd可以用作redo 盘吗?

                                               ssd可以用作redo 盘吗? 1.ssd有写磨损,而且ssd的写性能也不是非常好,ssd只是随机读特别好,因为 ...

  5. [No0000129]WPF(1/7)开始教程[译]

    概要 在我使用了半年多 WPF 后,是时候写点关于 WPF 基础方面的东西了.我发表了一系列针对具体问题的文章.现在是到了让大家明白为什么说WPF是一款在界面开发上带来革命的产品了. 本文针对初级-中 ...

  6. OpenStack_Swift源代码分析——Ring的rebalance算法源代码具体分析

    1 Command类中的rebalnace方法 在上篇文章中解说了,创建Ring已经为Ring加入设备.在加入设备后须要对Ring进行平衡,平衡 swift-ring-builder object.b ...

  7. [ NOIP 2009 ] TG

    \(\\\) \(\#A\) \(Spy\) 给出两个长度均为\(N\)相同的样例串,建立第一个串各个字符向第二个串对应位置字符的映射,并用映射转换给出的长度为\(M\)第三个串,输入保证只有大写字符 ...

  8. 3、用js文件写mongo命令+update命令

    一.用js写一个模拟用户登录日志表的信息 var userName = "chengxiang"; //声明一个登录名 var timeStamp = Date.parse(new ...

  9. python-多任务编程01-线程(threading)

    并发:指的是任务数多余cpu核数,通过操作系统的各种任务调度算法,实现用多个任务“一起”执行(实际上总有一些任务不在执行,因为切换任务的速度相当快,看上去一起执行而已) 并行:指的是任务数小于等于cp ...

  10. 利用 PGO 提升 .NET 程序性能

    引子 .NET 6 开始初步引入 PGO.PGO 即 Profile Guided Optimization,通过收集运行时信息来指导 JIT 如何优化代码,相比以前没有 PGO 时可以做更多以前难以 ...

随机推荐

  1. Redis 的简单介绍

    Redis 特点 单线程 执行过程按顺序执行,不会同时执行多个操作,保证操作的原子性,省去了很多上下文切换线程的时间,不必考虑资源竞争和可能出现死锁. 为什么使用单线程 ? 官方FAQ表示:因为 Re ...

  2. kubernetes 二次开发-认证,鉴权(1)

    基于webhook的认证 授权过程 认证授权服务需要满足如下kubernetes的规范 kubernetes api-server组件发送 http post 请求 url:https://authn ...

  3. Android 13 - Media框架(5)- NuPlayerDriver

    关注公众号免费阅读全文,进入音视频开发技术分享群! 前面的章节中我们了解到上层调用setDataSource后,MediaPlayerService::Client(IMediaPlayer)会调用M ...

  4. zabbix笔记_005 zabbix自动发现

    自动发现 [消耗资源较大] 1.1 自动发现监控主机 自动发现的好处: 快速发现,并自动添加主机,省去管理员配置的麻烦. 管理简单高效 zabbix监控构建速度更高效 1.2 自动发现的原理 自动发现 ...

  5. rofi编译支持中文输入版本

    准备工作 git clone https://github.com/davatorium/rofi.git 根据网上的信息,rofi 中文输入主要是依赖 xcb-imdkit 这个库 当然我们是使用源 ...

  6. uniapp 复选框全选(基于colorui组件)

    说明:本案例的样式基于colorui组件库 感兴趣的小伙伴可以看下教程 colorui组件库开发文档或者csdn的文档,顺便再分享下 colorui的群资源 html <checkbox-gro ...

  7. ansible list错误

    [root@localhost ansible]# ansible all -list [WARNING]: * Failed to parse /etc/ansible/1.txt with ini ...

  8. FreeRTOS-02-列表和列表项

    说明: 本文仅作为学习FreeRTOS的记录文档,作为初学者肯定很多理解不对甚至错误的地方,望网友指正. FreeRTOS是一个RTOS(实时操作系统)系统,支持抢占式.合作式和时间片调度.适用于微处 ...

  9. 语义化结构标签 多媒体标签 H5新增表单内容

    语义化结构标签: section  更偏向于一个区域类似div(块) article 更偏向于显示内容(块) aside 标签作为article呢绒的辅助板块(块) header 标签做为一个网页头部 ...

  10. 剑指Offer-50.数组中重复的数字(C++/Java)

    题目: 在一个长度为n的数组里的所有数字都在0到n-1的范围内. 数组中某些数字是重复的,但不知道有几个数字是重复的.也不知道每个数字重复几次.请找出数组中任意一个重复的数字. 例如,如果输入长度为7 ...