farai 0.3.2 → 0.3.4
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/dist/cli/index.js +224 -82
- package/dist/cli/index.js.map +15 -15
- package/docker/kali/Dockerfile +57 -1
- package/docker/kali/farai-image-contract +1 -0
- package/docker/kali/farai-image-doctor.py +14 -1
- package/package.json +1 -1
package/docker/kali/Dockerfile
CHANGED
|
@@ -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-
|
|
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 =
|
|
37
|
+
CONTRACT = resolve_contract()
|
|
25
38
|
APT_PACKAGES = tuple(MANIFEST["aptPackages"])
|
|
26
39
|
WORKFLOWS = MANIFEST["workflows"]
|
|
27
40
|
PINNED_TOOLS = MANIFEST["pinnedTools"]
|