NaodBrhane2738/PortPY
GitHub: NaodBrhane2738/PortPY
PortPY 是一个基于 Python 的多线程端口扫描器,具备 Banner 抓取和风险提示功能,帮助安全人员快速发现目标开放端口及服务信息。
Stars: 0 | Forks: 0
# PortPY
PortPY 是一个用 Python 编写的高级端口扫描器。它对目标主机执行多线程端口扫描,尝试从开放端口获取服务 Banner,并为常见的易受攻击服务提供安全上下文说明。该工具支持命令行界面 (CLI) 和基于文本的交互式用户界面 (TUI) 两种模式。
## 安装
1. 确保您的系统已安装 Python 3。
2. 克隆此代码库:
git clone https://github.com/NaodBrhane2738/PortPY.git
cd PortPY
3. (可选)安装 Colorama 以获得增强的跨平台彩色输出:
pip install colorama
注意:如果没有 Colorama,该工具将使用 ANSI 转义码正常运行。
## 使用说明
### 命令行模式
使用命令行参数运行 PortPY 以进行快速扫描:
```
python3 portpy.py [options]
```
#### 选项:
- `target`:目标 IP 地址或主机名(在 CLI 模式下为必填项)
- `-s, --start`:起始端口(默认:1)
- `-e, --end`:结束端口(默认:1024)
- `-t, --threads`:并发线程数(默认:50)
- `--timeout`:Socket 超时时间(秒)(默认:1.0)
- `--delay`:端口检查之间的延迟时间(秒)(默认:0)
- `-o, --output`:将结果保存到文件(.txt 或 .json)
### CLI 功能
PortPY 被设计为一个“混合”脚本,可根据提供的参数自动检测是以交互模式还是命令行模式运行。
#### 运行交互模式
如果未指定目标,PortPY 将启动基于文本的交互式界面:
```
python3 portpy.py
```
#### 命令行扫描示例
**超快速扫描**(使用高线程数以提高速度):
```
python3 portpy.py scanme.nmap.org -s 1 -e 10000 -t 100
```
**隐蔽扫描**(低线程,数据包发送间有延迟,并导出为 JSON):
```
python3 portpy.py 192.168.1.1 --delay 0.5 -t 5 -o stealth_results.json
```
#### 更多示例:
```
# Scan localhost 的 1-1000 端口
python3 portpy.py localhost -e 1000
# 使用自定义 threads 进行 Scan 并保存为 JSON
python3 portpy.py example.com -s 20 -e 100 -t 100 -o results.json
# Scan 常见端口并加入 delay 以避免 rate limiting
python3 portpy.py target.com --delay 0.1 -o scan.txt
```
### 交互模式
运行 PortPY 而不添加任何参数以进入交互模式:
```
python3 portpy.py
```
在交互模式下,系统会提示您输入:
- 目标 IP/主机名
- 端口范围(起始和结束)
- 线程数
- 是否将结果保存到文件
### 功能
- **多线程扫描**:快速并发端口检查
- **Banner 抓取**:尝试从开放端口获取服务 Banner
- **安全上下文**:提供关于常见端口潜在安全风险的说明
- **进度跟踪**:扫描期间实时显示进度
- **输出格式**:将结果保存为纯文本或 JSON
- **跨平台**:支持 Windows、Linux 和 macOS
- **彩色输出**:使用颜色增强终端输出显示(可选)
### 安全提示
- 请负责任地使用此工具,且仅限于您拥有或已获授权扫描的系统
- 某些服务可能会记录连接尝试
- 请注意您所在司法管辖区内与端口扫描相关的法律影响
标签:Banner抓取, DNS枚举, DNS查询工具, DNS解析, Port Scanner, Python, Qt框架, TUI交互界面, 云存储安全, 开源项目, 插件系统, 无后门, 服务识别, 端口扫描器, 系统独立性, 网络安全工具, 网络扫描, 逆向工具