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. .NET 基础知识 单文件部署和可执行文件 剪裁独立部署和可执行文件

    单文件部署和可执行文件 https://docs.microsoft.com/zh-cn/dotnet/core/deploying/single-file     剪裁独立部署和可执行文件 http ...

  2. nginx接受请求连接事件模块流程

    操作系统内核: 三次握手,当用户发来一个 SYN 报文时,系统内核会返回一个SYN+ACK确认给客户端,当客户端再次发送ACK来的时候,此时就已经建立了三次握手. 完成三次握手后,操作系统会根据系统内 ...

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

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

  4. itest(爱测试)开源接口测试&敏捷测试&极简项目管理 8.0.0 发布,测试重大升级

    (一)itest 简介及更新说明 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试,接口Mock 6合1,又有丰富的统计分析.可按测试包 ...

  5. pandas rank()函数简介

    本文简单的说一下自己对pandas的rank()函数的简单讲解. 函数原型:rank(axis=0, method: str = 'average', numeric_only: Union[bool ...

  6. C#.NET CORE .NET8连接SQL SERVER 2008 R2 报:证书链是由不受信任的颁发机构颁发的

    一.C#.NET CORE .NET8连接SQL SERVER 2008 R2  报:证书链是由不受信任的颁发机构颁发的 报错内容: A connection was successfully est ...

  7. 前端开发环境配置 nvm | npm 镜像 | git

    安装 nvm nvm 是一个node版本管理工具,它可以让我们安装多个node版本并在需要的时候切换 # nvm 下载地址 https://github.com/coreybutler/nvm-win ...

  8. Spring扩展——BeanFactory和FactoryBean

    BeanFactory和FactoryBean BeanFactory和FactoryBean长得很相似,也很容易让我们产生误解,特别是对于初学者而言,搞懂他俩关系非常有必要,因为这两个接口,是Spr ...

  9. C#.NET与JAVA互通之DES加密V2024

    C#.NET与JAVA互通之DES加密V2024   配置视频:     环境: .NET Framework 4.6 控制台程序 JAVA这边:JDK8 (1.8) 控制台程序   注意点: 1.由 ...

  10. 给你的博客加上个Live2D看板娘吧

    Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 给你的博客加上个Live2D看板娘吧 日期:2017-12 ...