memshell-party-cli 0.8.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +30 -1
- package/README.md +14 -0
- package/dist/cli.js +370 -39
- package/dist/cli.js.map +1 -1
- package/dist/index.d.ts +43 -2
- package/dist/index.js +201 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/memshell-party/SKILL.md +27 -1
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ Two equivalent interfaces — pick whichever is available:
|
|
|
17
17
|
|
|
18
18
|
- **CLI**: `memparty <command> [flags]` (install: `npm install -g memshell-party-cli`, or `npx memshell-party-cli`).
|
|
19
19
|
- **MCP tools** (if the `memshell-party` MCP server is connected): `list_servers`, `list_config`,
|
|
20
|
-
`list_packers`, `list_command_configs`, `list_shell_tool_configs`, `list_obfuscation_options`, `generate_memshell`, `generate_probe`, `bytecode_decode`, `bytecode_transform`, `parse_classname`,
|
|
20
|
+
`list_packers`, `list_command_configs`, `list_shell_tool_configs`, `list_plugins`, `list_remote_options`, `list_obfuscation_options`, `generate_memshell`, `generate_probe`, `bytecode_decode`, `bytecode_transform`, `parse_classname`,
|
|
21
21
|
`server_version`, `connect_test`, `exec_command`, `download_file`, `upload_file`, `target_save`,
|
|
22
22
|
`target_note`, `target_list`, `target_remove`, `log_list`.
|
|
23
23
|
|
|
@@ -36,6 +36,8 @@ memparty config packers # packer parent/child tree
|
|
|
36
36
|
memparty config command # Command-tool encryptors & implementation classes
|
|
37
37
|
memparty config tool-configs # v3+ shell-tool fields & enum choices
|
|
38
38
|
memparty config obfuscation # v3+ obfuscation options
|
|
39
|
+
memparty config plugins # v3.1+ external plugin metadata/load status
|
|
40
|
+
memparty config remote-options PluginTool target --url https://example.com/options --json
|
|
39
41
|
```
|
|
40
42
|
|
|
41
43
|
Add `--json` for machine-readable output. Use the exact strings these return.
|
|
@@ -141,6 +143,9 @@ Common tool-specific flags:
|
|
|
141
143
|
- Command: `--command-param-name`, `--encryptor RAW|BASE64|DOUBLE_BASE64`, `--implementation-class RuntimeExec|ForkAndExec`, `--command-template`
|
|
142
144
|
- All webshell tools: `--header-name` / `--header-value` (auth header the shell checks)
|
|
143
145
|
- Custom: `--shell-class-file path.class` (or `--shell-class-base64`)
|
|
146
|
+
- Any built-in or plugin field: repeat `--tool-option name=value`, or use
|
|
147
|
+
`--tool-config <json|path>`. v3.1 `object` fields use a JSON object, not a stringified scalar.
|
|
148
|
+
`--tool-option` overrides matching `--tool-config` keys and legacy convenience flags.
|
|
144
149
|
- Injector: `--url-pattern /*`, `--injector-class-name`, `--no-static-initialize`
|
|
145
150
|
- v3+ obfuscation: `--obfuscate`, `--obfuscation-options enableControlFlow=false,...`,
|
|
146
151
|
`--obfuscation-scope ALL|MEMSHELL_INJECTOR|INJECTOR|MEMSHELL`; probe also accepts the first two.
|
|
@@ -157,6 +162,27 @@ Output:
|
|
|
157
162
|
- MCP: `generate_memshell` / `generate_probe` accept an `outputFile` arg with the same
|
|
158
163
|
behavior (auto-decode by extension, write result echoed back as `outputFile`).
|
|
159
164
|
|
|
165
|
+
### External plugins and remote options (v3.1+)
|
|
166
|
+
|
|
167
|
+
Use `config tool-configs` (MCP `list_shell_tool_configs`) before generation. Its `object` type
|
|
168
|
+
accepts a JSON object. A `ui.kind=remote-select` field describes `itemsPath`, `labelPath`,
|
|
169
|
+
optional `valuePath`, `required`, and `urlQueryParam`. Resolve it with `config remote-options`
|
|
170
|
+
(MCP `list_remote_options`): a string field sends the selected ID; an object field sends the
|
|
171
|
+
whole selected object. Supply `--url`/`url`, or set the environment variable named by
|
|
172
|
+
`urlQueryParam`. The interactive wizard performs the same remote selection; if it is the sole
|
|
173
|
+
visible parameter, it automatically selects the first result.
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
memparty gen -s Tomcat -t PluginTool -y Filter -p DefaultBase64 \
|
|
177
|
+
--tool-option mode=fast --tool-option 'target={"id":"web-1","name":"Web"}'
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
MCP `generate_memshell` takes `toolOptions: {field: "string"}` or
|
|
181
|
+
`toolOptions: {field: {nested: "object"}}`; `toolOptionJson` is the string-encoded alternative.
|
|
182
|
+
Required remote fields are validated locally when metadata is available. Backend plugin
|
|
183
|
+
`validate()` failures are surfaced unchanged. `config plugins` / `list_plugins` exposes plugin
|
|
184
|
+
metadata and load errors, which are informational and not a trust or permission signal.
|
|
185
|
+
|
|
160
186
|
### Agent persistence and bytecode tools
|
|
161
187
|
|
|
162
188
|
For an Agent shell, `--agent-args persist=true` / `--agent-args restore=true` supplies an
|