dhanunjay-123/cybersecurity-projects
GitHub: dhanunjay-123/cybersecurity-projects
一组用 Python 编写的入门级网络安全工具,提供多线程 TCP 端口扫描与基础 Web 安全审计功能,适合学习者在授权环境下进行安全练习并丰富求职作品集。
Stars: 0 | Forks: 0
# 网络安全项目
两个独立的 Python 安全工具,专为丰富作品集/简历而构建。
## ⚠️ 合规使用提示
仅对你**拥有**或获得**明确书面授权**的系统运行这些工具进行测试。未经授权扫描第三方系统可能会违反诸如印度《IT 法案》或美国《计算机欺诈和滥用法》等法律。请使用 `127.0.0.1`、你自己的本地网络,或专用的合法练习目标(如 `scanme.nmap.org`,Nmap 的官方测试主机)进行演示。
## 1. 端口扫描器 (`port_scanner.py`)
多线程 TCP 端口扫描器,用于发现开放端口并识别可能运行的服务(通过常见端口查找表和 banner grabbing)。
**安装与运行:**
```
python3 port_scanner.py -t -p
```
**示例:**
```
python3 port_scanner.py -t 127.0.0.1 -p 1-1024
python3 port_scanner.py -t scanme.nmap.org -p 20,21,22,80,443
```
**工作原理:**
- 使用 Python 的 `socket` 模块和 `connect_ex()` 进行快速的 TCP connect 扫描
- 通过 `concurrent.futures.ThreadPoolExecutor` 并发执行扫描(默认:100 个线程)
- 尝试从每个开放端口读取服务 banner,以进行额外的指纹识别
- 将知名端口(22、80、443、3306 等)映射为易于阅读的服务名称
## 2. 网站漏洞扫描器 (`vuln_scanner.py`)
轻量级 Web 应用安全扫描器。用于检查在实际安全审计中常见的错误配置。
**安装与运行:**
```
pip install requests
python3 vuln_scanner.py -u
```
**示例:**
```
python3 vuln_scanner.py -u https://example.com
```
**执行的检查项:**
1. **缺失安全标头** — CSP、HSTS、X-Frame-Options、X-Content-Type-Options、Referrer-Policy、Permissions-Policy
2. **不安全的 Cookie** — 标记缺少 `Secure`/`HttpOnly` 属性的 Cookie
3. **信息泄露** — 标记会泄露技术栈信息的 `Server` / `X-Powered-By` 标头
4. **反射输入检查** — 发送无害的标记字符串作为查询参数,并检查其是否在未转义的情况下被回显(这是潜在反射型 XSS 的信号 — 此操作仅进行*检测*,不会实施漏洞利用)
5. **TLS 证书过期** — 如果 SSL 证书将在 30 天内过期,则发出警告
## 为你的简历/面试准备
**建议的简历描述:**
- *网站漏洞扫描器:* "使用 `requests` 构建了一个 Python Web 安全扫描器,可审计 HTTP 安全标头、Cookie 属性和 TLS 证书有效性,并通过安全的输入反射测试来标记潜在的反射型 XSS 攻击向量。"
- *Python 端口扫描器:* "使用 `socket` 和 `concurrent.futures` 开发了一个多线程 TCP 端口扫描器,能够在几秒钟内扫描 1000 多个端口,并通过 banner grabbing 自动识别服务。"
**可能的面试问题及回答思路:**
- *"你的端口扫描器是如何工作的?"* → 解释 TCP connect 扫描(`connect_ex`)、为什么使用多线程来提高速度,以及 banner grabbing 如何帮助在端口号之外进一步识别服务。
- *"TCP connect 扫描和 SYN 扫描有什么区别?"* → 你的工具执行的是完整的 connect 扫描(完成 TCP 三次握手);而 SYN 扫描(如 Nmap 的 `-sS`)仅发送 SYN 数据包且从不完成握手,这使其更具隐蔽性,但需要使用原始 socket(raw sockets)/root 权限。
- *"你的漏洞扫描器是如何检测 XSS 的?"* → 回答要准确:它不能确认漏洞是否可利用 — 它只是检查未转义的输入是否在响应中被*反射*,这是一个值得人工后续跟进的强烈*指标*,而不是必然存在的漏洞。
- *"下一步你会添加什么功能?"* → 好的回答包括:通过基于错误的 payload 进行 SQLi 检测、子域名枚举、与 CVE 数据库集成、将结果导出为 JSON/PDF 报告。
标签:Python, 密码管理, 插件系统, 数据统计, 无后门, 端口扫描, 网络安全, 逆向工具, 隐私保护