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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
SSH-Remote-Code-Execution — SSH Zero-Day créé par ClumsyLulz | Kitploit
Outils/GitHubGitHub/sleepthegod/ssh-remote-code-execution
Génération de PayloadsExploitationExploitation de Binaires
GitHubsleepthegod/ssh-remote-code-execution

SSH-Remote-Code-Execution

SSH Zero-Day créé par ClumsyLulz

Voir le dépôt

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 →
1283218il y a 8 moisVérifié par Kitploit
Partager

Exécution de code à distance via SSH

SSH Zero-Day | Créé par ClumsyLulz & Taylor Christian Newsome

Résumé

Ce dépôt contient un programme C qui accepte des paramètres d'entrée et génère un paquet à envoyer à un serveur via le protocole SSH. Le programme alloue un tampon (buffer) pour stocker les données, les écrit dans un fichier et construit une chaîne de commande pour initier une connexion SSH vers un hôte et un port spécifiés à l'aide de la fonction system.

Problèmes identifiés

Plusieurs problèmes de sécurité et de stabilité existent dans l'implémentation actuelle :

  1. Dépassement de tampon (Buffer Overflow) : Seulement 28 octets sont alloués avec malloc, mais 29 octets sont écrits, ce qui peut provoquer une corruption mémoire ou des défauts de segmentation.
  2. Calcul incorrect de l'adresse de retour : L'adresse de retour est calculée en utilisant la longueur du paquet plutôt que la taille du tampon, ce qui donne une valeur invalide.
  3. Problème de chaîne de format : L'instruction printf pour l'adresse de retour contient une chaîne de format incorrecte, ce qui entraîne un comportement indéfini.
  4. Opérations d'entrée/sortie non vérifiées : Les valeurs de retour de open et write ne sont pas vérifiées, ce qui risque d'entraîner une perte de données ou des écritures incomplètes.
  5. Fuites mémoire : La mémoire allouée pour les pointeurs buffer et ssh n'est jamais libérée.
  6. Exécution de commandes non sécurisée : L'utilisation de system pour exécuter la commande SSH permet à des commandes arbitraires de s'exécuter avec des privilèges élevés, ce qui constitue un risque de sécurité sérieux.

Recommandations

Pour améliorer la sécurité et la fiabilité du programme, les modifications suivantes sont recommandées :

  • Allouer au moins 29 octets pour le tampon afin d'éviter le dépassement.
  • Utiliser la taille du tampon, et non la longueur du paquet, lors du calcul de l'adresse de retour.
  • Corriger la chaîne de format dans l'instruction printf pour l'adresse de retour.
  • Vérifier et gérer les valeurs de retour des appels open et write.
  • Libérer toute la mémoire allouée dynamiquement pour les pointeurs buffer et ssh.
  • Remplacer system par une alternative plus sûre comme execvp pour éviter d'exécuter des commandes arbitraires.

La mise en œuvre de ces correctifs améliorera la stabilité du programme et réduira les vulnérabilités de sécurité potentielles.


root@vmi2865841:~/tools/SSH-Remote-Code-Execution# cat /etc/issue
Debian GNU/Linux 12 \n \l

root@vmi2865841:~/tools/SSH-Remote-Code-Execution# docker run -it --rm \
>   -v /root/tools/SSH-Remote-Code-Execution:/poc \
>   i386/debian:wheezy bash
root@29bcb37807cf:/# cat /etc/issue
Debian GNU/Linux 7 \n \l

root@29bcb37807cf:/# cat /etc/shadow
root:*:17955:0:99999:7:::
daemon:*:17955:0:99999:7:::
bin:*:17955:0:99999:7:::
sys:*:17955:0:99999:7:::
sync:*:17955:0:99999:7:::
games:*:17955:0:99999:7:::
man:*:17955:0:99999:7:::
lp:*:17955:0:99999:7:::
mail:*:17955:0:99999:7:::
news:*:17955:0:99999:7:::
uucp:*:17955:0:99999:7:::
proxy:*:17955:0:99999:7:::
www-data:*:17955:0:99999:7:::
backup:*:17955:0:99999:7:::
list:*:17955:0:99999:7:::
irc:*:17955:0:99999:7:::
gnats:*:17955:0:99999:7:::
nobody:*:17955:0:99999:7:::
libuuid:!:17955:0:99999:7:::
root@29bcb37807cf:/# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
root@29bcb37807cf:/# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0@if11: <BROADCAST,MULTICAST,UP,LOWER_UP,M-DOWN> mtu 1500 qdisc noqueue state UP
    link/ether 1e:13:2e:66:6f:69 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
root@29bcb37807cf:/# cd /bin/
root@29bcb37807cf:/bin# ls
bash   chmod  dash  df     dnsdomainname  egrep  findmnt  gzexe     ip     ls     mknod   mount       nisdomainname  ping6  readlink  run-parts  sh.distrib  stty  tailf     touch   uname       which         zcmp    zfgrep  zless
cat    chown  date  dir    domainname     false  grep     gzip      ln     lsblk  mktemp  mountpoint  pidof          pwd    rm        sed        sleep       su    tar       true    uncompress  ypdomainname  zdiff   zforce  zmore
chgrp  cp     dd    dmesg  echo           fgrep  gunzip   hostname  login  mkdir  more    mv          ping           rbash  rmdir     sh         ss          sync  tempfile  umount  vdir        zcat          zegrep  zgrep   znew
root@29bcb37807cf:/bin# df -h
Filesystem      Size  Used Avail Use% Mounted on
overlay         1.4T  977G  346G  74% /
tmpfs            64M     0   64M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1       1.4T  977G  346G  74% /poc
/dev/sda1       1.4T  977G  346G  74% /etc/resolv.conf
/dev/sda1       1.4T  977G  346G  74% /etc/hostname
/dev/sda1       1.4T  977G  346G  74% /etc/hosts
tmpfs            48G     0   48G   0% /proc/acpi
tmpfs            64M     0   64M   0% /proc/interrupts
tmpfs            64M     0   64M   0% /proc/kcore
tmpfs            64M     0   64M   0% /proc/keys
tmpfs            64M     0   64M   0% /proc/timer_list
tmpfs            48G     0   48G   0% /sys/firmware
root@29bcb37807cf:/bin# cat /proc/keys
root@29bcb37807cf:/bin# cat /etc/resolv.conf
# Generated by Docker Engine.
# This file can be edited; Docker Engine will not make further changes once it
# has been modified.

nameserver 1.1.1.1
nameserver 8.8.8.8
nameserver 213.136.95.10
nameserver 213.136.95.11
search .
Télécharger l’outil