Este artigo fi copiado do excelente blog do Neriberto, autor da descoberta e da exploração.
Em primeiro lugar quero agradecer ao pessoal de desenvolvimento do pfSense e ao Scott Ullrich.
Existe (em instalações não atualizadas do pfSense) uma maneira simples de se fazer Brute Force, pelo servidor XMLRPC que está no arquivo xmlrpc.php direto na raiz do servidor web do pfSense, o XMLRPC é usado para sincronizar as configurações no caso de se estar usando o recurso de redundância de firewall (uso do protocolo CARP dos BSD's).
A autenticação que ocorre neste serviço é apenas com senha, assume-se sempre o usuário admin, a prova tá aqui, também tem um issue interessante aberto no dia 02/08/2011 sobre o uso de usuário admin para tal tarefa.
A idéia de fazer este ataque no XMLRPC veio da necessidade de sincronizar as configurações do squidGuard entre vários servidores pfSense em localidades diferentes, quando comecei a escrever esta aplicação surgiu a idéia.
Para provar fiz um auxiliary no metasploit, o download do módulo pode ser feito no Bitbucket (procurar em Auxiliary) na página de um projeto que criei para conter meus estudos de programação para o metasploit. O primeiro upload que fiz no Bitbucket foi no dia 04/08/2011, o que coincide com o issue aberto no dia 02/08/2011 porém só vi isto bem depois,…
Segue um vídeo que fiz demonstrando o uso do auxiliary:
Como escrito acima em versões não atualizadas é possível este tipo de ataque, encaminhei um email para um dos desenvolvedores e após isto foi criado em seu core um fix para bloquear ataques Brute Force no pfSense depois de 15 tentativas de senhas erradas.
Mesmo antes deste fix o pfSense já tinha proteção contra Brute Force em conexões SSH, proteção contra HTTP Referer e DNS Rebinding
A versão que vem com proteção é a 2.0-RC3 os snapshots são a partir do dia 1/9/2011.
Dave B escreveu e publicou um POC para explorar Cross Site Scripting que pode ser conferido no site Packet Storm.
Craig Heffner apresentou na Defcon 18 sobre como atacar roteadores SOHO usando DNS Rebinding (Coisa que não agradou muito o pessoal do OpenDNS), lembrando que na versão 2.0 do pfSense também já vem habilitado por padrão proteções contra DNS Rebinding
http://www.geekgod.com/
http://pt.wikipedia.org/wiki/Brute_force
http://redmine.pfsense.org/issues/809
http://packetstormsecurity.org/files/view/95575/pfsense-xss.txt
https://www.defcon.org/images/defcon-18/dc-18-presentations/Heffner/DEFCON-18-Heffner-Routers-WP.pdf
P.S.: Parabéns ao Neriberto pela descoberta e por ter apresentado uma solução ao problema, coisa difícil nos dias de hoje.
Tags: Cracker, Firewall, Hacker, neriberto, pfSense, psSense, Segurança
Paulo 6 set 2011
Post interessante. A falta de updates é o maior entrave para plataformas antigas, mas que estão estáveis e com isso systemadmins criam resistências para atualizar seus sistemas.