Annonce

Réduire
Aucune annonce.

Kali Bonus I-Metasploit Commande et usage

Réduire
X
 
  • Filtre
  • Heure
  • Afficher
Tout nettoyer
nouveaux messages

  • Tutoriel Kali Bonus I-Metasploit Commande et usage

    [Bonus] Kali-Linux - Metasploit – L’outil de test d’intrusion





    Outil pour tester l’intrusion des systèmes par excellence où tout est automatiser et modulable à l’instar de la communauté qui l’a fait progresser via l’open source et Rapid 7 qui a bien voulu laisser un modèle free, sachant qu’il n’avait pas le choix s’il voulait encore tirer parti du projet open source de Metasploit et de sa bibliothèque principale de codes malveillants.
    Metasploit tire donc sa force de la communauté, la loi du plus grand nombre mais aussi de son système innovant en matière de centralisation de toutes les données récoltées qui en fait un produit unique. Possédant tous les outils intégrés pour faire de l’énumération, recherche de vulnérabilités, exploitation,… il en fait un outil redoutable et facile d’utilisation lorsque l’on sait l’utiliser à sa juste valeur.


    Pour cette première approche tactile, je pensais voir avec vous quelques commandes de base suivit d’une énumération et exploitation classique avec Metasploit. A savoir que la plupart du temps vous serez amené à effectuer la même technique et les mêmes commandes.


    Pour ce tutoriel je supposerais que vous avez installé Metasploit sur vos machines si ce n’est pas le cas, il est aisé sur le site Rapid 7 de trouver divers tutoriels en français sur la manière de l’installer qui est d’une extrême facilité.

    https://www.rapid7.com/fr/

    Je ne m’attarderais pas non plus sur Armitage qui est juste une évolution encore plus automatisé de Metasploit mais je vais me centrer surtout sur la console MSF.


    Introduction à MSFconsole



    Une fois que vous arriverez à comprendre le concept et la structure claire des commandes, il sera très facile d’utiliser MSFconsole.

    Le Framework Metasploit est constitué d’un noyau et de sa base (comme un OS classique), à l’intérieur il y a des exploits, des charges utiles, des modules (classes Ruby), le plugin de scripts, et des interfaces utilisateurs multiples.
    Le Framework Metasploit contient également d'excellents outils d'information de collecte appelés modules auxiliaires. Ces modules auxiliaires peuvent être utilisés pour le balayage de ports, identification de service, mot de passe sniffing et Windows énumération patch. Metasploit est hautement personnalisable pour les utilisateurs avancés et peut même être personnalisé pour répondre à vos besoins personnalisés en écrivant vos propres exploits, modules, plugins et scripts.

    Pa exemple, Si Metasploit ne fournit pas le module de collecte d'informations dont vous avez besoin, par défaut, vous pouvez simplement l’écrire vous-même (connaissance en codage Ruby obligatoire).

    Pourquoi MSFconsole ? Simplement pour sa stabilité d’utilisation mais également pour sa possibilité d’utiliser des commandes externes comme PING. En effet, Metasploit ne permet pas uniquement d’utiliser ses propres outils internes et cela apporte une dimension globale pour le pentester qui n’est pas contenu dans une seule optique d’approche de sa cible.


    Commande Metasploit



    On va partir du fait que vous êtes sur Kali Linux 2016 2.0 (la plupart des utilisateurs sont dessus) et ainsi notre étude des commandes partira de ce postulat.
    La première chose à faire comme tous bons Linuxien qui se respecte est de faire la mise à jour du produit ou outil dans notre cas.

    Ouvrez une session, un terminal en mode administrateur et tapez dedans :

    Code:
    msfupdate
    Cela permet de mettre à jour toutes les dépendances de Metasploit vers la dernière version, cependant et ne vous leurrer pas il se pourrait que vous soyez confronter à certaines erreurs lors de la mise à jour et plus tard lors de sa première mises en marche.

    La mise à jour dit que nous devrions attendre les mises à jour hebdomadaires
    Parfois des erreurs comme:

    Une erreur est survenue lors de l'installation pg (0.18.3), et Bundler ne peut pas continuer.

    Assurez- vous que
    Code:
    gem install pg
    ou
    Code:
    gem install pg -v 'la dernière version'
    (ex: gem install pg -v '3.2.19' ) réussit avant le regroupement.
    Cette erreur avait quelque chose à voir avec PostgreSQL et pour résoudre ce problème d'abord essayer d'exécuter les commandes suivantes:

    Code:
    apt-get update
    apt-get upgrade
    apt-get dist-upgrade
    Rappelez-vous que nous sommes sur Kali Linux. En mettant à jours la totalité du système kali, on pourra d’ores et déjà entériner la majorité des erreurs du à un paquet obsolète. En effet, les erreurs souvent rencontré sont des paquets non mis à jour soit car la connexion était mauvaise ce jour ci, soit car le site hébergeur n’a pas donné suite ou simplement parceque vous avez oubliez de faire une mise à jour. Alors l’outil ne pourra pas lancer certaines commandes car il n’aura pas accès à certains paquets indispensables à son bon fonctionnement. Ce qui est bien fait c’est qu’il vous désignera le coupable avec une belle ligne dans votre terminal, il vous suffira alors de la tapez sur Google et certainement la communauté aura déjà contourné ce problème et vous délivrera une réponse toute faite.


    Maintenant, tapez :

    Code:
    msfconsole
    Attendez un petit peu et l’interface d’utilisation devrait apparaitre.
    Pour se connecter directement à la base de données de Metasploit à partir de Kali 2.0 :

    Code:
    db_connect -y /etc/dradis/database.yml
    db_status
    Si vous n’êtes pas connecter, on peut fixer le problème en tapant tout d’abord ceci :

    Code:
    msfdb
    service postgresql start
    msfdb init



    Si vous avez un souci du genre :

    “a database appears to be already configured skipping initialization”

    Suite à avoir essayé de lancer une connection sur votre database alors il suffit de tapez directement sur un terminal :

    Code:
    msfdb delete
    msfdb init
    Il va initialiser un nouveau fichier database que vous pourrez appeler sur votre terminal :

    Code:
    cat /usr/share/metasploit-framework/config/database.yml

    Code:
    msf> db_status
    Et voila vous êtes connecter.



    Il n’est pas évident de connaître toutes les commandes et fonctions que Metasploit possèdent c’est pourquoi vous serez amener à utiliser souvent help.

    Pour en savoir un peu plus, tapez help :

    Code:
    msf> help
    Si nous souhaitons avoir des informations sur une commande précise utilisez help suivit du nom de la commande ainsi :

    Code:
    msf> help set
    Simple et efficace.


    Récapitulatif



    Chaque module est composé de deux parties. La première contient des éléments d'information (description, références, etc.) ainsi que des éléments de configuration (architecture processeur ciblée, taille maximale de la charge utile, port, etc.). Ils sont affichés dans msfconsole lorsque l'on tape info. Les éléments qui sont à la main de l'utilisateur sont affichés lorsque l'on tape show options. La seconde partie du module contient la partie exécutable qui est généralement découpée en fonctions.

    Entrons dans le vif du sujet



    On va aborder dans ce chapitre, les commandes usuelles, celles que vous utiliserez le plus souvent avec Metasploit, cela permettra de vous rendre opérationnel rapidement.
    Nous allons voir :


    •Les commandes de base: la recherche, l'utilisation, retour, aide, information et sortie (search, use, back, help, info and exit).
    •Exploit commandes: set pour définir des variables et montrer les options disponibles avec l’exploit, les cibles, les charges utiles (payloads), les encodeurs, NOPS et les options avancées d'évasion.
    •Exploit commandes d'exécution: l'exécution et l'exploitation des exploits contre une cible.


    Sur MSFconsole vous allez tapez le terme use suivit de l’exploit identifié. Cet exploit aura pu être identifié par rapport à l’énumération effectué en aval de l’exploitation. Nous verrons dans un second tutoriel comment utilisez Metasploit pour faire ce travail. En attendant, j’ai largement mis l’accent dans divers articles et tutoriels sur comment faire une recherche complète sur cible qui est la meilleur façon de procéder afin d’avoir le maximum d’informations collectés et disponibles pour une exploitation avantageuse.



    Si vous désirez utiliser un exploit, il faudra tapez sur msf :

    Code:
    use [Nom de l’exploit]
    Nous entrons alors dans l’exploit qui est composée de plugin et payload associé.
    Exemple:

    Code:
    msf> use exploit/windows/fileformat/ms14_017_rtf
    msf exploit(ms14_017_rtf)> help
    Quand il y a un exploit actif comme ici, nous pouvons utiliser la commande help pour obtenir une liste des commandes pour utiliser l’exploit. Quand un exploit est sélectionné avec la commande use nous pouvons récupérer des informations comme le nom, la plate-forme, l'auteur, les cibles disponibles et beaucoup plus en utilisant aussi la commande info.

    Idem

    Code:
    msf exploit(ms14_017_rtf)> info
    Il faut comprendre que Metasploit est une source d’exploits qui ne cesse de grossir grâce à la communauté et ceci indéfiniment. Par conséquent la commande search va permettre de travailler sur le titre d’un élément d’exploitation. Imaginons que l’on souhaite faire des recherches sur flash, on tape alors simplement dans la console MSF :

    Code:
    msf> search flash

    Vous aurez alors tous les exploits recensées par le Framework traitant des failles sur le logiciel Flash Player. Cela va des plus anciens au plus récent. Ne vous attendez pas à avoir des Zero-Day payants qui ne seront pas partagé sur la plateforme.


    Si vous voulez recherchez des exploits à l’aide de mots clés (plus judicieux et permettant d’affiner les recherche dans cet amas d’exploits), vous pouvez également utiliser la commande de recherche avec un mot-clé pour rechercher un auteur spécifique, un ID OSVDB ou une plate-forme. La commande recherche d'aide affiche les mots-clés disponibles dans la MSFconsole comme suit:


    Code:
    msf> help search
    Exemple:
    msf> search cve :2015

    Cela nous renvoie tous les exploits avec un ID de CVE à partir de 2015.


    Quelques notions essentielles avant de continuer



    Exploit
    Un exploit est le moyen par lequel un hacker ou un testeur de pénétration prend avantage sur une faille dans un système, une application ou un service. Un attaquant utilise un exploit pour attaquer un système et le résultat de cette attaque entraîne exécution des codes de cet exploit comme son auteur (le développeur de cet exploit) l’avait programmé. La majorité des Exploits exploite les failles du type : Buffer overflows (dépassement de mémoire), les vulnérabilités des applications Web (telles que l'injection SQL), et les erreurs de la configuration dans les applications.


    Payload
    Un Payload (charge utile) est le morceau du code que nous voulons que le système exécute, les payloads sont livrées par le Framework, vous serez là juste pour le sélectionné..
    Par exemple, reverse Shell c’est un payload qui crée une connexion entre la machine cible à celle de l'attaquant a renvoya à celle-ci une invite de commande DOS (on appellera plus dans le chapitre 5), tandis que bind Shell est un payload qui «Lie» une invite de commande à un port d'écoute sur la machine cible, elle reste là à l’écoute pour attendre patiemment que le pirate se connecter dessus.
    Un Payload peut aussi être quelque chose aussi simple que quelques commandes à exécuter sur le système d'exploitation cible.

    Shellcode
    Le Shellcode est constitué un ensemble des instructions utilisées par Payload lors de l'exploitation. Shellcode est généralement écrit en assembleur dans la plupart des cas, si le Shellcode est bien exécuté, une invite de commande Shell ou une Meterpreter sera fourni à l’attaquant.

    Module
    Les modules sont des parties d’application qu’on importe et on peut utiliser dans le Framework Metasploit. Dans certains cas on est obligé soit d’utiliser un exploit module: il s’agit un composant logiciel pour effectuer l'attaque et par fois on utilise le module auxiliaire pour augmenter la performance des actions comme le scannage, énumération de système. Avec ce système des modules interchangeables MSF est très dynamique.


    Listener
    Un listener est un composant de Metasploit qui attend une connexion entrante sur la machine de l’attaquant. Par exemple, après que la machine cible a été exploitée, elle peut appeler la machine attaquante par le baie de l’Internet. C’est le Listerner qui gère ces genres d’affaire, le Listener entend sur la machine d'attaquant pour être contacté automatiquement sur le système exploité quand celle-ci se met en ligne.


    Commandes pour exploiter



    Nous allons maintenant entrer dans le vif du sujet c'est-à-dire l’exploitation de la vulnérabilité.

    Pour qu’il y est faille et surtout connaissance de cette dernière, il faut bien évidement que l’on est chercher à la trouver sur la cible.

    Dans le chapitre précédent, nous avons appris les commandes Metasploit pour activer un exploit sur la MSFconsole et modifier le contexte de ligne de commande pour l'exploit avec la commande use. Nous allons examiner comment montrer les paramètres de l'exploit et comment les modifier avec la commande set. Nous chercherons aussi à la façon de montrer les charges utiles, des cibles, des options avancées et d'évasion. La commande help show affiche les paramètres disponibles:

    Code:
    msf> help show
    La commande show options vous montrera les paramètres disponibles pour un exploit si elle est utilisée lorsque la ligne de commande est en exploiter le contexte. Prenons l'exploit adobe_flash_shader_drawing_fill et jetons un regard sur les options avec la commande suivante:

    Code:
    msf> Use exploit/multi/browser/ adobe_flash_shader_drawing_fill
    Suivi par la commande show options:

    Code:
    msf > show options



    Nous allons prendre un exploit récent et analyser à l’aide de screen pas à pas les commandes ensemble.


    Je rappelle que tout ceci constitue une introduction dans le monde de Metasploit et que nous verrons par la suite comment faire de l’énumération avec Metasploit puis comment utiliser le fameux scanner Nexpose et surtout comment utiliser la database afin de faire coïncider les résultats.


    Le but étant de vous fournir des bases sérieuses et concrètes afin de pouvoir par la suite utiliser avec rapidité et efficacité l’arsenal du Framework pour vos futurs Pentest.


    Personnellement, je ne l’ai utilisé qu’en dernier recours ou par dépit, je travaille généralement à la main ou avec des Tools sélectionner en rapport avec ce que j’ai trouvé comme failles. Les meilleurs que je connais créé leurs propres exploits ou en adapte à Mano afin de contourner certaines failles assez difficile à exploiter ce qui constitue la plupart du temps à des exploits en ligne sur DB-exploit ou autre gratuit ou payant suivant la difficulté du payload codé.


    Lançons notre Metasploit :

    Code:
    /etc/init.d/postgresql start
    msfdb init
    msfconsole
    msf > search cve:2015
    Prenons un exploit :

    Code:
    msf> use exploit/windows/smb/ms15_020_shorcut_icon_dllloader
    msf exploit(ms15_020_shorcut_icon_dllloader) >
    Une petite recherche Google donne :

    https://technet.microsoft.com/fr-fr/.../ms15-020.aspx

    On comprend qu’il s’agit d’une vulnérabilité de 2015 qui met en place un fichier dll compromis qui va permettre l’exécution de code à distance (Remote Execution File).

    https://www.rapid7.com/db/modules/ex...icon_dllloader

    Ce module exploite une vulnérabilité dans le patch MS10-046 à abuser (encore une fois) la manipulation des fichiers de Windows raccourci (.LNK) qui contiennent une ressource icône pointant vers une DLL malveillante. Cela crée une ressource SMB pour fournir la charge utile et la détente, et génère un fichier LNK qui doit être envoyée à la cible. Ce module a été testé avec succès sur Windows 2003 SP2 avec MS10-046 installé et Windows 2008 SP2 (32 bits) avec MS14-027 installés.

    On a donc la description, la source, l’auteur et surtout on a grâce à show options les informations que l’on doit fournir au module pour qu’il soit activer.
    On va choisir un autre exploit et on va avancer dans son développement.

    Tapez back pour revenir à msf>.

    Code:
    msf > Use exploit/multi/browser/ adobe_flash_shader_drawing_fill
    Puis comme tout à l’heure :

    Code:
    msf > show options
    L’exploit contient un total de 6 options dont seulement 2 sont nécessaires:

    • Retries
    • SRVHOST (obligatoire)
    • SRVPORT (obligatoire)
    • SSL
    • sslcert
    • URIPath


    On va réglez les deux principaux afin que le module soit prêt ainsi :
    set SRVHOST 192.168.0.100 pour changer la valeur de SRVHOST à 192.168.0.100
    set SRVPORT 80 pour changer le port de 8080 vers 80



    On vérifie que tout s’est bien passé avec show options.

    Ensuite, on va tapez :

    Code:
    show payloads



    Cette commande va nous montrer tous les payloads (charges utiles) disponibles et compatibles avec l’exploit activé.

    Choisir et configurer un payload (code qui s'exécutera après s'être introduit dans la machine cible, par exemple pour avoir accès à un Shell distant ou un serveur VNC).
    Pour utiliser une certaine charge utile, vous devez utiliser la commande set suivie du nom de la charge utile.

    Exemple :

    Code:
    msf > use windows/smb/ms08_067_netapi
    msf exploit(ms08_067_netapi) > set payload windows/meterpreter/reverse_tcp
    payload => windows/meterpreter/reverse_tcp
    Explication
    Le pare-feu de la victime bloque / filtre tous les ports, il est donc impossible d'établir une connexion tcp à cet ordinateur particulier. Cependant ledit ordinateur est autorisé à établir des connexions à des hôtes distants (pas de filtrage sortant).


    On peut donc exploiter d'une manière telle que la victime lance la connexion tcp elle-même à l'attaquant. L'attaquant à son tour exécute un auditeur, en attendant l'appel entrant.


    C’est un Shell qui exécute cela dans ce cas « reverse tcp », il est codé pour accomplir cette tâche ci-dessus, cependant il faudra alors l’encoder de manière à l’obfusquer des différents AV et AM que pourrait avoir le système cible.


    Montrer les cibles



    La commande show targets (montrer les cibles) retourne une liste des systèmes d'exploitation qui sont vulnérables à la sélection exploit. Quand nous utilisons la commande, nous obtenons la sortie suivante pour adobe_flash_shader_drawing_fill :

    Code:
    show targets
    Pour choisir la cible simplement set target et le numéro correspondant, bien entendu il faut qu’il soit en adéquation avec le payload (si Windows ou linux), ici cela sera :

    Code:
    Set target 0
    En effet, après avoir visionné les payloads on a mis en place un Shell reverse sur du Windows.



    Afficher les paramètres avancés



    En utilisant la commande show advanced, nous pouvons avoir un regard sur les options avancées pour l'exploit.

    Code:
    show advanced
    Utilisez la commande set suivie par le paramètre avancé et la nouvelle valeur pour modifier les paramètres avancés:

    Code:
    set displayablepayloadhandler true




    Afficher les encodeurs


    La commande show encoders renvoi les codeurs compatibles. Encoders est utilisé pour échapper à de simples signatures IDS/IPS qui sont à la recherche de certains octets connu du payload.

    Voici un lien où le principe est détaillé afin d’avoir une bonne compréhension du principe.


    http://igm.univ-mlv.fr/~dr/XPOSE2009...S_IPS/IDS.html


    Pour utiliser un encodeur utiliser la commande set suivie du nom du codeur.


    Afficher les générateurs disponibles NOPS


    La commande show nops retourne une liste des générateurs NOP. Un NOP est utilisé pour changer le modèle d'un sled NOP afin de contourner IDS simples / signatures IPS des sled NOP communs. Les générateurs NOP commencent avec l'architecture du CPU.
    En sécurité informatique, un, NOP slide est une séquence de NOP (non-opération) des instructions destinées à "glisser" le flux d'exécution d'instructions du processeur à son final souhaitée, la destination à chaque fois que le programme des branches à une adresse mémoire partout sur le sled.


    Pour utiliser un générateur de NOP utiliser la commande set suivie du nom du générateur de NOP. Lorsque l'exploit est lancé les sled NOP seront pris à partir du générateur de NOP.

    Code:
    msf > use nop/php/generic msf nop(generic) > show options ...show and set options... msf nop(generic) > run

    Afficher les différents types d’évasion


    La commande show evasion retourne une liste de techniques d'évasion disponibles pour le payload sélectionner.

    Code:
    show evasion
    Pour modifier les paramètres evasion utilisez la commande set suivie par le paramètre de l'évasion et la nouvelle valeur.


    Commandes Metasploit pour exploiter l'exécution


    Lorsque toutes les options nécessaires ont été fixées pour l'exploit, y compris le payload et les paramètres avancés comme un générateur de NOP, les options d'évasion et l'encodage, l'exploit est prêt à être exécuté. L'exploit peut être exécuté à l'aide de deux commandes:

    Code:
    run
    et
    exploit
    Il suffit de taper le terme dans le msfconsole et l'exploit se déroulera.
    Ainsi se termine ce premier chapitre concernant les commandes de Metasploit, voici les chapitres suivants qui seront érigé en temps et en heures suivant mes prérogatives : sport, travail, famille,…

    1. Kali Bonus I - Metasploit Commande et usage
    2. Kali Bonus II - Metasploit Énumération Date : 30/09/2016
    3. Kali Bonus III - Metaspoit Scanner de Vulnérabilités "A suivre"
    4. Kali Bonus IV - Metasploit utilisation et ajout Exploit "A suivre"
    5. Kali Bonus V - Metasploit utilisation de la base de données "A suivre"
    6. Metasploit VI - Récapitulatif et commande avancée (écrire un module) "A suivre"
    7. Metasploit VII - Armitage la facette GUI de Metasploit "A suivre"


    PS : Prenez bien en compte ses bases car dans les prochains chapitres vous allez mangez abondamment des commandes supplémentaires, ceci tenant comme acquis. Le but étant de pouvoir comprendre et surtout d'utiliser intelligemment de manière autonome Metasploit.

    Merci à tous pour avoir pris le temps de lire ce tutoriel et à bientôt.
    Dernière modification par DreAmuS, 09 septembre 2016, 20h47.

  • #2
    Merci

    Commentaire

    Chargement...
    X