CagdasHendrix/Custom-Network-Scanner
GitHub: CagdasHendrix/Custom-Network-Scanner
基于 Python 原生 socket 与 threading 构建的多线程 TCP 端口扫描与 Banner 抓取工具,支持自动生成结构化 JSON 报告。
Stars: 0 | Forks: 0
# 自定义网络漏洞扫描器与端口分析工具
## 📌 项目概述
本项目涉及开发一款基于 Python 编写的自定义多线程网络扫描工具。该脚本绕过了对 Nmap 等自动化工具的依赖,展示了对 TCP/IP 协议、Socket 编程以及自动化安全报告生成的深入理解。
## 🛠️ 实验环境与工具
* **开发操作系统:** Kali Linux(隔离虚拟机)
* **目标靶机:** Metasploitable 2(IP: 10.0.2.4)
* **编程语言:** Python 3.x
* **核心库:** `socket`、`threading`、`json`
* **虚拟化环境:** Oracle VM VirtualBox
## 💻 阶段 1:环境搭建与开发
该工具是在隔离的 Kali Linux 环境中从零开始开发的。整个过程从设置工作区并通过终端初始化脚本开始。
**命令:**
`cd Desktop`
`nano scanner.py`
利用 Python 的 `socket` 库进行网络连接,并使用 `threading` 进行性能优化,构建了能够并发处理多个端口的核心架构。
该脚本还包含用于获取服务 Banner 并动态格式化输出的自定义函数,通过 `threading.Lock()` 确保了线程安全。
## 🚀 阶段 2:执行与性能表现
扫描器对指定的端口范围执行 TCP Connect 扫描。多线程的实现显著减少了整体扫描时间。
**命令:** `python3 scanner.py`
**技术亮点:**
* **目标环境:** 10.0.2.4 (Metasploitable 2)
* **性能表现:** 扫描 1024 个端口仅耗时 **1.2 秒**。
* **Banner 抓取:** 成功查询开放端口并捕获服务 Banner(例如,vsFTPd 2.3.4、OpenSSH 4.7p1),这对于漏洞识别至关重要。
## 📊 阶段 3:自动化 JSON 报告生成
该脚本并未简单地将结果打印到控制台,而是被设计为解析聚合的扫描数据,并将其导出为结构化的 `.json` 文件。这种格式对于将侦察结果与其他安全信息和事件管理 (SIEM) 工具进行集成至关重要。
**命令:** `scan_report.json`
## 📁 工作证明
以下目录列表验证了 Python 脚本及其自动生成的 JSON 输出报告已在本地文件系统中成功创建。
**命令:** `ls -l`
## 💡 工程实践收获
从零开始开发此扫描器为网络层操作提供了深刻的实践见解。它弥补了理论网络概念与实际网络安全工程之间的差距,证明了当可以构建自定义解决方案来满足特定的侦察需求时,对预编译渗透测试工具的依赖并不是一种限制。
利用 Python 的 `socket` 库进行网络连接,并使用 `threading` 进行性能优化,构建了能够并发处理多个端口的核心架构。
该脚本还包含用于获取服务 Banner 并动态格式化输出的自定义函数,通过 `threading.Lock()` 确保了线程安全。
## 🚀 阶段 2:执行与性能表现
扫描器对指定的端口范围执行 TCP Connect 扫描。多线程的实现显著减少了整体扫描时间。
**命令:** `python3 scanner.py`
**技术亮点:**
* **目标环境:** 10.0.2.4 (Metasploitable 2)
* **性能表现:** 扫描 1024 个端口仅耗时 **1.2 秒**。
* **Banner 抓取:** 成功查询开放端口并捕获服务 Banner(例如,vsFTPd 2.3.4、OpenSSH 4.7p1),这对于漏洞识别至关重要。
## 📊 阶段 3:自动化 JSON 报告生成
该脚本并未简单地将结果打印到控制台,而是被设计为解析聚合的扫描数据,并将其导出为结构化的 `.json` 文件。这种格式对于将侦察结果与其他安全信息和事件管理 (SIEM) 工具进行集成至关重要。
**命令:** `scan_report.json`
## 📁 工作证明
以下目录列表验证了 Python 脚本及其自动生成的 JSON 输出报告已在本地文件系统中成功创建。
**命令:** `ls -l`
## 💡 工程实践收获
从零开始开发此扫描器为网络层操作提供了深刻的实践见解。它弥补了理论网络概念与实际网络安全工程之间的差距,证明了当可以构建自定义解决方案来满足特定的侦察需求时,对预编译渗透测试工具的依赖并不是一种限制。标签:Banner抓取, DNS查询工具, Metasploitable, Python 3, Python安全工具, Scrypt密钥派生, Socket编程, TCP连接扫描, XML 请求, 安全开发, 插件系统, 攻击路径可视化, 数字取证, 服务器安全, 服务指纹识别, 端口扫描器, 网络协议分析, 网络安全, 网络安全审计, 网络编程, 自动化脚本, 自定义扫描器, 蓝队演练, 逆向工具, 隐私保护, 黑客工具