From ec809f373c1f87b0211240c480ceac8ef23225bf Mon Sep 17 00:00:00 2001 From: Noriu Date: Fri, 4 Oct 2024 14:45:42 +0800 Subject: [PATCH] =?UTF-8?q?2024=E5=B9=B410=E6=9C=884=E6=97=A5=2014:45:43?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../9.2 信息收集与系统攻击.md | 148 +++++++++++++++++- 1 file changed, 146 insertions(+), 2 deletions(-) diff --git a/09_第九章 计算环境安全/9.2 信息收集与系统攻击.md b/09_第九章 计算环境安全/9.2 信息收集与系统攻击.md index fc89823..2f434f1 100644 --- a/09_第九章 计算环境安全/9.2 信息收集与系统攻击.md +++ b/09_第九章 计算环境安全/9.2 信息收集与系统攻击.md @@ -1,15 +1,159 @@ # 信息收集与系统攻击 -> +> **一、信息收集**
+>     理解信息收集的概念及公开渠道信息收集、网络服务信息收集的方式及防御措施。 +> +> **二、缓冲区溢出攻击**
+>     理解缓冲区溢出的基本概念及危害;
+>     理解缓冲区溢出攻击的技术原理及防御措施。 ### 一、信息收集 +#### 1、信息收集的概念 +1. **信息收集的概念** + - 情报学中一个领域 +2. **传统的信息收集** + - 案例:著名的照片泄密案 + ![image-20241004141400419](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20241004141400419.png) + > 日本情报专家据此解开了中国当时最大的石油基地 - 大庆油田的秘密
+ > 1、他们根据照片上王进喜的衣着判断,只有在北纬46度至48度的区域内,冬季才有可能穿这样的衣服,因此推断大庆油田位于齐齐哈尔与哈尔滨之间;
+ > 2、通过照片中王进喜所握手柄的架式,推断出油井的直径;
+ > 3、从王进喜所站的钻井与背后油田间的距离和井架密度,推断出油田的大致储量和产量。
+ > 有了如此多的准确情报,日本人迅速设计出适合大庆油田开采用的石油设备。当中国政府向世界各国征求开采大庆油田的设备方案时,日本人一举中标。庆幸的是,日本当时是出于经济危机,根据情报分析结果,向我国高价推销炼油设施,而不是用于军事战略意图。 +3. **互联网时代的信息收集** + + - 信息技术的发展使得数据大量被生产出来 + +4. **收集哪些信息** + + - 目标系统的信息系统相关资料 + - 域名、网络拓扑、操作系统、应用软件、相关脆弱性 + - 目标系统的组织相关资料 + - 组织架构及关联组织 + - 地理位置细节 + - 电话号码、邮件等联系方式 + - 近期重大事件 + - 员工简历 + - 其他可能令攻击者感兴趣的任何信息 + +#### 2、信息收集的方法 + +1. **公开信息收集 - 搜索引擎** + + - 快速定位 + - 某开源软件`xxxx.jsp`脚本存在漏洞,Google 搜索`xxxx.jsp`可以找到存在此脚本的Web网站。 + + - 信息挖掘 + + - 定点采集 + + > Google搜索 `.doc+website` 挖掘信息 + + - 隐藏信息 + + > `.mdb`、`.ini`、`.txt`、`.old`、`.bak`、`.001`.…... + + - 后台入口 + +2. **网络信息收集** + + - 正常服务(如whois) + - 系统功能 + - Ping + - tracert + +3. **系统及应用信息收集** + + - 服务旗标 + - 欢迎信息 + - 端口扫描 + - TCP/IP协议指纹识别 + +#### 3、信息收集与分析的防范 + +1. **公开信息收集防御** + - 信息展示最小化原则,不必要的信息不要发布 +2. **网络信息收集防御** + - 部署网络安全设备(IDS、防火墙等) + - 设置安全设备应对信息收集(阻止ICMP) +3. **系统及应用信息收集防御** + - 修改默认配置(旗标、端口等) + - 减少攻击面 + +### 二、缓冲区溢出攻击 + +#### 1、缓冲区溢出攻击原理 + +缓冲区溢出攻击利用编写不够严谨的程序,通过向程序的缓冲区写入超过预定长度的数据,造成缓存的溢出,从而破坏程序的堆栈,导致程序执行流程的改变。 + +#### 2、缓冲区溢出的危害 + +- 最大数量的漏洞类型 +- 漏洞危害等级高 + +#### 3、缓冲区溢出基础 + +1. **堆栈概念** + - 一段连续分配的内存空间 +2. **堆栈特点** + - 后进先出 + - 堆栈生长方向与内存地址方向相反 +3. **指针** + - 指针是指向内存单元的地址 +4. **寄存器** + - 暂存指令、数据和位址 + - ESP(栈顶) + - EBP(栈底) + - EIP(返回地址) + +#### 4、缓冲区溢出简单示例 + +- 程序作用:将用户输入的内容打印在屏幕上 + + ``` + Buffer.c + + #include + int main() + { + char name[8]; + printf("Please input your name:"); + gets(name); + printf("you name is: %s!", name); + return 0; + } + ``` + + 这段程序的功能是显示输人的用户名称。在程序中,用于存放用户输人名称的变量name长度定义为8位,由于程序缺少必要的输入长度校验,当用户的输入值超过8位时,printf (" you name is : %s! ",name)执行时会导致一个缓存溢出。例如输入用户姓名为“aaaaaaaaaaaaaaaaaaaaaaaa”时,由于输人值超过name定义的长度(程序申请缓冲区),当程序将用户输人值保存到name的地址空间时,会继续向内存后续地址空间写入其余输入内容,进而覆盖了程序栈中存储的返回地址(EIP),如图9-6所示。 + + ![image-20241004144200293](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20241004144200293.png) + + 程序在需要调用返回地址时,把EIP中存储的“aaaa”的ASCII码0x61616161作为下一条指令地址,CPU会试图执行0x61616161处的指令,而由于该内存并非运行程序所能访问,因此这个操作会被系统拒绝,因此产生错误,如图9-7所示。 + + ![image-20241004144249294](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20241004144249294.png) + +#### 5、缓冲区溢出攻击过程 + +- 如果可精确控制内存跳转地址,就可以执行指定代码,获得权限或破坏系统。 + + ![image-20241004144357860](https://picgo-noriu.oss-cn-beijing.aliyuncs.com/Images/image-20241004144357860.png) + +#### 6、缓冲区溢出的防范 + +1. **用户** + - 补丁 + - 防火墙 +2. **开发人员** + - 编写安全代码,对输入数据进行验证 + - 使用相对安全的函数 +3. **系统** + - 缓冲区不可执行技术 + - 虚拟化技术 -### 二、缓冲区溢出攻击 \ No newline at end of file