Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
larac2shell — 跨平台交互式 shell,用于 Microsoft Defender for Endpoint Live Response | Kitploit
工具/GitHubGitHub/akefallonitis/larac2shell
横向移动脚本与自动化后渗透利用渗透测试命令与控制实用工具与框架身份验证事件响应远程访问工具
GitHubakefallonitis/larac2shell

larac2shell

跨平台交互式 shell,用于 Microsoft Defender for Endpoint Live Response

151205个月前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

LaraC2 Shell -- MDE 实时响应交互式 Shell

CI License: MIT PowerShell 7+ Platforms

用于 Microsoft Defender for Endpoint 实时响应的跨平台交互式 Shell。

功能详情
平台PowerShell Core 7.0+(Windows、Linux、macOS)
API 模式内部(门户,近实时)和官方(公共,无状态)
执行任意命令 + 25 个原生 LR 命令
认证7 种认证方法,统一菜单,自动刷新
许可证MIT

LaraC2 Shell 通过两个独立的 API 路径连接到 MDE 实时响应——内部门户 API(持久会话,延迟约 2-5 秒)和官方公共 API(每命令,延迟约 20-60 秒)。它自动上传执行器存根,透明处理速率限制,并提供完整的 REPL,支持机器管理、库管理和内置帮助系统。

文档

文档用途
用户指南分步设置、认证和操作
命令参考所有命令、路由、批处理、Tab 补全
错误参考HTTP 状态码、Shell 错误、认证错误、修复方法
性能对比内部与官方 API 的延迟、吞吐量、限制
架构内部结构、认证链、端点、文件布局
贡献指南如何贡献、测试、提交 PR
安全策略如何私下报告漏洞
参考资料先前工作、相关研究、致谢
免责声明授权、致谢

功能特性

  • 两种 API 模式:内部(门户,约 2-5 秒/命令,近实时)+ 官方(公共,约 20-60 秒/命令,适用于 CI/CD)
  • 统一菜单中的 7 种认证方法:客户端凭据、设备代码、凭据+TOTP、通行密钥/HSM、ESTS Cookie、TAP、直接 sccauth——模式由认证选择决定
  • 25 个原生 LR 命令 + 通过自动上传的 B64 执行器存根执行任意命令
  • 跨操作系统目标:Windows、Linux、macOS 端点(自动选择执行器和编码)
  • 透明速率限制:429 回退,ActiveRequest 智能冲突解决(12 次重试,取消外部 / 等待自身)
  • 会话生命周期:自动连接,30 分钟无活动后自动重连,过期会话清理,跨机器切换
  • 认证生命周期:OAuth2 自动刷新,XSRF 自动刷新(4 分钟 TTL),TOTP/通行密钥的静默重新认证;会话过期时 connect 命令重新认证
  • 会话复用:透明自动连接、自动重连、跨机器切换,无需用户干预
  • 多机器执行:multi 命令,支持名称模式过滤和限制前 N 个结果
  • 多命令批处理:每次官方 API 调用最多 5 个命令,更多命令时自动拆分
  • 库管理:列出、上传、删除、下载,自动上传执行器存根,409 冲突覆盖
  • 操作管理:列出、取消(部分 ID 匹配)、状态详情
  • 交互式用户体验:Tab 补全、命令别名(ls/ps/netstat)、工作目录跟踪、帮助系统
  • 错误指导:上下文感知消息(400->语法错误,401->重新认证,403->作用域问题,429->速率限制)
  • 命令行无秘密:凭据来自配置文件或交互式提示,不会出现在命令历史中

快速开始

前提条件

  • PowerShell Core 7.0+(Windows、Linux 或 macOS)
  • 要么拥有实时响应访问权限的门户账户(内部模式),要么拥有具备 Machine.LiveResponse + Library.Manage 权限的 MDE 应用注册(官方模式)

启动```powershell

git clone https://github.com/akefallonitis/larac2shell.git cd larac2shell pwsh -File shell/Invoke-MDEShell.ps1

就这样。Shell在首次启动时提供一个统一的7种认证方式菜单——选择一种,进行认证,选择一台机器,然后你就进入了REPL。无需配置文件,无需标志,无需任何设置。```
  Select API mode:

    Internal API  (security.microsoft.com — near real-time, ~2-5s/cmd)
    1  Credentials + MFA        username + password, TOTP/push/SMS [auto-refresh]
    2  Software passkey          FIDO2/WebAuthn JSON key file [auto-refresh]
    3  ESTS cookie               ESTSAUTHPERSISTENT from browser (~24hr)
    4  Temporary Access Pass     one-time admin-issued code
    5  Direct sccauth + XSRF     cookies from browser DevTools (~1hr)

    Official API  (api.securitycenter.microsoft.com — CI/CD ready, ~20-60s/cmd)
    6  Device code               browser login (interactive)
    7  Client credentials        app registration with client secret

  Auth method (1-7):

选择1-5设置内部模式,6-7设置官方模式。你可以稍后在不重启的情况下切换模式——请参阅下面的**内联切换模式**。

内联切换模式```

[INT myhost C:]> mode Current mode: Internal API Switch with: 'mode internal' or 'mode official'.

[INT myhost C:]> mode official [Mode] Switching from Internal API to official... (auth menu for official mode opens) [Mode] Now in official mode. Run 'machines' to list targets or 'connect <name|id>' to select one.

`mode <target>` 断开任何当前 LR 会话,清除旧的身份验证状态,并重新为目标模式运行身份验证流程。完成后,您已在新模式下通过身份验证,且未选择任何机器 — 运行 `machines` 列出机器,或运行 `connect <name|id>` 直接跳转到目标。无需重启。

### CLI 快捷方式(可选)

用于脚本编写或当您希望跳过统一菜单时:```powershell
# Pre-select the mode (narrows the auth menu to 1-5 or 6-7)
pwsh -File shell/Invoke-MDEShell.ps1 -Mode internal
pwsh -File shell/Invoke-MDEShell.ps1 -Mode official

# Pre-select a machine (skips the picker)
pwsh -File shell/Invoke-MDEShell.ps1 -Machine myhost

# Software passkey path (internal mode)
pwsh -File shell/Invoke-MDEShell.ps1 -PasskeyPath ./keys/passkey.json

# Non-interactive single command (exits with remote command's exit code)
pwsh -File shell/Invoke-MDEShell.ps1 -Machine myhost -Command 'whoami'

配置文件(可选)

仅用于一种场景:使用客户端密钥的官方模式,且非交互式。所有其他认证方法都会以交互方式提示你,并且不会在磁盘上存储任何内容。如果你不需要无人值守的客户端凭证认证,可以完全跳过这一部分。```powershell Copy-Item shell/config/shell-config.example.json shell/config/shell-config.json

Edit the file: set official.tenantId, official.clientId, official.clientSecret

pwsh -File shell/Invoke-MDEShell.ps1 -Config shell/config/shell-config.json

配置模式(除`official.tenantId` + `official.clientId`(使用客户端凭据时)外,所有字段均为可选):

| 区域 | 字段 | 描述 |
|---------|-------|-------------|
| `official` | `tenantId` | Azure AD 租户 ID |
| `official` | `clientId` | 应用注册客户端 ID |
| `official` | `clientSecret` | 客户端密码(省略并设置 `useDeviceCode: true` 以使用设备代码) |
| `official` | `useDeviceCode` | 设为 `true` 以使用设备代码流代替客户端凭据 |
| `defaults` | `defaultMachine` | 启动时预选机器(名称子串或 ID 前缀) |
| `defaults` | `commandTimeoutSeconds` | 客户端超时上限。`0` 表示由服务器决定(最长 1800 秒)。 |
| `defaults` | `pollIntervalOfficial` | 官方 API 轮询间隔,单位为秒(默认 2) |
| `defaults` | `pollIntervalInternal` | 内部 API 轮询间隔,单位为秒(默认 1) |

**安全性**:对包含 `clientSecret` 的任何配置文件限制文件系统权限。`clientSecret` 从不通过命令行接受——仅通过配置文件。所有内部模式凭据(用户名、密码、TOTP 密钥、cookie)均以交互方式提示,且从不持久化到磁盘。

---

## 认证方法

Shell 在启动时提供一个统一的 7 方法认证菜单。模式(内部/官方)由选择决定。

| # | 模式 | 方法 | 方式 | 自动刷新 |
|---|------|--------|-----|--------------|
| 1 | 内部 | 凭据 + TOTP | 交互式提示 | 是(静默)——仅当提供了 TOTP 密钥时。使用推送/SMS MFA 时,会话无法自动刷新。 |
| 2 | 内部 | 软件通行密钥 | `-PasskeyPath` 参数或提示 | 是(静默) |
| 3 | 内部 | ESTS cookie | 交互式提示 | 否(约 24 小时) |
| 4 | 内部 | 临时访问通行证 | 交互式提示 | 否(一次性) |
| 5 | 内部 | 直接 sccauth + XSRF | 交互式提示 | 否(约 1 小时)——XSRF 自动刷新不适用;Shell 不会自动刷新直接提供的 cookie。 |
| 6 | 官方 | 设备代码 | 浏览器登录 | 否(约 1 小时) |
| 7 | 官方 | 客户端凭据 | 配置文件 | 是(静默) |

`connect` 命令在会话过期时重新认证,使用最初选择的相同方法。没有自动刷新的方法会再次以交互方式提示。

**内存中凭据处理**:对于方法 1,提供的密码和 TOTP 密钥在 Shell 进程生命周期内保留在内存中(作为纯字符串,位于 `$script:Int_ReauthParams` 中),以便无人值守地静默重新认证。这些字符串对象位于 PowerShell 运行空间中;它们不会被序列化到磁盘或通过命令行传递。如果这种暴露对你的威胁模型不可接受,请使用方法 2(通行密钥/HSM)或方法 7(客户端凭据)。

---

## Shell 命令

### Shell 控制

| 命令 | 描述 |
|---------|-------------|
| `help [command]` | 显示帮助(可选指定命令) |
| `help commands` | 列出所有本机 LR 命令及其描述 |
| `status` | 显示连接状态、认证状态、机器信息 |
| `config` | 显示 Live Response 配置 |
| `connect [name\|id]` | 重新认证(如果过期)并选择机器 |
| `disconnect` | 断开当前 LR 会话并清除机器 |
| `multi [options] <cmd>` | 在多个机器上运行命令(`-top N`、`-filter pattern`) |
| `session [list]` | 显示当前会话信息或所有缓存的会话 |
| `mode` | 显示当前 API 模式 |
| `mode internal\|official` | 内联切换 API 模式——断开当前会话,拆除旧认证状态,并重新运行目标模式的认证菜单。之后使用 `machines` 或 `connect` 继续 |
| `exit` / `quit` / `q` | 退出 Shell |

### 机器管理

| 命令 | 描述 |
|---------|-------------|
| `machines [refresh]` | 列出机器并选择一台(refresh = 强制重新加载) |
| `connect [name\|id]` | 按名称子串或 ID 前缀连接到机器 |

### 原生 Live Response 命令(共 25 个)
下载工具