AutoRecon/AUTORECON_CONTRIBUTION_GUID...

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.