abhuiyan00/Cybersecurity-Engineering-Laboratories

GitHub: abhuiyan00/Cybersecurity-Engineering-Laboratories

一份涵盖密码学、网络安全和 Web 漏洞利用的十四个网络安全工程课程实验报告合集,记录了完整的操作过程与分析结果。

Stars: 0 | Forks: 0

# 网络安全工程实验 2022 年弗罗茨瓦夫理工大学网络安全工程课程的十四个实验。包含详细过程的书面报告:共 182 页,涵盖从经典密码分析到 Web 应用漏洞利用的内容,每份报告都记录了尝试的操作、工具返回的结果以及结果的含义。 ![Lab 2 中的一页,对比了相同明文在英语、波兰语和德语下的 ASCII 频率直方图,上方显示了测量到的 Vigenère 和 Hill 密码的熵值](https://static.pigsec.cn/wp-content/uploads/repos/cas/c8/c89cd6ab6587c8a3e79f6a4a8bd5d3bb0c497379137242e4b34547462e53a99a.png) ## 发展脉络 本课程按照单一方向构建:理解一个基础原型,攻破它,然后利用幸存下来的东西来防御系统。 | 实验编号 | 主题 | 报告 | |---|---|---| | 01–02 | 经典密码、频率分析、六种语言的熵 | [`labs/01-02_classical_ciphers_and_entropy`](labs/01-02_classical_ciphers_and_entropy) | | 03 | 对称密码 —— 流密码与分组密码,以及数据编码方式 | [`labs/03_symmetric_ciphers`](labs/03_symmetric_ciphers) | | 04 | 非对称密码 —— 不同密钥长度和输入多样性下的 RSA | [`labs/04_asymmetric_ciphers`](labs/04_asymmetric_ciphers) | | 05 | 密码分析 —— 针对对称和非对称算法的攻击 | [`labs/05_attacks_on_modern_ciphers`](labs/05_attacks_on_modern_ciphers) | | 06 | 密码学哈希函数 —— 碰撞、DSS、完整性 | [`labs/06_hash_functions`](labs/06_hash_functions) | | 07 | 应用密码学 —— OpenSSL、OpenPGP、PKI、数字签名 | [`labs/07_applied_cryptography`](labs/07_applied_cryptography) | | 08 | 网络安全问题 | [`labs/08_network_security`](labs/08_network_security) | | 09 | 安全通信 —— SSH、VPN 及其性能损耗 | [`labs/09_secure_communication`](labs/09_secure_communication) | | 10 | OSINT —— 开源情报收集 | [`labs/10_osint`](labs/10_osint) | | 11 | 网络侦察 —— 枚举、端口与服务发现 | [`labs/11_network_reconnaissance`](labs/11_network_reconnaissance) | | 12 | Reverse shells | [`labs/12_reverse_shells`](labs/12_reverse_shells) | | 13 | Web 安全 I —— 前端安全工具 | [`labs/13_web_security_tooling`](labs/13_web_security_tooling) | | 14 | Web 安全 II —— 恶意代码与内容注入 | [`labs/14_web_security_injection`](labs/14_web_security_injection) | ## 精选页面
Lab 4: CrypTool showing three prepared plaintexts of differing character diversity, and a key-selection dialog listing RSA keys at 512, 1024 and 2048 bits
Asymmetric ciphers. Three plaintexts — homogeneous, medium-diversified, highly diversified — encrypted under RSA keys at 512, 1024 and 2048 bits, with encryption time recorded for each combination. Varying both input entropy and key length separates what actually drives cost.
Lab 7: an OpenSSL terminal signing a file, verifying the signature as Verified OK, and the written answers on private key handling below it
Digital signatures. Sign with the private key, verify with the public one, then modify the document and verify again. The two failed attempts above the successful one are the useful part: verifying against the wrong key, and forgetting -signature, both fail differently.
Lab 9: two Kali Linux virtual machines side by side, one listening with netcat on port 7777 and the other piping a file to it across a VPN
Secure communication. Two Kali VMs either side of a VPN — one listening on nc -l -p 7777, the other piping a file to it — while the tunnel interface is captured. The exercise is to see what an observer on tun0 can and cannot read.
Lab 10: the output of dig +trace, walking DNS delegation from the root servers through the com gtld servers down to the target's Cloudflare nameservers
DNS reconnaissance. dig +trace walking delegation from the root servers down — root, then com., then the target's own nameservers — with the DS and RRSIG records showing where DNSSEC is in play. Passive, and entirely from public infrastructure.
![Lab 14:一个 XXE payload,定义了一个指向 file:///etc/passwd 的外部实体,展示了指定的 XML 以及在编辑器中准备好的文件](https://static.pigsec.cn/wp-content/uploads/repos/cas/f1/f19eb7ac8ee33c9ce58181d2836948ea1f55678891c86fde40e03d0a5d63658f.png) Web 安全 —— XXE。 发展脉络的终点:向 OWASP Juice Shop 提交了一个针对 file:///etc/passwd 声明的 XML 外部实体。默认情况下会解析外部实体的解析器会将文件上传转变为任意的本地文件读取。 ## 2026 年的变更 这些是书面报告,而不是代码,所以几乎没有什么需要更正的 —— 工作的核心就是分析。围绕它们的代码仓库进行了重新整理: **删除了一个私钥文件。** Lab 6 生成了一个 PKCS#12 keystore(`[Payne][Max][RSA-1024][1673292131].p12`)用于数字签名练习。这是一个在虚构身份下生成的、已于 2023 年 1 月生成且从未用于任何真实用途的 1024 位一次性密钥 —— 但 `.p12` 本质上就是一个私钥容器,无论里面包含什么,都不应该存在于公开仓库中。引用它的报告保持不变;删除的只是文件本身。 **16 MB 的填充文件被生成它的四行代码所取代。** Lab 4 对 RSA 在 1 MB、5 MB 和 10 MB 输入下的表现进行了计时,而这些输入的内容与测量结果无关 —— 每个输入只是单个字符的重复。它们在数量级上是仓库中最大的文件,也是信息量最小的文件。[`generate_test_files.py`](labs/04_asymmetric_ciphers/generate_test_files.py) 可以精确地复现它们。 **README 中避免了展示包含私钥的页面。** Lab 7 最直观的插图是生成 RSA 密钥对的终端界面 —— 并且它会在屏幕上打印出完整的 2048 位私钥。如果一边因为这个原因删除 `.p12`,一边却又发布私钥,这显然是矛盾的,因此改用了签名验证的页面。该私钥依然在报告 PDF 中可见(与其它推导过程放在一起),它只是没有出现在仓库的首页上。 **实验文件夹根据其主题进行了重命名。** `Lab 1 & 2`、`12_SOL_cyb3r.pdf` 以及 `8_Sol_Cyber_Eng_Lab_Network _security_problems.pdf` —— 最后一个在下划线前甚至还有一个空格 —— 统一更改为 `labs/NN_topic/lab-NN-report.pdf` 的格式。Lab 13 和 14 在原始文件夹名称中也被贴错了标签:13 涵盖的是前端安全工具,14 涵盖的是注入,而不是反过来。 ## 技术栈 **CrypTool 1** 承载了密码学实验(01–06):频率分析、熵测量、ASCII 直方图、密码模式、不同密钥长度下的 RSA 以及密码分析练习。**OpenSSL** 和 **GnuPG** 在应用密码学实验中负责密钥生成、签名、验证和 PKCS#12,并使用 **Easy-RSA** 作为证书颁发机构。**Wireshark** 在网络安全和安全通信实验中负责抓取流量,而 **OpenVPN**、**SSH** 和 **netcat** 则提供被检查的传输通道。侦察阶段使用 **Nmap** 进行端口和服务枚举,并使用 **theHarvester**、**Shodan** 和 **whois**/**dig** 进行被动信息收集。Web 安全实验使用 **Burp Suite** 和 **OWASP ZAP** 对 **OWASP Juice Shop** 进行测试,手动实施 XSS 和 XXE。**Metasploit** 出现在漏洞利用实验中。实验目标是运行在 VirtualBox 下的 **Kali Linux** 和 **Ubuntu** 虚拟机。 **Python** 用于重新生成密码计时的测试数据。 ## 展现的技能 基于测量而非主观断言的密码分析 —— 涵盖六种语言的熵与频率分析,并通过解读直方图来识别密码 · 理解为什么基础原型要以特定的方式组合,从 RSA 对批量数据的计时测试到 TLS 实际使用的混合构造 · 将证书链和签名验证作为一种信任模型,而不仅仅是一次 API 调用 · 对捕获流量的协议分析 · 结构化的侦察,从被动 OSINT 到主动枚举 · Web 应用漏洞利用及其相应的缓解措施 · 撰写安全报告,使读者能够理解其推理过程并复现操作 · 负责任地处理密钥材料,包括认识到哪些内容不应被公开。 ## 关于范围的说明 这是 2022 年针对实验室环境和专门提供的故意存在漏洞的目标进行的课程作业。这些报告描述的是教育背景下的技术。此处没有任何内容是在未经授权的情况下对系统运行的,也没有任何内容被编写成操作指南。 ## 许可证 **MIT** —— 见 [`LICENSE`](LICENSE)。可自由使用、复制和修改。
标签:CISA项目, CTI, GitHub, Web安全, 内存分配, 安全实验报告, 安全测试工具, 实时处理, 密码学, 手动系统调用, 插件系统, 网络安全, 蓝队分析, 逆向工具, 隐私保护