Bem vindos ao Blog da comunidade ITsafe



Boa Leitura


Blog em em português sobre construção . Por favor se encontrar algo que necessite correção entre em contato. Os vídeos do blog ainda estão em hebraico, mas em breve estaremos traduzindo com a mesma qualidade que traduzimos os cursos.


Desafios de recrutamento ao Mossad 2018 Parte 2

OO desafio 2 começa com o arquivo pcap.

Vamos baixar o arquivo e abri-lo usando 7zip.

O arquivo pode ser aberto com o wirehark e começar a analisá-lo, mas por outro lado há uma maneira mais fácil de analisar arquivos pcap de forma mais simples usando o software CapLoader 1.6:
Foto de tráfego de rede, o tráfego contém um nome de usuário e senha para-FTP
Na saída do software você pode ver que se trata de um protocolo FTP na porta 2121 cujo nome de usuário para a conexão é user e a senha é 12345.

Faremos uma conexão simples usando um software FTP de alguma máquina Linux e parece que o servidor não aceita nossa conexão por algum motivo:
Conexão com o serviço FTP, falha na conexão
Voltaremos ao software CapLoader e veremos o restante dos pacotes:
Tráfego de rede na porta 2121
Pode-se ver que antes de o cliente contatar o serviço ftp, ele contatou outro serviço na porta 5555 que se parece com algum método de port knocking.

Veremos os pacotes nos seus dois primeiros pedidos e tentaremos descobrir qual método de port knocking eles usaram.
Tráfego de rede na porta 5555
Primeiro pacote:

Vamos começar a analisar o primeiro pacote tentando conectar ao lado do servidor na porta 5555:
Comunicação com o servidor na porta 5555 e recebimento de um desafio
Você pode ver que o servidor retornou algum hash de 32 caracteres para nós, exatamente como os hashes que vimos no arquivo.pcap:
O comprimento dos caracteres é 32
Hash 32 caracteres geralmente denotam md5, vamos pegar um dos hashes que já sabemos para que serve a resposta necessária e jogá-lo no site:
`` https://hashkiller.co.uk/md5-decrypter.aspx`
E vamos receber:
A decodificação hash nos dá 33794 e 37478
Se olharmos para o número de caracteres nas respostas enviadas ao lado do servidor nos pacotes, podemos ver que o comprimento da resposta é de 128 caracteres que marca sha512.

Se pegarmos os números que obtivemos e fizermos sha512 neles, parece que obtemos um resultado completamente diferente do resultado que deveríamos obter no arquivopcap.

Portanto, decidimos tentar fazer uma força bruta, usando o seguinte código python:
Código Python que executa bruteforce
O código executou exatamente uma execução e parou, a partir disso podemos concluir que precisamos construir um trecho de código simples que irá realizar as seguintes etapas:

Para fazer isso, escrevemos o seguinte código:
O resultado do código é 84912
Agora vamos nos conectar ao serviço FTP:
Pastas básicas do Linux
E vamos puxar todos os arquivos para o nosso computador para tornar mais conveniente para nós pesquisá-los:
Pasta de backup chamada backup
A próxima etapa do desafio é localizar arquivos interessantes dentro do sistema de arquivos baixado, para isso, escrevemos um código curto que nos imprime uma lista de todos os arquivos existentes no arquivo para que seja mais fácil analiza-los.:
backup dos arquivos de configuração da Cisco
Dentro da pasta do usuário de backup você pode encontrar 3 arquivos interessantes:

hint – Contendo a senha.
`` s3cr3t`
id_rsa – Chave privada para acesso ao servidor.

E outro arquivo floppyfw.conf.enc que atualmente não temos ideia de qual é sua função, mas por causa de sua extensão pode-se concluir que provavelmente está criptografado.

Tentaremos acessar o servidor com o nome de usuário de backup porque estamos em sua pasta pessoal e a senha da chave s3cr3t e obteremos:
Conectando a um roteador Cisco
Você pode ver que fomos capazes de nos conectar ao servidor, mas como não temos um terminal configurado, fomos expulsos, tentaremos nos conectar usando outro serviço como o sftp e obteremos:
usando o arquivo de backup para obter a senha
Vamos baixar o arquivo python para nós e abri-lo usando um programa chamado:
`` EasyPythonDecompiler`
O que parece assim.:
Descriptografia de arquivo Python
Agora vamos olhar para o arquivo python que recebemos e ver como ele deve nos ajudar a descriptografar o arquivo floppyfw.conf.enc.

O conteúdo do arquivo conf_enc é um uso muito básico do algoritmo AES empython:
Descriptografia do código AES em Python
Vamos converter a função criptografar para descriptografar e tentar descriptografar o arquivo, faremos a inversão do final para o início assim:

Primeiro vamos inverter a linha:
return base64.b64encode(iv + cipher.encrypt(raw))` Pode-se perceber nesta linha que o IV é adicionado à informação criptografada e é realizado base64 para que nossa decodificação comece com a abertura da base64 e a seguir a divisão da informação e o IV para: raw = base64.b64decode(raw)
iv = raw[:16]
data = raw[16:]
`

O comprimento IV pode ser visto como definido usando AES.block_size, que é 16.

Devemos então inverter o comando:
cipher.encrypt(raw)` Ao comando: Chpher.decrypt(raw) E tudo o que nos resta fazer é desempacotar e retornar essas informações sendo que nossa função ficou assim: ![Função básica de decodificação aes](/img/blog/2018/mossad2018-2-4-17.png) Tentaremos descriptografar o arquivo floppyfw.conf.enc e obter o seguinte arquivo: ![legal iptables](/img/blog/2018/mossad2018-2-4-18.png) No arquivo encontramos configurações de iptables do firewall que permitem acesso ao endereço IP 10.128.0.3 para as portas 8080 e 3389 No momento não sabemos para o que é usado, então decidimos procurar mais arquivos que contenham a extensão .enc para descriptografá-los e ver o que obtemos: ![Uma lista de arquivos de backup criptografados que sabemos como descriptografar](/img/blog/2018/mossad2018-2-4-19.png) Encontramos os arquivos cisco.conf.enc e decidimos decifrar o mais recente. ![Descriptografar um arquivo de backup Cisco](/img/blog/2018/mossad2018-2-4-20.png) Podemos ver que este é um backup do arquivo de configuração de execução padrão do equipamento cisco, no arquivo você pode ver que temos o nome de usuário fwadmin e a senha criptografada na criptografia type 7, que é muito fácil de decifrar através do site: `` http://packetlife.net/toolbox/type7/

A descriptografia de uma senha Cisco é criptografada no código 7
Vamos resumir o que alcançamos até agora:

`` USE_IPTABLES=y
RULE_1=iptables -I INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
RULE_2=iptables -P INPUT -j DROP
RULE_3=iptables -I OUTPUT -i eth1 -p tcp -m tcp --dport 3389 -d 10.128.0.3 -j ACCEPT
RULE_4=iptables -I OUTPUT -i eth1 -p tcp -m tcp --dport 8080 -d 10.128.0.3 -j ACCEPT
RULE_5=iptables -P OUTPUT -j DROP
RULE_6=iptables -P FORWARD -j ACCEPT
`

Regras access list do Cisco
Com base nos dados desses arquivos, começaremos a criar nossa rota para o servidor de arquivos interno:

  1. Faremos um túnel para o servidor interno desta forma:
    `` ssh -i id_rsa -L -N 1337:10.164.0.3:22 backup@35.204.90.89`
    As bandeiras que usamos:
  • -N Não execute comandos na chamada ssh porque estamos usando a chamada conforme necessário tunnel
  • -L Chegando a porta de entrada e saída para o propósito do túnel, definimos a entrada em 1337 e a saída em 22.

Então basicamente pelo servidor 35.204.90.89 chegamos ao servidor 10.164.0.3 e temos uma porta ouvindo:
A porta 1337 está aberta e ouvindo
2. Faremos um segundo túnel através de nossa porta 1337 no servidor de arquivos usando o seguinte comando:
`` ssh fwadmin@localhost -p 1337 -N -L 1234:10.128.0.3:8080 -g`
As bandeiras que usamos:

  • -p Indica uma porta para conexão nos conectamos através do servidor de túnel que criamos na porta 1337
  • -N Explicamos no comando anterior, os usuários não devem enviar comandos notunnel
  • -L Explicamos no pedido anterior, sua função é abrir uma porta conosco, desta vez 1234, que nos levará a
  • -g Indica que a escuta será global em 0.0.0.0 para que possamos conectar usando nosso computador Windows através da máquina Linux no servidor de arquivos

O resultado ficará assim:
A porta 1234 está aberta e ouvindo
3. Abrimos um navegador e voltamos a máquina Linux para a porta 1234 que nos levará diretamente através do túnel para o servidor de arquivos interno:

Pasta chamada stolen files
Iremos para a pasta e pareceremos que passamos para o terceiro estágio:
Resolvendo o desafio
Continue o desafio na terceira parte

Compartilhe este post