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, 网络安全, 网络编程, 自动化脚本, 虚拟驱动器, 逆向工具, 隐私保护