CodeEvent/Programming-for-Cyber-Security
GitHub: CodeEvent/Programming-for-Cyber-Security
一套面向网络安全教学的 Python 工具集,通过从零构建的自动化侦察管道,展示了从凭据破解到 DNS 服务器确认的完整安全操作流程。
Stars: 0 | Forks: 0
Login Succesful
... ``` ### 阶段 2 — 日志抓取器 [`capture_logs.py`] 使用破解出的凭据进行身份验证,并使用 BeautifulSoup CSS 选择器定位,从受保护的页面中提取服务器访问日志。将原始日志数据写入 `log.txt`。 ``` paragraph_logs = parsed_html.find("p", class_="logs") raw_data = paragraph_logs.get_text() # → 向 log.txt 写入 200+ 行 Apache access log ``` ### 阶段 3 — IP 提取器 [`extract_ips.py`] 使用正则表达式解析 `log.txt` 以识别候选的 IPv4 地址,然后使用 Python 的 `ipaddress` 模块根据 RFC 规范对每个地址进行验证。去重并写入干净的结果。 ``` ip_pattern = r"\b(?:\d{1,3}\.){3}\d{1,3}\b" ip_obj = ipaddress.IPv4Address(ip) # rejects malformed candidates ``` **输出 — 提取了 20 个唯一且经过验证的 IP:** ``` 13.66.139.0 157.48.153.185 54.36.148.92 162.158.203.24 66.249.64.41 ... (20 total) ``` ### 阶段 4 — DNS 确认 [`confirm_dns.py`] 对于每个 IP,运行三项顺序检查——53 端口 TCP 扫描、反向 DNS 查询,以及一次实时的 `dig` 查询,以确认该服务器确实在解析 DNS。只有通过全部三项检查的 IP 才会被写入输出。 ``` socket.connect((ip, 53)) # Check 1: port open? socket.gethostbyaddr(ip) # Check 2: reverse DNS? subprocess.run(["dig", "@"+ip, "google.com", "+short"]) # Check 3: live DNS? ``` **最终输出 — 已确认的 DNS 服务器:** ``` DNS Server at 54.36.148.92 : hydrogen092-ext2.a.ahrefs.com DNS Server at 54.36.148.108 : hydrogen108-ext2.a.ahrefs.com DNS Server at 54.36.148.1 : hydrogen001-ext2.a.ahrefs.com DNS Server at 54.36.149.55 : hydrogen311-ext2.a.ahrefs.com ``` ## 组件 1 — 安全编程作品集 涵盖核心安全编程概念的七个 Python 实现。 | 练习 | 展示内容 | |----------|----------------------| | **Caesar Cipher(凯撒密码)** | 经典加密、模运算、字符级操作 | | **SHA-256 密码哈希** | hashlib、UTF-8 编码、永不存储明文 | | **密码验证** | 哈希比对、无明文暴露的凭据验证 | | **HaveIBeenPwned API** | 实时 API 集成、k-anonymity 模型 | | **命令行工具** | argparse、CLI 设计、操作符处理、错误防护 | | **二分查找** | O(log n) 分治算法 | | **Fibonacci Sequence(斐波那契数列)** | 迭代算法、基于列表的计算 | HIBP 集成正确使用了 k-anonymity 模型——仅将哈希值的前 5 个字符发送给 API,这意味着完整的密码永远不会离开你的系统: ``` response = requests.get(f"https://api.pwnedpasswords.com/range/{hash[:5]}") ``` ## 展示的技术技能 | 技能 | 实现方式 | |-------|---------------| | **原始 socket 编程** | 手动构建 HTTP 请求,不使用库 | | **Web 抓取** | BeautifulSoup4、CSS 选择器、HTML 解析 | | **正则表达式与数据提取** | re 模块、IP 模式匹配、验证管道 | | **网络侦察** | 端口扫描、反向 DNS、实时 DNS 验证 | | **密码学** | SHA-256、SHA-1、Caesar cipher、k-anonymity | | **API 集成** | HaveIBeenPwned、requests、响应解析 | | **CLI 工具开发** | argparse、交互式回退、操作符处理 | | **流程自动化** | subprocess、链式脚本、文件 I/O 管道 | ## 运行管道 ``` pip install requests beautifulsoup4 python brute_force.py # → finds PIN, prints cracked page python capture_logs.py # → writes log.txt python extract_ips.py # → writes ips.txt python confirm_dns.py # → writes confirmed_dns.txt ``` ## 学术背景