Skip to main content

Anotações para a prova SYCP | Solyd One

  • Anotações para a prova SYCP | Solyd One

alt text


🧪 Metodologia Inicial

  • Será passado um IP
  • Devemos começar com o nmap para descobrir portas e versões

🔍 Comandos Nmap

nmap xxx.xxx.xx.xx -sV -T4 -O
# -O - detecta o sistema operacional
# Executa alguns scripts padrão de vulnerabilidades
nmap xxx.xxx.xx.xx -sV -sC -T4
# Varredura completa:
# - Todas as portas
# - Identificação de serviços
# - Scripts básicos
nmap -p- -sC -sV xxx.xxx.xx.xx
# Varredura de portas UDP
nmap xxx.xxx.xx.xx -T4 -sU -p -
# Full Scan
sudo nmap -p- -sS -sV -O -T4 <endereço-ip>

# -p- → Escaneia todas as portas TCP (1–65535).
# -sS → Scan do tipo SYN (também chamado de “stealth scan”).
# -sV → Detecta versão dos serviços nas portas abertas.
# -O → Tenta identificar o sistema operacional.
# -T4 → Define uma velocidade de execução mais rápida (nível 4).

<endereço-ip> → IP ou domínio do alvo.

🧠 Análise Pós-Scan

  • Para obter informações sobre o usuário e máquina

      id
    whoami
    hostname
  • Analisar as envs

      env
  • Após descobrir as versões, devemos procurar por vulnerabilidades

    • Exemplo: Metasploit
  • Podemos usar ferramentas para descobrir qual tecnologia é usada na página

    • Às vezes usam Apache
    • 📄 Documentação: 28-xss.md

🌐 Enumeração Web


📂 Serviços Importantes

📡 FTP — Porta 21

  • Se tiver FTP, tentar realizar a conexão:
ftp xxx.xxx.xx.xx

⚠️ Atenção Podemos ter usuários padrão como:

  • anonymous
  • ftp

🗄️ SAMBA — Portas 139, 445

  • Se tiver Samba, usar o comando:
smbclient -L //ip-servidor

Lista pastas compartilhadas do servidor


🌍 Domínios e Hosts

  • Se achar algum domínio em arquivos .txt dentro do servidor:

    • Vincular o IP ao domínio no arquivo /etc/hosts do Linux

🔓 Vulnerabilidades Comuns

ffuf -w /usr/share/seclists/Fuzzing/LFI/LFI-gracefulsecurity-windows.txt  -u "http://10.129.7.252?page=FUZZ"

🐚 Shells

  • Reverse Shell
  • Web Shell

📄 Documentações:

📤 Upload de Arquivos


⬆️ Escalação de Privilégios

  • Utilizar:

    • linPEAS

🧩 Pós-Exploração

  • Verificar permissões do sudo:
ls -l $(which sudo)

📄 Referência:

📄 Arquivos de senhas

  • Olhar os arquivos de senha como passwd e shadow. Documentação sobre: 🔗 Clique aqui

🔁 Pivoting / Tunnel

  • Criar SSH Tunnel entre máquinas locais
  • Seguir todo o fluxo novamente após o pivot

📁 Diretórios e Arquivos para Ficar de Olho

  • .ssh
  • .bash_history
  • robot.txt
  • proc/self/environment

⭐ Dicas de parâmetros

  • Ao alterar algum parâmetro, faça o teste se é possível executar algum comando por ele. Exemplo:
{
"y": "0; sleep 3;"
}

| **Tipo de Teste** | **Payload (entrada)** | **Efeito Esperado** | **Observações** | | |
| --------------------- | ---------------------------- | ------------------------------------------------------- | ----------------------------------------------------------- | ------------------------------------------- | ------------------------------------- |
| **Delay simples** | `0; sleep 5;` | A resposta da API demora 5 segundos | Confirma execução de comando | | |
| **Comando `whoami`** | `0; whoami` | Resposta ou log contendo o nome do usuário do sistema | Não destrutivo, útil para detecção | | |
| **Comando `uname`** | `0; uname -a` | Sistema operacional e versão retornados | Pode revelar o sistema em uso | | |
| **Redirecionamento** | `0; whoami > /tmp/teste.txt` | Criação de arquivo com saída do comando | Útil em testes de escrita em disco | | |
| **Comando encadeado** | `0 && echo injetado` | Retorna "injetado" se o primeiro comando tiver sucesso | Detecta execução condicional | | |
| **Subshell** | `$(sleep 3)` | Atraso na resposta | Testa execução via subshell | | |
| **Execução oculta** | `` `sleep 3` `` | Atraso na resposta | Outra forma de testar subshell | | |
| **Hex/Base64** | `$(echo c2xlZXAgMw== | base64 -d | sh)` | Decodifica e executa `sleep 3` | Pode contornar filtros simples |
| **Teste de erro** | `0;` | Se resposta for `500`, pode indicar tratamento inseguro | Útil mesmo sem execução real | | |
| **Ping local** | `0; ping -c 3 127.0.0.1` | Atraso de ~3 segundos | Alternativa ao `sleep` se este for bloqueado | | |
| **Barra vertical** | `0 | sleep 3` | Executa `sleep 3` se o valor anterior for aceito pelo shell | Teste de execução via pipe (` | `) |
| **Inversão lógica** | `0 | | echo falhou` | Executa `echo` se o primeiro comando falhar | Detecta tratamento de erros via shell |



📁 Arquivos

  • Olhar com o comando file para ver o que realmente é o arquivo
  • Usar o comando strings para ver se tem algum byte escondido. O editor de bytes chamada ghex
  • O programa steghide é usado para esconder um arquivo dentro de outro
  • O comando ltrace vê o que cada arquivo ou comando executa por baixo dos panos
warning

Validar os tipos de extensões pois podem estar contidas dentro dos arquivos Documentação sobre extensões: 🔗 Clique aqui Playlist da SolydOne que mostra a situação: Solyd CTF 2019 - Cracker ou Hacker - Flag 3


🏠 Portas

  • Quando houver uma porta TCP desconhecida, podemos usar o seguinte comando:
nc <ip> <port>