Na Colorkrew, oferecemos múltiplos serviços aos nossos clientes. Esses serviços precisam ser seguros. Como engenheiro DevOps, preciso garantir que estou familiarizado e atualizado sobre as formas como agentes mal-intencionados tentam obter acesso não autorizado a vários sistemas e como restringir o acesso a eles para aumentar nossa postura de segurança. Hoje quero compartilhar algumas maneiras que uso para aumentar meu conhecimento em Cibersegurança e que acredito serem divertidas e realmente valiosas para mim.
Uma forma de aprimorar meu conhecimento em Cibersegurança é participar do "Capture The Flags", realizado quase todos os finais de semana em algum lugar online do mundo. São competições em que você tenta explorar várias vulnerabilidades para acessar uma "bandeira" que você envia de volta ao site da competição para marcar pontos. A pessoa/equipe com mais pontos vence a competição. Essas competições são uma forma divertida e educativa de se desafiar a procurar e se familiarizar com falhas em sistemas que poderiam ser exploradas. Espero poder organizar um evento em nosso escritório um dia para participar de uma competição que aumente e desafie nosso conhecimento em Cibersegurança de uma forma divertida e envolvente.
Outra forma divertida de adquirir um pouco desse conhecimento é brincar com um site do qual gosto muito há muito tempo, mas que nunca tive a oportunidade de usar direito até recentemente, quando a Colorkrew financiou uma assinatura para eu aprender, Hack The Box.
Na Colorkrew, nós, engenheiros, recebemos um orçamento de engenharia e suporte ao aprendizado. Podemos usar esse orçamento muito livremente para aprimorar nosso conhecimento e equipamentos no trabalho fora dos equipamentos padrão. Esse é o compromisso deles de nos manter aprendendo e nos dar acesso às ferramentas que queremos usar no trabalho. Decidi gastar meu orçamento em uma assinatura deste site para aprimorar meu conhecimento em Cibersegurança.
Hack The Box é uma plataforma educacional que desafia você a obter acesso root a uma máquina (a "caixa") explorando vulnerabilidades. Ainda não usei este site completamente, mas queria compartilhar um pouco como consegui contornar a caixa mais fácil/hackeada do site, "Lame".

Essa máquina não é particularmente difícil de hackear, mas é uma ótima introdução ao que o site oferece.
Aviso antes de seguir em frente: vou usar a abordagem script kiddie para entrar nesse sistema, pois estou me familiarizando com o site. Mas espero chegar a um ponto em que possa depender menos do Metasploit ao tentar acessar os sistemas.
Vou usar o modo guiado ao passar por essa caixa. Esse modo oferece desafios ao longo do caminho que te ajudam a acessar essa máquina e ensina o que observar quando você estiver fazendo isso sozinho.
Ligo a caixa e começo com minha primeira tarefa

"Quantas das 1000 principais portas TCP do 'nmap' estão abertas no host remoto?"
Começo fazendo login na máquina fornecida pelo HTB (Hack The Box) e uso uma ferramenta chamada 'nmap' contra o endereço IP alvo "10.129.177.49"
'nmap' é uma ferramenta usada para escanear portas em vários hosts remotos e descobrir quais serviços rodam atrás dessas portas.
Ao executar esse comando, forneco alguns parâmetros
- '-sV' para tentar descobrir qual versão de um serviço está rodando atrás de uma porta
- '--top-ports 1000' para rodar o nmap contra os 1000 ports mais populares de um sistema
- '--min-rate 1000' para acelerar o processo permitindo que o nmap tente enviar no mínimo 1000 pacotes por segundo
Eu executo o comando contra o alvo e encontro 4 serviços abertos

Então, passo 4 para a tarefa, envio e passo para a próxima tarefa

"Qual versão do VSFTPd" está rodando no modo lame?"
Olho de volta para a saída da varredura 'nmap' e vejo que é 2.3.4, então envio isso e sigo em frente

"Existe uma porta dos fundos famosa no VSFTPd versão 2.3.4, e um módulo Metasploit para explorá-la. Esse exploit funciona aqui?"
Começo pesquisando online qual é esse exploit e encontro "CVE-2011-2523". Esse CVE me ensina que existe uma vulnerabilidade no serviço VSFTPd que abre uma porta backdoor no 6200/tcp, me dando acesso à máquina.
Eu inicio o metasploit na máquina e tento encontrar esse módulo e usá-lo


Parece que não consigo me conectar ao computador remoto usando este módulo, então respondo "não" na tarefa.

"Qual versão do Samba está rodando no Lama? Dê os números até, mas sem incluir, "-Debian"".
Durante o processo de integração do HTB, ele pede que você passe por um curso inicial que eles chamam de "Ponto de Partida". Durante esse curso, aprendo um pouco sobre como me conectar a uma instância de samba. Uso esse conhecimento para me conectar à instância de samba que podemos ver naquela varredura 'nmap' que fizemos antes.
Executo o comando 'smbclient –L 10.129.177.49' onde '-L' lista todos os serviços disponíveis no servidor. O comando pede uma senha, mas eu apenas aperto enter e sigo em frente

Aqui podemos ver a versão 3.0.20-Debian, então passamos para o HTB e seguimos para a próxima tarefa

"O CVE de 2007 permite execução remota de código nesta versão do Samba via metacaracteres shell envolvendo a função 'SamrChangePassword' quando a opção 'username map script' está ativada em 'smb.conf'"
Aqui eu pesquisei "Samba 3.0.20 CVE" e encontrei CVE-2007-2447 , que compartilha a mesma descrição da tarefa, então enviei essa como resposta e avanço para a próxima tarefa.

"Explorar CVE-2007-2447 retorna um shell como qual usuário?"
Tentei procurar uma prova de conceito para essa vulnerabilidade para aprender mais sobre ela, e encontrei este post https://amriunix.com/posts/cve-2007-2447-samba-usermap-script/
Descobri que posso passar um nome de usuário com uma carga útil para executar um comando no host remoto. Mas não tento fazer isso manualmente e passo para usar o Metasploit por enquanto, pois quero tentar aprender essa ferramenta antes de criar minhas próprias explorações.
Encontro o módulo que quero usar e tento conectar, mas parece que falha.

Depois de muita ida e volta, e aprendendo um pouco mais sobre o Metasploit, descobri que preciso definir e configurar um payload (às vezes o padrão é bom), e também corrigir meu erro de digitação no RHOST para RHOSTS, e qual porta de endereço local e gerenciador de IP usar.
Ao configurar isso, ganho acesso à máquina e posso rodar 'whoami' para ver qual usuário eu sou. Que é 'root'

Com acesso à máquina como root, termino as duas últimas tarefas facilmente, executando comandos básicos do Linux contra o host para imprimir a flag no makis e no diretório raiz e finalizar a caixa com sucesso.

Uhuu

Sempre tive interesse em cibersegurança e acho divertido experimentar de vez em quando para me desafiar. Mesmo sendo algo muito superficial, mostra o quão vulnerável você pode ficar se não mantiver seu software atualizado e se proteger. Por exemplo, no início dessa tarefa, o verdadeiro motivo de eu não conseguir explorar o VSFTPd foi porque o firewall do "Lame" me impediu de acessar a porta dos fundos no 6200, mostrando o quão valioso é um firewall devidamente configurado e um software atualizado, o que é importante para o meu trabalho.
Espero que tenha sido divertido acompanhar, fique à vontade para experimentar as caixas deles você mesmo e continue se divertindo aprendendo sobre cibersegurança!