Vim-mosfet/Port-Scanner-for-Htb-labs

GitHub: Vim-mosfet/Port-Scanner-for-Htb-labs

这是一个基于 Python 封装 Nmap 的自动化端口扫描工具,专为 HackTheBox 实验环境设计,用于快速检测开放端口并记录扫描结果。

Stars: 0 | Forks: 0

# 用于 HTB labs 的 Port-Scanner Python TCP 端口扫描器项目,展示了基础网络、socket 处理以及开放/关闭端口检测。我在初始代码结构中使用了 AI 辅助。更多信息和使用说明可以在 README.md 文件中找到。 ## README.md - English # Python TCP 端口扫描器 本项目展示了一个用 Python 编写的 TCP 端口扫描器,旨在说明基础网络和 socket 概念。它使您能够: * 扫描给定 IP 地址上的所有端口或指定范围的端口。 * 识别每个端口的状态(开放或关闭)。 * 将结果记录到文件中。 * 操作系统检测 **使用的技术:** * Python 3.x * Socket 编程 **前置条件:** * 系统上已安装 Python 3.x。 **使用方法:** ``` python Automatisation_scanNmap.py --ports ``` **示例** ``` python Automatisation_scanNmap.py 192.1.1.1 # Scan all ports without saving output python Automatisation_scanNmap.py 192.1.1.1 --ports 80,443,22 # Scan specificports without saving output python Automatisation_scanNmap.py 192.1.1.1 --ports 22,80 --output EXEMPLE.txt # Scan sspecific ports with saving output ``` **脚本** ``` import argparse import nmap def scan_ports(target, ports='all', output_file=None): nm = nmap.PortScanner() try: print(f"Scan en cours sur {target}...") if ports == 'all': nm.scan(hosts=target, ports='1-65535', arguments='-T4') for host in nm.all_hosts(): for proto in nm[host].all_protocols(): for port in nm[host][proto]: if nm[host][proto][port]['state'] == 'open': result = f"Port {port}: Ouvert - {nm[host][proto][port]['name']}\n" print(result.strip()) if output_file: with open(output_file, "a") as f: f.write(result) else: port_list = [int(p) for p in ports.split(',')] port_str = ','.join(str(p) for p in port_list) nm.scan(hosts=target, ports=port_str, arguments='-T4') for host in nm.all_hosts(): for proto in nm[host].all_protocols(): for port in nm[host][proto]: if nm[host][proto][port]['state'] == 'open': result = f"Port {port}: Ouvert - {nm[host][proto][port]['name']}\n" print(result.strip()) if output_file: with open(output_file, "a") as f: f.write(result) except Exception as e: print(f"Erreur : {e}") if __name__ == "__main__": parser = argparse.ArgumentParser(description="Scanner les ports d'une IP.") parser.add_argument("target", help="IP ou hostname") parser.add_argument("--ports", help="Ports ex: 80,443") parser.add_argument("--output", help="Fichier de sortie") args = parser.parse_args() ports = args.ports if args.ports else 'all' output_file = args.output if output_file: with open(output_file, "w") as f: f.write("Scan en cours...\n") scan_ports(args.target, ports, output_file) ```
标签:CTI, Nmap, Python, Python3, Socket, TCP/IP, 密码管理, 插件系统, 数字取证, 数据统计, 无后门, 端口扫描, 端口检测, 系统独立性, 系统识别, 网络 Recon, 网络安全, 网络编程, 自动化脚本, 虚拟驱动器, 逆向工具, 隐私保护