Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
gibson — Outil de surveillance réseau qui cartographie les connexions processus-réseau, identifie les fournisseurs de cloud et détecte les activités de beaconing | Kitploit
Outils/GitLabGitLab/hackinglz/gibson
Outils DéfensifsOSINT (Renseignement de Sources Ouvertes)Analyse ForensiqueSécurité CloudRed TeamingRéponse aux IncidentsAnalyse DNSDétection d'AnomaliesAnalyse de Journaux
GitLabhackinglz/gibson

gibson

Outil de surveillance réseau qui cartographie les connexions processus-réseau, identifie les fournisseurs de cloud et détecte les activités de beaconing

il y a 5 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôtSite web

Gibson

Outil de surveillance réseau qui cartographie les connexions processus-réseau, identifie les fournisseurs de cloud et génère des règles de pare-feu. Agent léger pour la collecte, serveur pour l'agrégation, analyseur pour l'analyse.

Captures d'écran

Vue d'ensemble multi-machine — comparaison des versions d'OS, détection d'IP partagées, candidats au beaconing sur tous les hôtes : Analyse cross-machine

Détail par hôte — alertes critiques (OS en fin de vie, nc.exe en beaconing vers une IP inconnue) : Détail hôte - critique

Détail par hôte — avertissement (candidat beacon signalé) : Détail hôte - avertissement

Détail par hôte — propre (aucune anomalie) : Détail hôte - propre

Fonctionnalités

Collecteur (Agent)

  • 🔒 Sécurisé : chiffrement AES-256-GCM optionnel
  • 🗜️ Efficace : compression gzip optionnelle
  • 🌐 Upload Cloud : téléversement HTTP/HTTPS avec support de clé API
  • 📊 Temps réel : collecte de données en flux continu
  • 🔍 Résolution DNS : recherches DNS inversées optionnelles
  • 💾 Stockage flexible : format JSONL pour une analyse facile

Analyseur

  • ☁️ Détection Cloud : identifie AWS, Azure, GCP, Cloudflare, etc.
  • 🔥 Règles pare-feu : génération automatique de règles iptables/Windows
  • 📈 Score de risque : identifie les processus suspects
  • 🗄️ Export base de données : export SQL pour analyse approfondie
  • 📊 Rapports riches : résumés JSON avec informations détaillées

Démarrage rapide

Construction

root@kitploit:~
cargo build --release

Collecte basique (5 minutes)

root@kitploit:~
# Collecte simple
cargo run --release -- collect --duration-seconds 300

# Avec recherches DNS
cargo run --release -- collect --duration-seconds 300 --enable-dns

# Avec compression et chiffrement
cargo run --release -- collect \
  --duration-seconds 300 \
  --compress \
  --encrypt-key "votre-mot-de-passe-secret"

Analyse des données collectées

root@kitploit:~
# Générer tous les rapports
cargo run --release -- parse \
  --input connections.jsonl \
  --process-summary processes.json \
  --cloud-analysis cloud.json \
  --firewall-rules-iptables firewall.sh \
  --database-export network.sql

# Recherche de propriété hors ligne avec base ASN locale (aucun appel réseau)
cargo run --release -- parse \
  --input connections.jsonl \
  --cloud-analysis cloud.json \
  --asn-db ip2asn-v4.tsv

# Recherche ARIN en direct avec cache persistant (les exécutions ultérieures ignorent les IP déjà interrogées)
cargo run --release -- parse \
  --input connections.jsonl \
  --cloud-analysis cloud.json \
  --arin-lookup \
  --arin-cache arin_cache.json

Mode Moniteur Tout-en-un

root@kitploit:~
# Analyse rapide de 5 minutes
cargo run --release -- monitor \
  --duration-seconds 300 \
  --output-dir ./analysis \
  --full-analysis

Construction de l'agent

Le binaire agent est une cible de déploiement minimale, sans drapeau. Toute la configuration est intégrée au binaire à la compilation via des variables d'environnement — déposez-le sur une cible et exécutez-le sans argument.

Construction

root@kitploit:~
AGENT_SERVER="http://10.0.1.5:8080/upload" \
AGENT_KEY="labkey123" \
AGENT_INTERVAL="5" \
AGENT_BATCH="200" \
AGENT_DURATION="0" \
AGENT_DNS="false" \
AGENT_ENCRYPT_KEY="mysecretpassword" \
cargo build --release --bin agent

Le binaire résultant dans target/release/agent n'a aucune dépendance externe et ne nécessite aucun drapeau :

root@kitploit:~
./agent

Variables d'environnement

Exemple : Agent chiffré à long terme

root@kitploit:~
AGENT_SERVER="https://collector.internal/upload" \
AGENT_KEY="prod-api-key" \
AGENT_DURATION="0" \
AGENT_INTERVAL="30" \
AGENT_COMPRESS="true" \
AGENT_ENCRYPT_KEY="$(cat /etc/gibson/key)" \
cargo build --release --bin agent

Utilisation avancée

Collecte distante sécurisée

1. Collecte chiffrée avec téléversement

root@kitploit:~
cargo run --release -- collect \
  --duration-seconds 3600 \
  --interval-seconds 10 \
  --compress \
  --encrypt-key "votre-clé-hex-32-caractères-ou-mot-de-passe" \
  --upload-url "https://votre-serveur.com/api/upload" \
  --api-key "votre-clé-api" \
  --batch-size 50 \
  --delete-after-upload

2. Surveillance à long terme (24 heures)

root@kitploit:~
cargo run --release -- collect \
  --duration-seconds 86400 \
  --interval-seconds 30 \
  --output connections_daily.jsonl \
  --enable-dns \
  --compress

Recherche de propriété IP

L'analyseur prend en charge deux chemins mutuellement exclusifs pour identifier le propriétaire des IP non attribuées :

Télécharger la base ip2asn (rafraîchir chaque semaine) :

root@kitploit:~
curl -O https://iptoasn.com/data/ip2asn-v4.tsv.gz && gunzip ip2asn-v4.tsv.gz

Lorsque --asn-db est fourni, --arin-lookup est ignoré. Utilisez --arin-cache pour persister les résultats ARIN sur le disque afin que les exécutions ultérieures ignorent les IP déjà interrogées.

Analyse des fournisseurs cloud

root@kitploit:~
# Analyse avec détection cloud ciblée
cargo run --release -- parse \
  --input connections.jsonl \
  --cloud-analysis cloud_report.json \
  --min-connections 5 \
  --whitelist-processes "chrome,firefox,safari,edge"

Configuration du serveur web pour la collecte de données

Option 1 : Serveur Python Flask simple

Créez collector_server.py :

root@kitploit:~
from flask import Flask, request, jsonify
import os
import json
import base64
from datetime import datetime
from Crypto.Cipher import AES
import gzip

app = Flask(__name__)

# Configuration
UPLOAD_DIR = "./collected_data"
API_KEY = "your-secure-api-key"
ENCRYPTION_KEY = bytes.fromhex("your-32-byte-hex-key")  # Optional

os.makedirs(UPLOAD_DIR, exist_ok=True)

def decrypt_data(encrypted_data, key):
    """Decrypt AES-256-GCM encrypted data"""
    decoded = base64.b64decode(encrypted_data)
    nonce = decoded[:12]
    ciphertext = decoded[12:]
    
    cipher = AES.new(key, AES.MODE_GCM, nonce=nonce)
    plaintext = cipher.decrypt_and_verify(ciphertext[:-16], ciphertext[-16:])
    return plaintext

@app.route('/api/upload', methods=['POST'])
def upload():
    # Verify API key
    if request.headers.get('X-API-Key') != API_KEY:
        return jsonify({"error": "Invalid API key"}), 401
    
    try:
        data = request.get_data()
        
        # If data is base64 encoded (encrypted)
        if data.startswith(b'eyJ'):  # JSON starts with {"
            # Not encrypted, parse directly
            batch = json.loads(data)
        else:
            # Encrypted data
            decrypted = decrypt_data(data, ENCRYPTION_KEY)
            batch = json.loads(decrypted)
        
        # Save to file
        hostname = batch.get('hostname', 'unknown')
        timestamp = datetime.now().strftime('%Y%m%d_%H%M%S')
        filename = f"{UPLOAD_DIR}/{hostname}_{timestamp}.json"
        
        with open(filename, 'w') as f:
            json.dump(batch, f)
        
        return jsonify({"status": "success", "file": filename}), 200
        
    except Exception as e:
        return jsonify({"error": str(e)}), 500

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, ssl_context='adhoc')  # Use proper SSL in production

Exécutez avec :

root@kitploit:~
pip install flask pycryptodome
python collector_server.py

Option 2 : Nginx avec téléversement basique

Créez /etc/nginx/sites-available/collector :

root@kitploit:~
server {
    listen 443 ssl;
    server_name collector.yourcompany.com;
    
    ssl_certificate /etc/ssl/certs/your-cert.pem;
    ssl_certificate_key /etc/ssl/private/your-key.pem;
    
    client_max_body_size 100M;
    
    location /upload {
        # API key validation
        if ($http_x_api_key != "your-secure-api-key") {
            return 403;
        }
        
        # Save uploaded files
        client_body_in_file_only on;
        client_body_temp_path /var/uploads/;
        
        # Pass to processing script
        proxy_pass http://localhost:8080;
        proxy_set_header X-File $request_body_file;
    }
}

Option 3 : Fonction AWS Lambda

root@kitploit:~
// index.js for AWS Lambda
const AWS = require('aws-sdk');
const crypto = require('crypto');
const s3 = new AWS.S3();

const BUCKET_NAME = 'your-network-data-bucket';
const API_KEY = process.env.API_KEY;
const ENCRYPTION_KEY = Buffer.from(process.env.ENCRYPTION_KEY, 'hex');

exports.handler = async (event) => {
    // Verify API key
    if (event.headers['X-API-Key'] !== API_KEY) {
        return {
            statusCode: 401,
            body: JSON.stringify({ error: 'Invalid API key' })
        };
    }
    
    try {
        let data = event.body;
        
        // Decrypt if needed
        if (!data.startsWith('{')) {
            // Encrypted data
            const encrypted = Buffer.from(data, 'base64');
            const nonce = encrypted.slice(0, 12);
            const ciphertext = encrypted.slice(12);
            
            const decipher = crypto.createDecipheriv('aes-256-gcm', ENCRYPTION_KEY, nonce);
            const decrypted = Buffer.concat([
                decipher.update(ciphertext.slice(0, -16)),
                decipher.final()
            ]);
            data = decrypted.toString();
        }
        
        const batch = JSON.parse(data);
        const key = `${batch.hostname}/${Date.now()}_${batch.batch_id}.json`;
        
        await s3.putObject({
            Bucket: BUCKET_NAME,
            Key: key,
            Body: data,
            ContentType: 'application/json'
        }).promise();
        
        return {
            statusCode: 200,
            body: JSON.stringify({ status: 'success', key })
        };
    } catch (error) {
        return {
            statusCode: 500,
            body: JSON.stringify({ error: error.message })
        };
    }
};

Stratégies de déploiement

1. Surveillance du réseau d'entreprise

Déployez des collecteurs sur les systèmes clés :

root@kitploit:~
# Points de terminaison Windows
gibson.exe collect --duration-seconds 3600 --upload-url https://sec.company.com/upload --api-key KEY

# Serveurs Linux
./gibson collect --duration-seconds 7200 --compress --upload-url https://sec.company.com/upload

2. Surveillance des instances cloud

Utilisez un service systemd sur Linux :

root@kitploit:~
# /etc/systemd/system/network-monitor.service
[Unit]
Description=Moniteur de connexions réseau
After=network.target

[Service]
Type=simple
User=monitor
ExecStart=/opt/monitor/gibson collect \
  --duration-seconds 3600 \
  --compress \
  --encrypt-key ${ENCRYPT_KEY} \
  --upload-url https://collector.internal/upload \
  --api-key ${API_KEY}
Restart=always

[Install]
WantedBy=multi-user.target

3. Déploiement en conteneur

root@kitploit:~
FROM rust:1.75 as builder
WORKDIR /app
COPY . .
RUN cargo build --release

FROM debian:bookworm-slim
RUN apt-get update && apt-get install -y ca-certificates
COPY --from=builder /app/target/release/gibson /usr/local/bin/
CMD ["gibson", "collect", "--duration-seconds", "3600", "--upload-url", "${UPLOAD_URL}"]

Exemples de sortie

Résumé des processus

root@kitploit:~
{
  "process_name": "chrome",
  "pid": 1234,
  "total_connections": 45,
  "unique_remote_ips": ["1.2.3.4", "5.6.7.8"],
  "cloud_providers": {
    "AWS": {
      "connection_count": 12,
      "services": {"CloudFront": 8, "S3": 4}
    }
  },
  "risk_score": 0.5
}

Analyse cloud

root@kitploit:~
{
  "AWS": {
    "provider": "AWS",
    "unique_ips": ["52.84.1.2", "54.230.3.4"],
    "unique_domains": ["d1234.cloudfront.net"],
    "services": {"CloudFront": 15, "S3": 3},
    "total_connections": 18
  }
}

Règles pare-feu (iptables)

root@kitploit:~
# Règles de pare-feu générées
# AUTORISER : fournisseurs cloud connus
iptables -A OUTPUT -p tcp -d 52.84.0.0/14 -j ACCEPT -m comment --comment "chrome vers AWS"
iptables -A OUTPUT -p tcp -d 104.16.0.0/12 -j ACCEPT -m comment --comment "firefox vers Cloudflare"

Considérations de sécurité

  1. Clés de chiffrement : utilisez des clés hexadécimales de 32 octets ou des mots de passe forts
  2. Clés API : faites-les tourner régulièrement, utilisez des variables d'environnement
  3. TLS : utilisez toujours HTTPS pour les téléversements
  4. Rétention des données : mettez en place des politiques de nettoyage automatique
  5. Contrôle d'accès : restreignez l'accès au serveur collecteur
  6. Surveillance : alertez sur les schémas suspects

Conseils de performances

  • Utilisez --interval-seconds 30 pour une surveillance à long terme
  • Activez la compression pour les téléversements distants
  • Taille de lot de 50 à 100 pour une utilisation réseau optimale
  • Désactivez les recherches DNS si inutiles (drapeau --enable-dns)

Dépannage

Mémoire élevée

  • Augmentez la taille du lot de téléversement
  • Réduisez l'intervalle de collecte
  • Utilisez la compression

Échecs de téléversement

  • Vérifiez la connectivité réseau
  • Vérifiez la clé API et l'URL
  • Consultez les logs du serveur
  • Assurez-vous de certificats SSL corrects

Processus manquants

  • Exécutez avec les permissions appropriées
  • Certains processus peuvent nécessiter des droits élevés
  • Vérifiez les restrictions spécifiques au système

Licence

MIT

Contribution

Les pull requests sont les bienvenues.

Télécharger l’outil
VariableDéfautDescription
AGENT_SERVERhttp://localhost:8080/uploadURL du point de terminaison de téléversement
AGENT_KEY(aucune)Valeur de l'en-tête X-API-Key
AGENT_INTERVAL5Intervalle d'interrogation des sockets en secondes
AGENT_BATCH200Enregistrements par lot de téléversement
AGENT_DURATION0Durée d'exécution en secondes (0 = exécution permanente)
AGENT_DNSfalseRésoudre les IP en noms d'hôte
AGENT_ESTABLISHEDtrueConnexions ESTABLISHED uniquement
AGENT_LOCAL_COPYfalseConserver une copie locale .jsonl en plus des téléversements
AGENT_COMPRESSfalseCompresser en gzip avant téléversement
AGENT_ENCRYPT_KEY(aucune)Chiffrement AES-256-GCM de la charge utile (mot de passe ou clé hexadécimale de 64 caractères)
AGENT_UA(défaut de reqwest)En-tête HTTP User-Agent
MéthodeDrapeauVitesseRéseauIdéal pour
Base ASN locale--asn-dbInstantanéAucunAnalyses répétées, environnements isolés
ARIN RDAP en direct--arin-lookupLent (par IP)OuiRecherches ponctuelles, pas de base locale disponible