segunda-feira, 11 de junho de 2012

Atacando PostgreSQL


O PostgreSQL é um banco de dados que vem com o MacOS X Lion como database padrão. De acordo com a wikipedia a maioria das distribuições Linux têm o PostgreSQL nos pacotes fornecidos. Portanto além das base de dados regulares (Oracle, MySQL, etc), haverá momentos que teremos que avaliar este bancos de dados com algum teste de penetração. Neste post vamos ver como podemos atacar um sistema que contém base de dados PostgreSQL.
Vamos dizer que temos executar um port scan na porta de um servidor e temos que identificar o que está executando um banco de dados PostgreSQL na porta 5432.
Discovery of PostgreSQL Database
Vamos tentar um ataque de força bruta, a fim de descobrir as credenciais fracas que nos permitirão, em seguida, em conectar ao banco de dados. Nós abriremos o Metasploit Framework e vamos usar oscanner postgres_login.
Choosing and configuring the postgres scanner
Este scanner já está configurado para usar as listas de palavras padrão do PostgreSQL do Metasploit Framework que será utilizado nesse caso. Como podemos ver na imagem seguinte conseguimos descobri algumas credenciais válidas após a execução do scanner.
Valid credentials discovered on postgreSQL database
Agora que temos um nome de usuário e senha válidos, podemos usa-lo para se conectar ao banco de dados usando uma consulta psql Client. A primeira vez que iremos executar é o select usename, passwd from pg_shadow; pois ele nos retorna os hashes da senha do banco de dados da tabelapg_shadow.
=== Connecting to the PostgreSQL Database ===
Outra opção é olhar para os base de dados que existem efetuando o comando \l
List the current databases
Como você pode ver, existem 3 bases de dados no lugar. O que vamos tentar fazer aqui é selecionar um das base de dados e, em seguida, criar uma nova tabela chamada pentestlab e vamos copiar o conteúdo do arquivo /etc/passwd para este tabela.
Creating a new table and copying the contents of /etc/passwd
Temos todas senhas recuperadas existentes do servidor remoto
Conclusão
Todas as bases de dados no momento que são instalados em um sistema que contém as credenciais padrão precisamos estar conscientes sobre essas contas devido as fragilidades existentes, com um acesso indevido pode-se removê-los ou alterá-los. Como já vimos no post que a primeira coisa que fizemos quando tomamos o acesso ao banco de dados foi verificar as bases de dados disponíveis. Em seguida, copiou o conteúdo do passwd para uma nova tabela que criamos a fim de obter senhas de outros serviços. Também é importante não esquecer de apagar tudo o que você irá criar (tabelas, usuários, novos bancos de dados), a fim de reverter o postgreSQL ao seu estado anterior.
Mostre que você está vivo e diga o que pensa!


Nenhum comentário:

Postar um comentário

Comente e opine a respeito