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. 使用interface化解一场因操作系统不同导致的编译问题

    场景描述 起因: 因项目需求,需要编写一个agent, 需支持Linux和Windows操作系统. Agent里面有一个功能需要获取到服务器上所有已经被占用的端口. 实现方式:针对不同的操作系统,实现 ...

  2. Mybatis-Plus update不存在的数据返回值一定为零?

    MP update不存在的数据返回值一定为零? 本文分为以下几个部分: 前言 验证过程 结论 前言 ​ MP(mybatis-plus),在 MyBatis 的基础上只做增强不做改变,为简化开发.提高 ...

  3. H.265码流解析

    这一篇内容旨在对H.265码流中的一些概念做简单了解,部分概念与H.264相同,本篇中将不再重复. 1.NALU H.265(HEVC)码流的NALU结构和AVC有一些不同,属于增强版,HEVC NA ...

  4. docker lnmp

    #wiki: https://github.com/2233466866/lnmp/wiki #安装docker wget -O /etc/yum.repos.d/ali_docker-ce.repo ...

  5. Java 中 hashCode 和 equals 方法是什么?它们和 == 各有什么区别?

    在 Java 中,hashCode 和 equals 方法都是 Object 类的方法.它们的作用分别如下: hashCode 方法返回对象的哈希码,用于支持基于哈希表的集合,如 HashMap.Ha ...

  6. Vue3简单项目流程分享——工作室主页

    Vue3简单项目流程分享--工作室主页 零.写在最前 以下是项目相关的一些链接: 源代码GitHub仓库(需要魔法上网):仓库 网页示例(需要魔法上网):网页示例 UI图(来源@设计师杨贺):Mast ...

  7. itest(爱测试) 开源接口测试,敏捷测试管理平台10.2.3发布

    一:itest work 简介 itest work 开源敏捷测试管理,包含极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock,还有压测 ,又有丰富的统计分析,8合1工作站.可按 ...

  8. 剑指Offer-48.不用加减乘除做加法(C++/Java)

    题目: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 分析: 将加法还原成最原始的计算方法,也就是分别计算进位和非进位的和,最后再将这两部分合起来,便是和.我们可以利 ...

  9. 鸿蒙HarmonyOS实战-窗口管理

    前言 窗口管理是指计算机操作系统中管理和控制窗口的一种机制.窗口管理器负责处理窗口的创建.关闭.移动.调整大小等操作,并且决定窗口的位置.层级.是否可见.是否接收用户输入等属性.窗口管理器还负责绘制窗 ...

  10. 在ftl模板中调整表格