首页 基于Windows 7的木马连接技术与存活性研究

基于Windows 7的木马连接技术与存活性研究

举报
开通vip

基于Windows 7的木马连接技术与存活性研究基于Windows 7的木马连接技术与存活性研究 10701 1011120631 代 号 学 号 TP393 公开 分类号 密 级 题( 中、英 文) 目 基于Windows 7 的 木马连 接技术与存活性研 究 Research on Trojan Horse Connection Technology and Survivability Based on Windows 7 林明亮 胡建伟 副教授 作者姓 名 指导教 师姓名、职称 电路与 系统 工学 学科门 类学科、 专业 二?一 三...

基于Windows 7的木马连接技术与存活性研究
基于Windows 7的木马连接技术与存活性研究 10701 1011120631 代 号 学 号 TP393 公开 分类号 密 级 题( 中、英 文) 目 基于Windows 7 的 木马连 接技术与存活性研 究 Research on Trojan Horse Connection Technology and Survivability Based on Windows 7 林明亮 胡建伟 副教授 作者姓 名 指导教 师姓名、职称 电路与 系统 工学 学科门 类学科、 专业 二?一 三年 三月 提交论 文 日期 西 安电子 科技大学 学 位 论文 政研论文下载论文大学下载论文大学下载关于长拳的论文浙大论文封面下载 独创性( 或创新 性)声明 秉 承 学 校 严 谨 的 学 风 和 优 良 的 科 学 道 德 , 本 人 声 明 所 呈 交 的 论 文 是 我 个 人在 导 师 指 导 下 进 行 的 研 究 工 作 及 取 得 的 研 究 成 果 。 尽 我 所 知 , 除 了 文 中 特 别 加 以 标 注 和 致 谢 中 所 罗 列 的 内 容 以 外 , 论 文 中 不 包 含 其 他 人 已 经 发 表 或 撰 写 过 的 研 究 成 果 ; 也 不 包 含 为 获 得 西 安 电 子 科 技 大 学 或 其 它 教 育 机 构 的 学 位 或 证 书 而 使 用 过 的 材 料 。 与 我 一 同 工 作 的 同 志 对 本 研 究 所 做 的 任 何 贡 献 均 已 在 论 文 中 做 了 明 确 的 说 明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切的法律责任。 本人签名:日期 :西 安电子 科技大学 关 于论文 使用授权 的说明 本 人 完 全 了 解 西 安 电 子 科 技 大 学 有 关 保 留 和 使 用 学 位 论 文 的 规 定 , 即 : 研究 生 在 校 攻 读 学 位 期 间 论 文 工 作 的 知 识 产 权 单 位 属 西 安 电 子 科 技 大 学 。 学 校 有 权 保 留 送 交 论 文 的 复 印 件 , 允 许 查 阅 和 借 阅 论 文 ; 学 校 可 以 公 布 论 文 的 全 部 或 部 分 内 容 , 可 以 允 许 采 用 影 印 、 缩 印 或 其 它 复 制 手 段 保 存 论 文 。 同 时 本 人 保 证 , 毕 业 后 结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。 (保密的论文在解密后遵守此规定) 本人签名: 日期: 导师签名: 日期:摘要 摘要 随 着 互 联 网 技 术 的 高速 发展, 随 之 而 来 的 恶 意 代 码 也 在 迅 速 增 加 , 计 算 机用 户 信 息 的 安 全 性 越 来 越 受 到 人 们 的 关 注 , 其 中 尤 其 以 木 马 的 攻 击 为 甚 。 黑 客 利 用 木 马 程 序 隐 藏 在 受 害 用 户 计 算 机 中 , 对 受 害 用 户 的 计 算 机 进 行 信 息 窃 取 、 破 坏 数 据、 监控用户行为等操作。 根据微软公司的 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 , 在 7>2014 年将会停止 Windows XP 系 统 的 更 新 , 这 也 意 味 着 大 部 分 Windows 用 户 不 得 不 转 向 目 前 比 较 稳 定 的 Windows 7 操作系统, 虽然 Windows 7 操作系 统的安全性相较于 Windows XP 做了 很大的提高, 但是攻击者的技术也会随着 防御技术提高而提高,Windows 7 木马也 已经成为目前黑客攻击的主要手段。 在 Windows 7 系统越来越流行的今天,本文针对 Windows 7 的安全特性,介 绍 了 计 算 机 木 马 的 相 关 技 术 , 其 中 包 括 木 马 基 本 功 能 的 实 现 原 理 , 以 及 木 马 处 理 多并发连接使用的 IOCP 模型。 并具体介绍了 Windows 7 系统中的安 全策略会话 0 隔离机制和用户账户控制机制, 以及这两种安全策略的突破思路 。 在本文中 会话 0 隔 离 机 制 使 用 在 提 出 请 求 的 用 户 桌 面 中 创 建 一 个 进 程 的 方 法 来 实 现 突 破 , 用 户 账 户 控 制 机 制 使 用 白 名 单 的 方 式 进 行 突 破 。 最 后 介 绍 目 前 最 新 的 病 毒 查 杀 技 术 , 主 动防御技术。 针对主动防御的技术特点, 研究相应的免杀技术, 包括命令替换法、 执 行 替 换 法 、 反 虚 拟 机 检 测 法 和 模 拟 按 键 法 。 综 合 这 些 技 术 , 讨 论 木 马 程 序 在 Windows 7 操作系统中 的多种存活方式, 以攻击者的角度研究加强系统安全性的方 案。 关键词:木马IOCP 模型会话 0 隔离用户账户控制免杀技术基于 Windows 7 木马 的连 接技术 与存 活性 研究 Abstract Abstract With the rapid development of Internet technology, Followed by the malicious code is also increasing rapidly, information security of computer users more and more attention, which is especially staggering Trojan Horse attacks. Hackers use Trojans hidden in the affected user's computer on the victim's computer to steal information, destroy data, monitoring user behavior and other operations. According to Microsoft's report, in 2013, will stop the update of the Windows XP system, this also means that the majority of Windows users have to turn to the stable Windows 7 operating system, Windows 7 operating system security compared to Windows the XP doing a great improvement, but the attacker technology will improve as the defense technology to improve Windows 7 Trojan Horse has become the primary means for hacker attacksWindows 7 system is becoming more and more popular today, In this paper, with the security features of Windows 7, introduce a computer Trojan Horse technology, including Trojans basic function principle, Trojans handle multiple concurrent connections using IOCP model. And specific present Windows 7 system security policy session 0 isolation mechanisms and user account control mechanisms, as well as the two security policy breakthrough ideas. In this paper, Session 0 isolation mechanism uses the request of the user's desktop to create a process to achieve a breakthrough, user account control mechanism using whitelist breakthrough. Finally, introduce the latest virus killing technology, active defense technology. Proposed for the active defense of the technical characteristics of the corresponding anti-anti-virus technology. The combination of these technologies, including command substitution, execution substitution, anti-virtual machine detection and analog pressing buttons. The combination of these technologies, this paper discuss some ways of the survival of the Trojans in the Windows 7 operating system, the research program to strengthen the security of the system on the attacker's perspectiveKeywords: trojan horseIOCP modelsession 0 isolationuser account controlanti-anti-virus technology基于 Windows 7 木马 的连 接技术 与存 活性 研究 目录 目录 第一章 绪论1 1.1 研究背景 1 1.2 木马的介绍2 1.3 木马的基本模块 3 1.4 木马隐藏技术. 4 1.5 本文所做的主要研究工作5 第二章 远程控制木马的通信. 7 2.1 IOCP 模型7 2.1.1 IOCPI/O 完成 端 口 服务器的设计 9 2.1.2 完成端口服务器的实现 10 2.2 绕过个人防火墙的技术. 14 2.2.1 反弹连接技术. 14 2.2.2 端口复用技术. 15 2.3 本章小结. 16 第三章 突破 Windows 7 下的安全机制. 17 3.1 会话 0 隔离机制. 17 3.1.1 会话 0 隔离机制介绍. 18 3.1.2 突破会话 0 隔离机制. 21 3.2 用户账户控制机制 22 3.2.1 用户账户控制机制概要 23 3.2.2 突破用户账户控制机制 25 3.3 本章小结. 28 第四章 木马免杀技术29 4.1 杀毒软件的查杀原理29 4.1.1 特征码法 29基于 Windows 7 的木 马连 接技术 与存 活性 研究 4.1.2 校验和法 30 4.1.3 行为监控法30 4.1.4 软件模拟法30 4.2 特征码免杀 31 4.2.1 特征码的定位. 31 4.2.2 特征码的修改技巧33 4.3 主动防御的免杀技术35 4.3.1 主动防御的具体模块. 36 4.3.2 突破主动防御技术39 4.4 木马免杀测试46 4.5 本章小结. 47 第五章 总结与展望 49 5.1 本文工作总结49 5.2 后续工作展望49 致谢51 参考文献 53 在读期间研究成果55 第一章 绪论 1 第 一章 绪论 1.1 研究 背景 随 着 计 算 机 以 及 网 络 技 术 的 飞 快 发 展 , 每 一 个 用 户 在 享 受 互 联 网 带 来 的 更好 的 用 户 体 验 的 同 时 , 也 面 临 着 互 联 网 上 存 在 的 各 种 各 样 的 安 全 威 胁 。 在 计 算 机 大 范 围 普 及 的 今 天 , 恶 意 代 码 对 于 用 户 计 算 机 安 全 的 威 胁 越 发 的 严 重 , 计 算 机 的 安 全 防 护 已 经 成 为 用 户 不 得 不 关 注 的 问 题 。 其 中 , 木 马 更 是 以 其 危 害 性 巨 大 成 为 安 全专家以及相关机构关注的焦点。 在 全 球 范 围 来 说 , 每 个 国 家 都 拥 有 维 护 自 己 国 家 合 法 利 益 的 安 全 部 门 , 而这 些 部 门 在 做 好 本 国 信 息 安 全 防 护 的 同 时 , 也 会 利 用 黑 客 技 术 得 到 其 他 国 家 , 尤 其 是 敌 对 国 家 的 有用 信息 。 如 果 在 信 息 的 掌 握 上 占 据 有 力 的 位 置 , 一 旦 两 个 国 家 间 发 生 摩 擦 , 这 些 信 息 就 可 以 帮 助 决 策 人 员 对 当 前 事 情 制 定 出 合 理 的 解 决 方 案 。 而 且 , 就 目 前 的 战 争 环 境 来 说 , 能 够 有 效 破 坏 敌 人 的 信 息 系 统 是 重 中 之 重 , 所 以 对 于网络攻击技术的研究具有重要的战略意义。 [1] 在国家间或者大企业间的信息战中,APT 为 主要的攻击手段。APTAdvanced Persistent Threat ,高 级 持续性威 胁 是针对 特 定组织的 多方位 的攻击 。其中影 响比 [2] 较大的一次案例是 2010 年 7 月爆发的 Stuxnet 木马 , 根据大成天下 公司的 《APT 攻击案例分享》 , 它利用了微软操作系统中至少 4 个漏洞, 其中有 3 个全新的 0day 漏洞, 为衍生的驱动程序使 用有效的数字签名, 通过一套完整的入侵和传播流程, 突破工业专用局域网的物理限制,利用 WinCC 系统的 2 个漏洞,对其展开攻击。 它 是 第 一 个 直 接 破 坏 现 实 世 界 中 工 业 基 础 设 施 的 恶 意 代 码 , 通 过 对 代 码 的 控 制 造 成伊朗的布什尔核电站机器的破坏。 [3] 根据 CNCERT2011 的 抽样检测 ,我国境内 被植入木马的主机或者僵尸网 络 中的主机, 其境外有 4.7 万个控制端。 虽然对于 2010 年的 22.1 万有所降低, 但是 国内被控制的主机数量却增加了紧 490 万, 呈现一个控制端控制大批量主机的趋 势。 其中排名前三的控制端主机所在国家有, 控制端主机 22.8% 在日本, 控制端主 机 20.4 的美国, 控制端主机 7.1% 在韩国。 虽然美国从 2009 年和 2010 年两次作为 控制端主机第一下降到第二,但是其控制的 885 万台国内主机仍然是最高的。 这 些 境 外 组 织 的 木 马 均 具 有 一 台 主 机 能 够 控 制 成 千 上 万 台 主 机 的 特性 , 这主 要归功于其 多并发 连接 控 制 性 , 而 且 对 于 最 新 的 操 作 系 统 也 有 很 好 的 兼 容 性 和 隐 蔽 性 。 随 着 木 马 技 术 的 发 展 , 具 备 这 些 特 性 的 木 马 将 会 越 来 越 多 , 从 而 达 到 普 遍 性。要做好对这种类型的木马的防御应该从一个攻击者的角度进行相应的研究 。2 基于 Windows 7 木马的连接技 术与存活性研究1.2 木马 的 介绍 [4] 与古希 腊神 话中 的“ 特 洛伊木 马” 类似,“ 木马 ”是黑客通 过各 种 手段传播 或 者 骗 取 用 户 执 行 的 一 个 精 心 伪 装 的 程 序 , 以 达 到 盗 取 用 户 信 息 甚 至 远 程 控 制 用 户 主 机 的 目 的 。 从 广 义 上 来 说 , 木 马 也 是 病 毒 的 一 种 , 因 为 它 们 都 具 有 潜 伏 性 和 触 发 性 。 但 是 , 木 马 程 序 与 一 般 的 病 毒 又 有 不 同 , 它 不 会 自 我 繁 殖 , 也 并 不 “ 刻 意 ” 地 去 感 染 其 他 文 件 , 它 的 主 要 作 用 是 向 木 马 植 入 者 打 开 受 害 用 户 计 算 机 的 门 户, 使 黑 客 可 以 对 用 户 计 算 机 的 文 件 进 行 任 意 操 作 , 如 毁 坏 、 删 除 、 上 传 等 , 甚 至 可 以 远 程 控 制 用 户 计 算 机 。 另 外 , 木 马 程 序 与 正 规 的 远 程 控 制 软 件 是 有 很 大 的 区 别 的 , 其 中 最 主 要 的 区 别 是 远 程 控 制 软 件 是 为 了 更 好 地 利 用 网 络 资 源 实 现 用 户 间 的 交 互 , 所 以 其 不 具 备 隐 藏 的 特 性 。 而 木 马 由 于 其 本 身 要 实 现 的 恶 意 功 能 , 因 此 其 必 须 具 备 很 强 的 隐 蔽 性 , 可 想 而 知 , 一 个 不 具 备 隐 蔽 性 的 木 马 是 没 有 使 用 价 值的。 一 个 完 整 的 “ 木 马 ” 程 序 包 含 了 两 部 分 : 服 务 器 和 控 制 器 。 植 入 受 害 者 计算 机的是服务器部分, 而 攻击者利用控制器运行服务器的计算机。 如图 1.1 所示, 一 个控制端控制多台服务器。 服务端主机 控制端主机 服务端主机 服务端主机图 1.1 木马 控制 示意 图 众所周知,基于 TCP/IP 协议 离婚协议模板下载合伙人协议 下载渠道分销协议免费下载敬业协议下载授课协议下载 接入互联网的计算机共有 256×256 个端口,编 号为 0~65535 。通常 在上网的时候,计算机通过 80 端口与外界保持联系。运行 了 木 马 程 序 的 服 务 器 之 后 , 计 算 机 就 会 有 另 一 个 或 几 个 端 口 被 打 开 , 使 攻 击 者 可 以 利 用 这 些 打 开 的 端 口 进 入 受 害 者 计 算 机 系 统 , 此 时 系 统 的 安 全 以 及 用 户 的 个 人 信 息就会受到威胁。 第一章 绪论 3 1.3 木马 的基本 模块 随 着 编 程 技 术 的 发 展 , 木 马 的 功 能 也 越 来 越 强 大 。 对 于 实 现 远 程 控 制 的 木马 [5] 来说,已经可以实现以下基本模块 来对计算 机进行全面监控。 1. 文件管理模块: 浏览、 打开、 删除和编辑目标计算机的文件, 从目标计算 机下载文件到本地, 或者从本地上传文件到远程计算机。 该模块的实现原 理是, 在保持网络连接 的状态下, 遍历目标计 算机的文件目录, 然后 把 文 件信息回传给控制端, 控制端接收文件信息后发送相应的操作指令。 服务 端接收到操作指令后,对文件进行操作。 2. 系统管理模块: 能够获取服务端主机中正在运行的进程列表, 对进程进行 关闭操作;获取当前窗口列表,执行关闭操作。 3. 远程 shell 模块:在客户端主机模拟一个 cmd 窗口,让客户端用户可以发 送相应的命令到服务端主机,使得服务端主机可以响应这些命令。 4. 屏幕监控模块: 在客户端主机开启一个用于接收服务端主机桌面信息的窗 口, 并模拟鼠标键盘操作, 使得客户端用户就像在操作实际的计算机一样 。 由于图片的传输比较消耗网络带宽, 屏幕监控模块使用数据压缩的方式减 小传输数据体积。通常使用的压缩算法有 zlib 和 jpeg 。 5. 音频监听模块: 隐秘打开远程服务端主机的话筒, 进行语音监听, 并向远 程服务端主机发送本地音频。 6. 视频监视模块: 隐秘打开远程服务端主机的摄像头, 进行截图, 录像以及 监视等操作。 7. 其他杂项模块: 这里包括隐秘打开浏览器, 下载并执行可执行文件, 窃取 密码,发起 DDOS 攻击等 [6] 木 马 植 入 服 务 端 程 序 到 远 程 主 机 有 以 下 几 种 方 法 :1 通 过 网 页 挂 马 , 用 户 在访问挂 马的网页 时, 自动下载 并执行;2 通 过上传 到 远程计算 机, 并安装;3 利用脚本交互式植入, 如 Script 、Active ;4 利用系统漏洞获取高权限, 并执行恶 意代码;5 发送带有木 马的邮件,诱使远程主机用户点击,自动下载并执行。 其 中 , 网 页 挂 马 是 传 播 最 广 , 危 害 最 大 , 最 难 以 防 范 的 植 入 方 式 。 目 前 对付 这 一 类 的 木 马 主 要 是 依 靠 计 算 机 用 户 的 安 全 意 识 , 加 上 浏 览 器 和 防 病 毒 软 件 的 安 全 机 制 的 结 合 。 浏 览 器 目前对于 这 类 木 马 的 应 对 方 案 主 要 是 验 证 该 网 站 的 安 全 证 书 和 用 户 举 报 、 评 分 。 防 病 毒 软 件 则 是 在 下 载 文 件 后 对 文 件 进 行 扫 描 , 判 断 其 是 否为恶意程序,对于特定免杀后的木马,这种方式形同虚 设。4 基于 Windows 7 木马的连接技 术与存活性研究1.4 木马 隐藏技 术 木 马 被 植 入 到 目 标 主 机 后 , 通 常 利 用 各 种 手 段 来 隐 藏 自 己 , 以 避 免 被 发 现和 追踪, 尽可能延长其在目标主机中的生存期。 要让木马在主机中消失得无影无踪, [7] 需要对木马进行多种隐藏处理。下面对目前提高木马隐蔽性 的方式 进行介绍。 1. 启动隐藏 启 动 隐 藏 是 木 马 在 计 算 机 启 动 的 时 候 进 行 隐 藏 加 载 从 而 达 到 不 被 用 户 发 现的 目 的 。 经 典 的 启 动 隐 藏 方 式 有 : 修 改 计 算 机 启 动 项 , 修 改 注 册 表 , 新 建 服 务 , 更 改 配 置 文 件 , 替 换 组 策 略 等 方 法 。 但 是 , 这 种 启 动 方 式 由 于 涉 及 到 系 统 的 敏 感 文 件,因此比较容易被安全工具检测到。 2. 文件隐藏 文件隐藏 一 般 分 为 两 种 隐 藏 方 式 , 一 是 对 木 马 文 件 进 行 一 定 的 伪 装 , 使 用户 认 为 该 文 件 为 合 法 文 件 。 二 是 隐 藏 木 马 文 件 , 不 被 用 户 发 现 。 对 于 第 一 种 隐 藏 方 式, 一般木马文件会修改自身的属性以及将文件名设置成与一些无害的文件同名, 来 达 到 混 淆 视 听 的 目 的 。 对 于 第 二 种 隐 藏 方 式 , 木 马 文 件 会 在 运 行 后 删 除 自 身 , 并 将 其 放 置 到 系 统 目 录 或 者 用 户 比 较 少 浏 览 的 目 录 , 甚 至 引 导 区 都 可 以 成 为 木 马 文件用来隐藏的位置。 3. 通信隐藏 [8] 通信隐藏 , 主要有主 机中通信所用到的各个方面的隐藏, 如通信端口, 流量 和 内 容 。 对 通 信 内 容 使 用 加 密 或 者 替 换 数 据 包 的 发 送 顺 序 可 以 实 现 对 通 信 内 容 的 隐藏。通信端口的隐藏可以使用 HOOK 技术 或者端口复用技术来实现。通信中产 生的流量可以使用隐蔽通道的方法实现, 在 TCP/IP 的协议中存在大量的冗余信息, 利用这些信息建立隐蔽通道可以实现隐藏流量,突破安全机制的目的。 4. 进程隐藏 进 程 隐 藏 的 是 为 了 让 正 在 运 行 的 木 马 程 序 不 被 用 户 发 现 。 进 程 的 隐 藏 有 两个 实 现 方 向 : 让 木 马 进 程 不 在 进 程 列 表 中 显 示 ; 让 木 马 的 的 进 程 彻 底 消 失 , 不 以 一 个进程或者服务的方式工作。前者利用 HOOK 技术, 控制安全工具 的相关 调用, 使其不能检测到当前运行的木马进程或者服务。后者则是依靠远程线程或者 DLL 注入等 方 式 将 木 马 代 码 注 入 到 合 法 的 进 程 中 , 用 户 一 般 很 难 发 现 合 法 进 程 中 的 注 入木马部分,从而实现在进程或者服务层面上的真正隐藏。 5. 内核模块隐藏 内 核 模 块 隐 藏 是 指 木 马 将 程 序 中 的 内 核 模 块 部 分 进 行 隐 藏 处 理 。 为 了 不 被安 全 工 具 中 检 测 程 序 驱 动 信 息 的 模 块 检 测 出 木 马 中 存 在 的 恶 意 内 核 代 码 , 内 核 模 块 的隐藏处理是必不可 少的。要实现对程序 内核模块的隐藏,黑 客一般采用第一章 绪论 5 [9][10] Rootkit 技术。 1.5 本文 所做的 主要 研究工作 对 于 木 马 程 序 来 说 , 隐 蔽 性 以 及 能 够 控 制 大 量 的 主 机 是 最 主 要 的 特 性 。 课题 的研究主要分为两部分:木马支持多并发连接技术的 研究和 Windows 7 上木马的 存活性以及躲避杀毒软件检测的研究。 [11] 基于普通 socket 连接 的 C/S 模型是阻塞型模型 ,这样的模型不能 满足木马 对于大量主机的同步控制。 因此, 本文利用 IOCP 网络模型与木马功能结合的方法, 可以增加木马的并发连接处理能力,减少系统资源的损耗。 由于 Windows 7 已 经 超 过 Windows XP 称 为 微 软 目 前 市 场 占 有 量 最 大 的 Windows 操作系统 。因此,对 Windows 7 下的安全研究将会受到越来越多的安全 人员以及恶意攻击者的关注。本文针对 Windows 7 系统的安全特性研究木 马 在该 系统主要遇到的两个难题,会话 0 隔离和用 户账户控制,并实现对这两种机制的 突破。 对 于 普 通 的 计 算 机 用 户 来 说 , 系 统 自 身 的 安 全 机 制 以 及 系 统 上 安 装 的 安 全工 具是最值得信赖的防护。因此,本文在突破 Windows 7 安全机制的基础上研究木 马的免杀技术。 论文的具体结构安排如下 : 第 一 章 绪 论 , 介 绍 了 本 文 的 研 究 背 景 , 木 马 的 特 征 以 及 当 前 木 马 隐 藏 的 研究 现状。 第二章远程控制木马的通信, 介绍了 IOCP 模 型的实现原理, 以及简单介绍木 马在连接中突破防火墙限制的技术。 第三章突破 Windows 7 下的安全机制,介绍 Windows 7 的会话 0 隔离和用户 账户控制机制,并针对这两种安全机制提出绕过 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,达到突破的目的。 第四 章 木 马 的 免 杀 技 术 , 介 绍 了 木 马 免 杀 中 用 到 的 特 征 码 定 位 技 术 , 针 对定 位到的特征进行的免杀技术,以及当前比较主流的主动防御技术的突破技术。6 基于 Windows 7 木马的连接技 术与存活性研究 第二章 远程控制木马的通信 7 第 二章 远程 控制木 马的通 信 第一章 介 绍 了 远 程 控 制 木 马 的 相 关 技 术 , 其 中 木 马 的 多 并 发 连 接 和 绕 过 防火 墙 的 功 能 均 为 木 马 的 通 信 机 制 , 这 一 章 详 细 介 绍 木 马 的 通 信 中 使 用 到 的 连 接 以 及 绕过防火墙等保持上线的技术。 2.1 IOCP 模型 [12] IOCPI/O Completion Port 模型 ,也叫做 I/O 完 成 端 口 模 型 。 完 成 端 口 是 Win32 的一种核心对象 。 利用完成端口, 套接字应用程序能够管理数百个甚至上千 个套接字。应用程序创建一个 Win32 完成端 口对象,通过指定一定数量的服务线 [13] 程,为已经完成的重叠 I/O 操作提供服务 。该模型往往可以达到 最好的系统性 [14] 能。在 IOCP 模型中需要了解的概念有:异步通信 ,重叠 I/O 结构 和完成端口, 异步通信是 IOCP 模型的通信机制,重叠 I/O 结构为 IOCP 模型中数据发送及处理 的结构,完成端口则是 IOCP 模型处理消息的核心。 1.异步通信 在 IOCP 模型中使用的通信机制 就是异步通信, 这一小节将对异步通 信原理进 行介绍,并比较每个异步通信方式的优缺点。 异步通信就是 CPU 在与外部设备通信的时候, 将请求交给设备的驱动去处理, 而 CPU 继续处理其他重要的事情。 异步通信相对于同步通信最大的优点就是不需 要等待网络操作完成再去执行其他的操作。而异步通信的机制有以下几种: [15]设备内核对象 , 使用 设备内核对象来协调数据的发送请求和接收数据协 调, 也就是说通过设置 设备内核对象的状态, 在设备接收数据完成后, 马 上触发这个内核对象, 然后让接收数据的线程收到通知, 但是这种方式太 原始了, 接收数据的线程 为了能够知道内核对象是否被触发了, 还是得不 停的挂起等待 。 所以这种异步机制相比于同步机制对于性能提升的效果不 大。 事件内核对象, 利用事件内核对象来实现 I/O 操作完成的通知, 这种机制 较上一种就先进了很多, 可以同时等待多个 I/O 操作的完成, 实现真正的 异步,但是缺点也是 很明显的,既然用 WaitForMultipleObjects 来 等 待 Event 的话, 就会受到 64 个 Event 等待上限的限制, 但是这可不是说 事件 内核对象的异步通信 只能处理来自于 64 个客户端的 Socket ,而是这是属 8 基于 Windows 7 木马的连接技 术与存活性研究于在一个设备内核对象上等待的 64 个事件内核对象,也就是说,一个线 程内,可以同时监控 64 个重叠 I/O 操作的完 成状态, 因此可以使用多个 线程的方式来满足无限多个重叠 I/O 的需求, 比如如果想要支持 3 万个连 接,就得需要 500 多个线程。这样的需求对于普通的 CPU 还是不能得到 很好的满足。 [16]使用 APC Asynchronous Procedure Call , 异 步过程调用 来完成, 这 种方 式的好处就是在于摆脱了基于事件通知方式的 64 个事件上限的限制,但 是缺点也是有的, 就是发出请求的线程必须得要自己去处理接收请求, 哪 怕是这个线程发出了很多发送或者接收数据 的请求, 但是其他的线程都闲 着, 这个线程也还是得自己来处理自己发出去的这些请求, 没有 其他的线 程来协助处理。 这样还是有一个负载均衡的问题, 没有达到性能的最优化。 完成端口, 对比上面几种机制,完成端口的做法是这样的: 根据 CPU 的 个 数 来 决 定 开 启 线 程 的 个 数 , 这 样 做 的 好 处 首 先 是 避 免 线 程 的 上 下 文 切 换,由于线程想要执行的时候,总有 CPU 资 源可用,然后让这几个线程 挂起, 等到有用户请求来到的时候, 就把这些请求都加入到一个公共消息 队列中去, 然后这几个开好的线程就排队逐一去从消息队列中取出消息并 加以处理, 这种方式就很 有效地 实现了异步通信和负载均衡的问题, 原因 在于 它 提 供 了 一 种 机 制 来 使 用 几 个 线 程“ 公 平 的” 处 理 来 自 于 多 个 客 户 端 的输入/ 输出,并且线程如果 闲置的时候也会被系统挂起,不会占用 CPU 周期。而那个关键的作为交换的消息队列就是完成端口。 2.重叠 I/O 结构 [17] 重叠OVERLAPPEDI/O 是实现异步通信的 必须要用到的一个很重要的 I/O 数据结构。 在使用重叠 I/O 结构的程序中 , 执 行 I/O 请求的时间与线 程执行其他任 务的时间是重叠的,这就是重叠 I/O 的名称由 来。 在计算机中, 重叠结构可以理解成为另一个网络操作的 ID 号, 也就 是说在利 用 重叠 I/O 的异步机制 时,每一个网络操作都要有一个唯一的 ID 号 。在系统内核 中, 一旦有重叠 I/O 的 调用进来, 系统就会使用其异步机制, 这时系统需要一个特 定的标识来区分网络操作。而重叠 I/O 的 ID 号在此时就充当了这个标识的作用。 再等待内核中的处理完毕之后, 根据这个 ID 号, 把对应的数据网络传输到执行该 重叠 I/O 操作的接口上 去。 3.完成端口 在前面 提到完成端口就是所谓的消息队列。 而其之所以称为 “完成” , 是 由于 系统会在 I/O 操作完成 之后才会通知工作者线程进行处理 , 也就是说, 在接到系 统 的 通 知 的 时 候 , 其 实 网 络 操 作 已 经 完 成 了 , 就 是 比 如 说 在 系 统 给 线 程 发 送 消 息 的 时 候 , 并 非 是 有 数 据 从 网 络 上 到 来 , 而 是 来 自 于 网 络 上 的 数 据 已 经 接 收 完 毕 了 ,第二章 远程控制木马的通信 9 这时工作者线程 只需要处理后面的事情就可以了。 可 以 把 完 成 端 口 理 解 为 网 络 操 作 完 成 的 消 息 队 列 , 系 统 会 把 网 络 操 作 完 成的 通 知 都 放 到 这 个 队 列 里 面 , 然 后 线 程 需 要 处 理 消 息 时 从 这 个 队 列 中 依 次 取 出 处 理 即可。 2.1.1 IOCPI/O 完成 端口 服务 器的设 计 完 成 端 口 的 目 标 是 实 现 高 效 的 服 务 器 程 序 , 并 克 服 在 其 他 并 发 连 接 模 型 中存 在的缺点。 其 中 用 到 的 方 法 包 括 指 定 一 定 数 量 的 并 发 线 程 给 完 成 端 口 , 以 及 在 套 接 字 初 始 化 的 时 候 为 其 创 建 指 定 数 量 的 服 务 线 程 , 也 就 是 线 程 池 技 术 。 这 样 只 要 客户端的连接请求过来时,创建好的线程就能马上工作。 完 成 端 口 的 理 论 基 础 是 为 同 时 工 作 的 线 程 指 定 一 个 数 量 的 上 限 。 这 个 数 值就 是 CPU 的数量。 如果 一台计算机有两个 CPU , 那么多于两个可运行的线程就没有 意义了。 因为如果 CPU 的数目比并发线程的数目还要少 , 系统就不得不花时间来 进行上下文切换,这将浪费宝贵的 CPU 周期。 完 成 端 口 并 行 运 行 的 线 程 数 量 和 应 用 程 序 创 建 的 线 程 数 量 是 两 个 不 同 的 概 念。 服 务 器 应 用 程 序 需 要 创 建 多 少 个 服 务 线 程 , 这 是 一 个 很 难 解 答 的 问 题 。 一般 规律是 CPU 数目乘以 2, 例如,单 CPU 的机器, 套接字应用程序应该创建 2 个线 程的线程池。 接 下 来 的 问 题 是 , 完 成 端 口 如 何 实 现 对 线 程 池 的 有 效 管 理 , 使 这 些 服 务 线程 高效的运行起来。 当系统完成 I/O 操作后 , 向服务器端的 完成端口发送 I/O completion 数据包 。 这 个 过 程 在 应 用 程 序 的 层 面 是 不 可 见 的 , 因 为 其 在 系 统 内 部 进 行 处 理 。 在 应 用 程 序层面, 线程池中的就是排队等待 I/O 操作完 成的线程。 这些线程在 I/O completion 数据包没有达到完成端口时处于挂起状态。它们将在完成端口接收到 I/O completion 数据包时以后进先出LIFO ,Last-in-First-out 的形式被激 活。 完成端口 的 这 种 处 理 方 法 可 以 有 效 地 提 高 网 络 连 接 的 性 能 。 例如 , 完 成 端口 上有 3 个线程在等待, 当一个 I/O completion 数据包到达后, 队中最后 一个线程被 唤 醒 。 该 线 程 为 客 户 端 完 成 服 务 后 , 继 续 在 完 成 端 口 上 等 待 。 如 果 此 时 又 有 一 个 I/O completion packet 到达完成端口,则该线程又被唤醒,为该客户端提供服务。 如果完成端口不采用 LIFO 方式, 完成端口唤醒另外一个线程, 则必然要进行线程 之间的上下文切换。 通过使用 LIFO 方式, 还 可以使得不被唤醒的线程内存资源从 缓存中清除。 在 前 面 讲 到 , 应 用 程 序 需 要 创 建 一 个 线 程 池 , 这 些 线 程 在 完 成 端 口 上 处 于挂 10 基于 Windows 7 木马的连接技 术与存活性研究起状态 。 完 成 端 口 中 同 时 工 作 的 线 程 数 量 小 于 创 建 在 线 程 池 中 的 线 程 数 量 ,似乎 应用程序创建了多余的线程,其实不然,之所以这样做是为了 尽可能地保证 CPU 处于 忙碌 状态。 例如,在一台单 CPU 的计算机上,创建一个完成端口应用程序,为其制定并 发线程数为 1。 在应用 程序中, 在完成端口上 创建两个挂起的线程。 假如在一次 与 客户端的通信完成后, 一个激活的线程由于 Sleep 之类的 API 关于工期滞后的函关于工程严重滞后的函关于工程进度滞后的回复函关于征求同志党风廉政意见的函关于征求廉洁自律情况的复函 数进 入 挂起状态, 这时如果完成端口接收到另外一个 I/O completion 数据包 , 则另外一个挂起的线程 将 会 被 激 活 并 与 该 客 户 端 进 行 通 信 。 这 也 就是 完 成 端 口 中 同 时 工 作 的 线 程 数 量 小 于创建在线程池中的线程数量 的原因。 根 据 上 面 分 析 , 一 些 情 况 下 , 完 成 端 口 中 同 时 工 作 的 线 程 数 目 会 比 指 定 的数 目还要大 。 然而, 在线程与客户端的通信过程结束后, 完成端口进入等待状态时, 同时工作的线程数目就会有所减少。 总之, 为 了 减 少 线 程 被 反 复 创 建 带 来 的 开 销 , 完 成 端 口 充 当 的 是 管 理 线 程池 的角色。 同时, 将同时 工作的线程数目与 CPU 的数目挂钩可以 提高线程的调度效 率,达到提升服务器端应用程序性能的目的。 2.1.2 完成端 口服 务 器的实现 根 据 关 于 完 成 端 口 的 理 论 , 利 用 完 成 端 口 模 型 , 搭 建 一 个 高 效 的 服 务 器 应用 程序需要遵循以下几个步骤: 1 创建完成端口。 2 创建 CPU 数量两倍的服务线程。 3 将 完成端口与套接字 关联在一起。 4 调用 发送和接收函数,进行 重叠 I/O 操作。 5 在服务线程中,在完成端口上等待重叠 I/O 操 作结果。 基于完成端口的服务器搭建的流程图如图 2.1 所示。 完成端口服务器的运作需 要 同 时 运 行 三 条 线 程 , 下 面 首 先 介 绍 这 三 条 线 程 工 作 过 程 。 主 线 程 启 动 后 , 首 先 做 一 些 初 始 化 工 作 , 然 后 创 建 一 个 监 听 线 程 , 接 着 创 建 一 个 事 件 对 象 , 并 且 将 监 听 线 程 的 套 接 字 和 事 件 对 象 关 联 起 来 。 然 后 注 册 接 收 数 据 事 件 , 这 个 事 件 对 象 将 会在客户端发起连接的时候触发。然后将 IP 地址的端口号和连接的套接字绑定, 启 动 监 听 线 程 并 开 始 监 听 。 最 后 在 创 建 好 一 个 完 成 端 口 后 , 接 着 创 建 指 定 的 数 目 的工作者线程。 监 听 线 程 启 动 后 , 等 待 客 户 端 连 接 。 如 果 连 接 事 件 对 象 被 触 发 , 则 得 到 发生 的事件, 如果为客户端的连接请求, 则接受连接并返回一个代表新连接的套接字。 然 后 创 建 一 个 特 定 的 数 据 结 构 来 保 存 与 当 前 套 接 字 有 关 的 信 息 , 该 结 构 将 在 创 建第二章 远程控制木马的通信 11 完成端口时作为参数传递。 工作线程启动后, 首先等待指定的完成端口的 I/O 完成通知 。 如果 I/O 完成通 知到来, 则根据函数返回后的重叠 I/O 结构的 值, 调用相应的处理函数。 在基于完 成端口的服务器中有两种类型的 I/O 完成通知 ,I/O 数据读取和 I/O 数 据写入。 主线程 线 程1 : 启动 监 听线 程 , 用 于 接收客户端 初始化 连入的socket socket 库 服务端初始 监听 端口 化 线程2 : 启动工 作者线 程 , 用 来接收网络操 作 初始化socket 的一系 完 成的通知 列参数 否 是 否有客 户端 连入 ? 检查完成 端口状态 , 创建监听线程 是否有网 络操作到达 是 建 立 完 成端口 及 将连入 的socket 和现有的 从系 统缓冲区中 配置参数 完成端 口绑 定 读取数据 创建工作者线程 在这个socket 上投 递接收 在连入 的socket 上投递一 下 一个数据的 消息 个 接收数据 的 消息 主线 程挂起 , 工作者 线程开始工 作 否 否 用户 是否停止 ? 用户是否 停 止 ? 通 信结束 , 通知所有 线程退出 是 是 结束 结束 结 束图 2.1 完成 端口 服务 器搭 建流程 根据完成端口的创建流程,接下来介绍其中关键步骤的具体实现。 1. 创建完成端口对象 要在应用程序中利用 完成端口模型,就必 须首次创建完成端口 对象 。 CreateIoCompletionPort 函数实现此功能,该函数声明如下: HANDLE WINAPI CreateIoCompletionPort _In_ HANDLE FileHandle, _In_opt_ HANDLE ExistingCompletionPort, _In_ ULONG_PTR CompletionKey, _In_ DWORD NumberOfConcurrentThreads ; 如果 CreateIoCompletionPort 函数调用成功, 则返回完成端口的句柄; 如果调 12 基于 Windows 7 木马的连接技 术与存活性研究用失败,则返回 NULL 。该函数功能有以下两个方面。 创建完成端口 将完成端口与一个文件句柄关联起来 在 套 接 字 应 用 程 序 中 , 要 创 建 完 成 端 口 对 象 , 需 要 设 置 FileHandle 参数为 INVALID_HANDLE_VALUE , ExistingCompletionPort 参数为 NULL , CompletionKey 为 0,NumberOfConcurrentThreads 参数为 0, 代码如下: HANDLE m_hIOComplet
本文档为【基于Windows 7的木马连接技术与存活性研究】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_633423
暂无简介~
格式:doc
大小:62KB
软件:Word
页数:0
分类:互联网
上传时间:2017-11-13
浏览量:13