Aller au contenu

PTF (Cadre des pentesters) Feuille de chaleur

Copier toutes les commandes Générer PDF

Aperçu général

Le Pentesters Framework (PTF) est une plateforme de gestion d'outils basée sur Python conçue spécifiquement pour les testeurs de pénétration et les professionnels de la sécurité. Développé par TrustedSec, PTF est un gestionnaire centralisé de dépôt et d'installation pour les outils de test de pénétration, fournissant l'installation automatisée, les mises à jour et la gestion des outils de sécurité sur différentes plateformes. Le cadre répond au défi commun auquel sont confrontés les professionnels de la sécurité qui doivent maintenir et mettre à jour des dizaines d'outils spécialisés dans plusieurs systèmes et environnements.

PTF fonctionne sur une architecture modulaire où chaque outil est défini par un fichier de configuration qui spécifie les méthodes d'installation, les dépendances, les procédures de mise à jour et les exigences de compatibilité. Cette approche assure un déploiement cohérent des outils dans différents environnements tout en maintenant la flexibilité nécessaire pour personnaliser les installations en fonction des exigences spécifiques. Le framework prend en charge différentes méthodes d'installation, notamment les dépôts git, les gestionnaires de paquets, les scripts personnalisés et les téléchargements binaires, le rendant compatible avec pratiquement n'importe quel outil de sécurité quelle que soit sa méthode de distribution.

La force du cadre réside dans sa capacité à automatiser le processus fastidieux de gestion des outils qui, traditionnellement, consomme beaucoup de temps pour les professionnels de la sécurité. PTF peut détecter automatiquement lorsque les outils ont des mises à jour disponibles, gérer la résolution de dépendance, gérer les conflits de versions et fournir des capacités de retour au besoin. Cette automatisation permet aux testeurs de pénétration de se concentrer sur leurs activités de test de sécurité de base plutôt que de passer du temps sur la maintenance et la configuration des outils.

PTF fournit également des fonctionnalités précieuses pour les environnements d'équipe, y compris la capacité de créer des configurations d'outils normalisées qui peuvent être déployées sur plusieurs systèmes de membres d'équipe. Cela garantit la cohérence dans les environnements de test et réduit la probabilité de problèmes découlant des erreurs d'appariement ou des différences de configuration de la version d'outil. Les capacités d'enregistrement et de rapport du cadre fournissent une visibilité sur l'état de l'installation des outils et la mise à jour de l'historique, ce qui est utile pour maintenir les pistes de vérification et résoudre les problèmes.

Installation

Préalables

# Install Python and pip
sudo apt update
sudo apt install python3 python3-pip git

# Install required Python packages
pip3 install requests beautifulsoup4 lxml

# Install additional dependencies
sudo apt install build-essential libssl-dev libffi-dev python3-dev

# For CentOS/RHEL
sudo yum install python3 python3-pip git gcc openssl-devel libffi-devel python3-devel

# For macOS
brew install python3 git
pip3 install requests beautifulsoup4 lxml

Installation standard

# Clone PTF repository
git clone https://github.com/trustedsec/ptf /opt/ptf

# Change to PTF directory
cd /opt/ptf

# Make PTF executable
chmod +x ptf

# Run initial setup
sudo python3 ptf

# Alternative: Install to user directory
git clone https://github.com/trustedsec/ptf ~/ptf
cd ~/ptf
python3 ptf
```_

### Installation Docker

```bash
# Pull PTF Docker image
docker pull trustedsec/ptf

# Run PTF in Docker
docker run -it --rm trustedsec/ptf

# Run with persistent storage
docker run -it --rm -v ptf_data:/root/.ptf trustedsec/ptf

# Build custom PTF image
cat << 'EOF' > Dockerfile
FROM ubuntu:20.04
RUN apt-get update && apt-get install -y python3 python3-pip git
RUN git clone https://github.com/trustedsec/ptf /opt/ptf
WORKDIR /opt/ptf
RUN chmod +x ptf
ENTRYPOINT ["python3", "ptf"]
EOF

docker build -t custom-ptf .
docker run -it --rm custom-ptf
```_

### Installation d'environnement virtuel

```bash
# Create virtual environment
python3 -m venv ptf-env
source ptf-env/bin/activate

# Install dependencies
pip install requests beautifulsoup4 lxml

# Clone and setup PTF
git clone https://github.com/trustedsec/ptf
cd ptf
python3 ptf

# Create activation script
cat << 'EOF' > activate-ptf.sh
#!/bin/bash
source /path/to/ptf-env/bin/activate
cd /path/to/ptf
python3 ptf
EOF

chmod +x activate-ptf.sh

Installation à l ' échelle du système

# Install PTF system-wide
sudo git clone https://github.com/trustedsec/ptf /opt/ptf
sudo chown -R $USER:$USER /opt/ptf
cd /opt/ptf
sudo python3 ptf

# Create symbolic link
sudo ln -s /opt/ptf/ptf /usr/local/bin/ptf

# Create desktop entry
cat << 'EOF' > ~/.local/share/applications/ptf.desktop
[Desktop Entry]
Name=Pentesters Framework
Comment=Tool management for penetration testers
Exec=/opt/ptf/ptf
Icon=terminal
Terminal=true
Type=Application
Categories=Security;
EOF

Utilisation de base

Démarrage du PTF

# Start PTF
python3 ptf
./ptf

# Start with specific configuration
python3 ptf --config /path/to/config.txt

# Start in quiet mode
python3 ptf --quiet

# Start with debug output
python3 ptf --debug

# Show version
python3 ptf --version

Commandes de base

# Show help
help
?

# List available modules
show modules
list

# Search for modules
search nmap
search web
search "social engineering"

# Show module information
info modules/exploitation/metasploit
show info modules/intelligence/theharvester

# Install module
use modules/exploitation/metasploit
install

# Update module
use modules/exploitation/metasploit
update

# Remove module
use modules/exploitation/metasploit
remove

Catégories de modules

# List modules by category
show modules/exploitation
show modules/intelligence
show modules/vulnerability-analysis
show modules/web-applications
show modules/wireless
show modules/forensics
show modules/reverse-engineering

# Show all categories
show categories

# Search within category
search modules/exploitation metasploit
search modules/web-applications burp

Gestion des modules

Installation d'outils

# Install single module
use modules/exploitation/metasploit
install

# Install multiple modules
use modules/exploitation/metasploit
use modules/intelligence/theharvester
use modules/web-applications/burpsuite
install

# Install all modules in category
use modules/exploitation/*
install

# Install with dependencies
use modules/exploitation/metasploit
set INSTALL_DEPS true
install

# Force reinstall
use modules/exploitation/metasploit
set FORCE_INSTALL true
install

Mise à jour des outils

# Update single module
use modules/exploitation/metasploit
update

# Update all installed modules
update all

# Check for updates
use modules/exploitation/metasploit
check_update

# Update specific modules
use modules/exploitation/metasploit
use modules/intelligence/theharvester
update

# Scheduled updates
set AUTO_UPDATE true
set UPDATE_INTERVAL 7  # days

Suppression des outils

# Remove single module
use modules/exploitation/metasploit
remove

# Remove multiple modules
use modules/exploitation/metasploit
use modules/intelligence/theharvester
remove

# Remove all modules
remove all

# Remove with cleanup
use modules/exploitation/metasploit
set CLEAN_REMOVE true
remove

# Backup before removal
use modules/exploitation/metasploit
set BACKUP_BEFORE_REMOVE true
remove

Informations sur le module

# Show detailed module info
info modules/exploitation/metasploit

# Show installation status
status modules/exploitation/metasploit

# Show module dependencies
deps modules/exploitation/metasploit

# Show module files
files modules/exploitation/metasploit

# Show module configuration
config modules/exploitation/metasploit

# Show module changelog
changelog modules/exploitation/metasploit

Gestion de la configuration

Configuration globale

# Show current configuration
show config
config

# Set configuration options
set INSTALL_DIR /opt/tools
set AUTO_UPDATE true
set UPDATE_INTERVAL 7
set BACKUP_ENABLED true
set LOG_LEVEL debug

# Save configuration
save config

# Load configuration
load config /path/to/config.txt

# Reset configuration
reset config

# Export configuration
export config /path/to/backup_config.txt

Configuration spécifique au module

# Configure module
use modules/exploitation/metasploit
set INSTALL_PATH /opt/metasploit
set UPDATE_METHOD git
set BRANCH master
set DEPENDENCIES true

# Show module configuration
show config

# Save module configuration
save module_config

# Load module configuration
load module_config /path/to/module_config.txt

# Reset module configuration
reset module_config

Configuration de l'environnement

# Set environment variables
set ENV_VAR PATH="/opt/tools/bin:$PATH"
set ENV_VAR METASPLOIT_HOME="/opt/metasploit"

# Configure proxy settings
set PROXY_HOST 127.0.0.1
set PROXY_PORT 8080
set PROXY_USER username
set PROXY_PASS password

# Configure SSL settings
set SSL_VERIFY false
set SSL_CERT /path/to/cert.pem

# Configure timeout settings
set TIMEOUT 300
set RETRY_COUNT 3
set RETRY_DELAY 5

Caractéristiques avancées

Création de module personnalisé

# Create custom module configuration
cat << 'EOF' > modules/custom/mytool.py
#!/usr/bin/env python3

AUTHOR = "Your Name"
DESCRIPTION = "Custom tool description"
INSTALL_TYPE = "GIT"
REPOSITORY_LOCATION = "https://github.com/user/mytool.git"
INSTALL_LOCATION = "mytool"
DEBIAN = "git build-essential"
BYPASS_UPDATE = "FALSE"
LAUNCHER = "mytool"

def install():
    # Custom installation logic
    pass

def update():
    # Custom update logic
    pass

def remove():
    # Custom removal logic
    pass
EOF

Opérations par lots

# Create batch installation script
cat << 'EOF' > batch_install.txt
use modules/exploitation/metasploit
use modules/intelligence/theharvester
use modules/web-applications/burpsuite
use modules/vulnerability-analysis/nmap
use modules/wireless/aircrack-ng
install
EOF

# Execute batch script
python3 ptf --batch batch_install.txt

# Create update script
cat << 'EOF' > batch_update.txt
update all
EOF

python3 ptf --batch batch_update.txt

Scripts d'automatisation

# Automated installation script
#!/bin/bash
cat << 'EOF' > auto_install.sh
#!/bin/bash

# Start PTF and install essential tools
python3 /opt/ptf/ptf ``<< 'PTFEOF'
use modules/exploitation/metasploit
use modules/intelligence/theharvester
use modules/web-applications/burpsuite
use modules/vulnerability-analysis/nmap
use modules/wireless/aircrack-ng
use modules/forensics/volatility
install
exit
PTFEOF

echo "Installation complete"
EOF

chmod +x auto_install.sh
./auto_install.sh

Intégration avec CI/CD

# GitHub Actions workflow
name: PTF Tool Management
on:
  schedule:
    - cron: '0 2 * * 0'  # Weekly updates
  workflow_dispatch:

jobs:
  update-tools:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup Python
        uses: actions/setup-python@v2
        with:
          python-version: '3.9'

      - name: Install PTF
        run:|
          git clone https://github.com/trustedsec/ptf
          cd ptf
          pip install -r requirements.txt

      - name: Update tools
        run:|
          cd ptf
          python3 ptf --batch ../update_script.txt

      - name: Generate report
        run:|
          cd ptf
          python3 ptf --report ../tool_status.json

Catégories d'outils

Outils d'exploitation

# Metasploit Framework
use modules/exploitation/metasploit
install

# Exploit Database
use modules/exploitation/exploit-db
install

# Social Engineering Toolkit
use modules/exploitation/set
install

# BeEF Framework
use modules/exploitation/beef
install

# Empire
use modules/exploitation/empire
install

# Cobalt Strike (if licensed)
use modules/exploitation/cobaltstrike
set LICENSE_KEY your_license_key
install

Collecte de renseignements

# theHarvester
use modules/intelligence/theharvester
install

# Recon-ng
use modules/intelligence/recon-ng
install

# Maltego
use modules/intelligence/maltego
install

# OSINT Framework
use modules/intelligence/osint-framework
install

# Shodan CLI
use modules/intelligence/shodan
set API_KEY your_api_key
install

Test d'application Web

# Burp Suite
use modules/web-applications/burpsuite
install

# OWASP ZAP
use modules/web-applications/zap
install

# Nikto
use modules/web-applications/nikto
install

# SQLmap
use modules/web-applications/sqlmap
install

# Gobuster
use modules/web-applications/gobuster
install

# Wfuzz
use modules/web-applications/wfuzz
install

Analyse de vulnérabilité

# Nmap
use modules/vulnerability-analysis/nmap
install

# OpenVAS
use modules/vulnerability-analysis/openvas
install

# Nessus (if licensed)
use modules/vulnerability-analysis/nessus
set LICENSE_KEY your_license_key
install

# Masscan
use modules/vulnerability-analysis/masscan
install

# Nuclei
use modules/vulnerability-analysis/nuclei
install

Outils sans fil

# Aircrack-ng
use modules/wireless/aircrack-ng
install

# Kismet
use modules/wireless/kismet
install

# Wifite
use modules/wireless/wifite
install

# Reaver
use modules/wireless/reaver
install

# Pixiewps
use modules/wireless/pixiewps
install

Outils de médecine légale

# Volatility
use modules/forensics/volatility
install

# Autopsy
use modules/forensics/autopsy
install

# Sleuth Kit
use modules/forensics/sleuthkit
install

# Bulk Extractor
use modules/forensics/bulk-extractor
install

# Foremost
use modules/forensics/foremost
install

Dépannage

Questions communes

# Permission errors
sudo chown -R $USER:$USER /opt/ptf
sudo chmod -R 755 /opt/ptf

# Python dependency issues
pip3 install --upgrade requests beautifulsoup4 lxml
pip3 install --upgrade setuptools wheel

# Git authentication issues
git config --global credential.helper store
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"

# Network connectivity issues
set PROXY_HOST 127.0.0.1
set PROXY_PORT 8080
set TIMEOUT 600

# Disk space issues
df -h
du -sh /opt/ptf/*
set CLEANUP_AFTER_INSTALL true

Mode de débogage

# Enable debug logging
python3 ptf --debug

# Check log files
tail -f ~/.ptf/logs/ptf.log

# Verbose installation
use modules/exploitation/metasploit
set VERBOSE true
install

# Test connectivity
use modules/exploitation/metasploit
test_connection

# Validate module
use modules/exploitation/metasploit
validate

Procédures de recouvrement

# Backup PTF configuration
cp -r ~/.ptf ~/.ptf.backup

# Restore configuration
rm -rf ~/.ptf
cp -r ~/.ptf.backup ~/.ptf

# Reset PTF
rm -rf ~/.ptf
python3 ptf --reset

# Repair corrupted installation
use modules/exploitation/metasploit
repair

# Force clean installation
use modules/exploitation/metasploit
set FORCE_CLEAN true
install

Exemples d'intégration

Intégration durable

# Ansible playbook for PTF deployment
---
- name: Deploy PTF across infrastructure
  hosts: pentest_systems
  become: yes
  tasks:
    - name: Install dependencies
      apt:
        name:
          - python3
          - python3-pip
          - git
        state: present

    - name: Clone PTF
      git:
        repo: https://github.com/trustedsec/ptf
        dest: /opt/ptf
        force: yes

    - name: Install Python dependencies
      pip:
        name:
          - requests
          - beautifulsoup4
          - lxml
        executable: pip3

    - name: Configure PTF
      template:
        src: ptf_config.j2
        dest: /opt/ptf/config.txt

    - name: Install tools
      shell:|
        cd /opt/ptf
        python3 ptf --batch /opt/ptf/install_list.txt

Composez Docker

# docker-compose.yml for PTF
version: '3.8'
services:
  ptf:
    build: .
    container_name: ptf
    volumes:
      - ptf_data:/root/.ptf
      - ./configs:/opt/configs
    environment:
      - PTF_CONFIG=/opt/configs/ptf.conf
    networks:
      - pentest_network

  tools:
    image: kalilinux/kali-rolling
    container_name: pentest_tools
    volumes:
      - ptf_data:/opt/tools
    depends_on:
      - ptf
    networks:
      - pentest_network

volumes:
  ptf_data:

networks:
  pentest_network:
    driver: bridge

Intégration Terraform

# Terraform configuration for PTF deployment
resource "aws_instance" "ptf_server" \\\{
  ami           = "ami-0c55b159cbfafe1d0"
  instance_type = "t3.large"

  user_data = <<-EOF
    #!/bin/bash
    apt-get update
    apt-get install -y python3 python3-pip git
    git clone https://github.com/trustedsec/ptf /opt/ptf
    cd /opt/ptf
    pip3 install -r requirements.txt
    python3 ptf --batch /opt/ptf/auto_install.txt
  EOF

  tags = \\\{
    Name = "PTF-Server"
    Environment = "Pentest"
  \\\}
\\\}

resource "aws_security_group" "ptf_sg" \\\{
  name_prefix = "ptf-"

  ingress \\\{
    from_port   = 22
    to_port     = 22
    protocol    = "tcp"
    cidr_blocks = ["10.0.0.0/8"]
  \\\}

  egress \\\{
    from_port   = 0
    to_port     = 0
    protocol    = "-1"
    cidr_blocks = ["0.0.0.0/0"]
  \\\}
\\\}

Meilleures pratiques

Gestion des outils

# Regular maintenance schedule
# Weekly updates
0 2 * * 0 cd /opt/ptf && python3 ptf --batch update_all.txt

# Monthly cleanup
0 3 1 * * cd /opt/ptf && python3 ptf --cleanup

# Quarterly backup
0 4 1 */3 * tar -czf /backup/ptf-$(date +%Y%m%d).tar.gz /opt/ptf ~/.ptf

# Version control for configurations
git init /opt/ptf/configs
git add /opt/ptf/configs/*
git commit -m "Initial PTF configuration"

Considérations en matière de sécurité

# Secure installation directory
sudo mkdir -p /opt/ptf
sudo chown root:pentest /opt/ptf
sudo chmod 750 /opt/ptf

# Restrict access
echo "pentest ALL=(ALL) NOPASSWD: /opt/ptf/ptf"|sudo tee /etc/sudoers.d/ptf

# Audit logging
set LOG_LEVEL info
set AUDIT_LOG true
set LOG_FILE /var/log/ptf/audit.log

# Network security
set SSL_VERIFY true
set PROXY_HOST internal-proxy.company.com
set PROXY_PORT 3128

Collaboration d'équipe

# Shared configuration repository
git clone https://github.com/company/ptf-configs /opt/ptf-configs
ln -s /opt/ptf-configs/team_config.txt /opt/ptf/config.txt

# Standardized tool sets
cat << 'EOF' >`` /opt/ptf-configs/standard_tools.txt
# Core exploitation tools
use modules/exploitation/metasploit
use modules/exploitation/set
use modules/exploitation/beef

# Intelligence gathering
use modules/intelligence/theharvester
use modules/intelligence/recon-ng

# Web application testing
use modules/web-applications/burpsuite
use modules/web-applications/zap
use modules/web-applications/sqlmap

install
EOF

# Team update script
#!/bin/bash
cd /opt/ptf
git pull origin main
python3 ptf --batch /opt/ptf-configs/standard_tools.txt

Optimisation des performances

# Parallel installations
set PARALLEL_INSTALL true
set MAX_PARALLEL 4

# Caching
set CACHE_ENABLED true
set CACHE_DIR /opt/ptf/cache
set CACHE_EXPIRY 86400  # 24 hours

# Bandwidth optimization
set DOWNLOAD_MIRROR https://mirror.company.com/tools/
set COMPRESSION_ENABLED true

# Resource limits
ulimit -n 4096
echo "* soft nofile 4096"|sudo tee -a /etc/security/limits.conf
echo "* hard nofile 4096"|sudo tee -a /etc/security/limits.conf

Rapports et suivi

État des rapports

# Generate status report
python3 ptf --report status.json

# HTML report
python3 ptf --report status.html --format html

# CSV report
python3 ptf --report status.csv --format csv

# Custom report template
python3 ptf --report custom.json --template /path/to/template.json

Scripts de suivi

#!/bin/bash
# PTF monitoring script
cat << 'EOF' > monitor_ptf.sh
#!/bin/bash

LOG_FILE="/var/log/ptf/monitor.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')

# Check PTF status
cd /opt/ptf
STATUS=$(python3 ptf --status 2>&1)

if [ $? -eq 0 ]; then
    echo "[$DATE] PTF Status: OK" >> $LOG_FILE
else
    echo "[$DATE] PTF Status: ERROR - $STATUS" >> $LOG_FILE
    # Send alert
    echo "PTF Error: $STATUS"|mail -s "PTF Alert" admin@company.com
fi

# Check tool updates
UPDATES=$(python3 ptf --check-updates 2>&1)
if [ ! -z "$UPDATES" ]; then
    echo "[$DATE] Updates available: $UPDATES" >> $LOG_FILE
fi

# Check disk space
DISK_USAGE=$(df -h /opt/ptf|awk 'NR==2 \\\\{print $5\\\\}'|sed 's/%//')
if [ $DISK_USAGE -gt 80 ]; then
    echo "[$DATE] Disk usage warning: $\\\\{DISK_USAGE\\\\}%" >> $LOG_FILE
fi
EOF

chmod +x monitor_ptf.sh

# Add to crontab
echo "*/15 * * * * /opt/scripts/monitor_ptf.sh"|crontab -

Collecte de données

#!/usr/bin/env python3
# PTF metrics collector
import json
import time
import subprocess
from datetime import datetime

def collect_metrics():
    metrics = \\\\{
        'timestamp': datetime.now().isoformat(),
        'installed_tools': 0,
        'outdated_tools': 0,
        'failed_tools': 0,
        'disk_usage': 0
    \\\\}

    try:
        # Get tool status
        result = subprocess.run(['python3', 'ptf', '--status'],
                              capture_output=True, text=True)
        if result.returncode == 0:
            status_data = json.loads(result.stdout)
            metrics['installed_tools'] = len(status_data.get('installed', []))
            metrics['outdated_tools'] = len(status_data.get('outdated', []))
            metrics['failed_tools'] = len(status_data.get('failed', []))

        # Get disk usage
        result = subprocess.run(['du', '-s', '/opt/ptf'],
                              capture_output=True, text=True)
        if result.returncode == 0:
            metrics['disk_usage'] = int(result.stdout.split()[0])

    except Exception as e:
        print(f"Error collecting metrics: \\\\{e\\\\}")

    return metrics

if __name__ == "__main__":
    metrics = collect_metrics()
    with open('/var/log/ptf/metrics.json', 'a') as f:
        f.write(json.dumps(metrics) + '\n')

*** Avis de sécurité** : PTF (Pentesters Framework) est une plate-forme de gestion d'outils conçue pour les activités autorisées de tests de sécurité et de pénétration. Il incombe aux utilisateurs de s'assurer qu'ils ont une autorisation appropriée avant d'installer et d'utiliser des outils de sécurité gérés par PTF. De nombreux outils disponibles via PTF sont de puissants instruments de test de sécurité qui ne devraient être utilisés que sur les systèmes que vous possédez ou ont une autorisation écrite explicite pour tester. Respectez toujours les lois et les règlements applicables dans votre juridiction lorsque vous utilisez le FTP et les outils qu'il gère.

** Ressources supplémentaires** : - [PTF GitHub Repository] (LINK_4) - [Documentation du FCT fiable] (LINK_4) - [PTF Wiki] (LINK_4) - [Blogue de TrestedSec] (LINK_4)