Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
scanner-cli — Una herramienta de escaneo de seguridad/vulnerabilidades/riesgos de proyectos. | Kitploit
Herramientas/GitHubGitHub/hawkeyesec/scanner-cli
Análisis EstáticoEscáneres de VulnerabilidadesSeguridad de ContenedoresAnálisis de CódigoDevSecOpsDetección de SecretosArchived
GitHubhawkeyesec/scanner-cli

scanner-cli

Una herramienta de escaneo de seguridad/vulnerabilidades/riesgos de proyectos.

Ver Repositorio
361867hace 5 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Aviso de Desuso: Hawkeye ha llegado al final de su vida útil.

Existen opciones más modernas para ti y tu proyecto. Si deseas retomar el mantenimiento del proyecto, no dudes en contactarme. Encontrarás formas de contactarme en mi página personal.

.

.

.

.

.

.

El Hawkeye scanner-cli es una herramienta de seguridad de proyectos, vulnerabilidades y señalización general de riesgos. Está pensada para integrarse en tus hooks de pre-commit y en tus pipelines.

Ejecución y configuración del escáner

El Hawkeye scanner-cli asume que la estructura de tu directorio es tal que mantiene los archivos de la cadena de herramientas en el nivel superior. A grandes rasgos, esto es lo que implica:

  • Los proyectos Node.js tienen un package.json en el nivel superior
  • Los proyectos Ruby tendrán un Gemfile en el nivel superior
  • Los proyectos Python tendrán un requirements.txt en el nivel superior
  • Los proyectos PHP tendrán un composer.lock en el nivel superior
  • Los proyectos Java tendrán una carpeta build (gradle) o target (maven), e incluirán archivos .java y .jar
  • Los proyectos Kotlin tendrán una carpeta build (gradle) o target (maven), e incluirán archivos .kt y .jar
  • Los proyectos Scala tendrán una carpeta target (sbt con plugins sbt-native-packager o sbt-assembly), e incluirán archivos .scala y .jar. Consulta este repositorio para ver una demostración en funcionamiento.
  • Los proyectos Rust tendrán un Cargo.toml en el nivel superior
  • Esto no es exhaustivo, ya que a veces las herramientas requieren que existan más archivos. Para entender cómo los módulos deciden si pueden manejar un proyecto, consulta la sección Cómo funciona y la carpeta módulos.

    Docker (recomendado)

    La imagen de docker es, sin duda, la forma más sencilla de usar el escáner. Ten en cuenta que la raíz de tu proyecto (por ejemplo, $PWD) debe montarse en /target.

    root@kitploit:~
    docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest
    

    Si usas el escáner para escribir un JSON (mediante los flags -j y --json de la CLI y la configuración json en el .hawkeyerc), asegúrate de que utiliza el UID y GID correctos mediante docker run -u $(id -u):$(id -g). De lo contrario, podrías quedarte con archivos no eliminables, por ejemplo, al ejecutarlo en Jenkins.

    La construcción de Docker también es la forma recomendada de ejecutar el escáner en tus pipelines de CI. Este es un ejemplo de ejecución de Hawkeye contra uno de tus proyectos en GoCD:

    root@kitploit:~
    <pipeline name="security-scan">
      <stage name="Hawkeye" cleanWorkingDir="true">
        <jobs>
          <job name="scan">
            <tasks>
              <exec command="docker">
                <arg>pull</arg>
                <arg>hawkeyesec/scanner-cli</arg>
                <runif status="passed" />
              </exec>
              <exec command="bash">
                <arg>-c</arg>
                <arg>docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest</arg>
                <runif status="passed" />
              </exec>
            </tasks>
          </job>
        </jobs>
      </stage>
    </pipeline>
    

    npm

    Puedes instalar y ejecutar hawkeye en un proyecto Node.js mediante

    root@kitploit:~
    npm install --save-dev @hawkeyesec/scanner-cli
    npx hawkeye scan
    

    Este método se recomienda en un proyecto Node.js, donde no se requieren las otras cadenas de herramientas (por ejemplo, python, ruby).

    Con este método, también se recomienda invocar el escáner en un hook de git pre-commit (por ejemplo, mediante el paquete pre-commit) para que falle el commit si se encuentran problemas.

    Archivos de Configuración (recomendado)

    Puedes configurar el escáner mediante los archivos .hawkeyerc y .hawkeyeignore en la raíz de tu proyecto.

    El archivo .hawkeyerc es un archivo JSON que te permite configurar...

    • los módulos a ejecutar,
    • los escritores a utilizar, y
    • el umbral de fallo
    root@kitploit:~
    {
        "all": true|false,
        "staged": true|false,
        "modules": ["files-ccnumber", "java-owasp", "java-find-secbugs"],
        "sumo": "http://your.sumologic.foobar/collector",
        "http": "http://your.logger.foobar/collector",
        "json": "log/results.json",
        "failOn": "low"|"medium"|"high"|"critical",
        "showCode": true|false
    }
    

    El archivo .hawkeyeignore es una colección de expresiones regulares que coinciden con rutas y códigos de error de módulos para excluir del escaneo, y es equivalente a usar el flag --exclude. Las líneas que comienzan con # se consideran comentarios.

    ¡Ten en cuenta que cualquier carácter especial reservado en expresiones regulares (-[]{}()*+?.,^$|#\s) debe escaparse cuando se use como literal!

    Ten en cuenta también que los códigos de error de los módulos normalmente no se muestran, ya que no son principalmente relevantes para el usuario. Si deseas excluir un falso positivo en particular, puedes mostrar los códigos de error de los módulos con el flag --show-code o la propiedad showCode en el .hawkeyerc.

    root@kitploit:~
    ^test/
    
    # esto es un comentario
    
    ^README.md
    

    La CLI

    Usa hawkeye modules para listar los módulos disponibles y su estado.

    root@kitploit:~
    > npx hawkeye modules
    [info] Version: v1.4.0
    [info] Module Status
    [info] Enabled:   files-ccnumber
    [info]            Scans for suspicious file contents that are likely to contain credit card numbers
    [info] Enabled:   files-contents
    [info]            Scans for suspicious file contents that are likely to contain secrets
    [info] Disabled:  files-entropy
    [info]            Scans files for strings with high entropy that are likely to contain passwords
    [info] Enabled:   files-secrets
    [info]            Scans for suspicious filenames that are likely to contain secrets
    [info] Enabled:   java-find-secbugs
    [info]            Finds common security issues in Java code with findsecbugs
    [info] Enabled:   java-owasp
    [info]            Scans Java projects for gradle/maven dependencies with known vulnerabilities with the OWASP dependency checker
    [info] Enabled:   node-npmaudit
    [info]            Checks node projects for dependencies with known vulnerabilities
    [info] Enabled:   node-npmoutdated
    [info]            Checks node projects for outdated npm modules
    [info] Enabled:   node-yarnaudit
    [info]            Checks yarn projects for dependencies with known vulnerabilities
    [info] Enabled:   node-yarnoutdated
    [info]            Checks node projects for outdated yarn modules
    [info] Enabled:   php-security-checker
    [info]            Checks whether the composer.lock contains dependencies with known vulnerabilities using security-checker
    [info] Enabled:   python-bandit
    [info]            Scans for common security issues in Python code with bandit.
    [info] Enabled:   python-piprot
    [info]            Scans python dependencies for out of date packages
    [info] Enabled:   python-safety
    [info]            Checks python dependencies for known security vulnerabilities with the safety tool.
    [info] Enabled:   ruby-brakeman
    [info]            Statically analyzes Rails code for security issues with Brakeman.
    [info] Enabled:   ruby-bundler-scan
    [info]            Scan for Ruby gems with known vulnerabilities using bundler
    
    

    Usa hawkeye scan para iniciar un escaneo:

    root@kitploit:~
    > npx hawkeye scan --help
    [info] Version: v1.3.0
    Usage: hawkeye-scan [options]
    
    Options:
      -a, --all                                       Scan all files, regardless if a git repo is found. Defaults to tracked files in git repositories.
      -t, --target [/path/to/project]                 The location to scan. Defaults to $PWD.
      -f, --fail-on [low|medium|high|critical]        Set the level at which hawkeye returns non-zero status codes. Defaults to low.
      -m, --module [module name]                      Run specific module. Defaults to all applicable modules.
      -e, --exclude [pattern]                         Specify one or more exclusion patterns (eg. test/*). Can be specified multiple times.
      -j, --json [/path/to/file.json]                 Write findings to file.
      -s, --sumo [https://sumologic-http-connector]   Write findings to SumoLogic.
      -H, --http [https://your-site.com/api/results]  Write findings to a given url.
      --show-code                                     Shows the code the module uses for reporting, useful for ignoring certain false positives
      -g, --staged                                    Scan only git-staged files.
      -h, --help                                      output usage information
    

    Resultados

    Códigos de Salida

    El scanner-cli responde con los siguientes códigos de salida:

    • El código de salida 0 indica que no se encontraron hallazgos por encima o igual al umbral mínimo.
    • El código de salida 1 indica que se encontraron problemas por encima o igual al umbral mínimo.
    • El código de salida 42 indica que ocurrió un error inesperado en algún lugar del programa. Probablemente sea un error y no debería ocurrir. Por favor, revisa la salida del registro e informa de un error.

    Redirigir la salida de la consola

    Si deseas redirigir la salida del registrador de la consola, el método recomendado es engancharse a stdout. En este ejemplo, estamos haciendo uso tanto de los resultados JSON como de stdout:

    root@kitploit:~
    docker run --rm -v $PWD:/target hawkeyesec/scanner-cli:latest -j hawkeye-results.json -f critical 2>&1 | tee hawkeye-results.txt
    

    Salida de la consola

    Por defecto, el escáner genera sus resultados en la consola en forma de tabla.

    Sumologic

    Los resultados pueden enviarse a un colector SumoLogic de tu elección. En este ejemplo, tenemos un colector con una única fuente HTTP.

    root@kitploit:~
    hawkeye scan --sumo https://collectors.us2.sumologic.com/receiver/v1/http/your-http-collector-url
    

    En SumoLogic, busca _collector="hawkeye" | json auto:

    SumoLogic

    Cualquier endpoint HTTP

    De manera similar al ejemplo de SumoLogic, el escáner puede enviar los resultados a cualquier endpoint HTTP que acepte mensajes POST.

    root@kitploit:~
    hawkeye scan --http http://your.logging.foobar/endpoint
    

    Los resultados se enviarán con User-Agent: hawkeye. De manera similar a la salida de la consola, se publicará el siguiente JSON para cada hallazgo:

    root@kitploit:~
    {
      "module": "files-contents",
      "level": "critical",
      "offender": "testfile3.yml",
      "description": "Private key in file",
      "mitigation": "Check line number: 3"
    }
    

    Cómo funciona

    Hawkeye está diseñado para ser extensible añadiendo módulos y escritores.

    • Añade módulos en la carpeta módulos.
    • Añade escritores en la carpeta escritores.

    Módulos

    Los módulos son básicamente pequeños fragmentos de código que implementan su propia lógica, o envuelven una herramienta de terceros y estandarizan la salida. Solo se ejecutan si se cumplen los criterios requeridos. Por ejemplo: el módulo npm outdated solo se ejecutaría si se detecta un package.json en el destino del escaneo; como resultado, no necesitas decirle a Hawkeye qué tipo de proyecto estás escaneando.

    Módulos Genéricos

    • files-ccnumber: Escanea contenidos de archivos sospechosos que probablemente contengan números de tarjetas de crédito
    • files-contents: Escanea contenidos de archivos sospechosos que probablemente contengan secretos
    • files-entropy: Escanea archivos en busca de cadenas con alta entropía que probablemente contengan contraseñas. El escaneo de entropía está deshabilitado por defecto debido al alto número de falsos positivos. Es útil escanear bases de código de vez en cuando en busca de claves; en ese caso, ejecútalo usando el interruptor -m files-entropy.
    • files-secrets: Escanea nombres de archivo sospechosos que probablemente contengan secretos

    Java / Kotlin / Scala

    • java-find-secbugs: Encuentra problemas de seguridad comunes en código Java con findsecbugs
    • java-owasp: Escanea proyectos Java en busca de dependencias gradle/maven con vulnerabilidades conocidas con el comprobador de dependencias OWASP

    Node.js

    • node-npmaudit: Comprueba proyectos Node en busca de dependencias con vulnerabilidades conocidas con npm audit
    • node-npmoutdated: Comprueba proyectos Node en busca de módulos npm desactualizados con npm outdated
    • node-yarnaudit: Comprueba proyectos yarn en busca de dependencias con vulnerabilidades conocidas con yarn audit
    • node-yarnoutdated: Comprueba proyectos Node en busca de módulos yarn desactualizados con yarn outdated

    PHP

    • php-security-checker: Comprueba si el archivo composer.lock contiene dependencias con vulnerabilidades conocidas usando security-checker

    Python

    • python-bandit: Escanea problemas de seguridad comunes en código Python con bandit.
    • python-piprot: Escanea dependencias de Python en busca de paquetes desactualizados con piprot
    • python-safety: Comprueba dependencias de Python en busca de vulnerabilidades de seguridad conocidas con la herramienta safety.

    Ruby

    • ruby-brakeman: Analiza estáticamente código Rails en busca de problemas de seguridad con Brakeman.
    • ruby-bundler-scan: Escanea gemas de Ruby con vulnerabilidades conocidas usando bundler

    Rust

    • rust-cargoaudit: Comprueba si el archivo Cargo.lock contiene dependencias con vulnerabilidades conocidas usando cargo audit

    Añadir un módulo

    Si tienes una idea para un módulo, no dudes en abrir una solicitud de funcionalidad en la sección de issues. Si dispones de un poco de tiempo, considera enviarnos un pull request. Para ver cómo funcionan los módulos, dirígete a la carpeta módulos para descubrir cómo funcionan las cosas.

    Descargar herramienta