rtexit-method 0.1.17 → 0.1.19

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.
@@ -0,0 +1,1324 @@
1
+ # RTExit Kali Linux — Full Red Team Environment
2
+ # All tools referenced in 167 RTExit skills pre-installed
3
+ # Usage: docker build -t rtexit/kali . && docker run -it rtexit/kali
4
+ # Or: docker run -it ghcr.io/exit-code-eg/rtexit-kali:latest
5
+
6
+ FROM kalilinux/kali-rolling
7
+
8
+ LABEL maintainer="RTExit <https://github.com/exit-code-eg/RTExit>"
9
+ LABEL description="RTExit Kali — Complete Red Team Environment (189 skills)"
10
+ LABEL version="3.0.0"
11
+
12
+ ENV DEBIAN_FRONTEND=noninteractive
13
+ ENV TERM=xterm-256color
14
+ ENV RTEXIT_HOME=/opt/rtexit
15
+
16
+ # Block broken mirrors + force reliable mirror
17
+ RUN printf 'deb http://mirrors.ocf.berkeley.edu/kali kali-rolling main contrib non-free non-free-firmware\n' \
18
+ > /etc/apt/sources.list
19
+
20
+ # Configure apt retries
21
+ RUN printf 'Acquire::Retries "3";\nAcquire::http::Timeout "20";\n' \
22
+ > /etc/apt/apt.conf.d/99-rtexit
23
+
24
+ # ─────────────────────────────────────────────
25
+ # System Update (split into chunks for reliable caching)
26
+ # ─────────────────────────────────────────────
27
+ RUN apt-get update && apt-get upgrade -y && apt-get clean
28
+
29
+ # Install all tools — --fix-missing continues even if a mirror is down
30
+ RUN apt-get install -y --no-install-recommends --fix-missing \
31
+ curl wget git vim nano tmux screen \
32
+ file xxd hexedit zip unzip p7zip-full tar jq \
33
+ build-essential python3 python3-pip python3-venv \
34
+ libssl-dev libffi-dev libpcap-dev \
35
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
36
+
37
+ RUN apt-get update && apt-get install -y --no-install-recommends --fix-missing \
38
+ golang-go nodejs npm default-jdk ruby ruby-dev \
39
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
40
+
41
+ RUN apt-get update && apt-get install -y --no-install-recommends --fix-missing \
42
+ nmap ncat netcat-openbsd tcpdump tshark \
43
+ net-tools iproute2 iputils-ping bind9-dnsutils \
44
+ socat proxychains4 openvpn \
45
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
46
+
47
+ RUN apt-get update && apt-get install -y --no-install-recommends --fix-missing \
48
+ hashcat john hydra cewl crunch \
49
+ sqlmap nikto wfuzz dirb whatweb \
50
+ masscan aircrack-ng wireless-tools rfkill \
51
+ smbclient ldap-utils \
52
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
53
+
54
+ RUN apt-get update && apt-get install -y --no-install-recommends --fix-missing \
55
+ steghide exiftool gdb radare2 ltrace strace \
56
+ iodine hping3 dsniff macchanger \
57
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
58
+
59
+ RUN apt-get update && apt-get install -y --no-install-recommends --fix-missing \
60
+ responder bettercap sipvicious apache2 nginx php php-curl \
61
+ 2>/dev/null; apt-get clean && rm -rf /var/lib/apt/lists/* ; true
62
+
63
+ # ─────────────────────────────────────────────
64
+ # Python Environment
65
+ # ─────────────────────────────────────────────
66
+ RUN python3 -m pip install --no-cache-dir --upgrade pip setuptools wheel --break-system-packages 2>/dev/null || \
67
+ pip3 install --no-cache-dir --break-system-packages --upgrade pip setuptools wheel --break-system-packages 2>/dev/null || true
68
+
69
+ # ─────────────────────────────────────────────
70
+ # Recon & OSINT Tools
71
+ # (rt-osint, rt-subdomain-enum, rt-active-recon, rt-shodan-recon, rt-js-analysis)
72
+ # ─────────────────────────────────────────────
73
+ RUN apt-get update && apt-get install -y --no-install-recommends \
74
+ amass subfinder \
75
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
76
+
77
+ RUN pip3 install --no-cache-dir --break-system-packages \
78
+ theHarvester shodan censys trufflehog stegoveritas
79
+
80
+ # recon-ng from source (not on PyPI)
81
+ RUN git clone https://github.com/lanmaster53/recon-ng /opt/recon-ng 2>/dev/null && \
82
+ pip3 install --no-cache-dir --break-system-packages -r /opt/recon-ng/REQUIREMENTS 2>/dev/null; \
83
+ ln -sf /opt/recon-ng/recon-ng /usr/local/bin/recon-ng 2>/dev/null; true
84
+
85
+ # httpx, nuclei, subfinder, naabu, katana via Go
86
+ # Go tools — each separate so one failure doesn't stop others
87
+ RUN go install github.com/projectdiscovery/httpx/cmd/httpx@latest 2>/dev/null || true
88
+ RUN go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest 2>/dev/null || true
89
+ RUN go install github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest 2>/dev/null || true
90
+ RUN go install github.com/projectdiscovery/naabu/v2/cmd/naabu@latest 2>/dev/null || true
91
+ RUN go install github.com/projectdiscovery/katana/cmd/katana@latest 2>/dev/null || true
92
+ RUN go install github.com/projectdiscovery/dnsx/cmd/dnsx@latest 2>/dev/null || true
93
+ RUN go install github.com/hakluke/hakrawler@latest 2>/dev/null || true
94
+ RUN go install github.com/tomnomnom/waybackurls@latest 2>/dev/null || true
95
+ RUN go install github.com/lc/gau/v2/cmd/gau@latest 2>/dev/null || true
96
+ RUN go install github.com/ffuf/ffuf/v2@latest 2>/dev/null || true
97
+ RUN go install github.com/OJ/gobuster/v3@latest 2>/dev/null || true
98
+ RUN go install github.com/ropnop/kerbrute@latest 2>/dev/null || true
99
+ RUN go install github.com/hahwul/dalfox/v2@latest 2>/dev/null || true
100
+ RUN go install github.com/LukaSikic/subzy@latest 2>/dev/null || true
101
+
102
+ # gitleaks
103
+ RUN curl -sSfL https://github.com/gitleaks/gitleaks/releases/latest/download/gitleaks_linux_x64.tar.gz | \
104
+ tar xz -C /usr/local/bin && chmod +x /usr/local/bin/gitleaks || true
105
+
106
+ # Nuclei templates
107
+ RUN nuclei -update-templates -update-template-dir /opt/nuclei-templates 2>/dev/null || true
108
+
109
+ # sherlock
110
+ RUN pip3 install --no-cache-dir --break-system-packages sherlock-project 2>/dev/null || true
111
+
112
+ # ─────────────────────────────────────────────
113
+ # Web Application Tools
114
+ # (rt-exploit-web, rt-exploit-injection, rt-exploit-xss, rt-exploit-ssrf,
115
+ # rt-exploit-auth, rt-exploit-file-upload, rt-exploit-api, rt-exploit-jwt,
116
+ # rt-request-smuggling, rt-cache-attacks, rt-xxe, rt-path-traversal)
117
+ # ─────────────────────────────────────────────
118
+ RUN apt-get update && apt-get install -y --no-install-recommends \
119
+ sqlmap \
120
+ nikto \
121
+ wfuzz \
122
+ dirb \
123
+ whatweb \
124
+ wafw00f \
125
+ testssl.sh \
126
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
127
+
128
+ RUN pip3 install --no-cache-dir --break-system-packages \
129
+ mitmproxy impacket requests pwntools \
130
+ PyJWT python-jose \
131
+ grpcio grpcio-tools websocket-client scapy stegano
132
+
133
+ RUN pip3 install --no-cache-dir --break-system-packages blackboxprotobuf 2>/dev/null || true
134
+ RUN pip3 install --no-cache-dir --break-system-packages padding-oracle-attacker 2>/dev/null || true
135
+
136
+ # padbuster from source (not on PyPI)
137
+ RUN git clone https://github.com/AonCyberLabs/PadBuster /opt/PadBuster 2>/dev/null && \
138
+ chmod +x /opt/PadBuster/padBuster.pl 2>/dev/null && \
139
+ ln -sf /opt/PadBuster/padBuster.pl /usr/local/bin/padbuster 2>/dev/null || true
140
+
141
+ # jwt_tool
142
+ RUN git clone https://github.com/ticarpi/jwt_tool /opt/jwt_tool 2>/dev/null && \
143
+ pip3 install --no-cache-dir --break-system-packages -r /opt/jwt_tool/requirements.txt 2>/dev/null; \
144
+ ln -sf /opt/jwt_tool/jwt_tool.py /usr/local/bin/jwt_tool 2>/dev/null; \
145
+ chmod +x /opt/jwt_tool/jwt_tool.py 2>/dev/null; true
146
+
147
+ # smuggler (HTTP Request Smuggling)
148
+ RUN git clone https://github.com/defparam/smuggler /opt/smuggler && \
149
+ chmod +x /opt/smuggler/smuggler.py && \
150
+ ln -s /opt/smuggler/smuggler.py /usr/local/bin/smuggler
151
+
152
+ # Param Miner / arjun (hidden parameter discovery)
153
+ RUN pip3 install --no-cache-dir --break-system-packages arjun 2>/dev/null || true
154
+
155
+ # kxss (XSS scanning)
156
+ RUN go install github.com/tomnomnom/qsreplace@latest 2>/dev/null || true
157
+ RUN go install github.com/Emoe/kxss@latest 2>/dev/null || true
158
+ RUN go install github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest 2>/dev/null || true
159
+ RUN go install github.com/projectdiscovery/cloudlist/cmd/cloudlist@latest 2>/dev/null || true
160
+ RUN go install github.com/projectdiscovery/mapcidr/cmd/mapcidr@latest 2>/dev/null || true
161
+ RUN go install github.com/projectdiscovery/chaos-client/cmd/chaos@latest 2>/dev/null || true
162
+
163
+ # x8 — better hidden parameter discovery
164
+ RUN go install github.com/Sh1Yo/x8@latest 2>/dev/null || true
165
+
166
+ # LinkFinder (JS analysis)
167
+ RUN git clone https://github.com/GerbenJavado/LinkFinder /opt/LinkFinder 2>/dev/null && \
168
+ pip3 install --no-cache-dir --break-system-packages -r /opt/LinkFinder/requirements.txt 2>/dev/null; \
169
+ ln -sf /opt/LinkFinder/linkfinder.py /usr/local/bin/linkfinder 2>/dev/null; true
170
+
171
+ # Burp Suite Community (headless)
172
+ RUN curl -L "https://portswigger.net/burp/releases/download?product=community&type=jar" \
173
+ -o /opt/burpsuite.jar 2>/dev/null || true
174
+
175
+ # grpcurl
176
+ RUN go install github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
177
+
178
+ # ─────────────────────────────────────────────
179
+ # Password & Credential Tools
180
+ # (rt-password-spray, rt-wordlist-generation, rt-lsass-dumping, rt-credential-access)
181
+ # ─────────────────────────────────────────────
182
+ RUN apt-get update && apt-get install -y --no-install-recommends \
183
+ hashcat \
184
+ john \
185
+ hydra \
186
+ medusa \
187
+ cewl \
188
+ crunch \
189
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
190
+
191
+ # pypykatz (LSASS parsing on Linux)
192
+ RUN pip3 install --no-cache-dir --break-system-packages pypykatz 2>/dev/null || true
193
+
194
+ # CUPP (password profiling)
195
+ RUN git clone https://github.com/Mebus/cupp /opt/cupp && \
196
+ ln -s /opt/cupp/cupp.py /usr/local/bin/cupp && \
197
+ chmod +x /opt/cupp/cupp.py
198
+
199
+ # SecLists
200
+ RUN git clone --depth 1 https://github.com/danielmiessler/SecLists /opt/SecLists
201
+
202
+ # kwprocessor (keyboard walks)
203
+ RUN go install github.com/hashcat/kwprocessor@latest 2>/dev/null || \
204
+ git clone https://github.com/hashcat/kwprocessor /opt/kwprocessor
205
+
206
+ # ─────────────────────────────────────────────
207
+ # Active Directory Tools
208
+ # (rt-exploit-active-directory, rt-exploit-adcs, rt-lateral-movement,
209
+ # rt-privilege-escalation, rt-persistence, rt-adfs)
210
+ # ─────────────────────────────────────────────
211
+ # AD tools — installed separately to avoid dependency conflicts
212
+ RUN pip3 install --no-cache-dir --break-system-packages impacket 2>/dev/null || true
213
+ RUN pip3 install --no-cache-dir --break-system-packages bloodhound 2>/dev/null || true
214
+ RUN pip3 install --no-cache-dir --break-system-packages ldap3 pyOpenSSL 2>/dev/null || true
215
+ RUN pip3 install --no-cache-dir --break-system-packages certipy-ad 2>/dev/null || true
216
+ RUN pip3 install --no-cache-dir --break-system-packages pywhisker 2>/dev/null || true
217
+
218
+ # netexec (crackmapexec successor)
219
+ RUN pip3 install --no-cache-dir --break-system-packages netexec 2>/dev/null || true
220
+
221
+ # evil-winrm
222
+ RUN gem install evil-winrm 2>/dev/null || true
223
+
224
+ # BloodHound Python ingestor
225
+ RUN pip3 install --no-cache-dir --break-system-packages bloodhound 2>/dev/null || true
226
+
227
+ # Kerbrute (already installed via Go)
228
+
229
+ # bloodyAD
230
+ RUN pip3 install --no-cache-dir --break-system-packages bloodyAD 2>/dev/null || true
231
+
232
+ # PKINITtools
233
+ RUN git clone https://github.com/dirkjanm/PKINITtools /opt/PKINITtools && \
234
+ pip3 install --no-cache-dir --break-system-packages -r /opt/PKINITtools/requirements.txt 2>/dev/null || true
235
+
236
+ # PetitPotam
237
+ RUN git clone https://github.com/topotam/PetitPotam /opt/PetitPotam
238
+
239
+ # ─────────────────────────────────────────────
240
+ # Cloud Tools
241
+ # (rt-exploit-cloud-aws, rt-exploit-cloud-azure, rt-exploit-cloud-gcp,
242
+ # rt-kubernetes, rt-serverless, rt-exploit-containers)
243
+ # ─────────────────────────────────────────────
244
+ # AWS CLI
245
+ RUN pip3 install --no-cache-dir --break-system-packages awscli boto3 2>/dev/null || true
246
+
247
+ # Azure CLI
248
+ RUN pip3 install --no-cache-dir --break-system-packages azure-cli 2>/dev/null || \
249
+ curl -sL https://aka.ms/InstallAzureCLIDeb | bash 2>/dev/null || true
250
+
251
+ # GCP CLI
252
+ RUN pip3 install --no-cache-dir --break-system-packages google-cloud-storage google-auth 2>/dev/null || true
253
+
254
+ # Pacu (AWS exploitation)
255
+ RUN git clone https://github.com/RhinoSecurityLabs/pacu /opt/pacu 2>/dev/null && \
256
+ pip3 install --no-cache-dir --break-system-packages \
257
+ $(ls /opt/pacu/requirements*.txt 2>/dev/null | head -1 | xargs -I{} echo "-r {}") \
258
+ 2>/dev/null; \
259
+ pip3 install --no-cache-dir --break-system-packages pacu 2>/dev/null; \
260
+ ln -sf /opt/pacu/cli.py /usr/local/bin/pacu 2>/dev/null; true
261
+
262
+ # ScoutSuite (multi-cloud)
263
+ RUN pip3 install --no-cache-dir --break-system-packages scoutsuite 2>/dev/null || true
264
+
265
+ # CloudFox
266
+ RUN go install github.com/BishopFox/cloudfox@latest 2>/dev/null || true
267
+
268
+ # kubectl
269
+ RUN curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" && \
270
+ install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl && \
271
+ rm kubectl
272
+
273
+ # kube-hunter
274
+ RUN pip3 install --no-cache-dir --break-system-packages kube-hunter 2>/dev/null || true
275
+
276
+ # ─────────────────────────────────────────────
277
+ # Post-Exploitation & C2 Tools
278
+ # (rt-post-exploitation, rt-c2-operations, rt-defense-evasion,
279
+ # rt-lateral-movement, rt-persistence, rt-data-exfiltration)
280
+ # ─────────────────────────────────────────────
281
+ RUN apt-get update && apt-get install -y --no-install-recommends \
282
+ metasploit-framework \
283
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
284
+
285
+ # Sliver C2
286
+ RUN curl https://sliver.sh/install | sudo bash 2>/dev/null || \
287
+ go install github.com/BishopFox/sliver/client/cmd/sliver-client@latest 2>/dev/null || true
288
+
289
+ # Chisel (TCP tunneling)
290
+ RUN go install github.com/jpillora/chisel@latest
291
+
292
+ # Ligolo-ng (Layer 3 tunneling)
293
+ RUN go install github.com/nicocha30/ligolo-ng/cmd/proxy@latest 2>/dev/null || true
294
+ RUN go install github.com/nicocha30/ligolo-ng/cmd/agent@latest 2>/dev/null || true
295
+
296
+ # iodine (DNS tunneling)
297
+ RUN apt-get update && apt-get install -y --no-install-recommends iodine && \
298
+ apt-get clean && rm -rf /var/lib/apt/lists/*
299
+
300
+ # dnscat2
301
+ RUN git clone https://github.com/iagox86/dnscat2 /opt/dnscat2 && \
302
+ cd /opt/dnscat2/client && make 2>/dev/null || true
303
+
304
+ # ─────────────────────────────────────────────
305
+ # Network & Protocol Tools
306
+ # (rt-network-segmentation, rt-ssl-mitm, rt-traffic-analysis, rt-exploit-wireless)
307
+ # ─────────────────────────────────────────────
308
+ RUN apt-get update && apt-get install -y --no-install-recommends \
309
+ responder \
310
+ bettercap \
311
+ ettercap-text-only \
312
+ dsniff \
313
+ sslstrip \
314
+ hping3 \
315
+ yersinia \
316
+ proxychains4 \
317
+ ptunnel-ng \
318
+ socat \
319
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
320
+
321
+ # zeek (traffic analysis)
322
+ RUN apt-get update && apt-get install -y --no-install-recommends zeek 2>/dev/null || true && \
323
+ apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
324
+
325
+ # PCredz (credential extraction from pcap)
326
+ RUN git clone https://github.com/lgandx/PCredz /opt/PCredz && \
327
+ pip3 install --no-cache-dir --break-system-packages Cython 2>/dev/null || true
328
+
329
+ # ─────────────────────────────────────────────
330
+ # Social Engineering & Phishing
331
+ # (rt-social-engineering, rt-exploit-phishing)
332
+ # ─────────────────────────────────────────────
333
+ # GoPhish
334
+ RUN wget -q "https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip" \
335
+ -O /tmp/gophish.zip 2>/dev/null && \
336
+ unzip -q /tmp/gophish.zip -d /opt/gophish 2>/dev/null && \
337
+ chmod +x /opt/gophish/gophish 2>/dev/null && \
338
+ ln -s /opt/gophish/gophish /usr/local/bin/gophish 2>/dev/null && \
339
+ rm /tmp/gophish.zip 2>/dev/null || true
340
+
341
+ # SET (Social Engineering Toolkit)
342
+ RUN git clone https://github.com/trustedsec/social-engineer-toolkit /opt/setoolkit && \
343
+ pip3 install --no-cache-dir --break-system-packages -r /opt/setoolkit/requirements.txt 2>/dev/null || true
344
+
345
+ # ─────────────────────────────────────────────
346
+ # Deserialization Tools
347
+ # (rt-deserialization)
348
+ # ─────────────────────────────────────────────
349
+ # ysoserial
350
+ RUN mkdir -p /opt/ysoserial && \
351
+ wget -q "https://github.com/frohoff/ysoserial/releases/latest/download/ysoserial-all.jar" \
352
+ -O /opt/ysoserial/ysoserial.jar && \
353
+ echo '#!/bin/bash\njava -jar /opt/ysoserial/ysoserial.jar "$@"' > /usr/local/bin/ysoserial && \
354
+ chmod +x /usr/local/bin/ysoserial
355
+
356
+ # phpggc
357
+ RUN git clone https://github.com/ambionics/phpggc /opt/phpggc && \
358
+ ln -s /opt/phpggc/phpggc /usr/local/bin/phpggc && \
359
+ chmod +x /opt/phpggc/phpggc
360
+
361
+ # ─────────────────────────────────────────────
362
+ # Binary Analysis & Reverse Engineering
363
+ # (rt-binary-reverse-engineering)
364
+ # ─────────────────────────────────────────────
365
+ RUN apt-get update && apt-get install -y --no-install-recommends \
366
+ gdb \
367
+ radare2 \
368
+ ltrace strace \
369
+ binutils \
370
+ patchelf \
371
+ nasm \
372
+ ghidra 2>/dev/null || true \
373
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
374
+
375
+ # Ghidra (if not in apt)
376
+ RUN if ! command -v ghidra &>/dev/null; then \
377
+ wget -q "https://github.com/NationalSecurityAgency/ghidra/releases/latest/download/ghidra_11.1_PUBLIC_20240607.zip" \
378
+ -O /tmp/ghidra.zip 2>/dev/null && \
379
+ unzip -q /tmp/ghidra.zip -d /opt && \
380
+ ln -s /opt/ghidra_*/ghidraRun /usr/local/bin/ghidra && \
381
+ rm /tmp/ghidra.zip 2>/dev/null; fi || true
382
+
383
+ # floss (string deobfuscation)
384
+ RUN pip3 install --no-cache-dir --break-system-packages floss 2>/dev/null || true
385
+
386
+ # pwndbg (GDB enhancement)
387
+ RUN git clone https://github.com/pwndbg/pwndbg /opt/pwndbg && \
388
+ cd /opt/pwndbg && ./setup.sh 2>/dev/null || true
389
+
390
+ # ─────────────────────────────────────────────
391
+ # Fuzzing Tools
392
+ # (rt-exploit-fuzzing)
393
+ # ─────────────────────────────────────────────
394
+ RUN apt-get update && apt-get install -y --no-install-recommends \
395
+ afl++ \
396
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
397
+
398
+ # radamsa — build from source (not in Kali repos)
399
+ RUN git clone https://gitlab.com/akihe/radamsa /opt/radamsa && \
400
+ cd /opt/radamsa && make 2>/dev/null && \
401
+ ln -sf /opt/radamsa/bin/radamsa /usr/local/bin/radamsa 2>/dev/null || true
402
+
403
+ RUN pip3 install --no-cache-dir --break-system-packages boofuzz 2>/dev/null || true
404
+
405
+ # ─────────────────────────────────────────────
406
+ # Hardware & IoT Tools
407
+ # (rt-hardware-hacking, rt-exploit-iot, rt-exploit-scada)
408
+ # ─────────────────────────────────────────────
409
+ RUN apt-get update && apt-get install -y --no-install-recommends \
410
+ openocd \
411
+ flashrom \
412
+ avrdude \
413
+ minicom \
414
+ screen \
415
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
416
+
417
+ RUN pip3 install --no-cache-dir --break-system-packages \
418
+ bleak \
419
+ pyserial \
420
+ pyModbusTCP 2>/dev/null || true
421
+
422
+ # ─────────────────────────────────────────────
423
+ # Steganography & Covert Channels
424
+ # (rt-steganography)
425
+ # ─────────────────────────────────────────────
426
+ RUN apt-get update && apt-get install -y --no-install-recommends \
427
+ steghide sox binwalk exiftool \
428
+ && apt-get clean && rm -rf /var/lib/apt/lists/*
429
+ # outguess — not in Kali repos, build from source
430
+ RUN git clone https://github.com/crorvick/outguess /opt/outguess && \
431
+ cd /opt/outguess && autoreconf -i && ./configure && make && make install 2>/dev/null || true
432
+
433
+ RUN gem install zsteg 2>/dev/null || true
434
+ RUN pip3 install --no-cache-dir --break-system-packages stegoveritas 2>/dev/null || true
435
+
436
+ # ─────────────────────────────────────────────
437
+ # VoIP Tools
438
+ # (rt-voip-sip)
439
+ # ─────────────────────────────────────────────
440
+ RUN apt-get update && apt-get install -y --no-install-recommends \
441
+ sipvicious 2>/dev/null || true \
442
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
443
+
444
+ RUN pip3 install --no-cache-dir --break-system-packages sipvicious 2>/dev/null || true
445
+
446
+ # ─────────────────────────────────────────────
447
+ # Crypto Attack Tools
448
+ # (rt-crypto-attacks)
449
+ # ─────────────────────────────────────────────
450
+ RUN pip3 install --no-cache-dir --break-system-packages \
451
+ pycryptodome \
452
+ hashpumpy \
453
+ cryptography \
454
+ padding-oracle-attacker 2>/dev/null || true
455
+
456
+ # ─────────────────────────────────────────────
457
+ # Web Proxy & Interception
458
+ # (rt-ssl-mitm)
459
+ # ─────────────────────────────────────────────
460
+ RUN pip3 install --no-cache-dir --break-system-packages mitmproxy 2>/dev/null || true
461
+
462
+ # OWASP ZAP (Burp Suite alternative)
463
+ RUN wget -q "https://github.com/zaproxy/zaproxy/releases/latest/download/ZAP_LINUX_PACKAGE.tar.gz" \
464
+ -O /tmp/zap.tar.gz 2>/dev/null && \
465
+ tar xf /tmp/zap.tar.gz -C /opt/ && \
466
+ ln -s /opt/ZAP_*/zap.sh /usr/local/bin/zap && \
467
+ rm /tmp/zap.tar.gz 2>/dev/null || true
468
+
469
+ # ─────────────────────────────────────────────
470
+ # Azure AD — ROADtools (Azure AD enumeration)
471
+ # (rt-azure-ad, rt-adfs)
472
+ # ─────────────────────────────────────────────
473
+ RUN pip3 install --no-cache-dir --break-system-packages roadtools roadrecon 2>/dev/null || true
474
+
475
+ # ─────────────────────────────────────────────
476
+ # AWS IAM — PMapper (privilege escalation paths)
477
+ # (rt-exploit-cloud-aws)
478
+ # ─────────────────────────────────────────────
479
+ RUN pip3 install --no-cache-dir --break-system-packages principalmapper 2>/dev/null || \
480
+ git clone https://github.com/nccgroup/PMapper /opt/PMapper && \
481
+ pip3 install --no-cache-dir --break-system-packages -r /opt/PMapper/requirements.txt 2>/dev/null || true
482
+
483
+ # ─────────────────────────────────────────────
484
+ # Email Breach Hunting — h8mail
485
+ # (rt-osint, rt-credential-hunt)
486
+ # ─────────────────────────────────────────────
487
+ RUN pip3 install --no-cache-dir --break-system-packages h8mail 2>/dev/null || true
488
+
489
+ # ─────────────────────────────────────────────
490
+ # Mobile Testing — Frida + Objection
491
+ # (rt-exploit-android, rt-exploit-ios)
492
+ # ─────────────────────────────────────────────
493
+ RUN pip3 install --no-cache-dir --break-system-packages \
494
+ frida-tools \
495
+ objection \
496
+ apkleaks 2>/dev/null || true
497
+
498
+ # ─────────────────────────────────────────────
499
+ # Phishing — Evilginx3 (MFA-bypassing reverse proxy)
500
+ # (rt-social-engineering, rt-exploit-phishing)
501
+ # ─────────────────────────────────────────────
502
+ RUN go install github.com/kgretzky/evilginx2@latest 2>/dev/null || \
503
+ git clone https://github.com/kgretzky/evilginx2 /opt/evilginx3 && \
504
+ cd /opt/evilginx3 && go build -o /usr/local/bin/evilginx3 . 2>/dev/null || true
505
+
506
+ # ─────────────────────────────────────────────
507
+ # AI/LLM Tools
508
+ # (rt-ai-llm-security)
509
+ # ─────────────────────────────────────────────
510
+ RUN pip3 install --no-cache-dir --break-system-packages \
511
+ garak \
512
+ openai \
513
+ anthropic \
514
+ requests 2>/dev/null || true
515
+
516
+ # ─────────────────────────────────────────────
517
+ # C2 Frameworks (Additional)
518
+ # Havoc C2, Empire, PoshC2
519
+ # ─────────────────────────────────────────────
520
+ RUN git clone https://github.com/BC-SECURITY/Empire /opt/Empire 2>/dev/null; \
521
+ [ -f /opt/Empire/requirements.txt ] && pip3 install --no-cache-dir --break-system-packages -r /opt/Empire/requirements.txt 2>/dev/null; \
522
+ ln -sf /opt/Empire/empire /usr/local/bin/empire 2>/dev/null; true
523
+
524
+ RUN git clone https://github.com/nettitude/PoshC2 /opt/PoshC2 && \
525
+ cd /opt/PoshC2 && pip3 install --no-cache-dir --break-system-packages -r requirements.txt 2>/dev/null || true
526
+
527
+ # Villain C2 (lightweight)
528
+ RUN git clone https://github.com/t3l3machus/Villain /opt/Villain && \
529
+ pip3 install --no-cache-dir --break-system-packages -r /opt/Villain/requirements.txt 2>/dev/null || true
530
+
531
+ # ─────────────────────────────────────────────
532
+ # Web Testing (Additional)
533
+ # Caido, Ghauri, GraphQL tools, CORScanner
534
+ # ─────────────────────────────────────────────
535
+ # Caido — modern Burp alternative
536
+ RUN curl -fsSL "https://caido.io/download/latest/linux" -o /usr/local/bin/caido 2>/dev/null && \
537
+ chmod +x /usr/local/bin/caido 2>/dev/null || true
538
+
539
+ # Ghauri — advanced SQLi tool
540
+ RUN pip3 install --no-cache-dir --break-system-packages ghauri 2>/dev/null; \
541
+ git clone https://github.com/r0oth3x49/ghauri /opt/ghauri 2>/dev/null; \
542
+ [ -f /opt/ghauri/requirements.txt ] && pip3 install --no-cache-dir --break-system-packages -r /opt/ghauri/requirements.txt 2>/dev/null; \
543
+ ln -sf /opt/ghauri/ghauri.py /usr/local/bin/ghauri 2>/dev/null; true
544
+
545
+ # GraphQL tools
546
+ RUN pip3 install --no-cache-dir --break-system-packages graphw00f 2>/dev/null && \
547
+ pip3 install --no-cache-dir --break-system-packages clairvoyance 2>/dev/null || true
548
+
549
+ # CORScanner
550
+ RUN git clone https://github.com/chenjj/CORScanner /opt/CORScanner && \
551
+ pip3 install --no-cache-dir --break-system-packages -r /opt/CORScanner/requirements.txt 2>/dev/null || true
552
+
553
+ # ─────────────────────────────────────────────
554
+ # Active Directory (Additional)
555
+ # coercer, mitm6, KrbRelayUp, NoPac, DonPAPI
556
+ # ─────────────────────────────────────────────
557
+ # coercer — unified auth coercion (EFS, MS-RPRN, MS-DFSNM, etc.)
558
+ RUN pip3 install --no-cache-dir --break-system-packages coercer 2>/dev/null || \
559
+ git clone https://github.com/p0dalirius/Coercer /opt/Coercer && \
560
+ pip3 install --no-cache-dir --break-system-packages -r /opt/Coercer/requirements.txt 2>/dev/null || true
561
+
562
+ # mitm6 — IPv6 MITM + DNS takeover
563
+ RUN pip3 install --no-cache-dir --break-system-packages mitm6 2>/dev/null || true
564
+
565
+ # DonPAPI — DPAPI credential hunting
566
+ RUN git clone https://github.com/login-securite/DonPAPI /opt/DonPAPI && \
567
+ pip3 install --no-cache-dir --break-system-packages -r /opt/DonPAPI/requirements.txt 2>/dev/null || true
568
+
569
+ # NoPac — CVE-2021-42278/42427
570
+ RUN git clone https://github.com/Ridter/noPac /opt/noPac && \
571
+ pip3 install --no-cache-dir --break-system-packages impacket 2>/dev/null || true
572
+
573
+ # pyrdp — RDP MITM
574
+ RUN pip3 install --no-cache-dir --break-system-packages pyrdp 2>/dev/null || true
575
+
576
+ # ─────────────────────────────────────────────
577
+ # Container Escape Tools
578
+ # CDK, deepce, botb
579
+ # ─────────────────────────────────────────────
580
+ # CDK — Container escape toolkit
581
+ RUN go install github.com/cdk-team/CDK/cmd/cdk@latest 2>/dev/null || \
582
+ curl -sSL https://github.com/cdk-team/CDK/releases/latest/download/cdk_linux_amd64 \
583
+ -o /usr/local/bin/cdk && chmod +x /usr/local/bin/cdk 2>/dev/null || true
584
+
585
+ # deepce — Docker escape
586
+ RUN curl -sSL https://github.com/stealthcopter/deepce/releases/latest/download/deepce \
587
+ -o /usr/local/bin/deepce && chmod +x /usr/local/bin/deepce 2>/dev/null || true
588
+
589
+ # botb — Break Out The Box
590
+ RUN go install github.com/brompwnie/botb@latest 2>/dev/null || true
591
+
592
+ # Trivy — container/image vulnerability scanning
593
+ RUN curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | \
594
+ sh -s -- -b /usr/local/bin 2>/dev/null || \
595
+ apt-get install -y trivy 2>/dev/null || true
596
+
597
+ # ─────────────────────────────────────────────
598
+ # Cloud (Additional)
599
+ # Prowler, Steampipe, Stratus Red Team, TeamFiltration
600
+ # ─────────────────────────────────────────────
601
+ # Prowler — AWS/GCP/Azure compliance audit
602
+ RUN pip3 install --no-cache-dir --break-system-packages prowler 2>/dev/null || true
603
+
604
+ # Stratus Red Team — cloud attack for detection testing
605
+ RUN go install github.com/DataDog/stratus-red-team/v2/cmd/stratus@latest 2>/dev/null || true
606
+
607
+ # TeamFiltration — M365 user enum and spray
608
+ RUN curl -sSL "https://github.com/Flangvik/TeamFiltration/releases/latest/download/TeamFiltration_Linux" \
609
+ -o /usr/local/bin/teamfiltration && chmod +x /usr/local/bin/teamfiltration 2>/dev/null || true
610
+
611
+ # ─────────────────────────────────────────────
612
+ # Payload Generation & Evasion
613
+ # Veil-Evasion, macro_pack, Donut, ScareCrow
614
+ # ─────────────────────────────────────────────
615
+ # Veil-Evasion
616
+ RUN git clone https://github.com/Veil-Framework/Veil /opt/Veil && \
617
+ cd /opt/Veil/setup && bash setup.sh -s 2>/dev/null || true
618
+
619
+ # macro_pack — Office macro obfuscation
620
+ RUN git clone https://github.com/sevagas/macro_pack /opt/macro_pack 2>/dev/null || true
621
+
622
+ # Donut — shellcode generation
623
+ RUN pip3 install --no-cache-dir --break-system-packages donut-shellcode 2>/dev/null || \
624
+ go install github.com/Binject/go-donut/cmd/godonuts@latest 2>/dev/null || true
625
+
626
+ # ─────────────────────────────────────────────
627
+ # OSINT (Additional)
628
+ # SpiderFoot, Maigret, Holehe, GHunt, CrossLinked
629
+ # ─────────────────────────────────────────────
630
+ RUN pip3 install --no-cache-dir --break-system-packages \
631
+ spiderfoot 2>/dev/null || true
632
+
633
+ RUN pip3 install --no-cache-dir --break-system-packages \
634
+ maigret \
635
+ holehe \
636
+ ghunt \
637
+ socialscan 2>/dev/null || true
638
+
639
+ # CrossLinked — LinkedIn username generation
640
+ RUN git clone https://github.com/m8sec/CrossLinked /opt/CrossLinked && \
641
+ pip3 install --no-cache-dir --break-system-packages -r /opt/CrossLinked/requirements.txt 2>/dev/null || true
642
+
643
+ # ─────────────────────────────────────────────
644
+ # Mobile Testing — Core Tools
645
+ # apktool, jadx, dex2jar, adb
646
+ # (rt-exploit-android, rt-exploit-ios, rt-apk-repackaging)
647
+ # ─────────────────────────────────────────────
648
+ RUN apt-get update && apt-get install -y --no-install-recommends \
649
+ apktool \
650
+ dex2jar \
651
+ android-tools-adb \
652
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
653
+
654
+ # jadx — Java decompiler
655
+ RUN mkdir -p /opt/jadx && \
656
+ curl -sSL "https://github.com/skylot/jadx/releases/latest/download/jadx-1.5.0.zip" \
657
+ -o /tmp/jadx.zip 2>/dev/null && \
658
+ unzip -q /tmp/jadx.zip -d /opt/jadx && \
659
+ ln -sf /opt/jadx/bin/jadx /usr/local/bin/jadx && \
660
+ ln -sf /opt/jadx/bin/jadx-gui /usr/local/bin/jadx-gui && \
661
+ rm /tmp/jadx.zip 2>/dev/null || true
662
+
663
+ # uber-apk-signer — sign + zipalign APKs in one command
664
+ # (rt-apk-repackaging — required for repackaged APK signing)
665
+ RUN mkdir -p /opt/uber-apk-signer && \
666
+ curl -sSL "https://github.com/patrickfav/uber-apk-signer/releases/download/v1.3.0/uber-apk-signer-1.3.0.jar" \
667
+ -o /opt/uber-apk-signer/uber-apk-signer.jar 2>/dev/null && \
668
+ echo '#!/bin/bash\nexec java -jar /opt/uber-apk-signer/uber-apk-signer.jar "$@"' \
669
+ > /usr/local/bin/uber-apk-signer && \
670
+ chmod +x /usr/local/bin/uber-apk-signer 2>/dev/null || true
671
+
672
+ # ─────────────────────────────────────────────
673
+ # Mobile Testing — Advanced Dynamic Analysis
674
+ # Frida, Objection, reFlutter
675
+ # (rt-frida-advanced, rt-mobile-ssl-pinning)
676
+ # ─────────────────────────────────────────────
677
+
678
+ # frida-tools + objection + apkleaks (already in base section, ensure latest)
679
+ RUN pip3 install --no-cache-dir --break-system-packages \
680
+ frida-tools \
681
+ objection \
682
+ apkleaks 2>/dev/null || true
683
+
684
+ # reFlutter — patches libflutter.so to remove SSL pinning + redirect to Burp
685
+ # (rt-mobile-ssl-pinning, rt-cross-platform-mobile — Flutter apps)
686
+ RUN pip3 install --no-cache-dir --break-system-packages reFlutter 2>/dev/null || \
687
+ git clone https://github.com/Impact-I/reFlutter /opt/reFlutter && \
688
+ pip3 install --no-cache-dir --break-system-packages -r /opt/reFlutter/requirements.txt 2>/dev/null || true
689
+
690
+ # apk-mitm — automatic SSL unpinning for APKs (no Frida needed)
691
+ # (rt-mobile-ssl-pinning — when Frida/Objection bypass fails)
692
+ RUN npm install -g apk-mitm 2>/dev/null || true
693
+
694
+ # frida-server helper script — pulls correct frida-server for connected device
695
+ # Usage: setup-frida-server [device_ip:port]
696
+ # (rt-frida-advanced)
697
+ RUN cat > /usr/local/bin/setup-frida-server << 'SCRIPT'
698
+ #!/bin/bash
699
+ set -e
700
+ FRIDA_VER=$(python3 -c "import frida; print(frida.__version__)" 2>/dev/null || pip3 show frida | grep Version | awk '{print $2}')
701
+ DEVICE=${1:-"usb"}
702
+
703
+ if [ "$DEVICE" != "usb" ]; then
704
+ adb connect "$DEVICE"
705
+ fi
706
+
707
+ ARCH=$(adb shell getprop ro.product.cpu.abi 2>/dev/null | tr -d '\r')
708
+ case $ARCH in
709
+ arm64-v8a) ARCH_NAME="arm64" ;;
710
+ armeabi-v7a) ARCH_NAME="arm" ;;
711
+ x86_64) ARCH_NAME="x86_64" ;;
712
+ x86) ARCH_NAME="x86" ;;
713
+ *) echo "Unknown arch: $ARCH"; exit 1 ;;
714
+ esac
715
+
716
+ echo "[*] Frida version: $FRIDA_VER | Device arch: $ARCH_NAME"
717
+ URL="https://github.com/frida/frida/releases/download/${FRIDA_VER}/frida-server-${FRIDA_VER}-android-${ARCH_NAME}.xz"
718
+ echo "[*] Downloading: $URL"
719
+ wget -q "$URL" -O /tmp/frida-server.xz
720
+ unxz /tmp/frida-server.xz
721
+ mv /tmp/frida-server "/tmp/frida-server-${ARCH_NAME}"
722
+ adb push "/tmp/frida-server-${ARCH_NAME}" /data/local/tmp/frida-server
723
+ adb shell chmod 755 /data/local/tmp/frida-server
724
+ echo "[+] Installed. Start with: adb shell /data/local/tmp/frida-server &"
725
+ SCRIPT
726
+ RUN chmod +x /usr/local/bin/setup-frida-server 2>/dev/null || true
727
+
728
+ # ─────────────────────────────────────────────
729
+ # Mobile Testing — Cross-Platform App Analysis
730
+ # React Native (Hermes), Flutter (Dart), Xamarin
731
+ # (rt-cross-platform-mobile)
732
+ # ─────────────────────────────────────────────
733
+
734
+ # hermes-dec — decompile Hermes bytecode (React Native compiled bundles)
735
+ RUN pip3 install --no-cache-dir --break-system-packages hermes-dec 2>/dev/null || true
736
+
737
+ # hbctool — alternative Hermes bytecode disassembler
738
+ RUN pip3 install --no-cache-dir --break-system-packages hbctool 2>/dev/null || true
739
+
740
+ # js-beautify — prettify plain React Native JS bundles
741
+ RUN npm install -g js-beautify 2>/dev/null || true
742
+
743
+ # doldrums — extract Dart code from Flutter kernel_blob.bin
744
+ RUN pip3 install --no-cache-dir --break-system-packages doldrums 2>/dev/null || \
745
+ git clone https://github.com/nicowillis/doldrums /opt/doldrums && \
746
+ pip3 install --no-cache-dir --break-system-packages -r /opt/doldrums/requirements.txt 2>/dev/null || true
747
+
748
+ # Mono + monodis — decompile Xamarin .NET assemblies
749
+ # monodis = IL disassembler for .NET DLLs from Xamarin apps
750
+ RUN apt-get update && apt-get install -y --no-install-recommends \
751
+ mono-complete \
752
+ mono-utils \
753
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
754
+
755
+ # ilspycmd — .NET decompiler (better than monodis for Xamarin DLL source)
756
+ RUN dotnet tool install --global ilspycmd 2>/dev/null || true
757
+
758
+ # lz4 — decompress Xamarin LZ4-compressed assemblies (XALZ format)
759
+ RUN pip3 install --no-cache-dir --break-system-packages lz4 2>/dev/null || true
760
+
761
+ # ─────────────────────────────────────────────
762
+ # Mobile Testing — Static Analysis Deep
763
+ # MobSF (via Docker), androguard, trufflehog, secret scanning
764
+ # (rt-mobile-static-deep)
765
+ # ─────────────────────────────────────────────
766
+
767
+ # androguard — Python library for APK analysis (imports, permissions, code)
768
+ RUN pip3 install --no-cache-dir --break-system-packages androguard 2>/dev/null || true
769
+
770
+ # apkleaks — scan APK for leaked secrets, endpoints, API keys
771
+ RUN pip3 install --no-cache-dir --break-system-packages apkleaks 2>/dev/null || true
772
+
773
+ # trufflehog3 — secret scanning on decompiled source
774
+ RUN pip3 install --no-cache-dir --break-system-packages trufflehog3 2>/dev/null || true
775
+
776
+ # MobSF — NOTE: MobSF is too heavy for the base image (~2GB)
777
+ # Run separately: docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf
778
+ # Or add to your docker-compose.yml alongside rtexit-kali
779
+ RUN echo '# MobSF: docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf' \
780
+ >> /etc/profile.d/rtexit-aliases.sh 2>/dev/null || true
781
+
782
+ # ─────────────────────────────────────────────
783
+ # Mobile Testing — Malware & C2
784
+ # msfvenom (already installed), TheFatRat, AhMyth, qrcode
785
+ # (rt-mobile-malware-c2)
786
+ # ─────────────────────────────────────────────
787
+
788
+ # qrcode — generate QR codes for APK delivery URLs
789
+ RUN pip3 install --no-cache-dir --break-system-packages "qrcode[pil]" Pillow 2>/dev/null || true
790
+
791
+ # TheFatRat — FUD payload generator (APK + exe + more)
792
+ RUN git clone https://github.com/Screetsec/TheFatRat /opt/TheFatRat 2>/dev/null && \
793
+ chmod +x /opt/TheFatRat/fatrat 2>/dev/null || true
794
+ # NOTE: TheFatRat requires setup.sh on first use: cd /opt/TheFatRat && bash setup.sh
795
+
796
+ # AhMyth RAT — NOTE: Electron GUI app, cannot run headless in Docker
797
+ # Download on attacker machine: https://github.com/AhMyth/AhMyth-Android-RAT/releases
798
+ RUN echo '# AhMyth: download GUI from https://github.com/AhMyth/AhMyth-Android-RAT/releases' \
799
+ >> /etc/profile.d/rtexit-aliases.sh 2>/dev/null || true
800
+
801
+ # ─────────────────────────────────────────────
802
+ # Mobile Testing — Intent Exploitation
803
+ # Drozer (already installed), adb (already installed)
804
+ # (rt-android-intent-exploitation)
805
+ # ─────────────────────────────────────────────
806
+
807
+ # drozer — already installed above, ensure agent JAR is available
808
+ RUN pip3 install --no-cache-dir --break-system-packages drozer 2>/dev/null || true
809
+
810
+ # Download drozer agent APK for device installation
811
+ RUN mkdir -p /opt/drozer && \
812
+ curl -sSL "https://github.com/WithSecureLabs/drozer/releases/latest/download/drozer-agent.apk" \
813
+ -o /opt/drozer/drozer-agent.apk 2>/dev/null && \
814
+ echo "[*] Install on device: adb install /opt/drozer/drozer-agent.apk" >> /opt/drozer/README.txt 2>/dev/null || true
815
+
816
+ # ─────────────────────────────────────────────
817
+ # Purple Team / Detection Testing
818
+ # Atomic Red Team, Caldera
819
+ # ─────────────────────────────────────────────
820
+ # Atomic Red Team — MITRE ATT&CK tests
821
+ RUN git clone https://github.com/redcanaryco/atomic-red-team /opt/atomic-red-team 2>/dev/null || true
822
+
823
+ # Caldera — MITRE adversary simulation
824
+ RUN git clone https://github.com/mitre/caldera /opt/caldera && \
825
+ pip3 install --no-cache-dir --break-system-packages -r /opt/caldera/requirements.txt 2>/dev/null || true
826
+
827
+ # ─────────────────────────────────────────────
828
+ # Missing Tools (Gap Analysis v1)
829
+ # ─────────────────────────────────────────────
830
+
831
+ # Android — Drozer (component enumeration)
832
+ RUN pip3 install --no-cache-dir --break-system-packages drozer 2>/dev/null || true
833
+
834
+ # BLE — crackle + GATTacker
835
+ RUN git clone https://github.com/mikeryan/crackle /opt/crackle && \
836
+ cd /opt/crackle && make 2>/dev/null || true
837
+ RUN npm install -g gattacker 2>/dev/null || true
838
+
839
+ # VoIP — rtpbreak + pjsua (install individually to avoid block on missing pkg)
840
+ RUN apt-get update && \
841
+ apt-get install -y --no-install-recommends rtpbreak 2>/dev/null || true && \
842
+ apt-get install -y --no-install-recommends pjsua 2>/dev/null || true && \
843
+ apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
844
+
845
+ # Steganography — zsteg
846
+ RUN gem install zsteg 2>/dev/null || true
847
+
848
+ # Browser Exploitation — BeEF
849
+ RUN apt-get update && \
850
+ apt-get install -y --no-install-recommends beef-xss 2>/dev/null || true && \
851
+ apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
852
+
853
+ # Electron — electronegativity
854
+ RUN npm install -g @doyensec/electronegativity 2>/dev/null || true
855
+
856
+ # AI/LLM — promptfoo
857
+ RUN npm install -g promptfoo 2>/dev/null || true
858
+
859
+ # Supply Chain — Dive (Docker layer inspector)
860
+ RUN curl -sSfL https://raw.githubusercontent.com/wagoodman/dive/main/get-dive.sh | sh 2>/dev/null || \
861
+ wget -qO /tmp/dive.tar.gz "https://github.com/wagoodman/dive/releases/latest/download/dive_linux_amd64.tar.gz" && \
862
+ tar xf /tmp/dive.tar.gz -C /usr/local/bin dive 2>/dev/null && rm /tmp/dive.tar.gz 2>/dev/null || true
863
+
864
+ # VoIP — ucsniff (SIP/RTP sniffer)
865
+ RUN git clone https://github.com/hevnsnt/ucsniff /opt/ucsniff 2>/dev/null || true
866
+
867
+ # SCADA — complete pip installs for ICS tools
868
+ RUN [ -f /opt/plcscan/requirements.txt ] && \
869
+ pip3 install --no-cache-dir --break-system-packages -r /opt/plcscan/requirements.txt 2>/dev/null || true
870
+ RUN [ -f /opt/isf/requirements.txt ] && \
871
+ pip3 install --no-cache-dir --break-system-packages -r /opt/isf/requirements.txt 2>/dev/null || true
872
+
873
+ # Steganography — StegSolve JAR
874
+ RUN wget -q "https://github.com/zardus/ctf-tools/raw/master/stegsolve/install" \
875
+ -O /tmp/stegsolve_install 2>/dev/null || true && \
876
+ mkdir -p /opt/stegsolve && \
877
+ wget -q "http://www.caesum.com/handbook/Stegsolve.jar" \
878
+ -O /opt/stegsolve/stegsolve.jar 2>/dev/null || true && \
879
+ echo '#!/bin/bash\njava -jar /opt/stegsolve/stegsolve.jar "$@"' > /usr/local/bin/stegsolve && \
880
+ chmod +x /usr/local/bin/stegsolve 2>/dev/null || true
881
+
882
+ # ─────────────────────────────────────────────
883
+ # Missing CLI Tools (Gap Analysis v2)
884
+ # ─────────────────────────────────────────────
885
+
886
+ # Information Gathering — missing CLI tools
887
+ RUN apt-get update && apt-get install -y --no-install-recommends \
888
+ fierce \
889
+ dnsrecon \
890
+ dnsenum \
891
+ nbtscan \
892
+ smbmap \
893
+ enum4linux \
894
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
895
+
896
+ RUN pip3 install --no-cache-dir --break-system-packages \
897
+ enum4linux-ng 2>/dev/null || true
898
+
899
+ # Password Attacks — missing tools
900
+ RUN pip3 install --no-cache-dir --break-system-packages \
901
+ patator 2>/dev/null || true
902
+
903
+ RUN apt-get update && apt-get install -y --no-install-recommends \
904
+ onesixtyone \
905
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
906
+
907
+ # Exploitation — searchsploit + routersploit + weevely + king-phisher
908
+ RUN apt-get update && apt-get install -y --no-install-recommends \
909
+ exploitdb \
910
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
911
+
912
+ RUN pip3 install --no-cache-dir --break-system-packages \
913
+ routersploit \
914
+ weevely 2>/dev/null || true
915
+
916
+ RUN git clone https://github.com/rsmusllp/king-phisher /opt/king-phisher && \
917
+ pip3 install --no-cache-dir --break-system-packages \
918
+ -r /opt/king-phisher/requirements.txt 2>/dev/null || true
919
+
920
+ # Forensics — CLI tools (all work in container)
921
+ RUN apt-get update && apt-get install -y --no-install-recommends \
922
+ foremost \
923
+ dc3dd \
924
+ testdisk \
925
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
926
+
927
+ RUN apt-get update && apt-get install -y --no-install-recommends \
928
+ bulk-extractor \
929
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
930
+
931
+ # Volatility3 — memory forensics
932
+ RUN git clone https://github.com/volatilityfoundation/volatility3 /opt/volatility3 && \
933
+ pip3 install --no-cache-dir --break-system-packages \
934
+ -r /opt/volatility3/requirements.txt 2>/dev/null && \
935
+ ln -sf /opt/volatility3/vol.py /usr/local/bin/vol 2>/dev/null || true
936
+
937
+ # Sniffing — missing CLI tools
938
+ RUN apt-get update && apt-get install -y --no-install-recommends \
939
+ arpwatch \
940
+ netsniff-ng \
941
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
942
+
943
+ # ─────────────────────────────────────────────
944
+ # Missing Tools (adb + peirates + ScareCrow)
945
+ # ─────────────────────────────────────────────
946
+ RUN apt-get install -y --no-install-recommends android-tools-adb 2>/dev/null || true
947
+
948
+ RUN go install github.com/inguardians/peirates@latest 2>/dev/null || \
949
+ ( git clone https://github.com/inguardians/peirates /opt/peirates && \
950
+ cd /opt/peirates && go build -o /usr/local/bin/peirates . ) 2>/dev/null || true
951
+
952
+ RUN git clone https://github.com/optiv/ScareCrow /opt/ScareCrow 2>/dev/null && \
953
+ cd /opt/ScareCrow && go build -o /usr/local/bin/ScareCrow . 2>/dev/null || true
954
+
955
+ # ═════════════════════════════════════════════
956
+ # GAP ANALYSIS v3 — Advanced Professional Tools
957
+ # All gaps identified from skills audit
958
+ # ═════════════════════════════════════════════
959
+
960
+ # ─────────────────────────────────────────────
961
+ # Web & API — Advanced Tools
962
+ # (rt-exploit-web, rt-js-analysis, rt-exploit-graphql)
963
+ # ─────────────────────────────────────────────
964
+
965
+ # semgrep — source-assisted web testing, find code patterns
966
+ RUN pip3 install --no-cache-dir --break-system-packages semgrep 2>/dev/null || true
967
+
968
+ # jsbeautifier — prettify minified JS from web apps + React Native bundles
969
+ RUN pip3 install --no-cache-dir --break-system-packages jsbeautifier 2>/dev/null || true
970
+
971
+ # wappalyzer-cli — technology fingerprinting
972
+ RUN npm install -g wappalyzer-cli 2>/dev/null || true
973
+
974
+ # graphql-cop — GraphQL security audit tool
975
+ RUN pip3 install --no-cache-dir --break-system-packages graphql-cop 2>/dev/null || \
976
+ git clone https://github.com/nicowillis/graphql-cop /opt/graphql-cop 2>/dev/null && \
977
+ pip3 install --no-cache-dir --break-system-packages -r /opt/graphql-cop/requirements.txt 2>/dev/null || true
978
+
979
+ # InQL — GraphQL introspection and attack tool
980
+ RUN pip3 install --no-cache-dir --break-system-packages inql 2>/dev/null || true
981
+
982
+ # XXEinjector — automated XXE exploitation
983
+ RUN git clone https://github.com/enjoiz/XXEinjector /opt/XXEinjector 2>/dev/null || true
984
+
985
+ # tplmap — Server-Side Template Injection (SSTI) scanner
986
+ RUN git clone https://github.com/epinna/tplmap /opt/tplmap && \
987
+ pip3 install --no-cache-dir --break-system-packages -r /opt/tplmap/requirements.txt 2>/dev/null && \
988
+ ln -sf /opt/tplmap/tplmap.py /usr/local/bin/tplmap && \
989
+ chmod +x /opt/tplmap/tplmap.py 2>/dev/null || true
990
+
991
+ # ─────────────────────────────────────────────
992
+ # Active Directory — Advanced Tools
993
+ # (rt-exploit-active-directory, rt-kerberos-relay, rt-syscall-bypass)
994
+ # ─────────────────────────────────────────────
995
+
996
+ # Rubeus — compiled binary for Kerberos attacks (from GhostPack)
997
+ # NOTE: Windows-only binary, but needed for documentation reference
998
+ # In real engagements: transfer to Windows target via C2
999
+ RUN mkdir -p /opt/GhostPack && \
1000
+ echo "# GhostPack tools (Windows binaries) — transfer to target via C2" > /opt/GhostPack/README.txt && \
1001
+ echo "# Rubeus: https://github.com/GhostPack/Rubeus/releases" >> /opt/GhostPack/README.txt && \
1002
+ echo "# SharpHound: https://github.com/BloodHoundAD/SharpHound/releases" >> /opt/GhostPack/README.txt && \
1003
+ echo "# Seatbelt: https://github.com/GhostPack/Seatbelt/releases" >> /opt/GhostPack/README.txt && \
1004
+ echo "# SharpUp: https://github.com/GhostPack/SharpUp/releases" >> /opt/GhostPack/README.txt
1005
+
1006
+ # KrbRelayUp — Kerberos relay local PrivEsc
1007
+ RUN git clone https://github.com/Dec0ne/KrbRelayUp /opt/KrbRelayUp 2>/dev/null || true
1008
+
1009
+ # CVE-2020-1472 Zerologon exploit
1010
+ RUN git clone https://github.com/dirkjanm/CVE-2020-1472 /opt/CVE-2020-1472 2>/dev/null && \
1011
+ pip3 install --no-cache-dir --break-system-packages impacket 2>/dev/null || true
1012
+
1013
+ # PrintNightmare CVE-2021-1675
1014
+ RUN git clone https://github.com/cube0x0/CVE-2021-1675 /opt/PrintNightmare 2>/dev/null || true
1015
+
1016
+ # krbrelayx — Kerberos relay attack framework
1017
+ RUN git clone https://github.com/dirkjanm/krbrelayx /opt/krbrelayx && \
1018
+ pip3 install --no-cache-dir --break-system-packages dnspython ldap3 pyOpenSSL 2>/dev/null || true
1019
+
1020
+ # ADFSpoof — Golden SAML attack
1021
+ RUN git clone https://github.com/fireeye/ADFSpoof /opt/ADFSpoof 2>/dev/null && \
1022
+ pip3 install --no-cache-dir --break-system-packages -r /opt/ADFSpoof/requirements.txt 2>/dev/null || true
1023
+
1024
+ # pyGPOAbuse — GPO abuse for persistence
1025
+ RUN git clone https://github.com/Hackndo/pyGPOAbuse /opt/pyGPOAbuse && \
1026
+ pip3 install --no-cache-dir --break-system-packages -r /opt/pyGPOAbuse/requirements.txt 2>/dev/null || true
1027
+
1028
+ # SysWhispers3 — direct syscall bypass generator
1029
+ RUN git clone https://github.com/klezVirus/SysWhispers3 /opt/SysWhispers3 2>/dev/null || true
1030
+
1031
+ # ─────────────────────────────────────────────
1032
+ # Cloud — Advanced Tools
1033
+ # (rt-exploit-cloud-aws, rt-exploit-cloud-azure, rt-exploit-cloud-gcp)
1034
+ # ─────────────────────────────────────────────
1035
+
1036
+ # enumerate-iam — AWS IAM permission enumeration without admin
1037
+ RUN git clone https://github.com/andresriancho/enumerate-iam /opt/enumerate-iam && \
1038
+ pip3 install --no-cache-dir --break-system-packages -r /opt/enumerate-iam/requirements.txt 2>/dev/null && \
1039
+ ln -sf /opt/enumerate-iam/enumerate-iam.py /usr/local/bin/enumerate-iam && \
1040
+ chmod +x /opt/enumerate-iam/enumerate-iam.py 2>/dev/null || true
1041
+
1042
+ # aws-whoami — identify current AWS identity + permissions
1043
+ RUN go install github.com/liamg/awswhoami@latest 2>/dev/null || true
1044
+
1045
+ # azcopy — Azure blob/file exfiltration
1046
+ RUN curl -sSL "https://aka.ms/downloadazcopy-v10-linux" | tar xz --strip-components=1 -C /usr/local/bin/ 2>/dev/null || true
1047
+
1048
+ # checkov — IaC misconfiguration scanner (Terraform, K8s, ARM)
1049
+ RUN pip3 install --no-cache-dir --break-system-packages checkov 2>/dev/null || true
1050
+
1051
+ # steampipe — SQL queries against cloud APIs (AWS/Azure/GCP)
1052
+ RUN curl -sSL https://raw.githubusercontent.com/turbot/steampipe/main/etc/install.sh | sh 2>/dev/null || true
1053
+
1054
+ # cloud_enum — multi-cloud asset enumeration
1055
+ RUN git clone https://github.com/initstring/cloud_enum /opt/cloud_enum && \
1056
+ pip3 install --no-cache-dir --break-system-packages -r /opt/cloud_enum/requirements.txt 2>/dev/null || true
1057
+
1058
+ # s3scanner — public S3 bucket enumeration
1059
+ RUN pip3 install --no-cache-dir --break-system-packages s3scanner 2>/dev/null || true
1060
+
1061
+ # gcp_scanner — GCP service account + resource enumeration
1062
+ RUN pip3 install --no-cache-dir --break-system-packages gcp-scanner 2>/dev/null || true
1063
+
1064
+ # ─────────────────────────────────────────────
1065
+ # Kubernetes — Advanced Tools
1066
+ # (rt-kubernetes, rt-exploit-containers)
1067
+ # ─────────────────────────────────────────────
1068
+
1069
+ # kubectx + kubens — context and namespace switching
1070
+ RUN git clone https://github.com/ahmetb/kubectx /opt/kubectx && \
1071
+ ln -sf /opt/kubectx/kubectx /usr/local/bin/kubectx && \
1072
+ ln -sf /opt/kubectx/kubens /usr/local/bin/kubens 2>/dev/null || true
1073
+
1074
+ # kube-bench — CIS Kubernetes benchmark scanner
1075
+ RUN go install github.com/aquasecurity/kube-bench@latest 2>/dev/null || true
1076
+
1077
+ # helm — Kubernetes package manager (for chart-based attacks)
1078
+ RUN curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 2>/dev/null || true
1079
+
1080
+ # kubesploit — Kubernetes-specific post-exploitation framework
1081
+ RUN go install github.com/cyberark/kubesploit@latest 2>/dev/null || \
1082
+ git clone https://github.com/cyberark/kubesploit /opt/kubesploit 2>/dev/null || true
1083
+
1084
+ # ─────────────────────────────────────────────
1085
+ # Recon & OSINT — Advanced
1086
+ # (rt-osint, rt-active-recon, rt-shodan-recon, rt-github-recon)
1087
+ # ─────────────────────────────────────────────
1088
+
1089
+ # zmap — fast internet-wide scanner
1090
+ RUN apt-get update && apt-get install -y --no-install-recommends zmap \
1091
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1092
+
1093
+ # git-dumper — dump exposed .git directories
1094
+ RUN pip3 install --no-cache-dir --break-system-packages git-dumper 2>/dev/null || true
1095
+
1096
+ # trufflehog — git + S3 + GitHub secret scanning
1097
+ RUN pip3 install --no-cache-dir --break-system-packages trufflehog 2>/dev/null || true
1098
+
1099
+ # github-recon tools
1100
+ RUN pip3 install --no-cache-dir --break-system-packages PyGithub 2>/dev/null || true
1101
+ RUN go install github.com/gwen001/github-subdomains@latest 2>/dev/null || true
1102
+ RUN go install github.com/d3mondev/puredns/v2@latest 2>/dev/null || true
1103
+
1104
+ # ipinfo + abuseipdb — IP intelligence
1105
+ RUN pip3 install --no-cache-dir --break-system-packages ipinfo 2>/dev/null || true
1106
+
1107
+ # duckduckgo-search — passive recon
1108
+ RUN pip3 install --no-cache-dir --break-system-packages duckduckgo-search 2>/dev/null || true
1109
+
1110
+ # ─────────────────────────────────────────────
1111
+ # Binary Analysis & Exploitation — Advanced
1112
+ # (rt-binary-reverse-engineering, rt-crypto-attacks)
1113
+ # ─────────────────────────────────────────────
1114
+
1115
+ # capstone + keystone + unicorn — disassembly/assembly/emulation Python libs
1116
+ RUN pip3 install --no-cache-dir --break-system-packages \
1117
+ capstone keystone-engine unicorn 2>/dev/null || true
1118
+
1119
+ # ROPgadget — ROP chain builder
1120
+ RUN pip3 install --no-cache-dir --break-system-packages ropgadget 2>/dev/null || true
1121
+
1122
+ # ropper — alternative ROP gadget finder
1123
+ RUN pip3 install --no-cache-dir --break-system-packages ropper 2>/dev/null || true
1124
+
1125
+ # GEF — GDB Enhanced Features (better than pwndbg for some scenarios)
1126
+ RUN bash -c "$(curl -sSL https://gef.blah.cat/sh)" 2>/dev/null || true
1127
+
1128
+ # angr — binary analysis framework (program analysis, symbolic execution)
1129
+ RUN pip3 install --no-cache-dir --break-system-packages angr 2>/dev/null || true
1130
+
1131
+ # YARA — malware pattern matching
1132
+ RUN apt-get update && apt-get install -y --no-install-recommends yara \
1133
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1134
+ RUN pip3 install --no-cache-dir --break-system-packages yara-python 2>/dev/null || true
1135
+
1136
+ # YARA rules — community malware signatures
1137
+ RUN git clone https://github.com/Yara-Rules/rules /opt/yara-rules 2>/dev/null || true
1138
+
1139
+ # ─────────────────────────────────────────────
1140
+ # Cryptography — Advanced Math Tools
1141
+ # (rt-crypto-attacks)
1142
+ # ─────────────────────────────────────────────
1143
+
1144
+ # sympy — symbolic math for RSA attacks, factorization, number theory
1145
+ RUN pip3 install --no-cache-dir --break-system-packages sympy 2>/dev/null || true
1146
+
1147
+ # ecdsa + gmpy2 — elliptic curve attacks
1148
+ RUN apt-get update && apt-get install -y --no-install-recommends \
1149
+ libgmp-dev libmpfr-dev libmpc-dev \
1150
+ && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1151
+ RUN pip3 install --no-cache-dir --break-system-packages ecdsa gmpy2 2>/dev/null || true
1152
+
1153
+ # sage — math library for crypto attacks (optional, large)
1154
+ # Skipped — too large (~4GB). Use online SageMath when needed.
1155
+
1156
+ # ─────────────────────────────────────────────
1157
+ # Wireless — Advanced Tools
1158
+ # (rt-exploit-wireless, rt-wifi-attacks)
1159
+ # ─────────────────────────────────────────────
1160
+
1161
+ # wifite2 — automated WiFi cracking (WPA2, PMKID, WPS)
1162
+ RUN pip3 install --no-cache-dir --break-system-packages wifite2 2>/dev/null || true
1163
+
1164
+ # hcxtools + hcxdumptool — modern WiFi PMKID capture
1165
+ RUN apt-get update && apt-get install -y --no-install-recommends \
1166
+ hcxtools \
1167
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1168
+ RUN git clone https://github.com/ZerBea/hcxdumptool /opt/hcxdumptool && \
1169
+ cd /opt/hcxdumptool && make && make install 2>/dev/null || true
1170
+
1171
+ # hostapd-wpe — Evil Twin / WPA Enterprise attack
1172
+ RUN apt-get update && apt-get install -y --no-install-recommends \
1173
+ hostapd-wpe \
1174
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1175
+
1176
+ # ubertooth — Bluetooth classic sniffing hardware tool
1177
+ RUN apt-get update && apt-get install -y --no-install-recommends \
1178
+ ubertooth \
1179
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1180
+
1181
+ # ─────────────────────────────────────────────
1182
+ # Phishing & Social Engineering — Advanced
1183
+ # (rt-exploit-phishing, rt-social-engineering)
1184
+ # ─────────────────────────────────────────────
1185
+
1186
+ # phishery — inject URL into Office documents
1187
+ RUN git clone https://github.com/ryhanson/phishery /opt/phishery 2>/dev/null || true
1188
+
1189
+ # o365spray — O365 user enumeration + spray
1190
+ RUN pip3 install --no-cache-dir --break-system-packages o365spray 2>/dev/null || \
1191
+ git clone https://github.com/0xZDH/o365spray /opt/o365spray && \
1192
+ pip3 install --no-cache-dir --break-system-packages -r /opt/o365spray/requirements.txt 2>/dev/null || true
1193
+
1194
+ # msf-phishing — generate malicious Office documents
1195
+ RUN gem install msf-phishing 2>/dev/null || true
1196
+
1197
+ # credSniper — phishing framework with 2FA bypass
1198
+ RUN git clone https://github.com/ustayready/CredSniper /opt/CredSniper && \
1199
+ pip3 install --no-cache-dir --break-system-packages -r /opt/CredSniper/requirements.txt 2>/dev/null || true
1200
+
1201
+ # ─────────────────────────────────────────────
1202
+ # Post-Exploitation — Advanced
1203
+ # (rt-c2-operations, rt-lateral-movement, rt-persistence)
1204
+ # ─────────────────────────────────────────────
1205
+
1206
+ # Merlin C2 — HTTP/2 + TLS C2 (harder to detect than standard HTTPS)
1207
+ RUN go install github.com/Ne0nd0g/merlin-agent/cmd/merlinagent@latest 2>/dev/null || true
1208
+
1209
+ # DeathStar — automated BloodHound path exploitation
1210
+ RUN pip3 install --no-cache-dir --break-system-packages deathstar 2>/dev/null || \
1211
+ git clone https://github.com/byt3bl33d3r/DeathStar /opt/DeathStar && \
1212
+ pip3 install --no-cache-dir --break-system-packages -r /opt/DeathStar/requirements.txt 2>/dev/null || true
1213
+
1214
+ # ldeep — LDAP enumeration with less noise
1215
+ RUN pip3 install --no-cache-dir --break-system-packages ldeep 2>/dev/null || true
1216
+
1217
+ # windapsearch — LDAP enumeration
1218
+ RUN go install github.com/ropnop/windapsearch@latest 2>/dev/null || \
1219
+ git clone https://github.com/ropnop/windapsearch /opt/windapsearch 2>/dev/null || true
1220
+
1221
+ # impacket suite — ensure all scripts are in PATH
1222
+ RUN pip3 install --no-cache-dir --break-system-packages impacket 2>/dev/null || true
1223
+
1224
+ # ─────────────────────────────────────────────
1225
+ # Supply Chain & Code Analysis
1226
+ # (rt-supply-chain, rt-github-recon)
1227
+ # ─────────────────────────────────────────────
1228
+
1229
+ # syft — SBOM (Software Bill of Materials) generator
1230
+ RUN curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin 2>/dev/null || true
1231
+
1232
+ # grype — vulnerability scanner for container images
1233
+ RUN curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin 2>/dev/null || true
1234
+
1235
+ # dependency-check — OWASP SCA tool
1236
+ RUN mkdir -p /opt/dependency-check && \
1237
+ curl -sSL "https://github.com/jeremylong/DependencyCheck/releases/latest/download/dependency-check-bin.zip" \
1238
+ -o /tmp/dc.zip 2>/dev/null && \
1239
+ unzip -q /tmp/dc.zip -d /opt/ && \
1240
+ ln -sf /opt/dependency-check/bin/dependency-check.sh /usr/local/bin/dependency-check && \
1241
+ rm /tmp/dc.zip 2>/dev/null || true
1242
+
1243
+ # ─────────────────────────────────────────────
1244
+ # DFIR & Memory Forensics
1245
+ # (rt-binary-reverse-engineering, purple team)
1246
+ # ─────────────────────────────────────────────
1247
+
1248
+ # sleuthkit — disk image forensics (fls, icat, mactime)
1249
+ RUN apt-get update && apt-get install -y --no-install-recommends \
1250
+ sleuthkit autopsy \
1251
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1252
+
1253
+ # strings + binutils extras
1254
+ RUN apt-get update && apt-get install -y --no-install-recommends \
1255
+ binutils-multiarch \
1256
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1257
+
1258
+ # ─────────────────────────────────────────────
1259
+ # AI/LLM Security — Advanced
1260
+ # (rt-ai-llm-security)
1261
+ # ─────────────────────────────────────────────
1262
+
1263
+ # promptfoo — LLM red-teaming framework
1264
+ RUN npm install -g promptfoo 2>/dev/null || true
1265
+
1266
+ # llm-security tools
1267
+ RUN pip3 install --no-cache-dir --break-system-packages \
1268
+ garak \
1269
+ langchain \
1270
+ openai \
1271
+ anthropic \
1272
+ transformers 2>/dev/null || true
1273
+
1274
+ # ─────────────────────────────────────────────
1275
+ # Network — Advanced Tools
1276
+ # (rt-network-segmentation, rt-traffic-analysis)
1277
+ # ─────────────────────────────────────────────
1278
+
1279
+ # suricata — IDS/IPS for traffic analysis
1280
+ RUN apt-get update && apt-get install -y --no-install-recommends \
1281
+ suricata \
1282
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1283
+
1284
+ # ncrack — network authentication cracker
1285
+ RUN apt-get update && apt-get install -y --no-install-recommends \
1286
+ ncrack \
1287
+ 2>/dev/null && apt-get clean && rm -rf /var/lib/apt/lists/* 2>/dev/null || true
1288
+
1289
+ # ─────────────────────────────────────────────
1290
+ # RTExit Framework Installation
1291
+ # ─────────────────────────────────────────────
1292
+ RUN mkdir -p $RTEXIT_HOME
1293
+
1294
+ # Install RTExit skills
1295
+ RUN npx --yes rtexit-method install --non-interactive 2>/dev/null || true
1296
+
1297
+ # Custom aliases for RTExit workflow
1298
+ COPY aliases.sh /etc/profile.d/rtexit-aliases.sh
1299
+ RUN chmod +x /etc/profile.d/rtexit-aliases.sh
1300
+
1301
+ # RTExit scripts
1302
+
1303
+ # Nuclei RTExit custom templates
1304
+
1305
+ # Update Go path
1306
+ ENV PATH="/root/go/bin:${PATH}"
1307
+ ENV GOPATH="/root/go"
1308
+
1309
+ # ─────────────────────────────────────────────
1310
+ # Final Setup
1311
+ # ─────────────────────────────────────────────
1312
+ WORKDIR /workspace
1313
+
1314
+ # Verify tool installation
1315
+ COPY verify-tools.sh /opt/rtexit/verify-tools.sh
1316
+ RUN chmod +x /opt/rtexit/verify-tools.sh
1317
+
1318
+ COPY entrypoint.sh /entrypoint.sh
1319
+ RUN chmod +x /entrypoint.sh
1320
+
1321
+ EXPOSE 8080 4444 3000
1322
+
1323
+ ENTRYPOINT ["/entrypoint.sh"]
1324
+ CMD ["/bin/bash"]