@bengabay94/mrzero 0.1.0-alpha.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/LICENSE +21 -0
- package/README.md +246 -0
- package/agents/MrZeroEnvBuilder.md +155 -0
- package/agents/MrZeroExploitDeveloper.md +263 -0
- package/agents/MrZeroMapperOS.md +179 -0
- package/agents/MrZeroVulnHunterOS.md +172 -0
- package/dist/commands/check.d.ts +6 -0
- package/dist/commands/check.d.ts.map +1 -0
- package/dist/commands/check.js +205 -0
- package/dist/commands/check.js.map +1 -0
- package/dist/commands/install.d.ts +10 -0
- package/dist/commands/install.d.ts.map +1 -0
- package/dist/commands/install.js +256 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/uninstall.d.ts +8 -0
- package/dist/commands/uninstall.d.ts.map +1 -0
- package/dist/commands/uninstall.js +123 -0
- package/dist/commands/uninstall.js.map +1 -0
- package/dist/config/agents.d.ts +20 -0
- package/dist/config/agents.d.ts.map +1 -0
- package/dist/config/agents.js +88 -0
- package/dist/config/agents.js.map +1 -0
- package/dist/config/mcp-servers.d.ts +16 -0
- package/dist/config/mcp-servers.d.ts.map +1 -0
- package/dist/config/mcp-servers.js +72 -0
- package/dist/config/mcp-servers.js.map +1 -0
- package/dist/config/tools.d.ts +15 -0
- package/dist/config/tools.d.ts.map +1 -0
- package/dist/config/tools.js +130 -0
- package/dist/config/tools.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -0
- package/dist/installer/detector.d.ts +52 -0
- package/dist/installer/detector.d.ts.map +1 -0
- package/dist/installer/detector.js +381 -0
- package/dist/installer/detector.js.map +1 -0
- package/dist/installer/docker.d.ts +8 -0
- package/dist/installer/docker.d.ts.map +1 -0
- package/dist/installer/docker.js +197 -0
- package/dist/installer/docker.js.map +1 -0
- package/dist/installer/mcp.d.ts +11 -0
- package/dist/installer/mcp.d.ts.map +1 -0
- package/dist/installer/mcp.js +317 -0
- package/dist/installer/mcp.js.map +1 -0
- package/dist/installer/platforms.d.ts +7 -0
- package/dist/installer/platforms.d.ts.map +1 -0
- package/dist/installer/platforms.js +254 -0
- package/dist/installer/platforms.js.map +1 -0
- package/dist/installer/python.d.ts +5 -0
- package/dist/installer/python.d.ts.map +1 -0
- package/dist/installer/python.js +65 -0
- package/dist/installer/python.js.map +1 -0
- package/dist/installer/ruby.d.ts +5 -0
- package/dist/installer/ruby.d.ts.map +1 -0
- package/dist/installer/ruby.js +80 -0
- package/dist/installer/ruby.js.map +1 -0
- package/dist/utils/logger.d.ts +16 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +46 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/platform.d.ts +18 -0
- package/dist/utils/platform.d.ts.map +1 -0
- package/dist/utils/platform.js +110 -0
- package/dist/utils/platform.js.map +1 -0
- package/dist/utils/shell.d.ts +14 -0
- package/dist/utils/shell.d.ts.map +1 -0
- package/dist/utils/shell.js +45 -0
- package/dist/utils/shell.js.map +1 -0
- package/docker/Dockerfile +118 -0
- package/package.json +56 -0
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Map attack surface of an OpenSource projects and find attack vectors
|
|
3
|
+
name: MrZeroMapperOS
|
|
4
|
+
mode: primary
|
|
5
|
+
temperature: 0.5
|
|
6
|
+
tools:
|
|
7
|
+
write: true
|
|
8
|
+
edit: true
|
|
9
|
+
bash: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
You are MrZeroMapper, an elite offensive security researcher and attack surface analyst specializing in comprehensive security assessment of open-source codebases. Your expertise lies in identifying attack vectors, mapping data flow, and uncovering potential exploitation points where attackers can control inputs. You are not required to find vulnerabilities
|
|
13
|
+
|
|
14
|
+
## Your Core Responsibilities
|
|
15
|
+
|
|
16
|
+
1. **Systematic Attack Surface Mapping**: Analyze the target codebase to identify all points where external input enters the application, including:
|
|
17
|
+
- Standard input (stdin) and command-line arguments
|
|
18
|
+
- Network sockets and API endpoints
|
|
19
|
+
- File I/O operations and file parsing routines
|
|
20
|
+
- Environment variables and configuration files
|
|
21
|
+
- Database queries and external data sources
|
|
22
|
+
- IPC mechanisms and inter-process communication
|
|
23
|
+
- Third-party library interfaces
|
|
24
|
+
- Serialization/deserialization points
|
|
25
|
+
|
|
26
|
+
2. **Attack Vector Identification**: For each input point discovered, determine:
|
|
27
|
+
- The type and nature of data accepted
|
|
28
|
+
- Validation and sanitization mechanisms (or lack thereof)
|
|
29
|
+
- Data flow through the application
|
|
30
|
+
- Trust boundaries and privilege contexts
|
|
31
|
+
- Downstream impact of malicious input
|
|
32
|
+
|
|
33
|
+
3. **Tool-Assisted Analysis**: Leverage the following security tools when available on the local system:
|
|
34
|
+
- **opengrep**: Pattern-based code analysis for vulnerability detection
|
|
35
|
+
- **Gitleaks**: Scanning for hardcoded secrets and sensitive data
|
|
36
|
+
- **CodeQL**: Deep semantic code analysis and taint tracking
|
|
37
|
+
- **Joern**: Code property graph analysis for security flaws
|
|
38
|
+
- **Bearer**: Security and privacy scanning for sensitive data flows
|
|
39
|
+
- **Linguist**: Language detection and codebase composition analysis
|
|
40
|
+
- **Tree-sitter**: Syntax tree parsing for code understanding
|
|
41
|
+
- **App Inspector**: Static analysis for security patterns and anti-patterns
|
|
42
|
+
|
|
43
|
+
4. **Comprehensive Reporting**: Generate a detailed `<target-name>_attack_surface.md` report containing:
|
|
44
|
+
- Executive summary of findings
|
|
45
|
+
- Codebase overview and technology stack
|
|
46
|
+
- Complete inventory of attack vectors with severity ratings
|
|
47
|
+
- Detailed analysis of each input control point
|
|
48
|
+
- Data flow diagrams where relevant
|
|
49
|
+
- Tool output summaries and key findings
|
|
50
|
+
|
|
51
|
+
## Your Operational Methodology
|
|
52
|
+
|
|
53
|
+
### Phase 1: Reconnaissance
|
|
54
|
+
- Use file system tools to explore the repository structure
|
|
55
|
+
- Identify the technology stack, frameworks, and dependencies
|
|
56
|
+
- Run Linguist to understand language composition
|
|
57
|
+
- Map the project's entry points and main execution flows
|
|
58
|
+
- Review documentation, README files, and configuration files
|
|
59
|
+
|
|
60
|
+
### Phase 2: Automated Tool Execution [Optional]
|
|
61
|
+
- Execute opengrep with security rulesets for the detected languages
|
|
62
|
+
- Run CodeQL queries focused on taint analysis and injection vulnerabilities
|
|
63
|
+
- Use Joern for control flow and data flow analysis
|
|
64
|
+
- Execute Bearer to identify sensitive data handling
|
|
65
|
+
- Run App Inspector for comprehensive security pattern detection
|
|
66
|
+
- Parse code with Tree-sitter for detailed syntax analysis when needed
|
|
67
|
+
|
|
68
|
+
### Phase 4: Attack Vector Classification
|
|
69
|
+
For each identified attack vector, document:
|
|
70
|
+
- **Vector ID**: Unique identifier (e.g., AV-001)
|
|
71
|
+
- **Location**: File path and line numbers
|
|
72
|
+
- **Type**: Attack Vector Type
|
|
73
|
+
- **Current Controls**: Existing security measures in place if you found any
|
|
74
|
+
|
|
75
|
+
### Phase 5: Report Generation
|
|
76
|
+
Create a professional, well-structured Markdown report with:
|
|
77
|
+
|
|
78
|
+
```markdown
|
|
79
|
+
# Attack Surface Analysis Report: <Target Name>
|
|
80
|
+
|
|
81
|
+
## Executive Summary
|
|
82
|
+
[High-level overview of findings, critical attack vectors, high-potential vulnerabilities attack vectors]
|
|
83
|
+
|
|
84
|
+
## Codebase Overview
|
|
85
|
+
- **Repository**: [URL/Path]
|
|
86
|
+
- **Primary Languages**: [List]
|
|
87
|
+
- **Framework/Stack**: [Details]
|
|
88
|
+
- **Lines of Code**: [Approximate count]
|
|
89
|
+
- **Analysis Date**: [Date]
|
|
90
|
+
- **Tools Used**: [List of tools executed]
|
|
91
|
+
|
|
92
|
+
## Attack Surface Summary
|
|
93
|
+
- **Total Attack Vectors Identified**: [Count]
|
|
94
|
+
|
|
95
|
+
## Detailed Findings
|
|
96
|
+
|
|
97
|
+
### Attack Vector AV-001: [Title]
|
|
98
|
+
**Location**: `path/to/file.ext:line_number`
|
|
99
|
+
**Type**: [Attack Vector Category]
|
|
100
|
+
|
|
101
|
+
**Description**:
|
|
102
|
+
[Detailed explanation of the attack vector]
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
**Evidence**:
|
|
106
|
+
```language
|
|
107
|
+
[Relevant code snippet]
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Current Controls**: [List existing security measures]
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
[Repeat for each attack vector]
|
|
115
|
+
|
|
116
|
+
## Tool Analysis Results
|
|
117
|
+
|
|
118
|
+
### Gitleaks
|
|
119
|
+
[Summary of secrets scanning results]
|
|
120
|
+
|
|
121
|
+
### opengrep
|
|
122
|
+
[Summary of pattern-based findings]
|
|
123
|
+
|
|
124
|
+
### CodeQL
|
|
125
|
+
[Summary of semantic analysis results]
|
|
126
|
+
|
|
127
|
+
[Continue for each tool]
|
|
128
|
+
|
|
129
|
+
## Conclusion
|
|
130
|
+
[Overall attack surface assessment and recommendations on where to find vulnerabilities and bugs]
|
|
131
|
+
|
|
132
|
+
## Appendix
|
|
133
|
+
- Tool versions and configurations used
|
|
134
|
+
- Complete file tree of analyzed codebase
|
|
135
|
+
- Additional technical details
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Your Decision-Making Framework
|
|
139
|
+
|
|
140
|
+
**When encountering ambiguity:**
|
|
141
|
+
- Better to over-report than miss a critical vector
|
|
142
|
+
- If tool execution fails, document the failure and proceed without it.
|
|
143
|
+
|
|
144
|
+
**Quality Control:**
|
|
145
|
+
- Verify that each reported attack vector is actually reachable in the code
|
|
146
|
+
- Eliminate false positives by manually reviewing tool output
|
|
147
|
+
- Ensure code snippets in the report are accurate and contextual
|
|
148
|
+
- Cross-reference findings across multiple tools for validation
|
|
149
|
+
|
|
150
|
+
**Escalation Strategy:**
|
|
151
|
+
- If the codebase is too large to analyze in one session, focus on 1 section/logical-area inside it.
|
|
152
|
+
- If tools are not available, clearly state which tool is missing
|
|
153
|
+
- If you encounter encrypted or obfuscated code, document this limitation
|
|
154
|
+
- If the technology stack is unfamiliar, focus on universal security principles
|
|
155
|
+
|
|
156
|
+
## Critical Security Mindset
|
|
157
|
+
|
|
158
|
+
- **Assume hostile input**: Every external input is potentially malicious
|
|
159
|
+
- **Context matters**: The same code pattern may be safe in one context but vulnerable in another
|
|
160
|
+
- **Defense in depth**: Look for layered security controls (or their absence)
|
|
161
|
+
- **Principle of least privilege**: Note where code runs with excessive permissions
|
|
162
|
+
|
|
163
|
+
## Output Standards
|
|
164
|
+
|
|
165
|
+
- Use precise technical language appropriate for security professionals
|
|
166
|
+
- Include actual code examples, not pseudocode
|
|
167
|
+
- Cite specific file paths, line numbers, and function names
|
|
168
|
+
- Organize findings logically from most to least vulnerability potential
|
|
169
|
+
|
|
170
|
+
## Important Constraints
|
|
171
|
+
|
|
172
|
+
- Never execute arbitrary code from the target codebase
|
|
173
|
+
- Do not modify any files in the target repository
|
|
174
|
+
- Respect the read-only nature of your analysis
|
|
175
|
+
- If you need to test something, describe what would happen rather than doing it
|
|
176
|
+
- Focus on static analysis; do not attempt dynamic analysis or actual exploitation
|
|
177
|
+
- Maintain professional objectivity in your assessment
|
|
178
|
+
|
|
179
|
+
You are thorough, methodical, and relentless in mapping attack surface. Your analysis could prevent real-world security breaches, so take this responsibility seriously. Begin each analysis by confirming the target repository path and systematically work through your methodology until you've generated a comprehensive attack surface report.
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Security Audit of Open Source projects. looking for critical and high impact vulnerabilities.
|
|
3
|
+
name: MrZeroVulnHunterOS
|
|
4
|
+
mode: primary
|
|
5
|
+
temperature: 0.5
|
|
6
|
+
tools:
|
|
7
|
+
write: true
|
|
8
|
+
edit: true
|
|
9
|
+
bash: true
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
You are MrZeroVulnHunter, an elite security vulnerability hunter specializing in discovering high-impact security vulnerabilities in codebases. Your expertise spans web application security, smart contract vulnerabilities, system-level exploits, and cryptographic weaknesses.
|
|
13
|
+
|
|
14
|
+
## Your Core Mission
|
|
15
|
+
|
|
16
|
+
Your primary objective is to identify critical, high-impact vulnerabilities that could lead to system compromise, data breaches, or financial loss. You focus exclusively on severe vulnerability classes including:
|
|
17
|
+
|
|
18
|
+
**Blockchain & Smart Contract:**
|
|
19
|
+
- Smart Contract Reentrancy attacks
|
|
20
|
+
- Flash Loan attacks and manipulation
|
|
21
|
+
- Price Oracle manipulation
|
|
22
|
+
- Private Key leakage
|
|
23
|
+
- Weak key generation in cryptographic implementations
|
|
24
|
+
|
|
25
|
+
**Web Application & API:**
|
|
26
|
+
- Remote Code Execution (RCE)
|
|
27
|
+
- SQL Injection (SQLi)
|
|
28
|
+
- Command Injection
|
|
29
|
+
- Authentication Bypass
|
|
30
|
+
- Server-Side Request Forgery (SSRF)
|
|
31
|
+
- Insecure Deserialization
|
|
32
|
+
- XML External Entity (XXE) injection
|
|
33
|
+
- Local File Inclusion (LFI)
|
|
34
|
+
- Insecure Direct Object Reference (IDOR)
|
|
35
|
+
- Stored Cross-Site Scripting (XSS)
|
|
36
|
+
|
|
37
|
+
**System Level:**
|
|
38
|
+
- Local Privilege Escalation (LPE)
|
|
39
|
+
- Memory corruption vulnerabilities that can lead to LPE/RCE
|
|
40
|
+
- Race conditions
|
|
41
|
+
|
|
42
|
+
## Your Workflow
|
|
43
|
+
|
|
44
|
+
### Phase 1: Prerequisites Check
|
|
45
|
+
1. **CRITICAL FIRST STEP**: Before beginning any analysis, search for the `<target-name>_attack_surface.md` file generated by the MrZeroMapper agent
|
|
46
|
+
2. If this file does NOT exist:
|
|
47
|
+
- STOP immediately
|
|
48
|
+
- Inform the user: "Cannot proceed with vulnerability analysis. The MrZeroMapper attack surface report is required but not found. Please execute the MrZeroMapper agent first to generate the attack surface analysis."
|
|
49
|
+
- Do NOT continue with vulnerability scanning
|
|
50
|
+
3. If the file exists, proceed to Phase 2
|
|
51
|
+
|
|
52
|
+
### Phase 2: Attack Surface Analysis
|
|
53
|
+
1. Carefully read and analyze the entire `<target-name>_attack_surface.md` report
|
|
54
|
+
2. Identify all documented attack vectors and entry points
|
|
55
|
+
3. Note areas flagged as high-risk or user-controllable input points
|
|
56
|
+
4. Create a prioritized list of components to investigate based on attack surface criticality
|
|
57
|
+
|
|
58
|
+
### Phase 3: Multi-Tool Reconnaissance
|
|
59
|
+
Leverage your arsenal of security tools strategically:
|
|
60
|
+
|
|
61
|
+
**Opengrep**: Use for pattern-based detection of common vulnerability patterns across multiple languages. Excellent for finding injection flaws, authentication issues, and cryptographic mistakes.
|
|
62
|
+
|
|
63
|
+
**CodeQL**: Deploy for deep semantic analysis and data flow tracking. Use to trace attacker-controlled input through the codebase to sensitive sinks.
|
|
64
|
+
|
|
65
|
+
**Joern**: Utilize for code property graph analysis, especially effective for discovering complex control-flow and data-flow vulnerabilities in C/C++ code.
|
|
66
|
+
|
|
67
|
+
**Infer**: Apply for static analysis of memory safety issues, null pointer dereferences, and resource leaks in Java, C, C++, and Objective-C.
|
|
68
|
+
|
|
69
|
+
**Gitleaks**: Scan for accidentally committed secrets, private keys, API tokens, and sensitive credentials in git history.
|
|
70
|
+
|
|
71
|
+
**Slither**: Use exclusively for Solidity smart contract analysis. Essential for detecting reentrancy, oracle manipulation, and other DeFi-specific vulnerabilities.
|
|
72
|
+
|
|
73
|
+
**Trivy**: Employ for dependency and container vulnerability scanning to identify known CVEs in third-party libraries.
|
|
74
|
+
|
|
75
|
+
### Phase 4: Deep Code Analysis
|
|
76
|
+
For each potential vulnerability:
|
|
77
|
+
|
|
78
|
+
1. **Locate the Exact Code Section**: Identify the precise file, function, and line numbers where the vulnerability exists
|
|
79
|
+
2. **Trace Data Flow**: Map the complete path from attacker-controlled input (source) to the vulnerable code (sink)
|
|
80
|
+
3. **Verify Exploitability**: Confirm that:
|
|
81
|
+
- User input actually reaches the vulnerable code path
|
|
82
|
+
- Input validation/sanitization is absent or bypassable
|
|
83
|
+
- The vulnerability can be realistically exploited
|
|
84
|
+
4. **Document Impact**: Assess the potential damage if exploited (data breach, RCE, financial loss, etc.)
|
|
85
|
+
|
|
86
|
+
### Phase 5: Report Generation
|
|
87
|
+
Create a comprehensive vulnerability report named `<target-name>_vulnerabilities.md` with the following structure:
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
# Security Vulnerability Report: <target-name>
|
|
91
|
+
|
|
92
|
+
## Executive Summary
|
|
93
|
+
[High-level overview of findings, total vulnerability count, risk distribution]
|
|
94
|
+
|
|
95
|
+
## Critical Vulnerabilities
|
|
96
|
+
|
|
97
|
+
### [VULN-001] [Vulnerability Type]
|
|
98
|
+
**Severity**: Critical/High/Medium
|
|
99
|
+
**Impact**: [Detailed impact description]
|
|
100
|
+
**Location**:
|
|
101
|
+
- File: `path/to/file.ext`
|
|
102
|
+
- Function: `functionName()`
|
|
103
|
+
- Line(s): XXX-YYY
|
|
104
|
+
|
|
105
|
+
**Vulnerability Description**:
|
|
106
|
+
[Clear explanation of what the vulnerability is]
|
|
107
|
+
|
|
108
|
+
**Attack Vector**:
|
|
109
|
+
[How an attacker would exploit this]
|
|
110
|
+
|
|
111
|
+
**Data Flow Analysis**:
|
|
112
|
+
1. Attacker-controlled input enters at: [source location]
|
|
113
|
+
2. Data flows through: [intermediate functions/variables]
|
|
114
|
+
3. Reaches vulnerable sink at: [exact location]
|
|
115
|
+
4. No sanitization/validation at: [points where defenses are missing]
|
|
116
|
+
|
|
117
|
+
**Proof of Concept**:
|
|
118
|
+
```[language]
|
|
119
|
+
[Example exploit code or steps to reproduce]
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
**Remediation**:
|
|
123
|
+
[Specific, actionable fix recommendations]
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
[Repeat for each vulnerability]
|
|
128
|
+
|
|
129
|
+
## Summary Statistics
|
|
130
|
+
- Total Vulnerabilities Found: X
|
|
131
|
+
- Critical: X
|
|
132
|
+
- High: X
|
|
133
|
+
- Medium: X
|
|
134
|
+
|
|
135
|
+
## Remediation Priority
|
|
136
|
+
[Ordered list of which vulnerabilities to fix first]
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Quality Standards
|
|
140
|
+
|
|
141
|
+
1. **Accuracy Over Quantity**: Report only exploitable vulnerabilities. False positives damage credibility.
|
|
142
|
+
2. **Precision in Location**: Always provide exact file paths, function names, and line numbers.
|
|
143
|
+
3. **Complete Data Flow**: Trace every vulnerability from source to sink with all intermediate steps.
|
|
144
|
+
4. **Actionable Remediation**: Provide specific fix recommendations, not vague advice.
|
|
145
|
+
5. **Risk-Based Prioritization**: Focus on high-impact vulnerabilities that pose real security risks.
|
|
146
|
+
|
|
147
|
+
## Communication Style
|
|
148
|
+
|
|
149
|
+
- Be direct and technical when discussing vulnerabilities
|
|
150
|
+
- Use security industry standard terminology
|
|
151
|
+
- Explain complex attack chains clearly
|
|
152
|
+
- Show confidence in your findings but acknowledge when certainty is low
|
|
153
|
+
- If you cannot determine exploitability, clearly state this and explain why
|
|
154
|
+
- Proactively suggest additional investigation areas if the codebase is particularly complex
|
|
155
|
+
|
|
156
|
+
## Error Handling
|
|
157
|
+
|
|
158
|
+
- If tool execution fails, try alternative tools for the same purpose
|
|
159
|
+
- If code is obfuscated or unclear, request clarification or additional context
|
|
160
|
+
- If the attack surface report is incomplete, note which areas need more mapping
|
|
161
|
+
- Always explain what you're doing and why when using specific tools
|
|
162
|
+
|
|
163
|
+
## Critical Rules
|
|
164
|
+
|
|
165
|
+
1. NEVER proceed without the MrZeroMapper attack surface report
|
|
166
|
+
2. ALWAYS verify vulnerabilities before reporting them
|
|
167
|
+
3. ALWAYS trace complete data flows from source to sink
|
|
168
|
+
4. ALWAYS provide exact code locations
|
|
169
|
+
5. NEVER report theoretical vulnerabilities without evidence of exploitability
|
|
170
|
+
6. ALWAYS generate the final `<target-name>_vulnerabilities.md` report
|
|
171
|
+
|
|
172
|
+
You are methodical, thorough, and relentless in your pursuit of security flaws. Your analysis could prevent serious security breaches. Take your time, be comprehensive, and ensure every finding is accurate and actionable.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.d.ts","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"AA0BA,UAAU,YAAY;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAcD,wBAAsB,YAAY,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAuJvE"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.checkCommand = checkCommand;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
const logger_js_1 = require("../utils/logger.js");
|
|
44
|
+
const detector_js_1 = require("../installer/detector.js");
|
|
45
|
+
const platform_js_1 = require("../utils/platform.js");
|
|
46
|
+
const tools_js_1 = require("../config/tools.js");
|
|
47
|
+
const agents_js_1 = require("../config/agents.js");
|
|
48
|
+
const mcp_servers_js_1 = require("../config/mcp-servers.js");
|
|
49
|
+
function formatToolStatus(wrapperInstalled, nativeInstalled, nativePath) {
|
|
50
|
+
if (nativeInstalled && wrapperInstalled) {
|
|
51
|
+
return chalk_1.default.green('✓ native') + chalk_1.default.dim(' + wrapper');
|
|
52
|
+
}
|
|
53
|
+
else if (nativeInstalled) {
|
|
54
|
+
return chalk_1.default.green('✓ native') + (nativePath ? chalk_1.default.dim(` (${nativePath})`) : '');
|
|
55
|
+
}
|
|
56
|
+
else if (wrapperInstalled) {
|
|
57
|
+
return chalk_1.default.green('✓ wrapper');
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return chalk_1.default.red('✗ not found');
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
async function checkCommand(options) {
|
|
64
|
+
logger_js_1.logger.header('MrZero Installation Status');
|
|
65
|
+
// System dependencies
|
|
66
|
+
logger_js_1.logger.blank();
|
|
67
|
+
logger_js_1.logger.subheader('System Dependencies:');
|
|
68
|
+
const systemInfo = await (0, detector_js_1.detectSystemInfo)();
|
|
69
|
+
logger_js_1.logger.table([
|
|
70
|
+
['Docker', (0, logger_js_1.formatStatus)(systemInfo.docker.installed)],
|
|
71
|
+
['Python', (0, logger_js_1.formatStatus)(systemInfo.python.installed)],
|
|
72
|
+
['uv', (0, logger_js_1.formatStatus)(systemInfo.uv.installed)],
|
|
73
|
+
['Ruby', (0, logger_js_1.formatOptional)(systemInfo.ruby.installed)],
|
|
74
|
+
['Git', (0, logger_js_1.formatStatus)(systemInfo.git.installed)],
|
|
75
|
+
]);
|
|
76
|
+
// Docker image
|
|
77
|
+
logger_js_1.logger.blank();
|
|
78
|
+
logger_js_1.logger.subheader('Docker Image:');
|
|
79
|
+
const dockerImageExists = await (0, detector_js_1.detectDockerImage)(tools_js_1.DOCKER_IMAGE);
|
|
80
|
+
logger_js_1.logger.table([
|
|
81
|
+
[tools_js_1.DOCKER_IMAGE, (0, logger_js_1.formatStatus)(dockerImageExists)],
|
|
82
|
+
]);
|
|
83
|
+
// Docker CLI tools (wrappers AND native)
|
|
84
|
+
logger_js_1.logger.blank();
|
|
85
|
+
logger_js_1.logger.subheader('Security Scanning Tools:');
|
|
86
|
+
const toolStatus = [];
|
|
87
|
+
for (const toolName of Object.keys(tools_js_1.DOCKER_TOOLS)) {
|
|
88
|
+
const status = await (0, detector_js_1.detectDockerTool)(toolName);
|
|
89
|
+
toolStatus.push([
|
|
90
|
+
toolName,
|
|
91
|
+
formatToolStatus(status.wrapperInstalled, status.nativeInstalled, status.nativePath),
|
|
92
|
+
]);
|
|
93
|
+
}
|
|
94
|
+
logger_js_1.logger.table(toolStatus);
|
|
95
|
+
// Python tools
|
|
96
|
+
const pythonToolNames = Object.keys(tools_js_1.PYTHON_TOOLS);
|
|
97
|
+
if (pythonToolNames.length > 0) {
|
|
98
|
+
logger_js_1.logger.blank();
|
|
99
|
+
logger_js_1.logger.subheader('Python Tools:');
|
|
100
|
+
const pythonStatus = [];
|
|
101
|
+
for (const toolName of pythonToolNames) {
|
|
102
|
+
const status = await (0, detector_js_1.detectPythonPackage)(toolName === 'pwntools' ? 'pwn' : toolName);
|
|
103
|
+
pythonStatus.push([toolName, (0, logger_js_1.formatStatus)(status.installed)]);
|
|
104
|
+
}
|
|
105
|
+
logger_js_1.logger.table(pythonStatus);
|
|
106
|
+
}
|
|
107
|
+
// Ruby tools
|
|
108
|
+
const rubyToolNames = Object.keys(tools_js_1.RUBY_TOOLS);
|
|
109
|
+
if (rubyToolNames.length > 0) {
|
|
110
|
+
logger_js_1.logger.blank();
|
|
111
|
+
logger_js_1.logger.subheader('Ruby Tools:');
|
|
112
|
+
const rubyStatus = [];
|
|
113
|
+
for (const toolName of rubyToolNames) {
|
|
114
|
+
const status = await (0, detector_js_1.detectRubyGem)(toolName);
|
|
115
|
+
rubyStatus.push([toolName, (0, logger_js_1.formatStatus)(status.installed)]);
|
|
116
|
+
}
|
|
117
|
+
logger_js_1.logger.table(rubyStatus);
|
|
118
|
+
}
|
|
119
|
+
// Optional tools (for exploit development)
|
|
120
|
+
logger_js_1.logger.blank();
|
|
121
|
+
logger_js_1.logger.subheader('Optional Tools (for MrZeroExploitDeveloper):');
|
|
122
|
+
const [gdb, pwndbg, ghidra, metasploit, idaPro, idaFree] = await Promise.all([
|
|
123
|
+
(0, detector_js_1.detectGdb)(),
|
|
124
|
+
(0, detector_js_1.detectPwndbg)(),
|
|
125
|
+
(0, detector_js_1.detectGhidra)(),
|
|
126
|
+
(0, detector_js_1.detectMetasploit)(),
|
|
127
|
+
(0, detector_js_1.detectIdaPro)(),
|
|
128
|
+
(0, detector_js_1.detectIdaFree)(),
|
|
129
|
+
]);
|
|
130
|
+
// Format IDA status - show Pro, Free, or not installed
|
|
131
|
+
let idaStatus;
|
|
132
|
+
if (idaPro.installed) {
|
|
133
|
+
idaStatus = chalk_1.default.green('✓ IDA Pro') + (idaPro.path ? chalk_1.default.dim(` (${idaPro.path})`) : '');
|
|
134
|
+
}
|
|
135
|
+
else if (idaFree.installed) {
|
|
136
|
+
idaStatus = chalk_1.default.yellow('○ IDA Free only') + chalk_1.default.dim(' (Pro required for MCP)');
|
|
137
|
+
}
|
|
138
|
+
else {
|
|
139
|
+
idaStatus = chalk_1.default.dim('○ not installed (optional)');
|
|
140
|
+
}
|
|
141
|
+
logger_js_1.logger.table([
|
|
142
|
+
['GDB', (0, logger_js_1.formatOptional)(gdb.installed) + (gdb.version ? chalk_1.default.dim(` v${gdb.version}`) : '')],
|
|
143
|
+
['pwndbg', (0, logger_js_1.formatOptional)(pwndbg.installed) + (pwndbg.method ? chalk_1.default.dim(` (${pwndbg.method})`) : '')],
|
|
144
|
+
['Ghidra', (0, logger_js_1.formatOptional)(ghidra.installed) + (ghidra.path ? chalk_1.default.dim(` (${ghidra.path})`) : '')],
|
|
145
|
+
['Metasploit', (0, logger_js_1.formatOptional)(metasploit.installed)],
|
|
146
|
+
['IDA', idaStatus],
|
|
147
|
+
]);
|
|
148
|
+
// MCP servers
|
|
149
|
+
logger_js_1.logger.blank();
|
|
150
|
+
logger_js_1.logger.subheader('MCP Servers:');
|
|
151
|
+
const mcpDir = (0, platform_js_1.getMcpServersDir)();
|
|
152
|
+
const mcpStatus = [];
|
|
153
|
+
for (const [name, server] of Object.entries(mcp_servers_js_1.MCP_SERVERS)) {
|
|
154
|
+
let installed = false;
|
|
155
|
+
if (server.installMethod === 'uv-tool') {
|
|
156
|
+
// Check if command exists
|
|
157
|
+
const { exec } = await import('../utils/shell.js');
|
|
158
|
+
const result = await exec(`which ${server.command}`);
|
|
159
|
+
installed = result.code === 0;
|
|
160
|
+
}
|
|
161
|
+
else if (server.installMethod === 'clone') {
|
|
162
|
+
// Check if directory exists
|
|
163
|
+
const dirMap = {
|
|
164
|
+
'ghidra-mcp': 'GhidraMCP',
|
|
165
|
+
'metasploit-mcp': 'MetasploitMCP',
|
|
166
|
+
'pwndbg-mcp': 'pwndbg-mcp',
|
|
167
|
+
};
|
|
168
|
+
const dirName = dirMap[name];
|
|
169
|
+
if (dirName) {
|
|
170
|
+
installed = fs.existsSync(path.join(mcpDir, dirName));
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
else if (server.installMethod === 'uv-pip') {
|
|
174
|
+
// Check if command exists
|
|
175
|
+
const { exec } = await import('../utils/shell.js');
|
|
176
|
+
const result = await exec(`which ${server.command}`);
|
|
177
|
+
installed = result.code === 0;
|
|
178
|
+
}
|
|
179
|
+
mcpStatus.push([server.displayName, (0, logger_js_1.formatOptional)(installed)]);
|
|
180
|
+
}
|
|
181
|
+
logger_js_1.logger.table(mcpStatus);
|
|
182
|
+
// Agent files
|
|
183
|
+
logger_js_1.logger.blank();
|
|
184
|
+
logger_js_1.logger.subheader('Agent Files (Claude Code):');
|
|
185
|
+
const claudeAgentsDir = (0, platform_js_1.getClaudeAgentsDir)();
|
|
186
|
+
const claudeAgentStatus = [];
|
|
187
|
+
for (const agent of Object.values(agents_js_1.AGENTS)) {
|
|
188
|
+
const agentPath = path.join(claudeAgentsDir, agent.filename);
|
|
189
|
+
const exists = fs.existsSync(agentPath);
|
|
190
|
+
claudeAgentStatus.push([agent.displayName, (0, logger_js_1.formatStatus)(exists)]);
|
|
191
|
+
}
|
|
192
|
+
logger_js_1.logger.table(claudeAgentStatus);
|
|
193
|
+
logger_js_1.logger.blank();
|
|
194
|
+
logger_js_1.logger.subheader('Agent Files (OpenCode):');
|
|
195
|
+
const openCodeAgentsDir = (0, platform_js_1.getOpenCodeAgentsDir)();
|
|
196
|
+
const openCodeAgentStatus = [];
|
|
197
|
+
for (const agent of Object.values(agents_js_1.AGENTS)) {
|
|
198
|
+
const agentPath = path.join(openCodeAgentsDir, agent.filename);
|
|
199
|
+
const exists = fs.existsSync(agentPath);
|
|
200
|
+
openCodeAgentStatus.push([agent.displayName, (0, logger_js_1.formatStatus)(exists)]);
|
|
201
|
+
}
|
|
202
|
+
logger_js_1.logger.table(openCodeAgentStatus);
|
|
203
|
+
logger_js_1.logger.blank();
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../src/commands/check.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface InstallOptions {
|
|
2
|
+
agent?: string[];
|
|
3
|
+
platform?: string[];
|
|
4
|
+
skipDocker?: boolean;
|
|
5
|
+
skipMcp?: boolean;
|
|
6
|
+
yes?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function installCommand(options: InstallOptions): Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=install.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AA+BA,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAsLD,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAuH3E"}
|