374 lines
10 KiB
Markdown
374 lines
10 KiB
Markdown
# AutoRecon Modular Setup System - Contribution Guide
|
|
|
|
## Overview
|
|
|
|
This document outlines the modular setup system developed by **neur0map** for AutoRecon, providing comprehensive installation, management, and maintenance capabilities across multiple operating systems. The system consists of a Makefile and supporting shell scripts that automate the entire AutoRecon setup process.
|
|
|
|
## System Architecture
|
|
|
|
### Core Components
|
|
|
|
```
|
|
Makefile (Entry Point)
|
|
├── scripts/system-check.sh (Prerequisites & OS detection)
|
|
├── scripts/detect-os.sh (OS detection helper for Makefile)
|
|
├── scripts/install-tools.sh (Installation router)
|
|
│ ├── scripts/install-tools-debian.sh (Debian/Ubuntu/Kali/Parrot)
|
|
│ ├── scripts/install-tools-macos.sh (macOS with Homebrew)
|
|
│ └── scripts/install-tools-arch.sh (Arch Linux/Manjaro)
|
|
├── scripts/setup-python.sh (Python environment & command setup)
|
|
├── scripts/setup-docker.sh (Docker management)
|
|
├── scripts/update.sh (Maintenance & updates)
|
|
└── scripts/cleanup.sh (Complete removal)
|
|
```
|
|
|
|
### Workflow Dependencies
|
|
|
|
```
|
|
make setup:
|
|
system-check.sh → detect-os.sh → install-tools.sh → setup-python.sh
|
|
|
|
make update:
|
|
update.sh → (git pull → python update → tools update → docker rebuild)
|
|
|
|
make clean:
|
|
cleanup.sh → (remove venv → remove tools → remove docker → cleanup results)
|
|
```
|
|
|
|
## Available Commands
|
|
|
|
### 1. Primary Setup Commands
|
|
|
|
#### `make setup`
|
|
**Purpose**: Complete local installation with auto-detected OS support
|
|
**When to use**: First-time setup or fresh installation
|
|
**What it does**:
|
|
- Detects operating system and prerequisites
|
|
- Installs security tools based on OS
|
|
- Sets up Python virtual environment
|
|
- Creates global `autorecon` command
|
|
- Provides ready-to-use AutoRecon installation
|
|
|
|
**Output Example**:
|
|
```
|
|
Setting up AutoRecon...
|
|
|
|
🔍 Checking prerequisites...
|
|
✅ Python 3.10.12 detected
|
|
✅ Detected: ubuntu
|
|
|
|
📦 Installing security tools for ubuntu (Debian-based)...
|
|
[...tool installation...]
|
|
|
|
🐍 Setting up Python environment...
|
|
📦 Installing Python dependencies...
|
|
🔧 Creating autorecon command...
|
|
|
|
✅ Setup complete!
|
|
```
|
|
|
|
#### `make setup-docker`
|
|
**Purpose**: Docker-based setup with interactive terminal
|
|
**When to use**:
|
|
- Non-Kali systems requiring full tool support
|
|
- Isolated/containerized environment preferred
|
|
- Local tool installation not desired
|
|
|
|
**What it does**:
|
|
- Builds AutoRecon Docker image
|
|
- Launches interactive container terminal
|
|
- Mounts results directory for persistence
|
|
- Provides full security toolkit in container
|
|
|
|
#### `make clean`
|
|
**Purpose**: Complete removal of AutoRecon installation
|
|
**When to use**:
|
|
- Uninstalling AutoRecon
|
|
- Starting fresh after issues
|
|
- Freeing up disk space
|
|
|
|
**What it does**:
|
|
- Removes Python virtual environment
|
|
- Removes installed security tools (with confirmation)
|
|
- Removes Docker images
|
|
- Removes global commands
|
|
- Cleans up temporary files
|
|
|
|
### 2. Maintenance Commands
|
|
|
|
#### `make update`
|
|
**Purpose**: Update all components to latest versions
|
|
**When to use**:
|
|
- Regular maintenance (weekly/monthly)
|
|
- After AutoRecon repository updates
|
|
- Before major scanning projects
|
|
|
|
**What it does**:
|
|
- Updates git repository with latest changes
|
|
- Updates Python packages
|
|
- Updates system security tools
|
|
- Rebuilds Docker image if needed
|
|
- Shows summary of changes
|
|
|
|
#### `make docker-cmd`
|
|
**Purpose**: Launch additional Docker terminal sessions
|
|
**When to use**:
|
|
- Multiple concurrent scanning sessions
|
|
- After `make setup-docker` for additional terminals
|
|
|
|
### 3. Help Command
|
|
|
|
#### `make help`
|
|
**Purpose**: Display comprehensive usage information
|
|
**Contains**:
|
|
- All available commands
|
|
- OS compatibility matrix
|
|
- Usage recommendations
|
|
- Docker workflow guide
|
|
|
|
## Operating System Support
|
|
|
|
### Tier 1: Full Support (20+ Security Tools)
|
|
- **Kali Linux**: Native security distribution
|
|
- **Parrot OS**: Security-focused distribution
|
|
- **Ubuntu/Debian**: Comprehensive apt-based installation
|
|
- **macOS**: Homebrew-based toolkit (15+ tools)
|
|
|
|
### Tier 2: Basic Support
|
|
- **Arch/Manjaro**: Core tools only (nmap, curl, wget, git)
|
|
- **Other Linux**: Fallback to basic tools
|
|
|
|
### Tier 3: Docker Recommended
|
|
- **Windows**: Use WSL + Docker
|
|
- **Unsupported systems**: Docker provides full functionality
|
|
|
|
## Script Details
|
|
|
|
### system-check.sh
|
|
**Purpose**: Prerequisites validation and OS detection
|
|
**Exports**: `OS_ID`, `OS_ID_LIKE`, `WSL_DETECTED`
|
|
**Checks**:
|
|
- Python 3.8+ availability
|
|
- Operating system identification
|
|
- WSL environment detection
|
|
- Package manager availability
|
|
|
|
### install-tools.sh (Router)
|
|
**Purpose**: Routes to appropriate OS-specific installer
|
|
**Parameters**: `OS_ID`, `OS_ID_LIKE`, `WSL_DETECTED`
|
|
**Routes to**:
|
|
- `install-tools-debian.sh` for Debian-based systems
|
|
- `install-tools-macos.sh` for macOS
|
|
- `install-tools-arch.sh` for Arch-based systems
|
|
|
|
### install-tools-debian.sh
|
|
**Tools Installed**:
|
|
```bash
|
|
# Core tools
|
|
curl wget git nmap nikto whatweb sslscan smbclient
|
|
|
|
# Enumeration tools
|
|
seclists dnsrecon enum4linux feroxbuster gobuster
|
|
impacket-scripts nbtscan onesixtyone oscanner
|
|
redis-tools smbmap snmp sipvicious tnscmd10g
|
|
```
|
|
|
|
**WSL Compatibility**: Includes snap package fallbacks
|
|
|
|
### install-tools-macos.sh
|
|
**Tools Installed**:
|
|
```bash
|
|
# Core network tools
|
|
nmap curl wget git gobuster nikto whatweb sslscan
|
|
|
|
# Enumeration tools
|
|
feroxbuster redis-tools smbclient
|
|
|
|
# Additional security tools
|
|
hydra john-jumbo hashcat sqlmap exploitdb binwalk exiftool
|
|
|
|
# Python tools
|
|
impacket crackmapexec enum4linux-ng
|
|
```
|
|
|
|
### install-tools-arch.sh
|
|
**Limited Installation**: Basic tools only (nmap, curl, wget, git, python)
|
|
**Recommendation**: Use Docker for full functionality
|
|
|
|
### setup-python.sh
|
|
**Functions**:
|
|
- Creates Python virtual environment
|
|
- Installs requirements.txt dependencies
|
|
- Creates `autorecon-cmd` script
|
|
- Installs global `/usr/local/bin/autorecon` command
|
|
- Handles permission issues gracefully
|
|
|
|
### setup-docker.sh
|
|
**Functions**:
|
|
- Docker availability verification
|
|
- AutoRecon image building
|
|
- Interactive container launch
|
|
- Results directory mounting
|
|
- Container session management
|
|
|
|
### update.sh
|
|
**Update Process**:
|
|
1. **Git Update**: Pull latest changes, handle stashes
|
|
2. **Python Update**: Upgrade pip and packages
|
|
3. **Tools Update**: OS-appropriate tool updates
|
|
4. **Docker Update**: Rebuild if Dockerfile changed
|
|
5. **Summary**: Show what was updated
|
|
|
|
### cleanup.sh
|
|
**Removal Process**:
|
|
1. **Python Environment**: Remove venv and commands
|
|
2. **Security Tools**: OS-specific removal (with confirmation)
|
|
3. **Docker Resources**: Remove images and containers
|
|
4. **Results**: Clean empty directories
|
|
5. **Warning**: Notify about active virtual environments
|
|
|
|
## Usage Patterns
|
|
|
|
### 1. First Time Setup
|
|
```bash
|
|
# Clone AutoRecon repository
|
|
git clone https://github.com/Tib3rius/AutoRecon.git
|
|
cd AutoRecon
|
|
|
|
# Full local setup
|
|
make setup
|
|
|
|
# Test installation
|
|
autorecon --help
|
|
autorecon 127.0.0.1
|
|
```
|
|
|
|
### 2. Docker-Based Setup
|
|
```bash
|
|
# Docker setup (recommended for non-Kali)
|
|
make setup-docker
|
|
|
|
# Inside container:
|
|
autorecon --help
|
|
autorecon target.com
|
|
ls /scans # View results
|
|
|
|
# Additional sessions
|
|
make docker-cmd
|
|
```
|
|
|
|
### 3. Regular Maintenance
|
|
```bash
|
|
# Weekly/monthly updates
|
|
make update
|
|
|
|
# Check for issues
|
|
autorecon --help
|
|
|
|
# If problems occur
|
|
make clean
|
|
make setup
|
|
```
|
|
|
|
### 4. Contributing Development
|
|
```bash
|
|
# Setup development environment
|
|
make setup
|
|
|
|
# Make changes to AutoRecon code
|
|
# ...
|
|
|
|
# Test changes
|
|
autorecon test-target
|
|
|
|
# Update after pulling latest
|
|
make update
|
|
```
|
|
|
|
## Integration Notes for AutoRecon
|
|
|
|
### Required Changes for Integration
|
|
|
|
1. **Project Name References**: Change all instances of "ipcrawler" to "autorecon" in:
|
|
- `setup-python.sh` (command creation)
|
|
- `setup-docker.sh` (image names and references)
|
|
- `cleanup.sh` (removal procedures)
|
|
- `Makefile` (help text and commands)
|
|
|
|
2. **Global Command**: Scripts create `/usr/local/bin/autorecon` instead of `/usr/local/bin/ipcrawler`
|
|
|
|
3. **Docker Integration**: Requires existing `Dockerfile` and `requirements.txt` in repository root
|
|
|
|
### File Structure Requirements
|
|
```
|
|
AutoRecon/
|
|
├── Makefile
|
|
├── scripts/
|
|
│ ├── system-check.sh
|
|
│ ├── detect-os.sh
|
|
│ ├── install-tools.sh
|
|
│ ├── install-tools-debian.sh
|
|
│ ├── install-tools-macos.sh
|
|
│ ├── install-tools-arch.sh
|
|
│ ├── setup-python.sh
|
|
│ ├── setup-docker.sh
|
|
│ ├── update.sh
|
|
│ └── cleanup.sh
|
|
├── requirements.txt
|
|
├── Dockerfile
|
|
└── autorecon.py
|
|
```
|
|
|
|
## Benefits for AutoRecon Project
|
|
|
|
### 1. User Experience
|
|
- **Simplified Installation**: Single `make setup` command
|
|
- **Cross-Platform**: Automated OS detection and appropriate tool installation
|
|
- **Maintenance**: Easy updates with `make update`
|
|
- **Cleanup**: Complete removal with `make clean`
|
|
|
|
### 2. Developer Experience
|
|
- **Consistent Environment**: Standardized setup across contributors
|
|
- **Docker Integration**: Isolated development environments
|
|
- **Modular Design**: Easy to modify and extend
|
|
- **Error Handling**: Graceful failures with helpful messages
|
|
|
|
### 3. Documentation
|
|
- **Self-Documenting**: `make help` provides comprehensive guidance
|
|
- **Status Messages**: Clear feedback during installation
|
|
- **OS-Specific**: Tailored instructions for each platform
|
|
|
|
### 4. Maintenance
|
|
- **Automated Updates**: Handles git, Python, tools, and Docker
|
|
- **Dependency Management**: Ensures all components stay current
|
|
- **Clean Removal**: Complete uninstall capability
|
|
|
|
## Contribution Guidelines
|
|
|
|
### For Pull Request
|
|
1. Create feature branch from main AutoRecon repository
|
|
2. Update project references from "ipcrawler" to "autorecon"
|
|
3. Test on multiple operating systems:
|
|
- Ubuntu/Debian
|
|
- Kali Linux
|
|
- macOS (with Homebrew)
|
|
- Arch Linux
|
|
4. Verify Docker functionality
|
|
5. Update documentation as needed
|
|
|
|
### Testing Checklist
|
|
- [ ] `make setup` works on supported OS
|
|
- [ ] `make setup-docker` builds and runs
|
|
- [ ] `make update` updates all components
|
|
- [ ] `make clean` removes everything
|
|
- [ ] Global `autorecon` command functions
|
|
- [ ] Error handling works for unsupported systems
|
|
- [ ] WSL compatibility verified
|
|
|
|
## Author
|
|
|
|
**Contributor**: neur0map
|
|
**Original Project**: AutoRecon by Tib3rius
|
|
**Fork**: ipcrawler (source of these enhancements)
|
|
|
|
This modular setup system significantly enhances AutoRecon's accessibility and maintainability across diverse operating systems and deployment scenarios. |