@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.
Files changed (72) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +246 -0
  3. package/agents/MrZeroEnvBuilder.md +155 -0
  4. package/agents/MrZeroExploitDeveloper.md +263 -0
  5. package/agents/MrZeroMapperOS.md +179 -0
  6. package/agents/MrZeroVulnHunterOS.md +172 -0
  7. package/dist/commands/check.d.ts +6 -0
  8. package/dist/commands/check.d.ts.map +1 -0
  9. package/dist/commands/check.js +205 -0
  10. package/dist/commands/check.js.map +1 -0
  11. package/dist/commands/install.d.ts +10 -0
  12. package/dist/commands/install.d.ts.map +1 -0
  13. package/dist/commands/install.js +256 -0
  14. package/dist/commands/install.js.map +1 -0
  15. package/dist/commands/uninstall.d.ts +8 -0
  16. package/dist/commands/uninstall.d.ts.map +1 -0
  17. package/dist/commands/uninstall.js +123 -0
  18. package/dist/commands/uninstall.js.map +1 -0
  19. package/dist/config/agents.d.ts +20 -0
  20. package/dist/config/agents.d.ts.map +1 -0
  21. package/dist/config/agents.js +88 -0
  22. package/dist/config/agents.js.map +1 -0
  23. package/dist/config/mcp-servers.d.ts +16 -0
  24. package/dist/config/mcp-servers.d.ts.map +1 -0
  25. package/dist/config/mcp-servers.js +72 -0
  26. package/dist/config/mcp-servers.js.map +1 -0
  27. package/dist/config/tools.d.ts +15 -0
  28. package/dist/config/tools.d.ts.map +1 -0
  29. package/dist/config/tools.js +130 -0
  30. package/dist/config/tools.js.map +1 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +35 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/installer/detector.d.ts +52 -0
  36. package/dist/installer/detector.d.ts.map +1 -0
  37. package/dist/installer/detector.js +381 -0
  38. package/dist/installer/detector.js.map +1 -0
  39. package/dist/installer/docker.d.ts +8 -0
  40. package/dist/installer/docker.d.ts.map +1 -0
  41. package/dist/installer/docker.js +197 -0
  42. package/dist/installer/docker.js.map +1 -0
  43. package/dist/installer/mcp.d.ts +11 -0
  44. package/dist/installer/mcp.d.ts.map +1 -0
  45. package/dist/installer/mcp.js +317 -0
  46. package/dist/installer/mcp.js.map +1 -0
  47. package/dist/installer/platforms.d.ts +7 -0
  48. package/dist/installer/platforms.d.ts.map +1 -0
  49. package/dist/installer/platforms.js +254 -0
  50. package/dist/installer/platforms.js.map +1 -0
  51. package/dist/installer/python.d.ts +5 -0
  52. package/dist/installer/python.d.ts.map +1 -0
  53. package/dist/installer/python.js +65 -0
  54. package/dist/installer/python.js.map +1 -0
  55. package/dist/installer/ruby.d.ts +5 -0
  56. package/dist/installer/ruby.d.ts.map +1 -0
  57. package/dist/installer/ruby.js +80 -0
  58. package/dist/installer/ruby.js.map +1 -0
  59. package/dist/utils/logger.d.ts +16 -0
  60. package/dist/utils/logger.d.ts.map +1 -0
  61. package/dist/utils/logger.js +46 -0
  62. package/dist/utils/logger.js.map +1 -0
  63. package/dist/utils/platform.d.ts +18 -0
  64. package/dist/utils/platform.d.ts.map +1 -0
  65. package/dist/utils/platform.js +110 -0
  66. package/dist/utils/platform.js.map +1 -0
  67. package/dist/utils/shell.d.ts +14 -0
  68. package/dist/utils/shell.d.ts.map +1 -0
  69. package/dist/utils/shell.js +45 -0
  70. package/dist/utils/shell.js.map +1 -0
  71. package/docker/Dockerfile +118 -0
  72. package/package.json +56 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../src/utils/platform.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKA,kCAMC;AAED,0BAEC;AAED,sBAEC;AAED,8BAEC;AAED,gCAEC;AAED,oCAEC;AAED,4CAEC;AAED,wCAEC;AAED,gDAEC;AAED,gDAEC;AAED,oDAEC;AAED,oDAEC;AAED,sCAiBC;AA1ED,uCAAyB;AACzB,2CAA6B;AAI7B,SAAgB,WAAW;IACzB,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAC/B,IAAI,QAAQ,KAAK,OAAO,IAAI,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC1E,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAgB,OAAO;IACrB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;AACnC,CAAC;AAED,SAAgB,KAAK;IACnB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,QAAQ,CAAC;AACpC,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,EAAE,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC;AACnC,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC;AACtB,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,gBAAgB;IAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,aAAa,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,cAAc;IAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,CAAC,CAAC;AAC5C,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC;AAED,SAAgB,oBAAoB;IAClC,OAAO,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,QAAQ,CAAC,CAAC;AACrD,CAAC;AAED,SAAgB,aAAa;IAC3B,IAAI,CAAC,OAAO,EAAE;QAAE,OAAO,IAAI,CAAC;IAE5B,IAAI,CAAC;QACH,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACzB,MAAM,WAAW,GAAG,iBAAiB,CAAC;QACtC,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;YACxD,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;YACjE,OAAO;gBACL,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;gBACjC,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,IAAI,SAAS;aACxC,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;IACV,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface ExecResult {
2
+ stdout: string;
3
+ stderr: string;
4
+ code: number;
5
+ }
6
+ export declare function exec(command: string, options?: {
7
+ timeout?: number;
8
+ cwd?: string;
9
+ }): Promise<ExecResult>;
10
+ export declare function commandExists(command: string): Promise<boolean>;
11
+ export declare function runWithOutput(command: string, args: string[], options?: {
12
+ cwd?: string;
13
+ }): Promise<number>;
14
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAsB,IAAI,CACxB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/C,OAAO,CAAC,UAAU,CAAC,CAerB;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAGrE;AAED,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,OAAO,CAAC,MAAM,CAAC,CAgBjB"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.exec = exec;
4
+ exports.commandExists = commandExists;
5
+ exports.runWithOutput = runWithOutput;
6
+ const child_process_1 = require("child_process");
7
+ const util_1 = require("util");
8
+ const execPromise = (0, util_1.promisify)(child_process_1.exec);
9
+ async function exec(command, options = {}) {
10
+ try {
11
+ const { stdout, stderr } = await execPromise(command, {
12
+ timeout: options.timeout || 60000,
13
+ cwd: options.cwd,
14
+ maxBuffer: 10 * 1024 * 1024, // 10MB
15
+ });
16
+ return { stdout, stderr, code: 0 };
17
+ }
18
+ catch (error) {
19
+ return {
20
+ stdout: error.stdout || '',
21
+ stderr: error.stderr || error.message,
22
+ code: error.code || 1,
23
+ };
24
+ }
25
+ }
26
+ async function commandExists(command) {
27
+ const result = await exec(`which ${command}`);
28
+ return result.code === 0 && result.stdout.trim().length > 0;
29
+ }
30
+ async function runWithOutput(command, args, options = {}) {
31
+ return new Promise((resolve) => {
32
+ const proc = (0, child_process_1.spawn)(command, args, {
33
+ stdio: 'inherit',
34
+ cwd: options.cwd,
35
+ shell: true,
36
+ });
37
+ proc.on('close', (code) => {
38
+ resolve(code || 0);
39
+ });
40
+ proc.on('error', () => {
41
+ resolve(1);
42
+ });
43
+ });
44
+ }
45
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":";;AAWA,oBAkBC;AAED,sCAGC;AAED,sCAoBC;AAxDD,iDAA4D;AAC5D,+BAAiC;AAEjC,MAAM,WAAW,GAAG,IAAA,gBAAS,EAAC,oBAAY,CAAC,CAAC;AAQrC,KAAK,UAAU,IAAI,CACxB,OAAe,EACf,UAA8C,EAAE;IAEhD,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE;YACpD,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,KAAK;YACjC,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,SAAS,EAAE,EAAE,GAAG,IAAI,GAAG,IAAI,EAAE,OAAO;SACrC,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;IACrC,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,EAAE;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO;YACrC,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC;SACtB,CAAC;IACJ,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,aAAa,CAAC,OAAe;IACjD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,OAAO,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;AAC9D,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,OAAe,EACf,IAAc,EACd,UAA4B,EAAE;IAE9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,IAAA,qBAAK,EAAC,OAAO,EAAE,IAAI,EAAE;YAChC,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YACxB,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YACpB,OAAO,CAAC,CAAC,CAAC,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,118 @@
1
+ # MrZero Security Tools Container
2
+ # Contains all security scanning tools for MrZero agents
3
+
4
+ FROM ubuntu:22.04
5
+
6
+ LABEL maintainer="bengabay1994"
7
+ LABEL description="MrZero security scanning tools container"
8
+
9
+ # Avoid prompts during package installation
10
+ ENV DEBIAN_FRONTEND=noninteractive
11
+ ENV TZ=UTC
12
+
13
+ # Install base dependencies
14
+ RUN apt-get update && apt-get install -y \
15
+ curl \
16
+ wget \
17
+ git \
18
+ unzip \
19
+ jq \
20
+ python3 \
21
+ python3-pip \
22
+ python3-venv \
23
+ ruby \
24
+ ruby-dev \
25
+ openjdk-17-jdk \
26
+ build-essential \
27
+ cmake \
28
+ pkg-config \
29
+ libssl-dev \
30
+ libicu-dev \
31
+ && rm -rf /var/lib/apt/lists/*
32
+
33
+ # Set up Python
34
+ RUN python3 -m pip install --upgrade pip setuptools wheel
35
+
36
+ # Install uv for faster Python package management
37
+ RUN curl -LsSf https://astral.sh/uv/install.sh | sh
38
+ ENV PATH="/root/.local/bin:$PATH"
39
+
40
+ WORKDIR /tools
41
+
42
+ # ============================================
43
+ # Gitleaks - Secrets scanning
44
+ # ============================================
45
+ RUN GITLEAKS_VERSION=$(curl -sL https://api.github.com/repos/gitleaks/gitleaks/releases/latest | jq -r '.tag_name' | sed 's/v//') && \
46
+ curl -sSL "https://github.com/gitleaks/gitleaks/releases/download/v${GITLEAKS_VERSION}/gitleaks_${GITLEAKS_VERSION}_linux_x64.tar.gz" | tar xz -C /usr/local/bin gitleaks
47
+
48
+ # ============================================
49
+ # Trivy - Vulnerability scanning
50
+ # ============================================
51
+ RUN curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh -s -- -b /usr/local/bin
52
+
53
+ # ============================================
54
+ # Bearer - Security and privacy scanning
55
+ # ============================================
56
+ RUN curl -sfL https://raw.githubusercontent.com/Bearer/bearer/main/contrib/install.sh | sh -s -- -b /usr/local/bin
57
+
58
+ # ============================================
59
+ # Opengrep (Semgrep fork) - Pattern-based analysis
60
+ # ============================================
61
+ RUN curl -fsSL https://raw.githubusercontent.com/opengrep/opengrep/main/install.sh | bash
62
+
63
+ # ============================================
64
+ # Slither - Solidity smart contract analysis
65
+ # ============================================
66
+ RUN uv pip install --system slither-analyzer solc-select
67
+ RUN solc-select install latest && solc-select use latest
68
+
69
+ # ============================================
70
+ # CodeQL - Semantic code analysis
71
+ # ============================================
72
+ RUN mkdir -p /opt/codeql && \
73
+ curl -sSL -o /tmp/codeql.zip https://github.com/github/codeql-cli-binaries/releases/latest/download/codeql-linux64.zip && \
74
+ unzip -q /tmp/codeql.zip -d /opt && \
75
+ rm /tmp/codeql.zip
76
+ ENV PATH="/opt/codeql:$PATH"
77
+
78
+ # ============================================
79
+ # Joern - Code property graph analysis
80
+ # ============================================
81
+ RUN mkdir -p /opt/joern && \
82
+ curl -sSL -o /tmp/joern.zip https://github.com/joernio/joern/releases/latest/download/joern-cli.zip && \
83
+ unzip -q /tmp/joern.zip -d /opt/joern && \
84
+ rm /tmp/joern.zip && \
85
+ chmod +x /opt/joern/joern-cli/joern
86
+ ENV PATH="/opt/joern/joern-cli:$PATH"
87
+
88
+ # ============================================
89
+ # Infer - Static analysis (Facebook)
90
+ # ============================================
91
+ # Note: Infer doesn't support /releases/latest/download/ pattern due to version in filename
92
+ # Using specific version to avoid API rate limits
93
+ RUN curl -sSL -o /tmp/infer.tar.xz https://github.com/facebook/infer/releases/download/v1.2.0/infer-linux-x86_64-v1.2.0.tar.xz && \
94
+ tar xJf /tmp/infer.tar.xz -C /opt && \
95
+ rm /tmp/infer.tar.xz && \
96
+ ln -s /opt/infer-*/bin/infer /usr/local/bin/infer
97
+
98
+ # ============================================
99
+ # Linguist - Language detection
100
+ # ============================================
101
+ RUN gem install github-linguist
102
+
103
+ # ============================================
104
+ # Tree-sitter - Syntax parsing
105
+ # ============================================
106
+ RUN uv pip install --system tree-sitter
107
+
108
+ # ============================================
109
+ # Cleanup
110
+ # ============================================
111
+ RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
112
+
113
+ # Set working directory for scanning
114
+ WORKDIR /workspace
115
+
116
+ # Default entrypoint - can be overridden
117
+ ENTRYPOINT ["/bin/bash", "-c"]
118
+ CMD ["echo 'MrZero Tools Container - use specific tool commands'"]
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@bengabay94/mrzero",
3
+ "version": "0.1.0-alpha.1",
4
+ "description": "AI-powered security research agents for vulnerability hunting and exploit development",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "mrzero": "dist/index.js"
8
+ },
9
+ "scripts": {
10
+ "build": "tsc",
11
+ "dev": "tsc --watch",
12
+ "start": "node dist/index.js",
13
+ "prepublishOnly": "npm run build"
14
+ },
15
+ "keywords": [
16
+ "security",
17
+ "vulnerability",
18
+ "exploit",
19
+ "ai",
20
+ "agents",
21
+ "mcp",
22
+ "claude",
23
+ "opencode",
24
+ "pentest",
25
+ "reverse-engineering"
26
+ ],
27
+ "author": "bengabay1994",
28
+ "license": "MIT",
29
+ "repository": {
30
+ "type": "git",
31
+ "url": "git+https://github.com/bengabay1994/MrZero.git"
32
+ },
33
+ "bugs": {
34
+ "url": "https://github.com/bengabay1994/MrZero/issues"
35
+ },
36
+ "homepage": "https://github.com/bengabay1994/MrZero#readme",
37
+ "engines": {
38
+ "node": ">=18.0.0"
39
+ },
40
+ "dependencies": {
41
+ "chalk": "^5.3.0",
42
+ "commander": "^12.1.0",
43
+ "enquirer": "^2.4.1",
44
+ "ora": "^8.0.1"
45
+ },
46
+ "devDependencies": {
47
+ "@types/node": "^20.11.0",
48
+ "typescript": "^5.3.3"
49
+ },
50
+ "files": [
51
+ "dist",
52
+ "agents",
53
+ "docker",
54
+ "wrappers"
55
+ ]
56
+ }