Introdução

O Overpass foi hackeado! A equipe do SOC (Paradox, parabéns pela promoção) notou atividade suspeita durante um turno da noite enquanto analisava os dados do sistema e conseguiu capturar os pacotes de dados no momento do ataque.

Você consegue descobrir como o invasor entrou e invadir o servidor de produção da Overpass?

Análise do PCAP

Iniciamos a análise do arquivo .pcap enviado pela equipe de SOC utilizando a ferramenta Wireshark. Para isso aplicamos o filtro de requisição http.request.method == "POST" com o objetivo de filtrar todas as requisições POST feitas pelo atacante, onde nos possibilitou de identificar a URL da página utilizada pelo atacante /development/ e o payload foi carregado na página upload.php.

None

Em seguida, encontramos o payload utilizado pelo atacante para criar um shell reverso.

None

Como o atacante usou a porta 4242 para a conexão via netcat, filtramos todas as requisições feitas por essa porta através do filtro ip.addr == 192.168.170.145 && tcp.port == 4242.

None

Em seguida, conseguimos visualizar todos os comandos usados pelo atacante e identificar qual foi a senha utilizada pelo atacante para tentar escalar privilégio alternando para o usuário james.

None

Nesse mesmo log, encontramos um backdoor SSH utilizado pelo atacante para estabelecer persistência no sistema.

https://github.com/NinjaJc01/ssh-backdoor

Em seguida, identificamos que o atacante acessou o arquivo /etc/passwd em busca de outros usuários:

None

Então copiamos os hashes do pacote para utilizar a ferramenta John The Ripper para ver quantas senhas podem ser quebradas utilizando a wordlist Fasttrack.

None

Tirando o usuário james conseguimos quebrar 4 senhas.

Análise do Código

Realizamos uma análise mais profunda no backdoor e descobrimos que ele possui um hash padrão.

None

E também possui um salt fixo presente no código

None

Olhando novamente para o arquivo .pcap encontramos o hash utilizado pelo atacante

6d05358f090eea56a238af02e47d44ee5489d234810ef6240280857ec69712a3e5e370b8a41899d0196ade16c0d54327c5654019292cbfe0b5e98ad1fec71bed
None

Em seguida, com o hash e o SALT enviando para o arquivo hash.txt , utilizamos a ferramenta Hashcat para descobrir a senha utilizada pelo atacante

hashcat -m 1710 -a 0 hash.txt /usr/share/wordlists/rockyou.txt

Senha encontrada:

november16
None

Ataque

Agora que o incidente foi investigado, a Paradox precisa de alguém para assumir o controle do servidor de produção do Overpass novamente.

Iniciei com uma enumeração de portas tcp, utilizando a ferramenta Nmap:

nmap -p- -min-rate 1600 -sVC 10.65.139.36 -Pn --open

Encontramos as portas:

None

Acessando a aplicação web nos deparamos com uma mensagem implantada pelo atacante.

None

Para ganhar acesso ao sistema, acessamos o serviço SSH pela porta 2222

ssh james@10.65.139.36 -oHostKeyAlgorithms=+ssh-rsa -p 2222
None

Assim que conseguimos acesso, obtemos a user flag no diretório do usuário james

None

Para conseguir a root flag, ainda no diretório do usuário James, usamos o comando ls -la onde encontramos um arquivo oculto com o bit SUID definido.

None

Em seguida, executamos o arquivo .suid_bash com o comando abaixo que nos permitiu escalar privilégio root e obter a root flag.

None