23 de jun. de 2013

Como manipular um país inteiro pela internet


De antemão já peço desculpas pelo título a la HackingDay ;)
Vivemos na era da informação, e a informação se tornou o nosso bem mais precioso!
Histórico: Durante o Rock In Rio de 2012, eu e uns amigos estávamos no facebook acompanhando a venda de ingressos a preços exorbitantes quando tive a ideia de tentar manipular este micro mercado. A ideia é que anunciaríamos ingressos a preços mas baixos, e enrolaríamos a multidão, para que se alguém de fato tivesse um ingresso se visse forçado a baixar o preço. Já aviso de antemão que não deu certo, pelo simples fato de que não conseguimos alcançar o quorum mínimo para alterar a percepção do mercado. Naquele momento imaginei que botnet daria conta ;)

Com diversos assuntos ainda para estudar deixei esta ideia de lado e acabei focando em canais encobertos(assunto do qual já palestrei e pretendo defender a minha dissertação). Mas os recentes acontecimentos relembraram este conceito.

Uma breve análise dos acontecimentos recentes:

  • No dia 22/05/2013 já sabíamos que as passagens iriam subir para R$3,20 no Rio de Janeiro e São Paulo.
  • No dia 06/06/2013 ocorre a primeira manifestação em SP(2.000 pessoas).
  • No dia 07/06/2013 ocorre a segunda passeata em SP(5.000 pessoas). * Juntou com a UNE.
  • No dia 11/06/2013 ocorre a terceira manifestação em SP.(2.000 pessoas) termina em violência
A partir dai, as manifestações ganharam um outro patamar. Organizadas através de eventos no facebook e tweets, montagens e blogs e vídeos não só sobre os R$0,20 centavos de aumento, mas também sobre corrupção, saúde e copa.
A grande maioria das pessoas se interessava em compartilhar e convidar os amigos, graças ao repúdio violento da PM de SP pessoas de diversos estados se "sentiram" na obrigação de manifestar e lutar (já que o aumento havia sido geral).

Até ai, tudo bem... parece uma manifestação popular. No entanto, lembrei de um episódio recente de porradaria "orquestrada" pela Internet: O bolsa família.

Após uma "falha*1" que adiantou os pagamentos do bolsa família, surgiu um boato de que o programa governamental iria acabar. Este boato se espalhou principalmente pelo Twitter... em uma conta, criada unicamente para isso, com um único tweet e que fora deletada minutos depois, causando cenas como esta:



Voltando ao papo de que vivemos na era da informação, manipular como a informação é mostrada é uma coisa. Criar boatos que se repetidos por diversas pessoas (reais ou bots) pode causar uma grande confusão !
Fazendo conta de padaria, imaginem uma botnet no facebook, com 100 bots (modesto) cada um com 200 amigos (abaixo da média nos padrões do facebook). Só esta botnet teria o alcance de 20.000 pessoas. Considerando que destas 20.000 apenas 10% executasse alguma ação promovendo a causa, no segundo momento teríamos: 20.000 anterior+(2000*200) 400.000 = 420.000 pessoas que tomaram conhecimento. Em questão de horas pode-se alcançar a maior parte do país conectada a rede social.

Para manter o momentum, novos vídeos imagens e montagens devem surgir periodicamente... incitando a população à uma causa....

Se esta é uma nova forma de ataque, é descentralizada, e de difícil detecção! Até onde é viajem, e até onde é de fato uma ferramenta de desestabilização?! se for um ataque, o teste com o bolsa família foi muito bem sucedido, e as manifestações no Brasil estão tomando força.... aliás, não só no Brasil... se aqui está assim, imaginem na Turquia.


Infelizmente, careço de tempo para realizar experiências e juntar provas se este tipo de ataque é possível, que condições(hardware e emocionais) são necessárias e onde pode ser utilizado. O artigo foi mesmo para instalar uma pulga.exe atrás da orelha de cada um ;)

Imagino outras utilizações e combinações de ataques do qual essa manipulação/sensação de fazer parte de algo maior podem ser utilizados.

1) Na comunidade de segurança já vimos como pendrives, deixados cair perto de uma instituição pode comprometer a melhor das seguranças LINK




24 de dez. de 2012

Ho ho ho!

Hey, this was a formidable year ! I want to use this space to thank you all for this wonderfull year and wish all the best for the next one ! I'm really happy! this year i (slowly)  started to enter at the InfoSec scene in Brazil!

I'd like to pinpoint some hightlights of this year !

To the next year,  i'll just keep following my instincts trying to know a little bit more about the hacking culture in Brazil, make some good friends and enjoy this life, afterall december 21th wasn't enought to put an eof in this world!

In one of the first books i ever read about hacking, there was small manifesto wrote by a hacker called "The Mentor" (you can find the original here), witch say:

"We explore... and you call us criminals. We seek
after knowledge... and you call us criminals".

To all infosec guy's that i met this year, for all those who i missed the oportunity, let's make 2013 a better year ! we lost some rights with bad written laws, but we cannot afford to loose this battle! 

Merry "nmap - sX" and happy 2013 !

10 de dez. de 2012

In English Sir.!

Uma vez que se decide trabalhar com informática, a língua inglesa é crucial.(ponto mesmo). Chega um ponto que é difícil evoluir sem a leitura técnica em inglês. A conversação nem tanto, mas se pretende alçar voo em T.I é bom conseguir realizar conferências e conversar da maneira mais fluente possível.

Comecei este blog para divulgar um pouco das minhas idéias, explicar alguns conceitos e principalmente fomentar a cena no Brasil. Embora não tenha postado com muita frequência, gosto de postar conteúdos que considero interessantes, principalmente em português. Tenho em mim um sentimento patriota e entendo que é complicado muitas das vezes encontrar conteúdo em português.
Continuarei escrevendo em português mas também utilizarei este espaço para treinar um pouco do meu inglês.
Portanto postarei conteúdos em ambos os idiomas e se tudo der certo, conseguirei manter a frequência, mesmo que baixa. Caso eu esqueça de traduzir um dos Posts, caso não esteja entendendo, ou caso tenha dúvidas. Basta comentar no post que responderei e/ou traduzirei o post para o bom e velho pt-br ;)

15 de set. de 2012

Experiments with RootKits and Detection


Bom, estou a muito tempo sem postar... trabalho, tarefas extras, o tempo tá curto. E, felizmente as idéias não param de surgir na minha cabeça, mas o timming não está me ajudando em novas experiências portanto hoje vou escrever sobre uma pesquisa que fiz no fim de 2011, e que se mostra bem interessante.

Na SegInfo deste ano(2012), o Tony Rodrigues do Octane Labs, na sua palestra "Anti-Anti-Forensics Reloaded. Could Neo avoid Matrix’s Forensics Agents?" falou sobre rootkits e suas características de mentir para o operador do sistema quando questionado sobre alguma propriedade do S.O.

Para ser mais claro: Se a máquina estiver com um rootkit instalado na pasta /home de certo usuário, o comando "ls" não exibirá os arquivos, ocultando a exitência do rootkit.

No entanto, o rootkit só pode "mentir" dentro da sua área de atuação... ou seja não pode alterar resultados externos como por exemplo, conexões vistas através de uma interceptação de fora da máquina.

Quando o atacante de alguma forma contacta o rootkit no sistema infectado acaba por utilizar recursos da rede, existem técnicas de detecção de rootkits via rede como a Detecção por assinaturas que geralmente são implementadas em Sistemas de Detecção de intrusão baseados em rede(NIDS) por exemplo, falham por só identicarem rootkits cuja a assinatura na rede é conhecida, e não identifica novos rootkits ou variações do mesmo;
Análise comportamental da rede é complexa e em teoria poderia identicar novos rootkits, porém, na prática gera muitos falso-positivos diminuindo a confiança nesta técnica.

A proposta no final do ano passado era implementar e avaliar uma técnica quanto a sua taxa de detecção, falso positivo e eficiência visto que não há um software disponível que realize a tarefa.

A idéia era boa, mas esbarrei com uma patente requerida pela Symantec em fevereiro de 2010 cujo autor Pete Szor[8], registra a idéia de um aparato para detectar a presença de rootkits baseado em rede. Através de um sniffer de rede captura e registra em um banco de dados todas as conexões que passam por ele e correlaciona com os dados obtidos nas máquinas internas, a discrepância entre as informações pode indicar a presença de um rootkit que está escondendo suas conexões. No entanto não há registros de implementações e a própria Symantec não utiliza a tecnologia em nenhum de seus produtos, não havendo assim comprovação sobre a sua eficácia, carga adicional na rede dado aos pacotes extras que deverão fluir das máquinas ao gateway.

Como fazer testes não é crime, após a criação de um ambiente de testes seguros, foram realizados testes manuais com três rootkits para o sistema operacional Linux e um no ambiente Windows sendo eles:

Jynx - (Linux - 2012) - O Jynx é um rootkit que funciona no "userland", alterando LD_PRELOAD para carregar suas funcionalidades. Não é detectado por softwares antirootkits como Rootkithunter[4] e o Chkrootkit.

Kbeast - (Linux - 2011) - O Kbeast é um rootkit desenvolvido pela ipsecs (www.ipsecs.com), permite acesso remoto ao atacante e funciona carregando um módulo no kernel do Linux também não é detectado pelo RootkitHunter e pelo CHKrootkit.

Ncon - (Linux - 2011) - O NCon foi encontrado "in the wild" por , um pesquisador de segurança. Sua análise detalhada mostra que utiliza o LD_PRELOAD para linkar bibliotecas dinâmicas e alterar as funcionalidades do sistema.


ZeroAccess (Windows - 2011) - ZeroAccess é uma família de rootkits, que funcionam alterando o sistema de arquivos do Windows 32 e 64 bits, instalando Hooks no kernel é capaz de esconder arquivos, processos e atividades na rede[6].

Os testes realizados apontaram o sucesso da técnica na detecção destes rootkits, já que todos tentam esconder suas atividades na rede do sistema operacional do qual estão instalados.

A conclusão é que se criadores de malwares querem mesmo ocultar a sua presença no sistema, é melhor se "fantasiar" de um software legítimo do que tentar mentir para o operador. O que me lembra a palestra do Rubira (BSDaemon) no final da SegInfo 2012. Malwares em geral utilizam de diversas técnicas para evitarem a sua análise por empresas de antivírus. E, apenas por apresentarem estas características, diferentes de softwares convencionais, já podem sofrer facilmente uma primeira "triagem". Mas isso é papo para outra hora !



[8]Szor, Peter (Northridge. Method and apparatus for detecting hidden network communication channels of rootkit tools, February 2010.

11 de jun. de 2012

Vulnerabilidade no MySQL e MariaDB (CVE-2012-2122)


O Problema se encontra na função memcmp, compara dois blocos memória retornando entre -127 e 127, no entanto, algumas plataformas permitem que esta função retorne valores fora deste range fazendo com que eventualmente o trecho do código que compara o token, retorne como válido mesmo quando a senha não é válida.Como o protocolo usa strings aleatórias a probabilidade de conseguir root utilizando este bug é 1/256.


Ou seja o problema ocorre porque os programadores do MySQL não consideraram um resultado não esperado da função memcmp na Linux/GLIBC (Otimizado). Levando a ao bypass no protocolo de autenticação.


Versões atigindas:

  • Ubuntu Linux 64-bit(10.04, 10.10, 11.04, 11.10, 12.04)
  • OpenSuSE 12.1 64-bit mySQL 5.5.23-log
  • Debian Unstable 64-bit 5.5.23-2
  • Fedora
  • ArchLinux

(Segundo [1])



PoC:
$ for i in ´seq 1 1000´; do mysql -u root --password=bad -h 127.0.0.1 2>dev/null; done;
mysql>




Obviamente um exploit mais completo já existe, e foi disponibilizado no metasploit(msfupdate) =)

Testei em um OpenBSD 4.5 MySQL 5.0.23(só de 4fun) fazendo as devidas alterações (Troquei o SEQ pelo JOT) e não funcionou =(




10 de mai. de 2012

Impressões do YSTS 2012

Sendo esta a primeira vez que compareci ao "You Sh0t the Sherif", congresso sobre segurança da informação em um formato muito diferente, quero registrar aqui as minhas considerações:

Formato do Evento:
Muito divertido e diferente ! Openbar, show pós-conferência ! palestras curtas e objetivas !
Tornam o evento muito dinâmico e interessante. Gostei do formato!

O Local:
O local escolhido para o evento foi um bar no coração de São Paulo-SP, não foi muito complicado de chegar, seguindo o GMaps, 1hora de onibus e uns 700m de caminhada cheguei tranquilamente as 10am. (O evento começava as 9:00).
Acho que a localização não era tão ruim, mas... menino do Rio, malandro, não sabe andar direito em SP.

Na volta, não tive tantos problemas. Quero deixar aqui o meu agradecimento ao a_landim_xhkl, e ao Cabral que me ajudaram no processo de volta para casa.

Ps:Infelizmente perdi a festa.


Nível Técnico:


O nível técnico das palestras foi excelente*! Vibrei em especial com 2. "Gone in 60 seconds" onde o cara mostrou um ataque a chaves criptografadas de carros, e "DE MYSTERIIS DOM JOBSIVS" que o autor explicou como implantar rootkits em firmwares MAC;

As outras palestras também foram muito interessantes!

*Exceto a última, por mais que seja um cara que devemos respeitar, acho que o tema não me agradou, embora tenha sido engraçado.




Conclusões:


Embora o preço do evento seja muito salgado, vale a pena comparecer! espero poder estar lá ano que vem!




28 de mar. de 2012

Esteganografia no protocolo TCP/IP


Ultimamente tenho pesquisado sobre "convert channels" ou canais de comunicações encobertos. Acabei esbarrando com uma série de artigos legais e vou resumir um pouco um dos mais importantes. Para quem quiser se aprofundar um pouco mais pode pegar os artigos na íntegra.

A esteganografia é a arte de esconder informações dentro de outras. Os exemplos mais comuns que vemos na Web são imagens com algum texto escondido em seus bits. Quando criança aposto que já brincou com aquelas tintas "invisíveis" que ao expor a luz ultravioleta se torna visível, mas somente para quem conhece o seu segredo.

Ok, podemos esconder informações em praticamente qualquer coisa? não é bem assim, mesmo nas imagens, elas ainda precisam apresentar o seu conteúdo(Foto)  e esconder os dados, para isso existem diversas técnicas entre elas o LSB(Less Significant Bit) que consiste em trocar o bit menos significante de uma informação por um bit da informação nova.

Esteganografia é legal, e muito útil quando a questão é extração de informação; Imagine o seguinte cenário: Um atacante A após a invasão bem sucedida em uma empresa X necessita extrair 1mb de senhas dos seus clientes.   Fazer o download do arquivo senhas.zip via http seria óbvio demais. Criptografia ajudaria para que os administradores não soubessem do que se trata o conteúdo da informação, mas ainda sim não encobriria os traços de uma informação sendo passada.

Imagine que agora o atacante possa criptografar e incluir estas informações em várias imagens que já estão presente no site da empresa. Ao acessar o site, e baixar as imagens, o atacante recuperará as informações sem chamar muita atenção do administrador que provavelmente só notará o fato quando perceber as alterações feitas nas imagens. Geralmente, tarde demais.

TCP/IP


Legal, mas se podemos utilizar esteganografia em Imagens, PDF's e protocolos da camada de aplicação (ex: HTTP), porque utilizar no protocolo TCP/IP? Oras, e se o servidor invadido não possua um servidor HTTP ? tráfego deste protocolo causaria muita suspeita! Utilizar protocolos da camada de aplicação necessita o conhecimento prévio de que o alvo possui essa aplicação o que as vezes nem sempre é verdade. Mas FATO É que ele possui o TCP/IP já que você está conectado.

Não pretendo entrar em detalhes de como funcionam os dois protocolos, as informações podem ser facilmente encontradas nas RFC's

Basicamente, o estudo "Embedding Convert Channels into TCP/IP (2005)" do Steven J. Murdoch e Stephen Lewis mostra onde é possível incluir informações no cabeçalho TCP e IP e como elas podem ser detectadas. Resumindo:

No protocolo IP, os campos: Type of service, Identification, Flags, Fragment Offset e Options são passíveis de injeção de dados No TCP o campo Sequence Number.

Cada um dos campos citados acima possui vantagens e desvantagens quanto a sua detecção, por exemplo no Protocolo IP, o campo "Type of service" possui 8 bits e são utilizados para indicar parâmetros do serviço para os roteadores. É possível utilizar este campo para incluir dados, mas seria facilmente detectado já que na maioria dos sistemas operacionais este campo é setado como 0(zero), vários pacotes com valores diferentes neste campo alertariam os administradores.

Vale a pena ler o artigo, cada sistema operacional implementa de maneiras diferentes cada um destes campos. O campo escolhido pelos autores para implementar um canal de comunicação encoberto foi o "TCP Sequence Number". O qual os autores alteram o seu método de geração para bypassar um modelo de segurança proposto e evitar a detecção. Como ? Imitando o modo como o sistema operacional gera os bits,  as características como aleatoriedade são primordiais para manter o canal invisível.



[Referências]
http://pt.wikipedia.org/wiki/Esteganografia
http://en.wikipedia.org/wiki/Type_of_service

Embedding Covert Channels into TCP/IP