Skip to content

Commit d96e7b4

Browse files
authored
Merge pull request #129 from mbrg/128-multiple-updates
Updated various features and fixes (e.g., general usability updates and fixes, CPSH improvements, 4 new recon modules) - see release notes on PR for more info.
2 parents 03b17b3 + 97d97fd commit d96e7b4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

47 files changed

+541624
-18375
lines changed

INSTALLATION.md

Lines changed: 291 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,291 @@
1+
# Power-Pwn Installation Guide
2+
3+
## Quick Start
4+
5+
### Standard Installation (Python Only)
6+
7+
```bash
8+
python init_repo.py
9+
source .venv/bin/activate
10+
powerpwn --help
11+
```
12+
13+
This installs Python dependencies only. Some modules require additional tools.
14+
15+
### Full Installation (Python + External Tools)
16+
17+
```bash
18+
python init_repo.py --install-external-tools
19+
source .venv/bin/activate
20+
powerpwn --help
21+
```
22+
23+
This installs Python dependencies **and** external tools (ffuf, subfinder, Node.js).
24+
25+
## Installation Options
26+
27+
### Option 1: Full Automated Installation (Recommended)
28+
29+
Install everything at once:
30+
31+
```bash
32+
python init_repo.py --install-external-tools
33+
```
34+
35+
**What gets installed:**
36+
37+
- ✅ Python virtual environment
38+
- ✅ Python packages (from requirements.txt)
39+
- ✅ ffuf (for agent-builder-hunter scan)
40+
- ✅ subfinder (for copilot-studio-hunter enum)
41+
- ✅ Node.js & npm (for Puppeteer-based tools)
42+
- ✅ Node.js packages (puppeteer, xlsx, etc.)
43+
44+
**Supported platforms:**
45+
46+
- ✅ macOS (via Homebrew)
47+
- ✅ Linux (Debian/Ubuntu via apt, others via direct download)
48+
- ⚠️ Windows (manual installation required)
49+
50+
### Option 2: Python Only + Manual Tool Installation
51+
52+
Install Python dependencies only:
53+
54+
```bash
55+
python init_repo.py
56+
```
57+
58+
Then install external tools manually per module (see below).
59+
60+
### Option 3: Module-Specific Installation
61+
62+
Install dependencies for specific modules only:
63+
64+
```bash
65+
# Custom GPT Hunter
66+
./src/powerpwn/custom_gpt_hunter/install_dependencies.sh
67+
68+
# Agent Builder Hunter
69+
./src/powerpwn/agent_builder/install_dependencies.sh
70+
71+
# Copilot Studio Hunter
72+
./src/powerpwn/copilot_studio/install_dependencies.sh
73+
```
74+
75+
## External Tools by Module
76+
77+
Different modules require different external tools:
78+
79+
| Module | Tools Required | Install Script |
80+
| ------------------------------------- | ----------------------------- | ---------------------------------------------------------- |
81+
| **agent-builder-hunter scan** | ffuf | `./src/powerpwn/agent_builder/install_dependencies.sh` |
82+
| **agent-builder-hunter tools-recon** | Node.js, npm, puppeteer | Same as above |
83+
| **copilot-studio-hunter enum** | subfinder | No separate script (uses system subfinder) |
84+
| **copilot-studio-hunter deep-scan** | ffuf, Node.js, puppeteer | `./src/powerpwn/copilot_studio/install_dependencies.sh` |
85+
| **copilot-studio-hunter tools-recon** | Node.js, npm, puppeteer | Same as above |
86+
| **custom-gpt-hunter** | Node.js, npm, puppeteer | `./src/powerpwn/custom_gpt_hunter/install_dependencies.sh` |
87+
| **llm-hound** | Python only (shodan, aiohttp) | No additional tools |
88+
89+
## Platform-Specific Installation
90+
91+
### macOS
92+
93+
Requires [Homebrew](https://brew.sh/):
94+
95+
```bash
96+
# Install Homebrew (if not installed)
97+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
98+
99+
# Full installation
100+
python init_repo.py --install-external-tools
101+
```
102+
103+
Tools are installed via Homebrew:
104+
105+
- `brew install node` (Node.js)
106+
- `brew install ffuf` (ffuf)
107+
- `brew install subfinder` (subfinder)
108+
109+
### Linux (Debian/Ubuntu)
110+
111+
```bash
112+
# Full installation
113+
python init_repo.py --install-external-tools
114+
```
115+
116+
Tools are installed via:
117+
118+
- `apt-get install nodejs npm` (Node.js)
119+
- Direct download from GitHub releases (ffuf)
120+
- Go install for subfinder (requires Go)
121+
122+
### Linux (Other Distributions)
123+
124+
Use manual installation for non-Debian systems:
125+
126+
```bash
127+
# Python only
128+
python init_repo.py
129+
130+
# Install tools manually
131+
# Node.js: https://nodejs.org/
132+
# ffuf: https://github.com/ffuf/ffuf/releases
133+
# subfinder: https://github.com/projectdiscovery/subfinder (requires Go)
134+
```
135+
136+
### Windows
137+
138+
Automated installation is limited on Windows. Install tools manually:
139+
140+
```bash
141+
# Python setup
142+
python init_repo.py
143+
```
144+
145+
**Manual installations required:**
146+
147+
1. **Node.js**: Download from https://nodejs.org/
148+
2. **ffuf**: Download from https://github.com/ffuf/ffuf/releases
149+
3. **subfinder**: Install Go, then run: `go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest`
150+
151+
Then run module-specific install scripts:
152+
153+
```bash
154+
.\src\powerpwn\custom_gpt_hunter\install_dependencies.sh
155+
.\src\powerpwn\agent_builder\install_dependencies.sh
156+
.\src\powerpwn\copilot_studio\install_dependencies.sh
157+
```
158+
159+
## Error Messages
160+
161+
If you try to use a module without required tools, you'll see helpful error messages:
162+
163+
### Missing ffuf
164+
165+
```
166+
❌ ffuf is not installed!
167+
168+
Please install ffuf:
169+
macOS: brew install ffuf
170+
Linux: See https://github.com/ffuf/ffuf#installation
171+
Or run: python init_repo.py --install-external-tools
172+
```
173+
174+
### Missing subfinder
175+
176+
```
177+
❌ subfinder is not installed!
178+
179+
Please install subfinder:
180+
macOS: brew install subfinder
181+
Linux: go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
182+
Or run: python init_repo.py --install-external-tools
183+
```
184+
185+
### Missing Node.js
186+
187+
```
188+
❌ Node.js is not installed!
189+
190+
Please install Node.js first:
191+
macOS: brew install node
192+
Linux: sudo apt-get install nodejs npm
193+
Or download from: https://nodejs.org/
194+
```
195+
196+
## Verification
197+
198+
After installation, verify tools are installed:
199+
200+
```bash
201+
# Check Python environment
202+
source .venv/bin/activate
203+
powerpwn --help
204+
205+
# Check external tools
206+
node --version
207+
npm --version
208+
ffuf -V
209+
subfinder -version
210+
211+
# Check Node.js packages (if applicable)
212+
ls src/powerpwn/custom_gpt_hunter/node_modules/
213+
ls src/powerpwn/agent_builder/node_modules/
214+
```
215+
216+
## Troubleshooting
217+
218+
### init_repo.py fails with permission errors
219+
220+
Some installations require sudo. The script will prompt when needed:
221+
222+
```bash
223+
# Linux: May need sudo for system-wide tool installation
224+
sudo python init_repo.py --install-external-tools
225+
```
226+
227+
### Homebrew not found (macOS)
228+
229+
Install Homebrew first:
230+
231+
```bash
232+
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
233+
```
234+
235+
### npm install timeout
236+
237+
If npm install times out (slow network), try manual installation:
238+
239+
```bash
240+
cd src/powerpwn/custom_gpt_hunter
241+
npm install --timeout=600000
242+
```
243+
244+
### Architecture not supported
245+
246+
The script automatically detects architecture (amd64/arm64). If your architecture isn't supported, install manually from:
247+
248+
- ffuf: https://github.com/ffuf/ffuf/releases
249+
- subfinder: https://github.com/projectdiscovery/subfinder (requires Go)
250+
251+
## Minimal Installation
252+
253+
If you only need specific modules, you can skip external tools:
254+
255+
```bash
256+
# Python only (for llm-hound, powerdump, etc.)
257+
python init_repo.py
258+
259+
# Then activate and use modules that don't require external tools, e.g.:
260+
source .venv/bin/activate
261+
powerpwn llm-hound --help
262+
powerpwn powerdump --help
263+
```
264+
265+
## Docker Installation
266+
267+
For containerized environments, see `.devcontainer/setup.sh` for reference:
268+
269+
```bash
270+
# Build container with all dependencies
271+
docker build -t power-pwn .
272+
```
273+
274+
## Support
275+
276+
For installation issues:
277+
278+
1. Check error messages for specific guidance
279+
2. Verify Python version (3.11 required)
280+
3. Check platform compatibility above
281+
4. Refer to module-specific README files
282+
5. Open an issue with installation logs
283+
284+
## Summary
285+
286+
**TL;DR:**
287+
288+
- **Easiest**: `python init_repo.py --install-external-tools` (macOS/Linux)
289+
- **Windows**: `python init_repo.py` + manual tool installation
290+
- **Minimal**: `python init_repo.py` + install tools as needed
291+
- **Module-specific**: Run `install_dependencies.sh` in module directories

0 commit comments

Comments
 (0)