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






sexta-feira, 11 de dezembro de 2015

Comandos que NUNCA devem ser executados no Linux

Toda distribuição Linux por padrão durante a instalação, são criadas 2 contas de usuário sendo a do seu próprio usuário que possui privilégios limitados e a conta de root que possui todos os privilégios, uma vez utilizada conta de root incorretamente pode provocar diversos danos ao sistema, mostrarei agora quais os comandos que NUNCA devem ser executados no Linux como root e nem com permissão de sudo pelo usuário

Comandos

rm -rfv /  -  Com este comando o diretório raiz do sistema será removido de forma recursiva

dd if=/dev/zero of=/dev/sda - Este comando irá formatar o HD /dev/sda onde possui o sistema instalado

mkfs.ext4 /dev/sda - Irá formatar o HD igual o comando acima

mv ~ /dev/null - Irá mover o diretório padrão do usuário para nulo

mv / /dev/null - Irá mover o diretório raiz para nulo

qualquer_comando > /dev/sda - Irá sobrescrever o HD

rm -f /usr/bin/sudo; rm -f /bin/su - Irá remover todos os privilégios de sudo impedindo a execução de comandos administrativos

:(){ :|:& };: - Conhecido como fork bomb envia loop infinito travando o sistema

segunda-feira, 7 de dezembro de 2015

Tipos de hackers

Nesta postagem falarei um pouco sobre os tipos de hackers existentes no mundo da informática


HACKER WHITE HAT (chapéu branco) - É um hacker que faz o bem, geralmente são profissionais de segurança computacional que agem de forma autorizada e dentro da ética, exploram falhas e possuem soluções de correção para a falha.

HACKER GRAY HAT (chapéu cinza) - É um hacker que invade sistemas agindo fora da lei mais que também não faz nenhum tipo de vandalismo, ou seja ele invade apenas para ver como funciona.

HACKER BLACK HAT (chapéu preto) - É um hacker que só faz o mal, invade sistemas de forma anti ética, criam virus e outros malwares para roubar dados causando prejuízos e quebram senhas.

CRACKER - É o mesmo que hacker black hat.

LAMMER ou SCRIPT KIDDIE - Pessoa que se acha um hacker, não possui conhecimentos em nada e sai se vangloriando quando conseguem algo, usam ferramentas de outros crackers e para querer mostrar sua capacidade e poder.

NEWBIE - Aprediz de hacker, pessoas sem experiencia nenhuma mais que possui muita vontade de aprender.

CARDER - Hacker especialista em roubos de dados de cartões de crédito e clonagem de cartões.

VIRUSES - Hacker especialista em criação de virus e cavalos de tróia alem de outros malwares.

BANKER - Hacker especialista em  roubo de dados bancários.

PHREACKER - Hacker especialista em telefonia móvel e fixa como ligações interurbanas gratuitas e escutas telefonicas indevidas.

HACKITIVISTA - Hacker que tem a intenção de ajudar as pessoas em causas sociais e politicas.

  

sábado, 28 de novembro de 2015

Identificando vulnerabilidade no mysql e quebrando hash MD5 de senhas do mysql

Quando tratamos de segurança da informação uma coisa que precisamos ter em mente é que NÃO EXISTE SISTEMA 100% SEGURO, seja la uma aplicação ou até mesmo uma rede que possa estar desprotegida.

Neste tutorial mostrarei como encontrar uma vulnerabilidade no banco de dados mysql, explorar esta vulnerabilidade, quebrar senhas com hash MD5 (muito fraca essa criptografia mais beleza) e obter acesso ao sistema.

1 - Iremos efetuar um scan na porta 3306 com nmap usando a seguinte sintaxe "nmap -sS -sV -p 3306 --script mysql-empty-password.nse <ip remoto> -T5, conforme imagem abaixo, no nosso exemplo o IP é 192.168.0.50



No exemplo acima, o nmap nos informou que a porta 3306 está aberta e na utilização do script ele nos diz que a senha do root (usuário com todos os privilégios) está vazia na linha "root account has empty password" o que torna-se um serviço totalmente vulnerável, sendo assim iremos explorar a falha.

3 - Após verificarmos as informações com o nmap, iremos conectar ao banco de dados com o comando "mysql -h <IP remoto> -u root"


4 - Agora temos acesso ao banco como root, agora iremos procurar por senhas, iremos acessar o banco dvwa com o comando use dvwa e iremos listar as tabelas desse banco.


5 - Vemos que existe uma tabela chamada users, com isso digitamos select * from users;


6 - Repare que apareceu o nome de alguns usuários e a senha criptografada deles, iremos escolher o usuário admin e vamos tentar quebrar a hash para descobrir a senha dele, para isso digitamos findmyhash MD5 -h <hash>.



Ao digitar o comando, ele nos informou que a senha é "password" com isso iremos acessar o sistema.



Pronto, acesso concluído com sucesso.











quinta-feira, 26 de novembro de 2015

Curso de pentest profissional

Para aqueles que são interessados pela área de segurança da informação, existe uma área chamado de pentest, o pentester é aquele profissional que efetua testes de invasão a sistemas e redes semelhante a um cracker porem de forma autorizada e mediante contrato assinado pelo dono de uma empresa.

Para aquele que desejam ingressar neste área, indico o curso da desec security com o professor Ricardo Longatto, no curso além de você aprender diversas técnicas de invasão, aprende também a criar suas próprias ferramentas em python, C ou shell script.

Espero que gostem

http://www.desec.com.br/site/