15、阶段合集

2023年02月26日Windows网络编程

摘要1、课程目标 1. 综合运用Windows网络编程技术 2. 实现完整的C2框架网络通信模块 3. 掌握多协议支持和负载均衡 4. 理解企业级网络服务器架构 2、名词解释 3、使用工具 - Visual Studio 2022 - Wireshark - Postman(HTTP测试) - ngrok(内网穿透测试) 4、技术原理 4.1、C2网络架构 5、代码实现 5.1、通用协议接口 5.2、TCP协议处理器 5.3、HTTP协议处理器 5.4、多协议Agent 5.5、IOCP C2服务器 5.6、网络编程最佳实践总结 6、课后作业 1. 实现完整C2框架 - 支持TCP/HTTP双协议 - 实现Agent管理界面 - 支持文件上传下载 - 实现命令执行功能 2. 添加加密通信 - 实现AES加密传输…

14、IOCP完成端口

2023年02月25日Windows网络编程

摘要1、课程目标 1. 理解IOCP的设计思想和工作原理 2. 掌握IOCP相关API的使用 3. 实现高性能IOCP服务器 4. 掌握IOCP在C2开发中的应用 2、名词解释 3、使用工具 - Visual Studio 2022 - Process Explorer(查看I/O完成端口) - Windows Performance Toolkit - Intel VTune(性能分析) 4、技术原理 4.1、IOCP工作原理 4.2、IOCP核心函数 5、代码实现 5.1、IOCP服务器基础结构 5.2、加载扩展函数 5.3、创建Per-Handle和Per-I/O数据 5.4、投递AcceptEx 5.5、投递Recv和Send 5.6、工作线程 5.7、服务器初始化和运行 5.8、C2服务器 -…

13、重叠IO模型

2023年02月24日Windows网络编程

摘要1、课程目标 1. 理解重叠I/O的异步概念 2. 掌握OVERLAPPED结构和完成例程 3. 实现基于重叠I/O的高性能服务器 4. 了解事件通知和完成例程两种模式 2、名词解释 3、使用工具 - Visual Studio 2022 - xperf/WPA(性能分析) - Process Monitor(I/O监控) - WinDbg(调试异步操作) 4、技术原理 4.1、重叠I/O工作原理 4.2、OVERLAPPED结构 4.3、两种完成通知模式 5、代码实现 5.1、基于事件通知的重叠I/O服务器 5.2、基于完成例程的重叠I/O服务器 5.3、C2 Agent重叠I/O通信 6、课后作业 1. 实现文件异步传输 - 使用重叠I/O读写文件 - 同时处理网络和文件I/O - 实现大文件分片传输…

12、WSAEventSelect事件选择模型

2023年02月23日Windows网络编程

摘要1、课程目标 1. 理解事件对象驱动的I/O模型 2. 掌握WSAEventSelect和WSAWaitForMultipleEvents的使用 3. 实现高性能的事件驱动服务器 4. 对比三种选择模型的优缺点 2、名词解释 3、使用工具 - Visual Studio 2022 - Process Explorer(查看事件对象) - WinDbg(调试事件等待) - Performance Monitor(性能监控) 4、技术原理 4.1、WSAEventSelect工作原理 4.2、核心函数 5、代码实现 5.1、基于WSAEventSelect的服务器 5.2、突破64连接限制的多线程方案 5.3、三种选择模型对比 6、课后作业 1. 实现连接池管理 - 预创建事件对象池 - 高效的连接分配和回收 -…

11、WSAAsyncSelect异步选择模型

2023年02月22日Windows网络编程

摘要1、课程目标 1. 理解Windows消息驱动的I/O模型 2. 掌握WSAAsyncSelect函数的使用 3. 实现基于消息的异步网络服务器 4. 了解WSAAsyncSelect与GUI程序的结合 2、名词解释 3、使用工具 - Visual Studio 2022 - Spy++(监控窗口消息) - Process Monitor - Resource Hacker(查看窗口资源) 4、技术原理 4.1、WSAAsyncSelect工作原理 4.2、WSAAsyncSelect函数 5、代码实现 5.1、基于WSAAsyncSelect的服务器 5.2、控制台版本(仅消息窗口) 5.3、异步客户端实现 5.4、C2 Agent使用WSAAsyncSelect 6、课后作业 1. 实现GUI聊天客户端…

10、select选择模型

2023年02月21日Windows网络编程

摘要1、课程目标 1. 理解I/O多路复用的概念和原理 2. 掌握select函数的使用方法 3. 实现基于select的高并发服务器 4. 理解select模型的优缺点 2、名词解释 3、使用工具 - Visual Studio 2022 - Process Monitor(监控I/O操作) - Wireshark(网络抓包) - ApacheBench(压力测试) 4、技术原理 4.1、select工作原理 4.2、fdset结构 4.3、select函数 5、代码实现 5.1、基于select的TCP服务器 5.2、带写事件和超时检测的select服务器 5.3、C2服务器 - select模型 5.4、select模型性能测试 5.5、select模型优缺点 6、课后作业 1. 实现聊天室服务器 -…

9、实现FTP客户端并完成通信

2023年02月20日Windows网络编程

摘要1、课程目标 1. 理解FTP客户端工作原理和连接流程 2. 掌握FTP控制连接和数据连接的建立方法 3. 实现完整的FTP客户端功能 4. 将FTP文件传输能力集成到C2 Agent 2、名词解释 3、使用工具 - Visual Studio 2022 - Wireshark(FTP协议分析) - FileZilla Server(测试服务器) - IDA Pro(协议逆向分析) 4、技术原理 4.1、FTP客户端连接流程 4.2、FTP响应码分类 5、代码实现 5.1、FTP客户端结构 5.2、发送FTP命令和接收响应 5.3、连接和登录 5.4、被动模式和数据连接 5.5、目录操作 5.6、文件传输 5.7、C2 Agent FTP文件传输模块 5.8、完整FTP客户端测试 6、课后作业 1.…

8、实现FTP服务器

2023年02月19日Windows网络编程

摘要1、课程目标 1. 理解FTP协议工作原理 2. 实现FTP服务器核心功能 3. 掌握主动和被动模式 4. 实现文件上传下载 2、名词解释 3、代码实现 3.1、示例1:FTP服务器 4、课后作业 1. 添加CWD/CDUP命令 2. 实现MKD/RMD命令 3. 添加用户权限管理 4. 实现断点续传 5、扩展阅读 - FTP协议RFC 959 - FTPS和SFTP - 文件传输安全

7、实现简易HTTP服务器完成通信

2023年02月18日Windows网络编程

摘要1、课程目标 1. 实现简易HTTP服务器 2. 处理GET和POST请求 3. 实现静态文件服务 4. 构建C2 HTTP通信后端 2、代码实现 2.1、示例1:简易HTTP服务器 2.2、示例2:多线程HTTP服务器 2.3、示例3:C2 HTTP后端 3、课后作业 1. 添加静态文件服务功能 2. 实现WebSocket支持 3. 添加HTTPS支持 4. 实现RESTful API 4、扩展阅读 - HTTP服务器设计模式 - 高性能网络服务器 - C2通信协议设计

6、HTTP协议

2023年02月17日Windows网络编程

摘要1、课程目标 1. 深入理解HTTP协议结构 2. 掌握HTTP请求和响应格式 3. 学会使用原始套接字实现HTTP 4. 理解HTTP在安全工具中的应用 2、名词解释 3、技术原理 3.1、HTTP请求格式 4、代码实现 4.1、示例1:手动构造HTTP请求 4.2、示例2:HTTP头部解析 5、课后作业 1. 实现HTTP分块传输解析 2. 添加Cookie处理 3. 实现HTTP代理 4. 编写HTTP流量分析工具 6、扩展阅读 - RFC 2616 HTTP/1.1 - HTTP/2协议 - HTTPS和TLS