Changes: - Added 80+ scripts with organized structure - payloads/ for third-party pentesting tools - pentesting/ for custom security scripts - Daily drivers remain flat for fast access - Converted wes() function to proper script - Removed .sh extensions from pentesting scripts - Cleaned up aliases (removed 31 redundant lines) - Added kanata/, build artifacts to gitignore - Removed old fre.sh scripts and empty a.out - Updated configs: helix, tmux, zsh, ulauncher, redshift Security: All sensitive data excluded via gitignore
55 lines
1.5 KiB
Python
Executable file
55 lines
1.5 KiB
Python
Executable file
#!/usr/bin/python3
|
|
|
|
import socket
|
|
import common_ports
|
|
import re
|
|
|
|
|
|
def get_open_ports(target, port_range, verbose=False):
|
|
open_ports = []
|
|
|
|
# Try resolving the target
|
|
try:
|
|
ip_addr = socket.gethostbyname(target)
|
|
except socket.gaierror:
|
|
if re.match(r'^\d{1,3}(\.\d{1,3}){3}$', target):
|
|
return "Error: Invalid IP address"
|
|
else:
|
|
return "Error: Invalid hostname"
|
|
|
|
# Build the list of ports from range
|
|
ports_list = list(range(port_range[0], port_range[1] + 1))
|
|
|
|
for port in ports_list:
|
|
try:
|
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
|
s.settimeout(1)
|
|
result = s.connect_ex((ip_addr, port))
|
|
if result == 0:
|
|
open_ports.append(port)
|
|
s.close()
|
|
except:
|
|
continue
|
|
|
|
# Output
|
|
if verbose:
|
|
try:
|
|
hostname = socket.gethostbyaddr(ip_addr)[0]
|
|
except socket.herror:
|
|
hostname = target
|
|
|
|
output = f"Open ports for {hostname} ({ip_addr})\nPORT SERVICE\n"
|
|
try:
|
|
import common_ports
|
|
for port in open_ports:
|
|
service = common_ports.ports_and_services.get(port, 'unknown')
|
|
output += f"{port:<9}{service}\n"
|
|
except ImportError:
|
|
for port in open_ports:
|
|
output += f"{port:<9}unknown\n"
|
|
return output.strip()
|
|
|
|
return open_ports
|
|
|
|
|
|
print(get_open_ports("scanme.nmap.org", [20, 80], verbose=True))
|