Noir - An Attack Surface Detector Form Source Code


Noir is an attack surface detector form source code.

Key Features

  • Automatically identify language and framework from source code.
  • Find API endpoints and web pages through code analysis.
  • Load results quickly through interactions with proxy tools such as ZAP, Burpsuite, Caido and More Proxy tools.
  • That provides structured data such as JSON and HAR for identified Attack Surfaces to enable seamless interaction with other tools. Also provides command line samples to easily integrate and collaborate with other tools, such as curls or httpie.

Available Support Scope

Endpoint's Entities

  • Path
  • Method
  • Param
  • Header
  • Protocol (e.g ws)

Languages and Frameworks

Language Framework URL Method Param Header WS
Go Echo
X X X
Python Django
X X X X
Python Flask X X X X
Ruby Rails
X X
Ruby Sinatra
X X
Php
X X
Java Spring
X X X
Java Jsp X X X X X
Crystal Kemal
X
JS Express
X X X
JS Next X X X X X

Specification

Specification Format URL Method Param Header WS
Swagger JSON
X X
Swagger YAML
X X

Installation

Homebrew (macOS)

brew tap hahwul/noirbrew install noir

From Sources

# Install Crystal-lang# https://crystal-lang.org/install/# Clone this repogit clone https://github.com/hahwul/noircd noir# Install Dependenciesshards install# Buildshards build --release --no-debug# Copy binarycp ./bin/noir /usr/bin/

Docker (GHCR)

docker pull ghcr.io/hahwul/noir:main

Usage

Usage: noir <flags>  Basic:    -b PATH, --base-path ./app       (Required) Set base path    -u URL, --url http://..          Set base url for endpoints    -s SCOPE, --scope url,param      Set scope for detection  Output:    -f FORMAT, --format json         Set output format [plain/json/markdown-table/curl/httpie]    -o PATH, --output out.txt        Write result to file    --set-pvalue VALUE               Specifies the value of the identified parameter    --no-color                       Disable color output    --no-log                         Displaying only the results  Deliver:    --send-req                       Send the results to the web request    --send-proxy http://proxy..      Send the results to the web request via http proxy  Technologies:    -t TECHS, --techs rails,php      Set technologies to use    --exclude-techs rails,php        Specify the technologies    to be excluded    --list-techs                     Show all technologies  Others:    -d, --debug                      Show debug messages    -v, --version                    Show version    -h, --help                       Show help

Example

noir -b . -u https://testapp.internal.domains

JSON Result

noir -b . -u https://testapp.internal.domains -f json
[  ...  {    "headers": [],    "method": "POST",    "params": [      {        "name": "article_slug",        "param_type": "json",        "value": ""      },      {        "name": "body",        "param_type": "json",        "value": ""      },      {        "name": "id",        "param_type": "json",        "value": ""      }    ],    "protocol": "http",    "url": "https://testapp.internal.domains/comments"  }]




Via: www.kitploit.com
Noir - An Attack Surface Detector Form Source Code Noir - An Attack Surface Detector Form Source Code Reviewed by Zion3R on 15:44 Rating: 5