ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Sliver 客户端 crack 命令组深入解析:GPU 分布式口令破解的完整工作流

Sliver 客户端 crack 命令组深入解析:GPU 分布式口令破解的完整工作流 网络安全【免费下载链接】sliverAdversary Emulation Framework项目地址https://gitcode.com/gh_mirrors/sl/sliver点击查看免费下载本篇技术指南围绕 SliverAdversary Emulation Framework客户端控制台中的crack命令组展开系统讲解其命令层级结构、crackstation破解工作站状态与后端设备信息、缓存基准测试benchmarks、持久化破解任务jobs的完整生命周期、词表/规则/hcstat2 文件管理以及基于 Bubble Tea 的全屏实时监视器crack top。读完本文你将掌握如何通过 Sliver 客户端把一个基于 Hashcat 的分布式 GPU 破解集群完整地纳管、调度与监控并理解每个命令背后的 RPC 调用链与源码实现细节。crack 命令组概览在 client/command/crack/ 目录中实现的crack命令组是 Sliver 客户端连接服务端后操作 GPU 口令破解集群的统一入口。从 crack.go 的注释可以看到它被定位为 GPU password cracking interface其核心设计目标包括分布式任务调度破解工作由服务端调度到多台已连接的 crackstation每个 crackstation 上运行 Hashcat客户端只负责下发任务与查看结果持久化任务任务CrackJob由服务端持久化客户端可以随时列出、查看、暂停、恢复、取消和删除同步查询keyspace 计算、候选总数、候选定位、哈希类型识别、哈希信息等操作在空闲 crackstation 上同步执行不创建任务实时监控通过全屏 TUIcrack top实时观察任务进度、GPU 设备遥测与历史图表。命令字符串常量定义在 client/constants/constants.gocrack、stations、benchmarks、wordlists、rules、hcstat2。命令层级结构Cobra 命令树的构建crack命令组由 commands.go 中的Commands()函数统一构建它接收*console.SliverClient并返回根命令完整的命令树如下crack # GPU password cracking破解调用/信息面板 ├── stations # 管理 crackstation-–show-benchmarks 显示基准速率 ├── benchmarks # 显示服务端缓存的基准测试结果-a/--all 显示全部哈希模式 ├── jobs # 列出持久化破解任务 ├── top # 全屏实时监视器--poll-interval 默认 1s最小 250ms ├── job [id] # 查看单个任务-w/--watch 轮询直到终态--poll-interval 状态轮询间隔 │ ├── cancel [id] # 取消进行中或已暂停的任务 │ ├── pause [id] # 暂停进行中的任务 │ ├── resume [id] # 恢复已暂停的任务 │ └── rm [id] # 删除已结束完成/失败/取消的任务 ├── wordlists # 管理词表 │ ├── add path # 上传词表-n/--name 指定名称默认取文件名 │ └── rm name # 删除词表 ├── rules # 管理规则文件 │ ├── add path # 上传规则文件 │ └── rm name # 删除规则文件 └── hcstat2 # 管理 Markov hcstat2 文件 ├── add path # 上传 hcstat2 文件 └── rm name # 删除 hcstat2 文件从源码可以看出几个值得注意的细节根命令crack绑定了一个--timeout/-t默认flags.DefaultTimeoutgRPC 超时参数用于控制与服务端的 RPC 调用超时crack与crack jobs、crack job的 handler 都通过flags.Bind(, true, ...)绑定timeouttrue表示该标志在子命令间继承所有涉及任务 ID、词表、规则、hcstat2 的位置参数都注册了基于 carapace 的补全器completer如CrackJobIDCompleter、CrackWordlistCompleter、CrackRulesCompleter、CrackHcstat2Completer其中任务 ID 补全会过滤出可操作的任务可暂停、可恢复、可取消、终态任务各有专属补全器见 helpers.go。调用分发一次 crack 命令如何被分类处理crack根命令的处理器CrackCmdcrack.go首先调用classifyCrackInvocationcrack-dispatch.go对命令进行调用分类决定本次执行属于哪种模式调用模式触发条件行为crackInvocationDashboard无任何破解相关标志/参数显示 crackstation 在线数与已上传破解文件摘要信息面板crackInvocationJob存在--hash、位置参数或破解相关标志构建CrackCommand提交到分布式任务队列创建持久化任务crackInvocationBackendInfo--backend-info/--backend-info-level直接展示所有已连接 crackstation 注册的后端设备信息不创建任务crackInvocationKeyspace--keyspace在空闲 crackstation 上同步计算 keyspace 并返回crackInvocationTotalCandidates--total-candidates同步计算候选总数crackInvocationLookup--lookup candidate同步定位某个候选在攻击中的位置crackInvocationIdentify--identify-mode配合位置哈希或--hash同步识别哈希类型crackInvocationHashInfo--hash-info/--hash-info-level同步返回哈希模式信息分类逻辑有严格的互斥与合法性校验六种查询模式两两不能组合会报 crack query modes cannot be combined--crackstation必须配合同步查询模式使用--identify-mode与显式指定--hash-mode/--hash-type互斥--keyspace/--total-candidates等候选查询与 benchmark、brain、restore、show/left、speed-only 等标志互斥见incompatibleCandidateQueryFlagscrack-dispatch.go。对于任务提交crack-command.go 中的buildCrackCommand会把 Cobra 标志逐一映射为clientpb.CrackCommandprotobuf 消息覆盖 Hashcat 的几乎全部参数面攻击模式--attack-mode支持 straight/combination/bruteforce/pcfg/hybrid-wordlist-mask/hybrid-mask-wordlist/generic/association/no-attack/hybrid 或数字见 crack-command.go、哈希类型--hash-type支持数字或枚举名、--hash-mode、可重复的--hash与--credential、--rules-file、8 个自定义字符集、增量模式、Markov、restore/outfile、benchmark、workload-profile、brain 服务器等。--segment-size已标记为 removed in Hashcat v7 并直接报错。crackstation 状态与后端设备信息crack stations命令由CrackStationsCmdcrack.go实现通过Rpc.Crackstations()获取所有已连接的工作站并按名称/HostUUID 稳定排序后逐个渲染表格renderCrackercrack.go。每个工作站展示操作系统GOOS/GOARCH、Hashcat 版本后端设备CUDA / HIP / Metal / OpenCL 四类每类显示设备名、空闲/总显存、时钟与处理器数量crack-backend-info.go加--show-benchmarks后额外渲染该工作站上报的基准速率表printBenchmarks。而crack --backend-info或--backend-info-level 1|2则直接展示注册快照中的后端设备详情级别 1 只显示设备摘要级别 2 追加 Vendor、Vendor ID、Backend Device ID、Preferred Thread Size、Unified Memory、Local Memory、Cache Size、PCI Address 等细节Metal/OpenCL 设备还有物理位置、Registry ID、平台信息等专属字段。代码注释明确说明这些信息来自registration snapshots即 crackstation 连接服务端时注册上报的快照因此该查询不会唤醒空闲工作站执行 Hashcat。缓存基准测试crack benchmarkscrack benchmarks由BenchmarksCmdcrack-benchmarks.go实现调用Rpc.CrackstationBenchmarks()获取服务端持久化缓存的基准快照CrackBenchmarkSnapshot与实时查询不同工作站离线也能查看历史基准。渲染时每个快照包含元数据Name、Host UUID、Operator、ConnectionOnline/Offline、CacheFresh/Stale、当前 Hashcat 版本、基准时的 Hashcat 版本、基准 schema 版本、基准时间、缓存模式数速率表默认只显示 6 个代表性模式representativeCrackBenchmarkModescrack-benchmarks.goMD5(0)、SHA1(100)、NTLM(1000)、SHA2-256(1400)、bcrypt(3200)、WPA-PBKDF2(22000)加--all显示全部缓存模式。所有速率均通过humanizeHashRate以人类可读形式输出如 12.50 GH/s。基准快照表宽度被限制在 80 列、哈希类型列 48 列保证窄终端可读性。破解任务从提交到生命周期管理任务提交当crack被分类为任务模式时crack.go客户端先通过resolveManagedCrackFileReferences把--markov-hcstat2、--rules-file、--restore-file、--potfile等文件标识解析为服务端管理的破解文件引用然后调用Rpc.Crack()提交。若返回的Job为空提示 Crack request submitted否则打印任务 ID 与初始状态。任务列表与详情crack jobs通过Rpc.CrackJobs()拉取全部持久化任务按更新时间倒序渲染表格列包括 ID、Status、Created、Updated、Keyspace、Tasks、Resultscrack-jobs.go。crack job [id]查看单个任务其详情渲染renderCrackJobcrack-jobs.go包含四个区段摘要ID、状态、创建/更新时间、keyspace、错误信息任务表每个子任务的 ID、Kind、State、所在工作站HostUUID、分片范围ShardSkipShardLimit、进度、速率、最高温度、更新时间Hashcat 统计表Session、Status、Target、Guessmode/base/mask-length/mod、Progress、Rejected、Restore Point、Recovered Hashes/Salts、Started、Estimated Stop设备表每个 GPU 设备的 ID、Name、Type、Speed、Temp、Util、Fan、Core/Memory 频率、Bus lanes、Power。这些遥测数据来源于 Hashcat 输出的 JSON 状态parseCrackStatusJSONcrack-jobs.go解析任务携带的LatestStatusJSON/RawStatusJSON/StatusJSON字段兼容多行 JSON 流decodeLastJSONObject会从后往前尝试解析最后一个 JSON 对象。所有速率按设备速度汇总后经humanizeHashRate输出温度取设备最大温度。--watch/-w模式下watchCrackJobcrack-jobs.go按--poll-interval默认 1 秒轮询通过 protobuf 确定性序列化比较前后快照仅在任务状态变化时重绘直到任务进入终态COMPLETED/FAILED/CANCELLED见crackJobTerminal或上下文取消。任务生命周期操作crack job cancel/pause/resume/rm共享同一套拉取-校验-确认-变更-校验结果模板runCrackJobLifecycleCmd与applyCrackJobLifecycleActioncrack-jobs.go每个操作有严格的资格检查操作资格预期状态确认提示cancel进行中或已暂停CANCELLED未完成的工作将被丢弃pause进行中PAUSED恢复时可能从分片开头重新开始resume已暂停IN_PROGRESS—rm仅终态完成/失败/取消—提示将删除 N 个 task 与 M 个 result服务端返回后还会校验UpdatedAt 0、返回 ID 与请求一致、返回状态等于预期状态防止竞态导致的状态漂移。任务选择支持位置参数直接传 ID不传 ID 时通过forms.CrackJobSelectForm弹出交互式选择框且只列出符合条件的任务例如cancel只列出可取消任务。破解结果展示任务渲染的最后一部分是 Recovered Credentials 表包含 CredentialID、Hash、Plaintext。结果优先取任务级Results字段服务端已物化的权威结果为空时才回退解析各 task 的RecoveredJSON中的明文parseRecoveredResults并对(CredentialID, Hash, Plaintext)元组去重。非 UTF-8 或含空字节的明文以0x十六进制形式展示displayCrackPlaintext。破解文件管理词表、规则与 hcstat2crack wordlists/crack rules/crack hcstat2三个子命令组管理服务端存储的三类破解资产crack-files.go底层全部走Rpc.CrackFilesList()并按CrackFileType_WORDLIST / RULES / MARKOV_HCSTAT2过滤。列表视图展示文件名与解压后大小并附带磁盘配额统计Disk quota xx.xx% - 已用 of 上限二进制字节单位如 GiB。上传流式分块 zstd 压缩crack wordlists add path同样适用于 rules/hcstat2的流程值得重点关注crack-files.go校验本地文件必须为普通文件拒绝目录未指定--name时默认取文件名调用Rpc.CrackFileCreate()创建服务端文件预留含 ID 与分块大小ChunkSize进入uploadCrackFile读取本地文件同时用io.TeeReader计算 SHA-256 摘要chunkReader以 32MB 读缓冲把文件流式写入临时文件用 zstdSpeedBetterCompression级别压缩再按服务端给定的ChunkSize切成固定大小分块逐块调用Rpc.CrackFileChunkUpload()上传并打印上传进度全部上传完成后调用Rpc.CrackFileComplete()提交 SHA-256 摘要完成校验失败自动清理任一分块上传失败defer 中会调用Rpc.CrackFileDelete()删除服务端预留避免残留半成品。删除crack wordlists rm name等删除命令先按类型列出文件、按名称匹配命中后调用Rpc.CrackFileDelete()删除未命中时报 xxx not found。实时监视器crack topcrack top是 crack 命令组的核心亮点之一其实现位于 client/command/crack/top/ 子包而 top.go 只是保持 API 兼容的薄壳facade把调用转发给cracktop.CrackTopCmd。该监视器是一个基于 Bubble Teacharm.land/bubbletea/v2 Lip Gloss Huh 的全屏 TUI 仪表盘。数据加载与刷新策略轻量快照加载器loadCrackTopSnapshot一次性拉取任务与工作站的最小快照避免全量渲染开销双通道刷新既按--poll-interval默认 1 秒最小强制 250ms见crackTopMinimumInterval定时轮询也订阅服务端事件流CreateEventListener在事件到达后以不超过 500ms 的去抖延迟触发刷新crackTopEventDebounce版本号防抖轮询与事件刷新都带 generation 计数过期消息直接丢弃配合context取消避免重复拉取动作回显在 TUI 内执行 pause/resume/cancel/delete 后先以 RPC 返回的权威状态覆盖本地视图jobStatusOverrides等待后续快照确认后才撤销覆盖且对同一秒内两次状态变更的等版本争议做了兼容处理top/top.go。界面与操作监视器支持 Jobs/Workers 双窗格布局宽终端≥104 列左右分栏窄终端上下分栏终端过小64×18会显示尺寸警告。键盘操作按键功能q/esc退出tab/shifttab在 Jobs 与 Workers 窗格间切换焦点↑/k、↓/j、home/g、end/G移动选择f打开状态过滤器all/active/paused/completed/failedd/delete删除选中的终态任务需确认p暂停进行中的任务需确认u恢复已暂停的任务c取消进行中/已暂停的任务需确认r手动刷新ctrlc退出每个动作都有资格预检crackTopJobActionEligibilityWarning如只有终态任务可删除、只有进行中任务可暂停确认弹窗通过 Huh 表单实现。操作结果以 toast 提示展示成功/失败5 秒后消失并记录到仪表盘日志journal。历史快照history用于绘制速率/进度趋势图表测试覆盖见 top/top_test.go 与 top/loader_test.go。共享展示层internal/hashcatdisplayclient/command/crack/internal/hashcatdisplay/ 是命令处理器与监视器共享的展示辅助包避免两者耦合。其中hashcatHashTypes是一张覆盖 300 个 Hashcat 模式的名称映射表MD5、NTLM、bcrypt、WPA-PBKDF2、Kerberos、BitLocker、KeePass、VeraCrypt、Ethereum 钱包等供TypeName(mode)查询来源注释标明取自 client/credentials/EXAMPLES.mdHumanizeRate(rate)把每秒哈希数格式化为 H/s、kH/s、MH/s、GH/s、TH/s、PH/s。该包让crack benchmarks、crack stations --show-benchmarks与crack top中哈希类型名称与速率的展示保持一致。源码级验证与测试围绕 crack 命令组仓库提供了较完整的测试覆盖可作为理解行为的参考crack-benchmarks_test.go基准快照渲染、代表性模式过滤与--all行为crack-command_test.go标志到CrackCommand的映射与参数校验crack-job-lifecycle_test.go 与 crack-job-rm_test.gopause/resume/cancel/rm 的资格校验、确认流程与结果校验crack-files_test.go分块上传、压缩与失败清理helpers_test.go任务 ID 补全的过滤逻辑top/top_test.go、top/loader_test.go 等TUI 状态机与快照合并。服务端对应的 RPC 实现位于 server/rpc/rpc-crack.go任务提交/查询/生命周期与 server/rpc/rpc-crackstations.go工作站注册与基准缓存protobuf 定义在 protobuf/clientpb/client.proto 的CrackCommand、CrackJob、Crackstation、CrackBenchmarkSnapshot、CrackFile等消息中。典型使用流程一个完整的上传资产 → 识别哈希 → 提交任务 → 监控 → 取结果闭环如下# 1. 上传词表与规则名称默认取文件名 crack wordlists add /path/to/rockyou.txt crack rules add /path/to/best64.rule # 2. 查看在线 crackstation 及其基准 crack stations --show-benchmarks # 3. 识别哈希类型同步查询不创建任务 crack --identify-mode 5f4dcc3b5aa765d61d8327deb882cf99 # 4. 提交破解任务-m 指定哈希模式-a 指定攻击模式 crack -m 0 -a 0 --hash 5f4dcc3b5aa765d61d8327deb882cf99 # 5. 查看任务列表与详情或进入全屏监视器 crack jobs crack job id --watch crack top # 6. 生命周期管理 crack job pause id crack job resume id crack job cancel id crack job rm id # 仅终态任务 # 7. 清理不再需要的资产 crack wordlists rm rockyou.txt小结Sliver 客户端的crack命令组把 Hashcat 的能力完整封装为服务端调度 客户端操作的分布式破解体系stations/--backend-info负责集群可见性benchmarks提供离线可查的基准缓存jobs系列命令覆盖任务的查看与完整生命周期wordlists/rules/hcstat2管理破解资产crack top则以全屏 TUI 提供实时遥测与图表。理解这些命令背后的源码组织命令树、调用分类、protobuf 映射、流式分块上传、事件驱动的 TUI 状态机有助于在实战中精准调度 GPU 资源、定位任务瓶颈并为二次开发或扩展自定义破解工作流提供可靠的代码级依据。赞分享网络安全【免费下载链接】sliverAdversary Emulation Framework项目地址https://gitcode.com/gh_mirrors/sl/sliver点击查看免费下载相关推荐如何3分钟上手B站视频下载神器BilibiliDown全功能解析与实战指南 如何3分钟上手B站视频下载神器BilibiliDown全功能解析与实战指南 BilibiliDown是一款面向技术爱好者和普通用户的跨平台B站视频下载工网络安全Sliver 客户端 beacons 命令组全解析Beacon 清单、prune/rm/watch 工作流与源码实现Sliver 客户端 beacons 命令组全解析Beacon 清单、prune/rm/watch 工作流与源码实现 client/command/beaco网络安全百度网盘提取码一键获取3分钟学会免费资源解锁技巧百度网盘提取码一键获取3分钟学会免费资源解锁技巧 还在为百度网盘分享链接的提取码而烦恼吗每次找到心仪的学习资料、工作文件或娱乐资源却卡在密码输入环节那种网络安全上一篇xiaozhi-esp32 使用指南免费打造能语音对话、可控制硬件的 MCP 聊天机器人下一篇终极前端技能图谱基于va/vagas数据的全面可视化指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表