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,438 @@
1
+ #!/bin/bash
2
+ # RTExit Native Kali Linux Installer
3
+ # Installs all 300+ tools directly on your Kali Linux system
4
+ # No Docker overhead — full GPU, WiFi, USB, Bluetooth access
5
+ #
6
+ # Usage:
7
+ # chmod +x rt-native-install.sh
8
+ # sudo bash rt-native-install.sh
9
+ #
10
+ # Recommended: Run on fresh Kali Linux 2024.x or later
11
+
12
+ set -e
13
+
14
+ RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
15
+ BLUE='\033[0;34m'; CYAN='\033[0;36m'; NC='\033[0m'
16
+
17
+ # ── Root check ────────────────────────────────────────────────────────────────
18
+ if [ "$EUID" -ne 0 ]; then
19
+ echo -e "${RED}[!] Run as root: sudo bash rt-native-install.sh${NC}"
20
+ exit 1
21
+ fi
22
+
23
+ echo -e "${RED}"
24
+ echo " ██████╗ ████████╗███████╗██╗ ██╗██╗████████╗"
25
+ echo " ██╔══██╗╚══██╔══╝██╔════╝╚██╗██╔╝██║╚══██╔══╝"
26
+ echo " ██████╔╝ ██║ █████╗ ╚███╔╝ ██║ ██║ "
27
+ echo " ██╔══██╗ ██║ ██╔══╝ ██╔██╗ ██║ ██║ "
28
+ echo " ██║ ██║ ██║ ███████╗██╔╝ ██╗██║ ██║ "
29
+ echo " ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ "
30
+ echo -e "${NC} Native Kali Installer v3.0 — 300+ Tools"
31
+ echo ""
32
+
33
+ # ── Helper functions ──────────────────────────────────────────────────────────
34
+ install_apt() {
35
+ echo -e "${BLUE}[APT]${NC} $*"
36
+ apt-get install -y --no-install-recommends "$@" 2>/dev/null || true
37
+ }
38
+
39
+ install_pip() {
40
+ echo -e "${BLUE}[PIP]${NC} $*"
41
+ pip3 install --no-cache-dir --break-system-packages "$@" 2>/dev/null || true
42
+ }
43
+
44
+ install_go() {
45
+ echo -e "${BLUE}[GO ]${NC} $1"
46
+ go install "$1" 2>/dev/null || true
47
+ }
48
+
49
+ install_npm() {
50
+ echo -e "${BLUE}[NPM]${NC} $*"
51
+ npm install -g "$@" 2>/dev/null || true
52
+ }
53
+
54
+ install_gem() {
55
+ echo -e "${BLUE}[GEM]${NC} $*"
56
+ gem install "$@" 2>/dev/null || true
57
+ }
58
+
59
+ clone() {
60
+ local repo="$1" dest="$2"
61
+ if [ ! -d "$dest" ]; then
62
+ echo -e "${BLUE}[GIT]${NC} $dest"
63
+ git clone "$repo" "$dest" 2>/dev/null || true
64
+ else
65
+ echo -e "${YELLOW}[SKP]${NC} $dest (exists)"
66
+ fi
67
+ }
68
+
69
+ log_section() {
70
+ echo ""
71
+ echo -e "${CYAN}══════════════════════════════════════════${NC}"
72
+ echo -e "${CYAN} $1${NC}"
73
+ echo -e "${CYAN}══════════════════════════════════════════${NC}"
74
+ }
75
+
76
+ # ── System ────────────────────────────────────────────────────────────────────
77
+ log_section "System Update"
78
+ apt-get update && apt-get upgrade -y
79
+
80
+ # ── Core dependencies ─────────────────────────────────────────────────────────
81
+ log_section "Core Dependencies"
82
+ install_apt curl wget git vim nano tmux screen \
83
+ file xxd hexedit zip unzip p7zip-full tar jq \
84
+ build-essential python3 python3-pip python3-venv \
85
+ libssl-dev libffi-dev libpcap-dev \
86
+ golang-go nodejs npm default-jdk ruby ruby-dev
87
+
88
+ # ── Alias setup ───────────────────────────────────────────────────────────────
89
+ log_section "Installing rt-* Aliases"
90
+ SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
91
+ ALIASES_SRC="$SCRIPT_DIR/../docker/aliases.sh"
92
+
93
+ if [ -f "$ALIASES_SRC" ]; then
94
+ cp "$ALIASES_SRC" /etc/profile.d/rtexit-aliases.sh
95
+ chmod +x /etc/profile.d/rtexit-aliases.sh
96
+ echo -e "${GREEN}[✓]${NC} rt-* aliases installed → /etc/profile.d/rtexit-aliases.sh"
97
+ echo -e "${YELLOW}[!]${NC} Run: source /etc/profile.d/rtexit-aliases.sh"
98
+ else
99
+ echo -e "${YELLOW}[!]${NC} aliases.sh not found — install from: docker/aliases.sh"
100
+ fi
101
+
102
+ # ── Network & Scanning ────────────────────────────────────────────────────────
103
+ log_section "Network & Scanning"
104
+ install_apt nmap ncat netcat-openbsd tcpdump tshark \
105
+ net-tools iproute2 iputils-ping bind9-dnsutils \
106
+ socat proxychains4 openvpn masscan \
107
+ iodine hping3 dsniff macchanger zmap \
108
+ bettercap ettercap-text-only sslstrip arpwatch netsniff-ng \
109
+ suricata ncrack
110
+
111
+ # ── Wireless ─────────────────────────────────────────────────────────────────
112
+ log_section "Wireless & Bluetooth"
113
+ install_apt aircrack-ng wireless-tools rfkill \
114
+ hostapd-wpe ubertooth
115
+ install_pip wifite2
116
+ # hcxdumptool
117
+ clone https://github.com/ZerBea/hcxdumptool /opt/hcxdumptool
118
+ [ -d /opt/hcxdumptool ] && cd /opt/hcxdumptool && make && make install 2>/dev/null || true
119
+ install_apt hcxtools 2>/dev/null || true
120
+
121
+ # ── Recon & OSINT ─────────────────────────────────────────────────────────────
122
+ log_section "Recon & OSINT"
123
+ install_apt amass subfinder fierce dnsrecon dnsenum \
124
+ nbtscan smbmap enum4linux
125
+ install_pip theHarvester shodan censys trufflehog \
126
+ sherlock-project h8mail maigret holehe socialscan \
127
+ enum4linux-ng ipinfo duckduckgo-search PyGithub git-dumper
128
+ clone https://github.com/lanmaster53/recon-ng /opt/recon-ng
129
+ install_pip -r /opt/recon-ng/REQUIREMENTS 2>/dev/null || true
130
+ ln -sf /opt/recon-ng/recon-ng /usr/local/bin/recon-ng 2>/dev/null || true
131
+ # Go recon tools
132
+ install_go github.com/projectdiscovery/httpx/cmd/httpx@latest
133
+ install_go github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
134
+ install_go github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
135
+ install_go github.com/projectdiscovery/naabu/v2/cmd/naabu@latest
136
+ install_go github.com/projectdiscovery/katana/cmd/katana@latest
137
+ install_go github.com/projectdiscovery/dnsx/cmd/dnsx@latest
138
+ install_go github.com/hakluke/hakrawler@latest
139
+ install_go github.com/tomnomnom/waybackurls@latest
140
+ install_go github.com/lc/gau/v2/cmd/gau@latest
141
+ install_go github.com/ffuf/ffuf/v2@latest
142
+ install_go github.com/OJ/gobuster/v3@latest
143
+ install_go github.com/LukaSikic/subzy@latest
144
+ install_go github.com/hahwul/dalfox/v2@latest
145
+ install_go github.com/gwen001/github-subdomains@latest
146
+ # gitleaks
147
+ curl -sSfL https://github.com/gitleaks/gitleaks/releases/latest/download/gitleaks_linux_x64.tar.gz | \
148
+ tar xz -C /usr/local/bin 2>/dev/null || true
149
+ # SecLists
150
+ clone https://github.com/danielmiessler/SecLists /opt/SecLists
151
+
152
+ # ── Web Application ───────────────────────────────────────────────────────────
153
+ log_section "Web Application Testing"
154
+ install_apt sqlmap nikto wfuzz dirb whatweb wafw00f testssl.sh
155
+ install_pip mitmproxy impacket requests pwntools \
156
+ PyJWT python-jose grpcio grpcio-tools websocket-client scapy \
157
+ arjun padding-oracle-attacker jsbeautifier semgrep graphql-cop inql
158
+ clone https://github.com/defparam/smuggler /opt/smuggler
159
+ ln -sf /opt/smuggler/smuggler.py /usr/local/bin/smuggler
160
+ chmod +x /opt/smuggler/smuggler.py 2>/dev/null || true
161
+ clone https://github.com/ticarpi/jwt_tool /opt/jwt_tool
162
+ install_pip -r /opt/jwt_tool/requirements.txt 2>/dev/null || true
163
+ ln -sf /opt/jwt_tool/jwt_tool.py /usr/local/bin/jwt_tool
164
+ chmod +x /opt/jwt_tool/jwt_tool.py 2>/dev/null || true
165
+ clone https://github.com/GerbenJavado/LinkFinder /opt/LinkFinder
166
+ install_pip -r /opt/LinkFinder/requirements.txt 2>/dev/null || true
167
+ ln -sf /opt/LinkFinder/linkfinder.py /usr/local/bin/linkfinder
168
+ clone https://github.com/enjoiz/XXEinjector /opt/XXEinjector
169
+ clone https://github.com/epinna/tplmap /opt/tplmap
170
+ install_pip -r /opt/tplmap/requirements.txt 2>/dev/null || true
171
+ ln -sf /opt/tplmap/tplmap.py /usr/local/bin/tplmap
172
+ chmod +x /opt/tplmap/tplmap.py 2>/dev/null || true
173
+ # GraphQL tools
174
+ install_pip graphw00f clairvoyance
175
+ # Go web tools
176
+ install_go github.com/fullstorydev/grpcurl/cmd/grpcurl@latest
177
+ install_go github.com/projectdiscovery/interactsh/cmd/interactsh-client@latest
178
+ install_go github.com/Sh1Yo/x8@latest
179
+ install_go github.com/tomnomnom/qsreplace@latest
180
+ install_go github.com/Emoe/kxss@latest
181
+ # ghauri
182
+ install_pip ghauri 2>/dev/null || true
183
+ clone https://github.com/r0oth3x49/ghauri /opt/ghauri
184
+ install_pip -r /opt/ghauri/requirements.txt 2>/dev/null || true
185
+ ln -sf /opt/ghauri/ghauri.py /usr/local/bin/ghauri
186
+ # CORScanner
187
+ clone https://github.com/chenjj/CORScanner /opt/CORScanner
188
+ install_pip -r /opt/CORScanner/requirements.txt 2>/dev/null || true
189
+ # npm web tools
190
+ install_npm wappalyzer-cli js-beautify
191
+
192
+ # ── Password & Credentials ────────────────────────────────────────────────────
193
+ log_section "Password Attacks & Credentials"
194
+ install_apt hashcat john hydra medusa cewl crunch
195
+ install_pip pypykatz patator
196
+ install_go github.com/ropnop/kerbrute@latest
197
+ clone https://github.com/Mebus/cupp /opt/cupp
198
+ ln -sf /opt/cupp/cupp.py /usr/local/bin/cupp
199
+ chmod +x /opt/cupp/cupp.py
200
+
201
+ # ── Active Directory ──────────────────────────────────────────────────────────
202
+ log_section "Active Directory & Windows"
203
+ install_pip impacket bloodhound certipy-ad pywhisker netexec mitm6 coercer \
204
+ bloodyAD ldeep pyrdp
205
+ install_gem evil-winrm
206
+ clone https://github.com/dirkjanm/PKINITtools /opt/PKINITtools
207
+ install_pip -r /opt/PKINITtools/requirements.txt 2>/dev/null || true
208
+ clone https://github.com/topotam/PetitPotam /opt/PetitPotam
209
+ clone https://github.com/login-securite/DonPAPI /opt/DonPAPI
210
+ install_pip -r /opt/DonPAPI/requirements.txt 2>/dev/null || true
211
+ clone https://github.com/Ridter/noPac /opt/noPac
212
+ clone https://github.com/Dec0ne/KrbRelayUp /opt/KrbRelayUp
213
+ clone https://github.com/dirkjanm/CVE-2020-1472 /opt/CVE-2020-1472
214
+ clone https://github.com/cube0x0/CVE-2021-1675 /opt/PrintNightmare
215
+ clone https://github.com/dirkjanm/krbrelayx /opt/krbrelayx
216
+ install_pip dnspython ldap3 pyOpenSSL 2>/dev/null || true
217
+ clone https://github.com/fireeye/ADFSpoof /opt/ADFSpoof
218
+ install_pip -r /opt/ADFSpoof/requirements.txt 2>/dev/null || true
219
+ clone https://github.com/klezVirus/SysWhispers3 /opt/SysWhispers3
220
+ clone https://github.com/Hackndo/pyGPOAbuse /opt/pyGPOAbuse
221
+ install_pip -r /opt/pyGPOAbuse/requirements.txt 2>/dev/null || true
222
+ install_pip roadtools roadrecon bloodyAD
223
+ # windapsearch
224
+ install_go github.com/ropnop/windapsearch@latest 2>/dev/null || true
225
+
226
+ # ── C2 & Post-Exploitation ────────────────────────────────────────────────────
227
+ log_section "C2 & Post-Exploitation"
228
+ install_apt metasploit-framework
229
+ curl https://sliver.sh/install | bash 2>/dev/null || true
230
+ install_go github.com/jpillora/chisel@latest
231
+ install_go github.com/nicocha30/ligolo-ng/cmd/proxy@latest
232
+ install_go github.com/nicocha30/ligolo-ng/cmd/agent@latest
233
+ install_go github.com/Ne0nd0g/merlin-agent/cmd/merlinagent@latest
234
+ clone https://github.com/BC-SECURITY/Empire /opt/Empire
235
+ install_pip -r /opt/Empire/requirements.txt 2>/dev/null || true
236
+ ln -sf /opt/Empire/empire /usr/local/bin/empire 2>/dev/null || true
237
+ clone https://github.com/nettitude/PoshC2 /opt/PoshC2
238
+ install_pip -r /opt/PoshC2/requirements.txt 2>/dev/null || true
239
+ clone https://github.com/t3l3machus/Villain /opt/Villain
240
+ install_pip -r /opt/Villain/requirements.txt 2>/dev/null || true
241
+ install_pip deathstar 2>/dev/null || true
242
+ clone https://github.com/byt3bl33d3r/DeathStar /opt/DeathStar
243
+ install_pip -r /opt/DeathStar/requirements.txt 2>/dev/null || true
244
+ install_apt iodine
245
+ clone https://github.com/iagox86/dnscat2 /opt/dnscat2
246
+ cd /opt/dnscat2/client && make 2>/dev/null || true
247
+
248
+ # ── Cloud ─────────────────────────────────────────────────────────────────────
249
+ log_section "Cloud Platforms"
250
+ install_pip awscli boto3 azure-cli google-cloud-storage google-auth \
251
+ scoutsuite prowler pacu kube-hunter principalmapper \
252
+ checkov s3scanner gcp-scanner
253
+ install_go github.com/BishopFox/cloudfox@latest
254
+ install_go github.com/DataDog/stratus-red-team/v2/cmd/stratus@latest
255
+ install_go github.com/liamg/awswhoami@latest
256
+ curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl" 2>/dev/null && \
257
+ install -m 0755 kubectl /usr/local/bin/kubectl && rm kubectl 2>/dev/null || true
258
+ clone https://github.com/andresriancho/enumerate-iam /opt/enumerate-iam
259
+ install_pip -r /opt/enumerate-iam/requirements.txt 2>/dev/null || true
260
+ ln -sf /opt/enumerate-iam/enumerate-iam.py /usr/local/bin/enumerate-iam
261
+ chmod +x /opt/enumerate-iam/enumerate-iam.py 2>/dev/null || true
262
+ # kubectx + kubens
263
+ clone https://github.com/ahmetb/kubectx /opt/kubectx
264
+ ln -sf /opt/kubectx/kubectx /usr/local/bin/kubectx
265
+ ln -sf /opt/kubectx/kubens /usr/local/bin/kubens 2>/dev/null || true
266
+ install_go github.com/aquasecurity/kube-bench@latest
267
+ curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash 2>/dev/null || true
268
+ # azcopy
269
+ curl -sSL "https://aka.ms/downloadazcopy-v10-linux" | tar xz --strip-components=1 -C /usr/local/bin/ 2>/dev/null || true
270
+ # cloud_enum
271
+ clone https://github.com/initstring/cloud_enum /opt/cloud_enum
272
+ install_pip -r /opt/cloud_enum/requirements.txt 2>/dev/null || true
273
+
274
+ # ── Mobile ────────────────────────────────────────────────────────────────────
275
+ log_section "Mobile Testing"
276
+ install_apt apktool dex2jar android-tools-adb
277
+ clone https://github.com/skylot/jadx /opt/jadx_src 2>/dev/null || true
278
+ mkdir -p /opt/jadx
279
+ curl -sSL "https://github.com/skylot/jadx/releases/latest/download/jadx-1.5.0.zip" \
280
+ -o /tmp/jadx.zip 2>/dev/null && \
281
+ unzip -q /tmp/jadx.zip -d /opt/jadx && \
282
+ ln -sf /opt/jadx/bin/jadx /usr/local/bin/jadx && \
283
+ ln -sf /opt/jadx/bin/jadx-gui /usr/local/bin/jadx-gui && \
284
+ rm /tmp/jadx.zip 2>/dev/null || true
285
+ install_pip frida-tools objection apkleaks drozer \
286
+ reFlutter hermes-dec hbctool doldrums androguard \
287
+ "qrcode[pil]" Pillow lz4
288
+ install_npm apk-mitm js-beautify
289
+ install_apt mono-complete mono-utils 2>/dev/null || true
290
+ # uber-apk-signer
291
+ mkdir -p /opt/uber-apk-signer
292
+ curl -sSL "https://github.com/patrickfav/uber-apk-signer/releases/download/v1.3.0/uber-apk-signer-1.3.0.jar" \
293
+ -o /opt/uber-apk-signer/uber-apk-signer.jar 2>/dev/null || true
294
+ echo '#!/bin/bash\nexec java -jar /opt/uber-apk-signer/uber-apk-signer.jar "$@"' \
295
+ > /usr/local/bin/uber-apk-signer && chmod +x /usr/local/bin/uber-apk-signer
296
+ # frida-server setup script
297
+ cat > /usr/local/bin/setup-frida-server << 'SCRIPT'
298
+ #!/bin/bash
299
+ FRIDA_VER=$(python3 -c "import frida; print(frida.__version__)" 2>/dev/null || pip3 show frida | grep Version | awk '{print $2}')
300
+ ARCH=$(adb shell getprop ro.product.cpu.abi 2>/dev/null | tr -d '\r')
301
+ case $ARCH in
302
+ arm64-v8a) A="arm64" ;; armeabi-v7a) A="arm" ;;
303
+ x86_64) A="x86_64" ;; x86) A="x86" ;; *) echo "Unknown arch: $ARCH"; exit 1 ;;
304
+ esac
305
+ echo "[*] Frida $FRIDA_VER | arch: $A"
306
+ wget -q "https://github.com/frida/frida/releases/download/${FRIDA_VER}/frida-server-${FRIDA_VER}-android-${A}.xz" -O /tmp/frida-server.xz
307
+ unxz /tmp/frida-server.xz && mv /tmp/frida-server "/tmp/frida-server-${A}"
308
+ adb push "/tmp/frida-server-${A}" /data/local/tmp/frida-server
309
+ adb shell chmod 755 /data/local/tmp/frida-server
310
+ echo "[+] Done. Start: adb shell /data/local/tmp/frida-server &"
311
+ SCRIPT
312
+ chmod +x /usr/local/bin/setup-frida-server
313
+
314
+ # ── Binary Analysis & RE ──────────────────────────────────────────────────────
315
+ log_section "Binary Analysis & Reverse Engineering"
316
+ install_apt gdb radare2 ltrace strace binutils patchelf nasm yara \
317
+ binutils-multiarch sleuthkit
318
+ install_pip pwntools floss capstone keystone-engine unicorn \
319
+ ropgadget ropper angr yara-python
320
+ clone https://github.com/pwndbg/pwndbg /opt/pwndbg
321
+ cd /opt/pwndbg && ./setup.sh 2>/dev/null || true
322
+ bash -c "$(curl -sSL https://gef.blah.cat/sh)" 2>/dev/null || true
323
+ clone https://github.com/Yara-Rules/rules /opt/yara-rules
324
+ # Ghidra
325
+ if ! command -v ghidra &>/dev/null; then
326
+ curl -sSL "https://github.com/NationalSecurityAgency/ghidra/releases/latest/download/ghidra_11.1_PUBLIC_20240607.zip" \
327
+ -o /tmp/ghidra.zip 2>/dev/null && \
328
+ unzip -q /tmp/ghidra.zip -d /opt && \
329
+ ln -sf /opt/ghidra_*/ghidraRun /usr/local/bin/ghidra && \
330
+ rm /tmp/ghidra.zip 2>/dev/null || true
331
+ fi
332
+
333
+ # ── Crypto ────────────────────────────────────────────────────────────────────
334
+ log_section "Cryptography"
335
+ install_apt libgmp-dev libmpfr-dev libmpc-dev
336
+ install_pip pycryptodome hashpumpy cryptography sympy ecdsa gmpy2
337
+
338
+ # ── Fuzzing ───────────────────────────────────────────────────────────────────
339
+ log_section "Fuzzing"
340
+ install_apt afl++
341
+ install_pip boofuzz
342
+ clone https://gitlab.com/akihe/radamsa /opt/radamsa
343
+ cd /opt/radamsa && make 2>/dev/null && ln -sf /opt/radamsa/bin/radamsa /usr/local/bin/radamsa 2>/dev/null || true
344
+
345
+ # ── Social Engineering & Phishing ────────────────────────────────────────────
346
+ log_section "Social Engineering & Phishing"
347
+ clone https://github.com/trustedsec/social-engineer-toolkit /opt/setoolkit
348
+ install_pip -r /opt/setoolkit/requirements.txt 2>/dev/null || true
349
+ install_pip o365spray
350
+ clone https://github.com/ustayready/CredSniper /opt/CredSniper
351
+ install_pip -r /opt/CredSniper/requirements.txt 2>/dev/null || true
352
+ clone https://github.com/ryhanson/phishery /opt/phishery
353
+ wget -q "https://github.com/gophish/gophish/releases/download/v0.12.1/gophish-v0.12.1-linux-64bit.zip" \
354
+ -O /tmp/gophish.zip 2>/dev/null && \
355
+ unzip -q /tmp/gophish.zip -d /opt/gophish && \
356
+ chmod +x /opt/gophish/gophish && \
357
+ ln -s /opt/gophish/gophish /usr/local/bin/gophish && \
358
+ rm /tmp/gophish.zip 2>/dev/null || true
359
+ install_go github.com/kgretzky/evilginx2@latest 2>/dev/null || true
360
+
361
+ # ── Hardware & IoT ────────────────────────────────────────────────────────────
362
+ log_section "Hardware & IoT"
363
+ install_apt openocd flashrom avrdude minicom screen
364
+ install_pip bleak pyserial pyModbusTCP
365
+
366
+ # ── Steganography ─────────────────────────────────────────────────────────────
367
+ log_section "Steganography"
368
+ install_apt steghide sox binwalk exiftool
369
+ install_pip stegoveritas
370
+ install_gem zsteg
371
+
372
+ # ── VoIP ─────────────────────────────────────────────────────────────────────
373
+ log_section "VoIP"
374
+ install_apt sipvicious rtpbreak pjsua 2>/dev/null || true
375
+ install_pip sipvicious 2>/dev/null || true
376
+
377
+ # ── Supply Chain & IaC ────────────────────────────────────────────────────────
378
+ log_section "Supply Chain & IaC"
379
+ install_pip checkov
380
+ curl -sSfL https://raw.githubusercontent.com/anchore/syft/main/install.sh | sh -s -- -b /usr/local/bin 2>/dev/null || true
381
+ curl -sSfL https://raw.githubusercontent.com/anchore/grype/main/install.sh | sh -s -- -b /usr/local/bin 2>/dev/null || true
382
+ install_go github.com/aquasecurity/trivy@latest 2>/dev/null || true
383
+ curl -sSfL https://raw.githubusercontent.com/wagoodman/dive/main/get-dive.sh | sh 2>/dev/null || true
384
+
385
+ # ── Container & Kubernetes ────────────────────────────────────────────────────
386
+ log_section "Container & Kubernetes"
387
+ install_go github.com/cdk-team/CDK/cmd/cdk@latest
388
+ curl -sSL https://github.com/stealthcopter/deepce/releases/latest/download/deepce \
389
+ -o /usr/local/bin/deepce && chmod +x /usr/local/bin/deepce 2>/dev/null || true
390
+ install_go github.com/brompwnie/botb@latest
391
+ install_pip kube-hunter
392
+
393
+ # ── OSINT Specialized ─────────────────────────────────────────────────────────
394
+ log_section "OSINT Specialized"
395
+ install_pip spiderfoot ghunt crosslinked
396
+ clone https://github.com/m8sec/CrossLinked /opt/CrossLinked
397
+ install_pip -r /opt/CrossLinked/requirements.txt 2>/dev/null || true
398
+
399
+ # ── AI/LLM Security ───────────────────────────────────────────────────────────
400
+ log_section "AI/LLM Security"
401
+ install_pip garak openai anthropic langchain transformers
402
+ install_npm promptfoo
403
+
404
+ # ── Purple Team ───────────────────────────────────────────────────────────────
405
+ log_section "Purple Team"
406
+ clone https://github.com/redcanaryco/atomic-red-team /opt/atomic-red-team
407
+ clone https://github.com/mitre/caldera /opt/caldera
408
+ install_pip -r /opt/caldera/requirements.txt 2>/dev/null || true
409
+
410
+ # ── Nuclei Templates ─────────────────────────────────────────────────────────
411
+ log_section "Nuclei Templates"
412
+ nuclei -update-templates 2>/dev/null || true
413
+
414
+ # ── PATH & Environment ────────────────────────────────────────────────────────
415
+ log_section "Environment Setup"
416
+ cat >> /etc/profile.d/rtexit-env.sh << 'EOF'
417
+ export PATH="$PATH:/root/go/bin:/usr/local/bin:/opt/rtexit/scripts"
418
+ export SECLISTS='/opt/SecLists'
419
+ export GOPATH='/root/go'
420
+ EOF
421
+ chmod +x /etc/profile.d/rtexit-env.sh
422
+
423
+ # ── Summary ───────────────────────────────────────────────────────────────────
424
+ echo ""
425
+ echo -e "${GREEN}════════════════════════════════════════════${NC}"
426
+ echo -e "${GREEN} RTExit Native Install Complete!${NC}"
427
+ echo -e "${GREEN}════════════════════════════════════════════${NC}"
428
+ echo ""
429
+ echo -e " ${CYAN}Next steps:${NC}"
430
+ echo -e " 1. source /etc/profile.d/rtexit-aliases.sh"
431
+ echo -e " 2. source /etc/profile.d/rtexit-env.sh"
432
+ echo -e " 3. rt-verify ← check all tools"
433
+ echo -e " 4. rt-help ← start your engagement"
434
+ echo ""
435
+ echo -e " ${YELLOW}GPU hashcat:${NC} hashcat with --opencl-device-types 1,2"
436
+ echo -e " ${YELLOW}WiFi:${NC} airmon-ng start wlan0"
437
+ echo -e " ${YELLOW}Bluetooth:${NC} hciconfig hci0 up"
438
+ echo ""
@@ -1,48 +1,91 @@
1
- const { renderBanner } = require('../lib/banner');
2
- const { resolveRepoRoot, resolveTargetRoot } = require('../lib/paths');
3
- const { copyPackagedAssets } = require('../lib/copy-assets');
4
- const { writeUserConfig } = require('../lib/write-config');
5
- const { askInstallQuestions } = require('../lib/prompts');
6
- const { resolveSkillSet } = require('../lib/profiles');
7
-
8
- async function installCommand(options = {}) {
9
- const repoRoot = options.repoRoot || resolveRepoRoot();
10
- const cwd = options.cwd || process.cwd();
11
- const io = options.io || console;
12
- const promptAdapter = options.promptAdapter || askInstallQuestions;
13
-
14
- io.log(renderBanner());
15
-
16
- const answers = await promptAdapter({ cwd });
17
- if (!answers.confirmed) {
18
- io.log('RTExit install cancelled.');
19
- return;
20
- }
21
-
22
- const targetRoot = resolveTargetRoot(answers.targetDirectory);
23
-
24
- const ides = answers.ides && answers.ides.length ? answers.ides : ['agents'];
25
- const allowedSkills = resolveSkillSet(answers.profiles || ['all']);
26
- await copyPackagedAssets({ repoRoot, targetRoot, ides, allowedSkills });
27
- await writeUserConfig({
28
- targetRoot,
29
- answers: {
30
- language: answers.language,
31
- document_output_language: answers.document_output_language,
32
- },
33
- });
34
-
35
- const ideFolders = ides.map((ide) => {
36
- const map = { agents: '.agents/skills', claude: '.claude/skills', trae: '.trae/skills', codex: '.codex/skills' };
37
- return map[ide] || `.${ide}/skills`;
38
- });
39
-
40
- io.log('RTExit installed successfully.');
41
- io.log(`Skills installed: ${allowedSkills.size} skills into ${ideFolders.join(', ')}`);
42
- io.log('Next steps:');
43
- io.log('1. Open _rtexit/config.user.toml and complete client/project details');
44
- io.log('2. Open your AI IDE in this project');
45
- io.log('3. Start with rt-help');
46
- }
47
-
48
- module.exports = { installCommand };
1
+ const { renderBanner } = require('../lib/banner');
2
+ const { resolveRepoRoot, resolveTargetRoot } = require('../lib/paths');
3
+ const { copyPackagedAssets } = require('../lib/copy-assets');
4
+ const { writeUserConfig } = require('../lib/write-config');
5
+ const { askInstallQuestions } = require('../lib/prompts');
6
+ const { resolveSkillSet } = require('../lib/profiles');
7
+ const path = require('node:path');
8
+ const fs = require('node:fs');
9
+
10
+ async function installCommand(options = {}) {
11
+ const repoRoot = options.repoRoot || resolveRepoRoot();
12
+ const cwd = options.cwd || process.cwd();
13
+ const io = options.io || console;
14
+ const promptAdapter = options.promptAdapter || askInstallQuestions;
15
+
16
+ io.log(renderBanner());
17
+
18
+ const answers = await promptAdapter({ cwd });
19
+ if (!answers.confirmed) {
20
+ io.log('RTExit install cancelled.');
21
+ return;
22
+ }
23
+
24
+ const targetRoot = resolveTargetRoot(answers.targetDirectory);
25
+
26
+ const ides = answers.ides && answers.ides.length ? answers.ides : ['agents'];
27
+ const allowedSkills = resolveSkillSet(answers.profiles || ['all']);
28
+ await copyPackagedAssets({ repoRoot, targetRoot, ides, allowedSkills });
29
+ await writeUserConfig({
30
+ targetRoot,
31
+ answers: {
32
+ language: answers.language,
33
+ document_output_language: answers.document_output_language,
34
+ },
35
+ });
36
+
37
+ const ideFolders = ides.map((ide) => {
38
+ const map = { agents: '.agents/skills', claude: '.claude/skills', trae: '.trae/skills', codex: '.codex/skills' };
39
+ return map[ide] || `.${ide}/skills`;
40
+ });
41
+
42
+ const dockerComposePath = path.join(targetRoot, 'docker', 'docker-compose.yml');
43
+ const dockerInstalled = fs.existsSync(dockerComposePath);
44
+
45
+ io.log('');
46
+ io.log('════════════════════════════════════════════');
47
+ io.log(' RTExit installed successfully!');
48
+ io.log('════════════════════════════════════════════');
49
+ io.log('');
50
+ io.log(` Skills: ${allowedSkills.size} skills → ${ideFolders.join(', ')}`);
51
+ io.log('');
52
+
53
+ if (dockerInstalled) {
54
+ io.log(' ┌─ STEP 1: Start the Docker Lab ─────────────────────────────┐');
55
+ io.log(' │ │');
56
+ io.log(' │ cd docker │');
57
+ io.log(' │ docker compose up -d │');
58
+ io.log(' │ │');
59
+ io.log(' │ First run downloads ~4GB image. Subsequent starts: <5s │');
60
+ io.log(' └─────────────────────────────────────────────────────────────┘');
61
+ io.log('');
62
+ io.log(' ┌─ STEP 2: Enter the Shell ───────────────────────────────────┐');
63
+ io.log(' │ │');
64
+ io.log(' │ docker exec -it rtexit-kali bash │');
65
+ io.log(' │ │');
66
+ io.log(' │ 300+ tools ready. Your project is at /workspace │');
67
+ io.log(' └─────────────────────────────────────────────────────────────┘');
68
+ io.log('');
69
+ io.log(' ┌─ STEP 3: Configure & Start ─────────────────────────────────┐');
70
+ io.log(' │ │');
71
+ io.log(' │ 1. Edit _rtexit/config.user.toml (client/project info) │');
72
+ io.log(' │ 2. Open your AI IDE in this directory │');
73
+ io.log(' │ 3. Start with: rt-help │');
74
+ io.log(' │ │');
75
+ io.log(' └─────────────────────────────────────────────────────────────┘');
76
+ io.log('');
77
+ io.log(' Docker README: docker/README.md');
78
+ io.log(' Build locally: see docker/README.md → "Build Locally" section');
79
+ } else {
80
+ io.log(' Next steps:');
81
+ io.log(' 1. Edit _rtexit/config.user.toml with your engagement details');
82
+ io.log(' 2. Open your AI IDE in this project');
83
+ io.log(' 3. Start with rt-help');
84
+ }
85
+
86
+ io.log('');
87
+ io.log('════════════════════════════════════════════');
88
+ io.log('');
89
+ }
90
+
91
+ module.exports = { installCommand };
@@ -24,6 +24,7 @@ function getInstallEntries(ides = ['agents'], allowedSkills = null) {
24
24
  { type: 'path', value: 'packaged-assets/templates', target: 'templates' },
25
25
  { type: 'path', value: 'packaged-assets/resources', target: 'resources' },
26
26
  { type: 'path', value: 'packaged-assets/RTEXIT.md', target: 'RTEXIT.md' },
27
+ { type: 'path', value: 'packaged-assets/docker', target: 'docker' },
27
28
  ];
28
29
  }
29
30