Pentesting, ataque e defesa de aplicativos da Web com bWAPP

O bWAPP é um site que foi desenvolvido com vulnerabilidades para que iniciantes e especialistas possam realizar pentesting e práticas de hacking ético. Ele pode ser hospedado em Linux ou Windows em Apache ou IIS e MySQL. É compatível com WAMP ou XAMPP. Outra possibilidade é usar uma máquina virtual que funcione para VMware ou para VirtualBox.

O bWAPP é gratuito e aberto, podendo ser baixado em duas versões, uma para uso local e outra para instalação em máquina virtual. O site é desenvolvido em PHP e MySQL, portanto, é multiplataforma. Baixamos install bWAPP localmente, se quisermos instalar em uma máquina virtual o projeto é Bee-Box.

Bee-box é uma máquina virtual Linux com tudo pré-instalado. Desta forma, só temos que explorar todas as vulnerabilidades do bWAPP sem correr o risco de desfigurar o site do bWAPP. Também com a máquina virtual, podemos tentar obter acesso root.

bWAPP tem mais de 100 bugs Para investigar e descobrir, ele cobre todas as principais vulnerabilidades conhecidas da web, incluindo todos os riscos de segurança. O projeto não apenas permite que vulnerabilidades sejam descobertas, mas também possibilita encontrar a solução.

Neste tutorial vamos instalar a versão Bee-Box do bWAPPPara fazer isso, descompactamos o arquivo que baixamos e criamos uma pasta com muitos arquivos vmdk em nosso servidor local. A seguir, criaremos a máquina virtual atribuindo uma versão Linux Ubuntu de 32 bits.

Em seguida, devemos selecionar o arquivo baixado chamado bee-box.vdmk

Antes de iniciar a máquina virtual, lembre-se que teremos que configurar a rede, faremos isso a partir de Configuração para ter um endereço IP e poder acessar a máquina virtual de outro computador.

Clicamos em criar e depois em Iniciar, para que a máquina virtual comece a funcionar, uma vez carregada veremos o desktop.

Em seguida, vamos abrir o terminal para ver o que o IP está usando o comando ifconfig.

Podemos ver que o IP neste caso é 192.168.0.14, se testarmos esse IP no computador fora da máquina virtual, poderemos acessar a web:

 http://192.168.0.14/bWAPP
E o resultado será o seguinte:

Então podemos começar com a página de login, por padrão o usuário é bee e a senha é bug para acessar o painel de controle. Dentro do menu Bugs, teremos vários exemplos para usar e testar algumas vulnerabilidades, das mais simples às mais complexas. Vamos ver alguns vulnerabilidades de acordo com o tipo de ataque.

As vulnerabilidades são divididas em categorias ou capítulos quais são os seguintes:

Injeções A1Aqui estão agrupadas as vulnerabilidades de Injeção de HTML, SQL, XSS, XPATH e todos aqueles que têm a ver com o envio de parâmetros por meio de navegadores.

Autenticação de Pausa A2 e SessõesAqui parece violar captchas e formulários de login usando técnicas de substituição de URL, captura de parâmetro e uso de ID de sessão.

A3 Cross Site Scripting (XSS)Aqui está o Vulnerabilidades relacionadas a XSS que não são muito perigosos, mas sim irritantes.

Objetos e diretórios A4 InsegurosAqui é sobre alterar parâmetros em links de código antes de enviar o formulário.

Segurança e configuração A5Aqui veremos alguns ataques como DDOS e ataque médio, que procurará afetar serviços como correio e serviços que estão funcionando.

Exposição A6 de dados sensíveisAqui veremos uma série de vulnerabilidades que permitem os dados do servidor são expostos no navegador.

Estas são algumas das vulnerabilidades, neste tutorial vamos nos concentrar nos ataques mais conhecidos e na possibilidade de assumir o controle do servidor.

1. Injeção de HTML


HTML Reflected Injection é o que permite inserir o código HTML em um campo de texto e exibi-lo na web. Selecionamos a primeira Injeção pelo método GET, temos duas caixas de texto, se inserirmos, por exemplo, um link em cada uma:
 Mensagem urgente | Suas Vendas
Ao enviar o formulário veremos a seguir que ambos os links se mostram e o deixamos esperando que alguém clique. Também podemos tentar o método POST.

PROLONGAR

Outro problema de não controlar a entrada de dados HTML é que poderíamos enviar um formulário fazendo o usuário acreditar que deve fazer o login ou inserir alguns dados e enviar esses dados para outra página.

 Você foi desconectado. 
Digite seu nome de usuário e senha para continuar usuário:
chave:

PROLONGAR

2. injeção SQL


Vamos ver outro ataque como o SQL Injection, se pesquisarmos BUG pela opção SQL Injection (GET / Search), nesta seção podemos pesquisar filmes, por exemplo Homem de Ferro, resultando nos dados do filme.

PROLONGAR

Então podemos tentar injetar código SQL para testar se o banco de dados está vulnerável, para isso usamos o seguinte código que retornará a lista de bancos de dados se:

 iron man 'union select 1, table_name, 3,4,5,6,7 from INFORMATION_SCHEMA.TABLES onde table_schema = database () -'
O resultado é a lista de tabelas, portanto, o banco de dados está vulnerável:

PROLONGAR

Sabendo que o banco de dados está vulnerável, podemos usar algumas técnicas que vimos no tutorial SQLMAP, ferramenta SQL Injection e Ethical database hacking, onde chegamos ao nível raiz procurando as chaves do administrador.

A partir da janela do terminal, escrevemos o seguinte comando, usamos a página que estamos procurando para o filme, pois tem um parâmetro que pode ser vulnerável.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --dbs

Mostra-nos as bases de dados, uma delas é o bWAPP, portanto tentaremos obter a lista de tabelas sabendo que o motor da base de dados é MySQL 5. Para obter a lista de tabelas utilizaremos o seguinte comando.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -tables

Podemos ver que ele lista todas as tabelas, não só da web, mas também do sistema, para que possamos obter os dados do administrador do Linux. Também podemos explorar a sessão PHP usando Firebug, podemos ver o número da sessão, pois ao criar um usuário ou efetuar login ou gerar algum conteúdo dinâmico como uma pesquisa, a resposta do servidor criará uma PHPSession.

PROLONGAR

Usando o comando --Comercial e a sessão ou com o comando sem sessão poderemos ver os usuários do sistema.

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --users
Outro comando de opção com ID de sessão:
 sqlmap -u “http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" --cookie = ”PHPSESSID = e6f734f935bca3bf86013add7ea2e3f9; security_level = 0” --usuários

A seguir, procuraremos os usuários do sistema usando o seguinte comando:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" dba --is-dba --privileges --dbs -dump 
Como resultado obteremos tabelas onde existe uma senha, uma delas são os usuários que possuem os dados de administrador e a outra são os heróis da mesa e os usuários (usuários) que usaremos para fazer o login como usuários.

A tabela de usuários contém os dados do administrador do site:

A seguir vamos obter a senha root dos usuários que encontramos acima, para isso usamos o seguinte comando:

 sqlmap -u "http://192.168.0.14/bWAPP/sqli_1.php?title=iron&action=search" -f -b --current-user --is-dba --is-dba --privileges --dbs - jogar fora
Ao final dos comandos por meio de um ataque de força bruta, descobrimos que a senha do administrador do sistema é bug e o usuário é root.

Vamos tentar a partir do terminal, conectar via ssh à máquina virtual para assumir o controle remoto do computador usando o seguinte comando:

 ssh [email protected]
O resultado usando o usuário root e a senha do bug é a conexão com permissões de administrador para a máquina virtual.

A seguir testamos se podemos entrar na seção de heróis e usuários com os dados obtidos anteriormente, por exemplo o usuário neo e a senha trindade.

Conseguimos acessar os dados deste usuário sem problemas. Se usarmos a tabela de usuários, também podemos fazer o login.

3. Injeção de HTML / XPATH


Um dos ataques menos pensados ​​é através daqueles navegadores que permitem a edição de código, se mudarmos um link para um site malicioso, o usuário não perceberá e a mudança será perdida quando a web for atualizada.

Por exemplo, vamos alterar a senha e clicar com o botão direito para abrir um Inspetor ou editor de código e alterar o url change_password.php para http://google.com e fechar o editor

PROLONGAR

Assim, quando o usuário clicar naquele link, será redirecionado para outra página, o que é muito ineficaz, pois ao atualizar ou alterar a página, o link volta ao original. Devemos verificar isso antes de clicar em um link que nos leva a um site seguro ou dentro do mesmo domínio.

4. Injeção do lado do servidor


A injeção no lado do servidor é quando um site está vulnerável e permite inserir comandos de um idioma ou sistema operacional para executar ações no servidor.

Um invasor envia um código malicioso ou um comando por meio de um campo de texto de um aplicativo da web que é executado pelo servidor da web. Vamos ver um exemplo que permitirá que você liste diretórios usando o comando ls do Linux, que escreveremos da seguinte maneira:

 

PROLONGAR

O resultado será a lista de todos os diretórios do servidor, portanto, devemos verificar se nenhum comando pode ser inserido.

PROLONGAR

Uma das ferramentas que o projeto bWAPP nos propõe é o ZAP (Zed Attack Proxy), que vimos no tutorial Verificar vulnerabilidade de um site com ZAP, é amplamente utilizado para escanear vulnerabilidades e realizar testes de penetração em sites. Podemos baixar a versão mais atualizada no seguinte link:

BAIXAR ZAP

Escolha a versão de acordo com o sistema operacional que possuímos ou uma versão multiplataforma desenvolvida em Java. Uma vez instalado, tentaremos fazer a varredura na web do bWAPP com o ZAP e procurar por algumas vulnerabilidades.

PROLONGAR

Quando iniciarmos o ZAP e realizarmos uma varredura, veremos que ele detecta a maioria das vulnerabilidades, para definir as regras de varredura podemos ir ao menu Analisar> Regras de varredura e então clicamos duas vezes em Política Padrão.

Vejamos em uma das páginas de login constatou-se que o nível de usuário é enviado como parâmetro, neste caso o administrador.

PROLONGAR

Também podemos usar os filtros como vimos no tutorial do ZAP para fazer injeção de SQL e outros ataques.

A segurança do aplicativo da Web é um aspecto muito importante além de um bom design e conteúdo. O bWAPP é uma plataforma que nos permitirá conhecer e testar muitas vulnerabilidades, para depois aplicar esse conhecimento em nosso site e também serve para que especialistas, desenvolvedores e alunos possam descobrir e prevenir vulnerabilidades na web.

O bWAPP é amplamente usado para testes de penetração de aplicativos da web e projetos de hacking ético. O bWAPP cobre todas as principais vulnerabilidades conhecidas da web, incluindo todos os riscos do projeto OWASP Top 10, que coleta vulnerabilidades de ano para ano em 10 categorias.

Por fim, recomendamos este artigo com uma explicação sobre o tipos de ataques cibernéticos.

Você vai ajudar o desenvolvimento do site, compartilhando a página com seus amigos

wave wave wave wave wave