摘要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加密传输…
摘要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服务器 -…
摘要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 - 实现大文件分片传输…
摘要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. 实现连接池管理 - 预创建事件对象池 - 高效的连接分配和回收 -…
摘要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聊天客户端…
摘要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. 实现聊天室服务器 -…
摘要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.…
摘要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 - 文件传输安全
摘要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通信协议设计
摘要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