Skip to content
KitploitKITPLOIT
ToolsBlog
Submit
ToolsBlog
Submit

Hacking, PenTest, and Cybersecurity Tools for Your Security Arsenal!

Kitploit is a directory of hacking, cybersecurity, and pentesting tools. Discover the latest project updates to find vulnerabilities, analyze systems, automate testing, and strengthen your security.

··Feeds·Contact·Privacy·© 2026 Kitploit

Tool Directory

Categories

View all categories
Loading categories
Simple Pentesting — An educational Python toolkit for authorized penetration testing: threaded port scanner, subdomain & directory enumeration, banner grabber and host discovery, with a rich CLI. | Kitploit
Tools/GitLabGitLab/sakispat/simple-pentesting
ReconnaissanceNetwork MappingPassword AttacksPort ScanningScripting & AutomationInformation GatheringWeb SecurityPenetration TestingSubdomain EnumerationLearning & Education
GitLabsakispat/simple-pentesting

Simple Pentesting

9h 13m agoNot yet reviewed

Most Popular

View all →

Discover the most used tools by our community.

Explore all tools

Browse our collection of tools

View all tools →
Share

An educational Python toolkit for authorized penetration testing: threaded port scanner, subdomain & directory enumeration, banner grabber and host discovery, with a rich CLI.

View Repository

Simple Pentesting Toolkit

A lightweight, educational Python toolkit that automates common reconnaissance and enumeration tasks used in authorized penetration testing. Built as a learning project for cybersecurity / ethical-hacking practice.

pipeline status python license


⚠️ Legal & Ethical Use

This toolkit performs active scanning and enumeration. Running it against systems you do not own or lack explicit written permission to test can be a crime in most jurisdictions.

  • Only use it on your own machines, isolated lab VMs, or targets you are contractually authorized to assess.
  • Great safe targets for practice: DVWA, OWASP Juice Shop, Metasploitable, TryHackMe, HackTheBox.
  • The tool asks you to confirm authorization before every run.

The authors accept no liability for misuse.


Features

What changed from v1 → v2: modular package, argparse CLI with subcommands, threaded scanners, a rich-powered UI (ASCII banner, live progress bars and result tables), input validation, an authorization gate, unit tests and a GitLab CI pipeline.


Linux / macOS Setup

root@kitploit:~
# install virtualenv and activate
python3 -m venv venv
. venv/bin/activate

# install packages
pip3 install -r requirements.txt

# run (always from the project root)
python3 main.py --help

Windows Setup

root@kitploit:~
python -m venv venv
. .\venv\Scripts\activate     # (PowerShell)
. venv/scripts/activate       # (Git Shell)

pip install -r requirements.txt
python main.py --help

Usage

Always run from the project root via python main.py … (the src package contains modules named http and dir, so running scripts from inside src/ could shadow the standard library).

root@kitploit:~
# Port scan with a custom port set / range
python main.py portscan 192.168.1.10 --ports 22,80,443
python main.py portscan 192.168.1.10 --ports 1-1024

# Banner grab
python main.py banner 192.168.1.10 22

# Directory enumeration (default or custom wordlist)
python main.py dirscan http://target.local
python main.py dirscan http://target.local --wordlist admin login backup api

# Subdomain discovery
python main.py subdomains example.com

# Live-host discovery on a subnet
python main.py netscan 192.168.1.0/24

# HTTP response inspection
python main.py httpprobe http://target.local

# Credential test against a lab login form (authorization required)
python main.py logincheck http://target.local/login \
    --users admin user --passwords admin 1234 password

# Global options
python main.py --threads 100 --timeout 1.5 -v portscan 192.168.1.10

# Skip the interactive prompt in scripted, pre-scoped engagements
python main.py --i-am-authorized netscan 10.0.0.0/24

Development

root@kitploit:~
pip install -r requirements-dev.txt   # runtime + pytest + ruff
pytest -v            # run tests
ruff check .         # lint

Runtime dependencies live in requirements.txt; test/lint tools live in requirements-dev.txt (which pulls in the runtime ones), so end users never install pytest.

The GitLab pipeline (.gitlab-ci.yml) runs lint + tests on every push.

Project layout

root@kitploit:~
simple-pentesting/
├── main.py               # entry point (run from here)
├── src/                  # the package
│   ├── __init__.py
│   ├── cli.py            # argparse CLI
│   ├── config.py         # defaults & Settings
│   ├── utils.py          # validation helpers
│   ├── ui.py             # rich UI: banner, progress, tables, auth prompt
│   ├── port_scanner.py   # one file per feature ↓
│   ├── banner.py
│   ├── dir.py
│   ├── subdomain.py
│   ├── netscan.py
│   ├── http.py
│   └── login_check.py
├── tests/                # offline unit tests
├── .gitlab-ci.yml
├── requirements.txt      # runtime deps
├── requirements-dev.txt  # + pytest, ruff
├── LICENSE
└── .gitignore
Download Tool
CommandWhat it does
portscanConcurrent TCP connect scan of a host
bannerGrab a service banner from an open port
dirscanEnumerate web paths from a wordlist
subdomainsResolve candidate subdomains
netscanDiscover live hosts across a CIDR range
httpprobeInspect an HTTP response (status, headers, preview)
logincheckLab-only demo of weak/default credential risk (rate-limited)