Integrando o Syhunt ao PowerShell
As informações contidas neste documento se aplicam a versão 6.9.17 do Syhunt Hybrid.
As verificações do Syhunt podem ser facilmente executadas a partir de um script do PowerShell, permitindo integrar as ferramentas Syhunt Dynamic, Syhunt Code e Syhunt Mobile ao seu processo de entrega contínua, CLI e muito mais. A instalação do Syhunt Hybrid instala automaticamente um módulo Syhunt no PowerShell do Windows (10/7) com funções que permitem iniciar varreduras, obter relatórios e resultados e executar testes de aprovação / reprovação.
Adicionando o Syhunt em seu script PowerShell
Insira o código abaixo na posição apropriada do seu script do PowerShell:
# Exemplo de SAST - Analisar diretório / repositório local
Start-CodeScan -pfcond "medium"
# Exemplo de SAST - Analisar um repositório GIT remoto
$MyProject = @{
target = 'https://github.com/syhunt/vulnphp.git';
branch = 'main';
pfcond = 'medium';
output = 'report.pdf'
}
Start-CodeScan @MyProject
# Exemplo de DAST - Analisar um URL
$MyWebsite= @{
target = 'https://www.somewebsite.com';
pfcond = 'medium';
output = 'report.pdf'
}
Start-DynamicScan @MyWebsite
Start-DynamicScan - Iniciando uma varredura dinâmica
O Syhunt Dynamic deve ser iniciado através da função Start-DynamicScan(). Os seguintes parâmetros devem ser fornecidos ao chamar a função Start-DynamicScan():
- target (obrigatório) - o URL alvo a ser analisado (ex. http://www.somesite.com)
- huntmethod (opcional) - o Método de Varredura a ser usado durante a análise. Se omitido, o método padrão será usado.
- pfcond (opcional) - permite que o script falhe com o código de saída adequado se uma determinada condição for atendida. Veja abaixo uma lista das condições de aprovação / reprovação disponíveis.
- tracker (opcional) - o nome do rastreador criado anteriormente ou um rastreador gerado dinamicamente para o qual será enviado um resumo das vulnerabilidades identificadas ao final da varredura. Exemplos
- output (opcional) - permite definir um nome de arquivo de relatório (por exemplo, report.pdf ou report.html).
- outputex (opcional) - permite definir um segundo nome de arquivo de saída (por exemplo, export.json).
- verbmode (opcional) - $ false por padrão. Se alterado para true, ativa o modo detalhado, permitindo que informações de erro e informações básicas sejam adicionadas ao console.
- genrep (opcional) - $ true por padrão. Se alterado para false, o Syhunt não gerará um arquivo de relatório.
- redirIO (opcional) - $ true por padrão. Se alterado para false, informações de status em tempo-real do scanner Syhunt não serão redirecionadas para o console.
- timelimit (opcional) - define o tempo máximo da varredura (padrão: sem limite). Caso o tempo seja atingido, a varredura é cancelada. Exemplos: 1d, 3h, 2h30m, 50m
Ao usar os parâmetros output ou outputex, todos os formatos de saída suportados pelo Syhunt estão disponíveis. O relatório ou exportação será salvo no diretório de trabalho atual, a menos que seja fornecido um nome de caminho completo.
Exemplos:
# Exemplo 1 - Analisar um URL com uma única linha
Start-DynamicScan -target 'https://www.somewebsite.com' -pfcond 'fail-if:risk=mediumup'
# Exemplo 2 - Analisar um URL
$MyWebsite= @{
target = 'https://www.somewebsite.com';
pfcond = 'medium';
output = 'report.pdf'
}
Start-DynamicScan @MyWebsite
Start-CodeScan - Iniciando uma varredura de código-fonte
O Syhunt Code deve ser iniciado através da função Start-CodeScan(). Os seguintes parâmetros podem ser fornecidos ao chamar a função Start-CodeScan(), sendo todas eles opcionais:
- target - o URL de um repositório GIT ou um diretório ou arquivo de código-fonte local a ser verificado. Se o parâmetro target for omitido, o diretório de trabalho atual será verificado.
- branch - a ramificação do repositório a ser analisada. Se o parâmetro branch for omitido, o branch padrão será analisado.
- huntmethod - o Método de Varredura a ser usado durante a análise. Se omitido, o método padrão será usado.
- pfcond - permite que o script falhe com o código de saída adequado se uma determinada condição for atendida. Veja abaixo uma lista das condições de aprovação / reprovação disponíveis.
- output - permite definir um nome de arquivo de relatório (por exemplo, report.pdf ou report.html).
- outputex - permite definir um segundo nome de arquivo de saída (por exemplo, export.json).
- verbmode - $ false por padrão. Se alterado para true, ativa o modo detalhado, permitindo que informações de erro e informações básicas sejam adicionadas ao console.
- genrep - $ true por padrão. Se alterado para false, o Syhunt não gerará um arquivo de relatório.
- redirIO - $ true por padrão. Se alterado para false, informações de status em tempo-real do scanner Syhunt não serão redirecionadas para o console.
- timelimit (opcional) - define o tempo máximo da varredura (padrão: sem limite). Caso o tempo seja atingido, a varredura é cancelada. Exemplos: 1d, 3h, 2h30m, 50m
Ao usar os parâmetros output ou outputex, todos os formatos de saída suportados pelo Syhunt estão disponíveis. O relatório ou exportação será salvo no diretório de trabalho atual, a menos que seja fornecido um nome de caminho completo.
Exemplos:
# Exemplo 1 - Analisando o diretório / repositório atual
Start-CodeScan -pfcond "medium"
# Exemplo 2 - Analisando um projeto GIT remoto
Start-CodeScan -target "https://github.com/someuser/somerepo.git" -huntmethod "normal" -pfcond "medium"
# Exemplo 3 - Analisando um diretório local específico
Start-CodeScan -target "C:\www\" -huntmethod "normal" -pfcond "medium"
Condições de aprovação / reprovação
A seguir estão as condições de aprovação / reprovação atualmente suportadas pelo Syhunt:
high
oufail-if:risk=high
- Falha se for encontrada uma vulnerabilidade ou ameaça de alto riscomedium
oufail-if:risk=mediumup
- Falha se for encontrada uma vulnerabilidade ou ameaça de risco Médio ou Altolow
oufail-if:risk=lowup
- Falha se for encontrada uma vulnerabilidade ou ameaça de risco Baixo, Médio ou Alto
Notas Adicionais
Se você receber o erro Script.ps1 não pode ser carregado porque a execução de scripts está desativada neste sistema, inicie o PowerShell com direitos administrativos e insira o seguinte comando para ativar scripts:
set-executionpolicy remotesigned
Se você receber o erro O termo Start-CodeouDynamicScan não é um arquivo de script ou um programa operável, você precisa carregar o módulo Syhunt no PowerShell. Entre o comando Import-Module Syhunt e chame a função de scan novamente.
Carregando o Syhunt automaticamente
No Windows 10, o Syhunt é carregado automaticamente.
No Windows 7, você pode carregar manualmente o Syhunt toda vez chamando Import-Module Syhunt antes de chamar funções Syhunt ou você pode carregar o Syhunt automaticamente - adicione o Syhunt ao seu perfil do PowerShell e o Syhunt será carregado automaticamente:
- Vá para o caminho do perfil do PowerShell, que por padrão é: C:\Documents and Settings\User\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
- Crie o arquivo Microsoft.PowerShell_profile.ps1
- Adicione a linha Import-Module Syhunt e salve o arquivo.
Para documentação adicional do produto, visite syhunt.com/docs/br