Syhunt Hybrid: Análise via CLI
As informações contidas neste documento se aplicam a versão 6.9.1 do Syhunt Hybrid.
Índice
Introdução
Siga este guia para aprender como realizar um scan dinâmico ou de código-fonte e gerar um relatório de vulnerabilidades através de linha de comandos.
O diretório das ferramentas de CLI da Syhunt depende da versão do Syhunt e do seu SO:
SO | Diretório Padrão |
Windows | C:\Program Files\Syhunt Hybrid\ C:\Program Files (x86)\Syhunt Hybrid\ C:\Program Files\Syhunt Community Core\ |
Linux | /home/[usuario]/syhunt-hybrid/carbon/ /home/[usuario]/syhunt-community/carbon/ |
Como realizar um scan dinâmico via CLI
- Siga até o diretório onde o Syhunt Hybrid está instalado usando o prompt de comando.
- Use a seguinte linha de comando:
scanurl [urlinicial] -hm:[metodo]] -gr
Exemplo: scanurl http://www.somehost.com -hm:appscan -gr
Os relatórios da ferramenta scanurl são gerados e salvos de forma automática quando o parâmetro -gr é fornecido. Você também pode abrir a sessão após o término da varredura através da interface gráfica do Syhunt, usando a opção Menu -> Past Sessions (Sessões Anteriores).
Os seguintes parâmetros podem ser fornecidos ao chamar a ferramenta scanurl, sendo todos eles opcionais:
Parâmetro | Descrição | Valor Padrão |
sn:[nome] | Um nome de sessão que precisa ser único. Se omitido, um ID único será gerado e atribuido à varredura | ID auto-gerado |
hm:[nome] | o método a ser usado durante a varredura. Se omitido, o método padrão será usado | appscan |
emu:[modo] | Modo de Emulação de Navegador. Modos disponíveis incluem: chrome, edge, firefox, msie, safari | chrome |
srcdir:[dir local] | Confira uma pasta de código-fonte alvo para uma Análise Híbrida (ex. "C:\www\docs\" or "/home/user/www/") | |
gr | Gera um arquivo de relatório ao término de uma varredura | |
gx | Gera um arquivo com dados exportados ao término de uma varredura | |
or | Abre um relatório após a varredura | |
er | Envia o relatório por email imediamente após ele ter sido gerado | |
etrk:[nomedotracker] | Indica as preferências de email a serem usadas ao enviar o relatório por email | |
esbj:[assunto] | O assunto do email a ser usado ao enviar o relatório por email | Syhunt Hybrid Report |
rout:[nomedoarquivo] | Define o nome de saída para o relatório e seu formato | Report_[session name].html |
rtpl:[nome] | Define o modelo de relatório | Standard |
xout:[nomedoarquivo] | Define o nome de saída do export e seu formato | Export_[session name].xml |
xout2:[nomedoarquivo] | Define um segundo nome de saída de export e seu formato | Export_[session name].xml |
pfcond:[condição] | Define uma condição de aprovação/reprovação a ser relatado | |
nv | Desativa o modo verbose. Erro e informações básicas ainda são exibidas | |
inc:[modo] | Define o modo de varredura incremental | targetpref |
inctag:[nome] | Opcionalmente guarda os dados incrementais associados à uma tag | |
mnl:[n] | Define o número máximo de links por servidor | 10000 |
mnr:[n] | Define o número máximo de tentativas no caso de tempo esgotado em requisição HTTP | 2 |
mcd:[n] | Define a profundidade máxima de mapeamento (crawling) | 0 (unlimited) |
tmo:[ms] | Define o tempo de timeout de uma conexão HTTP | 8000 |
ver:[v] | Define a versão HTTP | 1.1 |
nofris | Desativa o seguimento automatico de redirecionamento fora do domínio no URL de início | |
nodos | Desativa os testes de negação de serviço | |
nojs | Desativa a emulação e execução de JavaScript | |
atype:[tipo] | Define o tipo de autenticação; Basic, Form and Manual | |
auser:[nomedeusuario] | Define um nome de usuário para autenticação | |
apass:[senha] | Define uma senha para autenticação | |
about | Exibe informações sobre a versão atual do Syhunt | |
help (ou /?) | Mostra a lista de parâmetros disponíveis |
Realizando scan de endereços IPv6
O Syhunt Dynamic suporta a realização de scans contra endereços do tipo IPv6. Para testar um alvo IPv6, lembre-se de colocar o endereço entre colchetes, ex:
http://[2001:4860:0:2001::68]/index.php
Como realizar um scan de código via CLI
- Siga até o diretório onde o Syhunt está instalado usando o prompt de comandos.
- Use a seguinte linha de comando:
scancode [alvo] -hm:[metodo]] -gr
# Exemplos:
scancode git://sub.domain.com/repo.git -gr
scancode https://github.com/user/repo.git -rb:master -gr
scancode c:\source\www\ -gr
scancode c:\source\www\file.php -gr
scancode c:\mobile\myapp.apk -gr
scancode "c:\source code\www\" -gr
Os relatórios da ferramenta scancode são gerados e salvos de forma automática quando o parâmetro -gr é fornecido. Você também pode abrir a sessão após o término da varredura através da interface gráfica do Syhunt e usando a opção Menu -> Past Sessions (Sessões Anteriores).
Os seguintes parâmetros podem ser fornecidos ao chamar a ferramenta scancode, sendo todos eles opcionais:
Parâmetro | Descrição | Valor Padrão |
sn:[nome] | Um nome de sessão que precisa ser único. Se omitido, um ID único será gerado e atribuido à varredura | ID auto-gerado |
hm:[nome] | o método a ser usado durante a varredura. Se omitido, o método padrão será usado | appscan |
rb:[branch] | Sets a repository branch | master |
gr | Gera um arquivo de relatório ao término de uma varredura | |
gx | Gera um arquivo com dados exportados ao término de uma varredura | |
or | Abre um relatório após a varredura | |
er | Envia o relatório por email imediamente após ele ter sido gerado | |
etrk:[nomedotracker] | Indica as preferências de email a serem usadas ao enviar o relatório por email | |
esbj:[assunto] | O assunto do email a ser usado ao enviar o relatório por email | Syhunt Hybrid Report |
rout:[nomedoarquivo] | Define o nome de saída para o relatório e seu formato | Report_[session name].html |
rtpl:[nome] | Define o modelo de relatório | Standard |
xout:[nomedoarquivo] | Define o nome de saída do export e seu formato | Export_[session name].xml |
xout2:[nomedoarquivo] | Define um segundo nome de saída de export e seu formato | Export_[session name].xml |
pfcond:[condição] | Define uma condição de aprovação/reprovação a ser relatado | |
nv | Desativa o modo verbose. Erro e informações básicas ainda são exibidas | |
inc:[modo] | Define o modo de varredura incremental | targetpref |
inctag:[nome] | Opcionalmente guarda os dados incrementais associados à uma tag | |
refurl:[url] | Define um URL associado com o código-fonte alvo para propósito de referência | |
noifa | Desliga a análise de filtragem de entrada durante a varredura | |
about | Exibe informações sobre a versão atual do Syhunt | |
help (ou /?) | Mostra a lista de parâmetros disponíveis |
Condições de aprovação / reprovação
Uma condição de teste de aprovação / reprovação pode ser transmitida ao scancode ou scanurl com o parâmetro -pfcond: A seguir estão as condições de aprovação / reprovação atualmente suportadas pelo Syhunt:
fail-if:risk=high
- Falha se for encontrada uma vulnerabilidade de alto riscofail-if:risk=mediumup
- Falha se for encontrada uma vulnerabilidade de risco Médio ou Altofail-if:risk=lowup
- Falha se for encontrada uma vulnerabilidade de risco Baixo, Médio ou Alto
Modos do Scan Incremental
auto | Gerencia automaticamente o cache de varredura incremental (modo recomendado) |
disabled | Desliga o cache de varredura incremental. Isto desacelera as varreduras, passando a levar de 3 a 4 vezes mais tempo para complentar uma varredura |
forced | Força a varredura incremental a estar sempre ligada. Caso utilize este modo, certifique-se de que você possui uma varredura que não seja forçada configurada para executar todo mês ou com frequência similar |
targetpref | Usa o modo de varredura incremental definido nas preferências do alvo |
Modelos e Formatos de Relatório Disponíveis
.html | Relatório HTML |
Relatório em Adobe PDF | |
.xml | Resultados exportados em XML |
.json | Vulnerabilidades exportadas em JSON |
.csv | CSV (Comma-Separated Values) |
.mse.csv | CSV (Comma-Separated Values) para MS Excel |
.txt | Relatório em formato texto |
Os seguintes modelos de relatório estão disponíveis:
Standard | Este é o relatório padrão com informações sobre vulnerabilidades de risco baixo à alto |
Comparison | Inclui as informações padrão e também informações sobre a evolução das vulnerabilidades |
Compliance | Inclui informações sobre conformidade com o OWASP Top 10, CWE/SANS Top 25 2019 e PCI DSS v3.2.1 |
Mobile | Inclui informações sobre conformidade com o OWASP Mobile Top 10, CWE/SANS Top 25 2019 e PCI DSS v3.2.1 |
Complete | Inclui as informações padrão junto e também detalhes sobre evolução, conformidade, respostas da aplicação e cobertura da análise |
Diferenças entre os Métodos de Varredura
Método | Nome na CLI | Tipo | F. Bruta | Injeção | DoS | Demorado |
Application Scan (Padrão) | appscan | Y | Y | Y | N | |
Structure Brute Force | structbf | Y (Profundo) | N | N | Y (Very) | |
Old & Backup Files | fileold | Y | N | N | Y | |
Fault Injection | faultinj | N | Y | Y | N | |
Top 10 (OWASP) | top10 | N | P (TOP10) | Y | N | |
Top 25 (CWE) | top25cwe | N | P (TOP25) | Y | N | |
Top 5 (OWASP PHP) | top5php | N | P (TOP5) | N | N | |
Cross-Site Scripting | xss | N | P (XSS) | N | N | |
SQL Injection | sqlinj | N | P (SQL) | N | N | |
File Inclusion | fileinc | N | P (FI) | N | N | |
Unvalidated Redirects | unvredir | N | P (UR) | N | N | |
Malware Content | malscan | P (Malware) | P (Malware) | N | N | |
Passive | passive | N | N | N | N | |
Spider Only | spider | N | N | N | N | |
Complete Scan | complete | Y | Y | Y | Y (Very) | |
Complete Scan, No DoS | compnodos | Y | Y | N | Y (Muito) | |
Complete Scan, Paranoid | comppnoid | Y (Profundo) | Y | Y | Y (Muito) |
Letras: Sim/Não/Parcial (Y/N/P)
Tipo de Teste
- - Híbrido (Caixa Cinza), Dinâmico e Código
- - Apenas Dinâmico (Caixa Preta)
- - Apenas Código (Caixa Branca)
Demorado
Um Sim significa que verificações adicionais e mutações de ataque serão realizadas e que o número de verificações será influenciado pelo número de diretórios encontrados durante o estágio de mapeamento do site.
Descrição
O método Application Scan é o método padrão de scan no Syhunt. Se você desejar utilizar um método diferente de varredura, você poderá selecionar uma das seguintes as opções:
Application Scan (Scan de Aplicação)
Identifica falhas em aplicações web que você tenha desenvolvido, no servidor web e em componentes de terceiros. Este método mapeia o web site e realiza ataques contra a estrutura do site e suas aplicações web. Isto inclui procurar por vulnerabilidades de injeção de falhas como XSS, Injeção de SQL, Inclusão de Arquivos, e mais.
Structure Brute Force (Força Bruta de Estrutura)
Uma força bruta de estrutura verificará por:
- Scripts Comuns Vulneráveis
- Arquivos Comuns
- Vazamento de Banco de Dados
- Backdoors baseadas na Web
O número de verificações será influenciado pelo número de diretórios encontrado durante o estágio de mapeamento do site.
Old & Backup Files (Arquivos Antigos e de Backups)
Executa verificações de extensão ao redor da estrutura mapeada de um website.
OWASP Top 10
Verifica especificamente pelas vulnerabilidades do OWASP Top 10 2017:
- A1 2017: Injection
- A2 2017: Broken Authentication
- A3 2017: Sensitive Data Exposure
- A4 2017: XML External Entities (XXE)
- A5 2017: Broken Access Control
- A6 2017: Security Misconfiguration
- A7 2017: Cross-Site Scripting (XSS)
- A8 2017: Insecure Deserialization
- A9 2017: Using Components with Known Vulnerabilities
- A10 2017: Insufficient Logging & Monitoring
CWE Top 25
Verifica especificamente pela lista CWE de Erros Mais Perigosos de Software de 2019.
Confira a lista completa em: https://cwe.mitre.org/top25/archive/2019/2019_cwe_top25.html
OWASP PHP Top 5 (Cinco Mais do OWASP)
Verifica especificamente pela Lista das Cinco Principais Vulnerabilidades do PHP, do OWASP:
- Execução Remota de Comandos
- Cross-Site Scripting (XSS), incluindo DOM XSS
- Injeção de SQL
- Ataques ao Sistema de Arquivos, incluindo Inclusão de Arquivos.
Fault Injection (Injeção de Falhas)
Verifica especificamente por vulnerabilidades de injeção de falhas. Caso este método de varredura seja selecionado, todas as outras verificações que não necessitam de injeção são desligadas e o Syhunt então verificará especificamente por falhas como injeção de SQL, XSS, inclusão de arquivos e outras falhas similares.
Cross-Site Scripting (XSS)
Verifica especificamente por vulnerabilidades do tipo XSS, incluindo DOM XSS.
SQL Injection (Injeção de SQL)
Verifica especificamente por vulnerabilidades de injeção de SQL & NoSQL.
File Inclusion
Verifica especificamente por vulnerabilidades de Inclusão de Arquivos e Directory Traversal.
Unvalidated Redirects
Verifica especificamente por vulnerabilidades de Redirecionamento Não-Validado.
Malware Scan
Verifica especificamente por malware, como:
- Web Backdoors
- Conteúdo Malicioso
- Parâmetros de Debug escondidos na aplicação
Passive Scan
Mapeia a estrutura do web site e reporta vulnerabilidades descobertas sem lançar quaisquer tipos de ataques, como:
- Vulnerabilidades JavaScript no lado do cliente
- Diversas fraquezas de formulário
- Divulgação de tecnologias usadas
- Cabeçalhos HTTP inseguros
- Software de Servidor Desatualizado e Vulnerável
- Scripts Referenciados Desatualizados e Vulneráveis
- Comentários HTML suspeitos
- Divulgação de Código Fonte
- Conteúdo Malicioso sendo servido
Spider Only
Apenas mapeia a estrutura do website, sem testar por ou reportar qualquer tipo de vulnerabilidade ou fraqueza.
Complete Scan (Scan Completo)
Verifica por todos os tipos de vulnerabilidade em aplicações web usando todos os tipos de mutação e métodos de pen-tester, incluindo ataques de Manipulação de Cabeçalho. Um scan completo pode algumas vezes ser bastante demorado quando executado contra um servidor web que possui uma grande quantidade de pastas e pontos de entrada.
Complete Scan - No DoS (Scan Completo - Sem DoS)
O mesmo de antes, mas com os testes de negação de serviço (denial-of-service) desligados.
Complete Scan - Paranoid (Scan Completo - Paranóico)
Verifica por todos os tipos de vulnerabilidades em aplicações web usando força bruta profunda na estrutura do site, todos os tipos de mutações e métodos de pen-tester, incluindo ataques de Manipulação de Cabeçalho. Este método pode ser bastante demorado, especialmente se executado contra grandes sites. Este método tambem realiza uma verificação tripla na força bruta da estrutura, que se aplica a servidores sensíveis a letras maiúsculas e minúsculas - o Syhunt tentará todas as possibilidades de nome de arquivo (tudo em maiúsculas, tudo em minúsculas, etc).
Trabalhando com Lançadores de Terceiros
Confira este documento sobre como gerar uma linha de comandos completa que permite iniciar o Syhunt a partir de arquivos BAT, agendadores de terceiros, Jenkins e outras ferramentas.
Para documentação adicional do produto, visite syhunt.com/docs/br