OWASP Nightingale

Welcome to the Nightingale documentation! This guide will provide you with all the information you need to install and set up Nightingale, a powerful open-source tool that utilizes the power of Docker to provide a ready-to-use environment for penetration testing.

Nightingale Logo

Why Nightingale?

Penetration testing plays a vital role in safeguarding an organization’s IT infrastructure. However, setting up a testing environment is often a time-intensive and complex process, requiring the installation of multiple tools, frameworks, and programming languages. Ensuring consistency across different environments can also pose significant challenges, making it difficult for organizations to effectively identify and address vulnerabilities.

How Nightingale Simplifies Penetration Testing

Nightingale is an open-source solution designed to overcome these challenges by offering a pre-configured, ready-to-use environment for penetration testers. Built on top of Docker, Nightingale streamlines the setup process, eliminating the need to manually install and configure programming languages and modules.


Nightingale is an open-source tool leveraging Docker to provide a ready-to-use environment for penetration testers. It simplifies the setup and management of testing environments for web applications, network infrastructure, and other systems.

Docker, a powerful containerization technology, allows users to create isolated and consistent environments. For penetration testing, this translates into easily reproducible setups, saving significant time and effort when tests need to be re-run.

Key Benefits of Nightingale

Nightingale is an open-source, Docker-based penetration testing toolkit designed to streamline security assessments. Its features address common challenges in setting up and managing testing environments, making it an essential tool for penetration testers.

  • Eliminates Complex Setup
    • Nightingale removes the need to install multiple programming languages and modules. Testers can skip the tedious process of configuring environments from scratch, saving valuable time and effort.
  • Fast and Efficient Booting
    • Leveraging Docker’s lightweight containerization, Nightingale enables rapid environment creation and teardown. This speeds up testing workflows and minimizes downtime.
  • Resource Efficiency
    • Nightingale is optimized for resource efficiency, utilizing only the necessary hardware resources. It’s particularly beneficial for testers working with limited system resources.
  • Comprehensive Pre-Installed Tools
    • Nightingale includes a variety of essential penetration testing tools and frameworks, making it suitable for vulnerability assessments and penetration testing of any scope.
  • Consistent Environment
    • Nightingale provides a standardized, repeatable testing environment across different systems. This ensures consistent results, reduces configuration errors, and improves reliability.
  • Customizable Configuration
    • Users can tailor Nightingale’s setup to their needs by adding or removing tools and frameworks, ensuring a testing environment that aligns with specific requirements.
  • Browser-Based Access
    • Nightingale allows users to access the testing environment through a web browser using the local IP address. This provides added flexibility and convenience.
  • Cross-Platform Compatibility
    • Nightingale is platform-independent, allowing penetration testers to use it on any operating system that supports Docker. This ensures a consistent experience across different environments.

Why Choose Nightingale?

Nightingale empowers penetration testers with a platform-independent toolkit, ensuring a consistent, repeatable, and efficient workflow. By leveraging Docker, it enables rapid setup and management of testing environments, saving time and effort while providing all the tools needed for professional penetration testing.


Nightingale General Workflow

General Workflow

Nightingale Architecture diagram

Architecture diagram


Available tools

Operating System

Text Editor

  • Vim
  • Nano

Development Essentials

  • locate
  • tree
  • figlet
  • ssh
  • git
  • curl
  • wget
  • file
  • dos2unix

Terminal Support

  • bash (default)
  • zsh

Compression Technique

  • unzip
  • p7zip-full

Network Essentials

  • htop
  • traceroute
  • telnet
  • net-tools
  • iputils-ping
  • whois
  • tor
  • dnsutils

Web Application VAPT tools

  • Whatweb
  • sqlmap
  • amass
  • assetfinder
  • dirsearch
  • ffuf
  • findomain
  • gau
  • gf
  • gobuster
  • hawkscan
  • httprobe
  • httpx
  • jwt_tool
  • linkfinder
  • masscan
  • nuclei
  • subfinder
  • sublist3r
  • waybackurls
  • xray
  • reconspider
  • john
  • hydra
  • Arjun
  • Katana
  • Trufflehog
  • Ghauri
  • Detect-Secrets
  • Gitleaks

Network VAPT tools

  • nmap
  • metasploit
  • Naabu
  • RustScan

OSINT tools

  • Reconspider
  • recon-ng
  • spiderfoot
  • metagoofil
  • theHarvester

Mobile VAPT tools

  • adb
  • apktool
  • jdax
  • Mobile Security Framework (MobSF)
  • Runtime Mobile Security (RMS)
  • android-framework-res
  • frida-tools
  • objection

Forensic and Red Team tools

  • impacket
  • exiftool
  • steghide
  • binwalk
  • foremost

Wordlist

  • wfuzz
  • Seclists
  • dirb
  • rockyou.txt
  • fuzzdb
  • Node Dirbuster

Programming Language Support

  • Python 3
  • Java
  • Ruby
  • Node.js
  • Go

Helm Package for Nightingale 🦉

Nightingale is an open-source tool that aims to address this problem by providing a ready-to-use environment for pentesters.

This chart bootstraps a Nightingale deployment on a Kubernetes cluster using the Helm package manager.

Let’s Open Feathers in the Cloud: Nightingale Meets Kubernetes! 🌥️

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.7+

Get Repository Info

To add the Nightingale Helm repository and update it, run the following commands:

helm repo add nightingale https://rajanagori.github.io/Nightingale
helm repo update

Install/Upgrade Chart

Install the Nightingale chart with the release name nightingale in the nightingale namespace.

helm upgrade --install nightingale nightingale/nightingale -n nightingale --create-namespace

Install/Upgrade the chart using just one command

This command will add the Nightingale Helm repository, update it, and install the Nightingale chart with the release name nightingale in the nightingale namespace.

helm upgrade --install nightingale nightingale --repo https://rajanagori.github.io/Nightingale -n nightingale --create-namespace

Values

The provided selection is a table of configuration values typically used in a Kubernetes deployment. Each row represents a different configuration option.

  • namespaceOverride is a string that can be used to override the default namespace in which the Kubernetes resources are deployed.
  • replicaCount is an integer that specifies the number of pod replicas to create.
  • image.repository, image.tag, and image.pullPolicy are strings that define the Docker image to use for the pods, the tag of the image, and the policy for pulling the image, respectively.
  • strategy.type and strategy.rollingUpdate.maxUnavailable and strategy.rollingUpdate.maxSurge are used to define the update strategy for the deployment. The RollingUpdate strategy gradually replaces old pods with new ones.
  • podSecurityContext and securityContext are objects that define the security contexts for the pods and containers, respectively.
  • resources.limits.cpu, resources.limits.memory, resources.requests.cpu, and resources.requests.memory are used to set the CPU and memory resource limits and requests for the containers in the pods.
  • volumes and volumeMounts are lists that define the volumes to create and where to mount them in the containers, respectively.
  • tolerations is a list that defines the tolerations for the pods.
  • affinity is an object that defines the affinity/anti-affinity rules for the pods.
  • service.type and service.port are used to define the type of service to create and the port it should expose.
  • ingress.enabled is used to define the ingress resource if ingress.enabled is set to true. This includes the ingress class name, annotations, host settings, and TLS settings.
  • autoscaling related keys are used to define the horizontal pod autoscaler resource if autoscaling.enabled is set to true. This includes the minimum and maximum number of pod replicas and the CPU and memory utilization thresholds for scaling.
Key Type Default
namespaceOverride String ””
replicaCount Int 1
image.repository String ghcr.io/rajanagori/nightingale
image.tag String stable
image.pullPolicy String IfNotPresent
strategy.type String RollingUpdate
strategy.rollingUpdate.maxUnavailable String 25%
strategy.rollingUpdate.maxSurge String 25%
podSecurityContext Object {}
securityContext Object {}
resources.limits.cpu String 100m
resources.limits.memory String 200Mi
resources.requests.cpu String 50m
resources.requests.memory String 100Mi
volumes List []
volumeMounts List []
tolerations List []
affinity Object {}
service.type String ClusterIP
service.port Int 80
ingress.enabled Bool false
ingress.ingressClassName String nginx
ingress.annotations Object {}
ingress.host.enabled Bool false
ingress.host.name String ””
ingress.tls.enabled Bool false
autoscaling.enabled Bool false
autoscaling.minReplicas Int 1
autoscaling.maxReplicas Int 10
autoscaling.cpuUtilization Int 80
autoscaling.memoryUtilization Int 95

Uninstall Chart

To uninstall the Nightingale chart, run the following command:

helm uninstall nightinfgale -n nightingale

Nightingale Releases

NameTagPublishedURL
Release v1.1.41 v1.1.41 2026-03-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.41
Release v1.1.40 v1.1.40 2026-02-20 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.40
Release v1.1.39 v1.1.39 2026-02-19 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.39
Release v1.1.38 v1.1.38 2026-02-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.38
Release v1.1.37 v1.1.37 2026-01-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.37
Release v1.1.36 v1.1.36 2025-12-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.36
Release v1.1.35 v1.1.35 2025-11-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.35
Release v1.1.34 v1.1.34 2025-10-20 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.34
Release v1.1.33 v1.1.33 2025-10-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.33
Release v1.1.32 v1.1.32 2025-09-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.32
Release v1.1.31 v1.1.31 2025-08-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.31
Release v1.1.30 v1.1.30 2025-07-01 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.30
Release v1.1.29 v1.1.29 2025-06-18 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.29
Release v1.1.28 v1.1.28 2025-06-18 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.28
Release v1.1.27 v1.1.27 2025-06-17 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.27
Release v1.1.26 v1.1.26 2025-06-17 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.26
Release v1.1.25 v1.1.25 2025-06-16 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.25
Release v1.1.24 v1.1.24 2025-06-09 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.24
Release v1.1.23 v1.1.23 2025-06-02 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.23
Release v1.1.22 v1.1.22 2025-05-31 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.22
Release v1.1.21 v1.1.21 2025-05-29 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.21
Release v1.1.20 v1.1.20 2025-05-29 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.20
Release v1.1.19 v1.1.19 2025-04-30 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.19
Release v1.1.18 v1.1.18 2025-04-29 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.18
Release v1.1.17 v1.1.17 2025-04-25 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.17
Release v1.1.16 v1.1.16 2025-04-08 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.16
Release v1.1.15 v1.1.15 2025-04-07 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.15
Release v1.1.13 v1.1.13 2025-04-07 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.13
Release v1.1.12 v1.1.12 2025-03-31 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.12
Release v1.1.11 v1.1.11 2025-03-24 https://github.com/RAJANAGORI/Nightingale/releases/tag/v1.1.11