farai 0.3.2 → 0.3.3

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.
@@ -113,12 +113,68 @@ RUN useradd --system --create-home --home-dir /home/mitm --shell /usr/sbin/nolog
113
113
  && certutil -d sql:/root/.pki/nssdb -N --empty-password \
114
114
  && certutil -d sql:/root/.pki/nssdb -A -n farai-mitmproxy -t "C,," -i /usr/local/share/farai/farai-mitmproxy-ca.pem
115
115
 
116
+ ENV PIP_BREAK_SYSTEM_PACKAGES=1
117
+
118
+ RUN apt-get update \
119
+ && apt-get install -y --no-install-recommends \
120
+ apktool jadx dex2jar adb aapt apksigner \
121
+ fcrackzip stegseek hashid python3-pwntools proxychains4 \
122
+ ruby ruby-dev \
123
+ cmake ninja-build pkg-config libicu-dev libcapstone-dev libunicorn-dev \
124
+ clang automake autoconf libtool libgmp-dev libmpc-dev libmpfr-dev libssl-dev libffi-dev \
125
+ && apt-get clean \
126
+ && rm -rf /var/lib/apt/lists/*
127
+
128
+ RUN export GOBIN=/usr/local/bin GOFLAGS=-buildvcs=false GOSUMDB=off \
129
+ && go install github.com/lc/gau/v2/cmd/gau@latest \
130
+ && go install github.com/tomnomnom/waybackurls@latest \
131
+ && go install github.com/jaeles-project/gospider@latest \
132
+ && go install github.com/hakluke/hakrawler@latest \
133
+ && go install github.com/sensepost/gowitness@latest \
134
+ && go install github.com/projectdiscovery/notify/cmd/notify@latest \
135
+ && go install github.com/tomnomnom/anew@latest \
136
+ && go install github.com/tomnomnom/qsreplace@latest \
137
+ && go install github.com/tomnomnom/unfurl@latest \
138
+ && go install github.com/zricethezav/gitleaks/v8@latest \
139
+ && rm -rf /root/go/pkg /root/.cache/go-build
140
+
141
+ RUN curl -sSfL https://raw.githubusercontent.com/trufflesecurity/trufflehog/main/scripts/install.sh | sh -s -- -b /usr/local/bin
142
+
143
+ RUN gem install --no-document -n /usr/local/bin one_gadget zsteg
144
+
145
+ ENV PIPX_HOME=/opt/pipx PIPX_BIN_DIR=/usr/local/bin
146
+
147
+ RUN pipx install ROPgadget \
148
+ && pipx install apkleaks \
149
+ && pipx install git-dumper \
150
+ && chmod -R a+rX /opt/pipx
151
+
152
+ RUN pipx install git+https://github.com/RsaCtfTool/RsaCtfTool.git \
153
+ && chmod -R a+rX /opt/pipx \
154
+ || echo "[warn] RsaCtfTool install skipped"
155
+
156
+ RUN git clone --depth 1 https://github.com/hugsy/gef.git /opt/gef \
157
+ && echo "source /opt/gef/gef.py" >> /root/.gdbinit
158
+
159
+ RUN git clone --depth 1 https://github.com/ticarpi/jwt_tool.git /opt/jwt_tool \
160
+ && pip install termcolor cprint pycryptodomex requests ratelimit \
161
+ && printf '#!/bin/sh\nexec python3 /opt/jwt_tool/jwt_tool.py "$@"\n' > /usr/local/bin/jwt_tool \
162
+ && chmod 0755 /usr/local/bin/jwt_tool
163
+
164
+ RUN git clone --depth 1 https://github.com/worawit/blutter.git /opt/blutter \
165
+ && pip install pyelftools requests \
166
+ && printf '#!/bin/sh\nexec python3 /opt/blutter/blutter.py "$@"\n' > /usr/local/bin/blutter \
167
+ && chmod 0755 /usr/local/bin/blutter
168
+
169
+ RUN git clone --depth 1 https://github.com/danielmiessler/SecLists.git /usr/share/seclists
170
+
116
171
  COPY redsocks.conf.tmpl /usr/local/share/farai/redsocks.conf.tmpl
117
172
  COPY farai-proxy-init.sh /usr/local/bin/farai-proxy-init
118
173
  COPY farai-proxy-teardown.sh /usr/local/bin/farai-proxy-teardown
119
174
  COPY farai-mitmproxy-mcp.sh /usr/local/bin/mitmproxy-mcp
120
175
  COPY farai_mitmproxy_mcp.py /usr/local/share/farai/farai_mitmproxy_mcp.py
121
176
  COPY farai-image-doctor.py /usr/local/bin/farai-image-doctor
177
+ COPY farai-image-contract /usr/local/share/farai/farai-image-contract
122
178
  RUN chmod 0755 /usr/local/bin/farai-proxy-init /usr/local/bin/farai-proxy-teardown /usr/local/bin/mitmproxy-mcp /usr/local/bin/farai-image-doctor \
123
179
  && farai-image-doctor --write /usr/local/share/farai/kali-capabilities.json
124
180
 
@@ -130,5 +186,5 @@ ENV NODE_EXTRA_CA_CERTS=/usr/local/share/farai/farai-mitmproxy-ca.pem \
130
186
 
131
187
  WORKDIR /workspace
132
188
 
133
- ARG KALI_CONTRACT=curated-security-runtime-2026-09
189
+ ARG KALI_CONTRACT=curated-security-runtime-2026-10
134
190
  LABEL org.farai.kali.contract="${KALI_CONTRACT}"
@@ -0,0 +1 @@
1
+ curated-security-runtime-2026-10
@@ -19,9 +19,22 @@ def resolve_manifest_path():
19
19
  raise FileNotFoundError("farai tool manifest not found")
20
20
 
21
21
 
22
+ def resolve_contract():
23
+ env = os.environ.get("KALI_CONTRACT")
24
+ if env and env.strip():
25
+ return env.strip()
26
+ for candidate in (
27
+ Path("/usr/local/share/farai/farai-image-contract"),
28
+ Path(__file__).with_name("farai-image-contract"),
29
+ ):
30
+ if candidate.is_file():
31
+ return candidate.read_text(encoding="utf-8").strip()
32
+ raise FileNotFoundError("kali image contract not found")
33
+
34
+
22
35
  MANIFEST_PATH = resolve_manifest_path()
23
36
  MANIFEST = json.loads(MANIFEST_PATH.read_text(encoding="utf-8"))
24
- CONTRACT = MANIFEST["contract"]
37
+ CONTRACT = resolve_contract()
25
38
  APT_PACKAGES = tuple(MANIFEST["aptPackages"])
26
39
  WORKFLOWS = MANIFEST["workflows"]
27
40
  PINNED_TOOLS = MANIFEST["pinnedTools"]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "farai",
3
- "version": "0.3.2",
3
+ "version": "0.3.3",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "description": "AI Harness for Security Assessments",