1、网络安全技术及应用实训报告项目一:网络渗透攻击实训项目1目录第一章 任务 1 社会工程学 11.1“社会工程学”概述 11.2“社会工程学”的 3 个欺骗步骤 11.3 实现步骤 .1第二章 任务 2 木马免杀 .32.1 木马免杀概述 32.2 木马免杀原理 32.3 内容目的 42.4 具体实验步骤 4第三章 任务 3 木 马捆绑 .63.1 木马捆绑概述 63.2 木马捆绑原理 63.3 实验步骤 6第四章 任务 4 木马植入 .84.1 木马植入的方式 .84.2 木马的运行方式 84.3 实验步骤 8第五章 任务 5 缓冲区益处 .115.1 缓冲区益处概述 115.2 缓冲区益处危
2、害 115.3 实验步骤 12第六章 任务 6 远程控制 .146.1 远程控制基本原理 146.2 实验步骤 14第七章 任务 7 主机发现 .157.1 主机发现概述 157.2 主机发现原来 157.4 主机发现 157.5 实验步骤 16第八章 任务 8 端口扫描 .178.1 端口扫描概述 .178.2 端口扫描原理 178.3 实验步骤 18第九章 任务 9 漏洞扫描 .1929.1 漏洞扫描概述 199.2 漏洞扫描原理 199.3 漏洞扫描工具 199.4 实验步骤 19第十章 任务 10 ARP 欺骗 2110.1 ARP 欺骗定义 2110.2 ARP 欺骗原理 2110.
3、3 APR 命令解释 .2210.4 实验步骤 22第一章 任务 1 社会工程学1第一章 任务 1 社会工程学1.1“社会工程学”概述“社会工程学(Social Engineering) ”是一种通过对受害者的心理弱点、本能反应、好奇心、信任和贪婪等心理陷阱,来骗取用户的信任以获取机密信息和系统设置等不公开资料,为黑客攻击和病毒感染创造了有利条件。1.2“社会工程学”的 3 个欺骗步骤利用“社会工程学”进行攻击,主要分为以下 3 个步骤。(1) 信息刺探尽量收集利用所有可能会用到的信息,以便在欺骗过程中可以应对各种突发事件。例如,在对某公司网络进行入侵时,需要了解此公司的各种规章、制度、职能和
4、人事信息等。以免在欺骗过程中由于犯下常识性的错误而被目标识破。攻击者大多采取各种手段进入目标内部,然后利用各种便利条件进行观察或窃听,以得到自己所需要的信息,或者与相关人员进行侧面沟通,逐步取得信任,从而获取情报。(2) 心理学的应用由上面的内容可知人性的弱点在“社会工程学”中是重要的一部分。实际上,这是一种心理学的应用。攻击者通过获得的各种信息来制定种种针对性的欺骗方案,并且利用各种手段获取目标的信任,从而达成自己的目的。(3) 反查技术所谓反查技术,就是反侦查技术。在基于技术的入侵攻击中,最重要的内容不仅是成功侵入主机,还包括清除痕迹,不要让管理者发现被入侵及数据被伪造。同理, “社会工程
5、学”也有这样的概念,如何在欺骗目标后,让目标根本就不将攻击者作为怀疑对象,或者让目标无法再联系或追查到攻击者。1.3 实现步骤主机 A1. 启动 tomcat 服务控制台下进入 C:Program FilesTomcat5bin 目录,执行以下命令启动 tomcat 服务:主机 B2. 网站对比(1) 在 IE 地址栏中输入 http:/主机 A IP:8080/Bank/t1Login.jsp 登录正常网站,观察页面信息与域名信息。(2) 在 IE 地址栏中输入 http:/主机 A IP:8080/Bank/tlLogin.jsp 登录钓鱼网站,第一章 任务 1 社会工程学2观察页面信息与
6、域名信息。(3) 对比正常网站与钓鱼网站在页面信息的内容上的异同与域名信息上的异同。正常网站与钓鱼网站在页面信息的内容上一模一样,而在域名的对比上也只有一个字母之差,因此两个域名间是非常相似的。3. 钓鱼网站(1) 关闭正常网站页面。(2) 在钓鱼网站输入自己的账号与密码信息(账号与密码相同,账号分配规律为00010040),如 0004,单击“提交”按钮。钓鱼网站提示“您输入的卡号或者查询密码错误,请重新输入”。(3) 单击“返回华新银行”链接确认该信息。(4) 钓鱼网站引导用户到正常网站,此时观察域名的变化(由 tlLogin.jsp 跳转为t1Login.jsp)。主机 A4. 查看盗号
7、(1) 浏览钓鱼网站服务目录(C:Program FilesTomcat5webappsEtpNSSBank),查看盗号文件 USER_00XX.txt。就这样钓鱼网站轻松地获取到了网银用户的账号。第二章 任务 2 木马免杀3第二章 任务 2 木马免杀2.1 木马免杀概述免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写 Virus AV),逐字翻译为“反- 反病毒”,我们可以翻译为“反杀毒技术”。木马免杀可以将其看为一种能使木马避免被杀毒软件查杀的技术。木马免杀技术的涉猎面非常广,涉及反汇编、逆向工程甚至系统漏洞的发掘
8、等其他顶级黑客技术。 2.2 木马免杀原理(1) 杀毒原理当前杀毒软件对病毒的查杀主要有特征代码法和行为监测法两种。特征码就是能识别一个程序是病毒的一段不大于 64 字节的特征串。特征码定位法分为文件查杀和内存查杀,杀毒软件公司拿到病毒的样本以后,定义一段病毒特征码到病毒库中,然后与扫描的文件比对,如果一致则认为是病毒。内存查杀则是载入内存后再比对。行为检测法是新出现的一种定义病毒的方法,它利用的原理是某些特定的病毒会有某些特定的行为来做出是否为病毒的判断。(2) 木马免杀原理免杀在某种程度上可以说是杀毒软件的对立面。杀毒软件通过特征码查杀病毒,相应的,通过修改特征码的方法来实现木马免杀。特征
9、码修改方法:方法一:直接修改特征码的十六进制法 修改方法:把特征码所对应的十六进制改成数字差 1 或差不多的十六进制。 适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下文件能否正常使用。方法二:修改字符串大小写法 修改方法:如果特征码所对应的内容是字符串,只要把大小字互换一下就可以了。 适用范围:特征码所对应的内容必须是字符串,否则不能成功。方法三:等价替换法 修改方法:把特征码所对应的汇编指令,替换成功能类似的指令。 适用范围:特征码中必须有可以替换的汇编指令,比如 JE,JNE 换成 JMP 等。方法四:指令顺序调换法 修改方法:把具有特征码的代码顺序互换一下。 适用范
10、围:具有一定的局限性,代码互换后必须不能影响程序的正常执行。方法五:通用跳转法 修改方法:把特征码移到零区域(指代码的空隙处)执行后,使用 JMP 指令无条件调回原代码处继续执行下一条指令。 适用范围:通用的改法,建议大家要掌握这种改法(在【学习模式】的【应用再现】第二章 任务 2 木马免杀4中使用的就是该方法)。2.3 内容目的黑客通过相关工具来对生成的木马安装程序进行免杀,达到使用杀毒软件无法查杀出木马程序的目的,在将免杀的木马安装程序发送给被攻击者。此时,即使被攻击者安装了杀毒软件,并对发送来的程序进行杀毒,杀毒软件也会熟视无睹。由于用户对杀毒软件的信任,他会大大降低对此程序的戒心,一旦
11、运行此软件,被攻击者就立即沦陷为肉鸡。2.4 具体实验步骤实验操作前各实验主机需从 Web 资源库下载实验所需木马程序(灰鸽子)、特征码定位工具(MyCCL)、偏移量转化器(OC)及汇编分析调试器(OllyDBG)。注实验过程两主机可同步进行,即主机 B 同时进行免杀操作,并最终将免杀的安装程序发送给主机 A,主机 A 运行免杀后的安装程序。主机 B 对主机 A 进行控制。主机 A1. 配置木马服务器程序(1) 运行“灰鸽子”木马程序,点击工具栏“配置服务程序”按钮,弹出“服务器配置”对话框,单击“自动上线设置”属性页,在“IP 通知 http 访问地址、DNS 解析域名或固定 IP”文本框中
12、输入本机 IP 地址,在“保存路径”选项中将木马生成在桌面,单击“生成服务器”按钮,生成木马“服务器程序”(默认文件名为 Server_Setup.exe)。2. 定位木马服务器程序特征码位置(1) 启动 AVG 反病毒软件(保证 AVG 服务启动,开启方法:点击“开始”|“运行”,输入 services.msc,启动“AVG Anti-Spyware Guard”服务;保证 AVG 主界面打开,方法:依次单击“程序AVG Anti-Spyware 7.5AVG Anti-Spyware”)。(2) 打开 MyCCL,点击“文件”按钮,选择生成木马安装程序。在“开始位置”填入程序的起始位置“0
13、0000400”, 分块个数中填入“100” ,其它选择默认。点击“生成”按钮,弹出“Confirm”提示框选择“Yes”,生成“OUTPUT”文件夹。(3) 右键点击 OUTPUT 文件夹,在弹出菜单中选择“用 AVG Anti-Spyware 扫描”进行查杀。查杀结束后,点击“应用所有操作”按钮,清除病毒。(4) 点击“MyCCL”中“二次处理”按钮,重新对生成文件进行分析,MyCCL 会提示文件 0009A509_00001DB3 出现特征码。(5) 再次对“OUTPUT”文件夹进行病毒查杀,此时杀毒软件提示没有病毒。(6) MyCCL 再次进行二次处理,这时会产生特征码分布示意图,证明
14、含有特征码的区段已经定位完毕。(7) 点击“特征区间”按钮,打开“填充/特征码 区间设定”页签。特征0009A509_00001DB3 即为特征码的位置区间,选择特征 0009A509_00001DB3,点击右键,选择“复合定位此处特征”,回到 MyCCL 主界面,再次设定分块个数为 100,点击“生成”按钮。重新生成 OUTPUT 文件夹,对 OUTPUT 文件夹进行病毒查杀。(8) 查杀完成后,清除病毒,再次进行 MyCCL 的二次处理。再次对 OUTPUT 进行病毒查杀。MyCCL 再次进行二次处理,这时会产生特征码分布示意图,证明含有特征码的模块已经定位完毕,其它位置无特征码。第二章
15、任务 2 木马免杀5(9) 选择 特征 0009B985_0000004C,点击右键,选择“复合定位此处特征”,回到MyCCL 主界面,设定分块个数为 38,点击“生成”按钮。重新生成 OUTPUT 文件夹,对OUTPUT 文件夹进行病毒查杀。(10) 对 OUTPUT 文件夹进行病毒查杀,直到定位完毕,步骤和前面相同。得到特征0009B9C3_00000002 即为特征码的精确位置,如图所示。3. 修改特征码(1) 关闭 MyCCL,打开 OC 工具,选择木马安装程序,将定位到特征码的物理地址0009B9C3 填入文件偏移框中,转换为内存地址_。(2) 关闭 OC,打开 OllyDBG 工具
16、,依次点击“文件”|“打开”选择木马安装程序。(3) 通过操作“Ctrl+G”|“内存地址”|“确定”,找到特征码地址(内存地址),如图所示。向上滚动鼠标滑轮,自动归位到指令首址 0049C5C1,内容为“MOV EAX,DWORD PTR SS:EBP-101C ”(特征码包含在该段指令中)。(4) 在程序的最下方找到一段“00”空白区,本练习以 004A21E4 为例。单击鼠标右键,选择“汇编”,在弹出窗口填入特征码段内容“MOV EAX,DWORD PTR SS:EBP-101C ”,点击“汇编”保存设置。此时会自动跳至下一地址进行编辑,输入“jmp 0049C5C7”跳转到代码“MOV
17、 EAX,DWORD PTR SS:EBP-101C ”的下一个地址。(5) 返回到 0049C5C1 处,右键点击代码,选择汇编,写入跳转指令“jmp 004A21E4”,点击“汇编”保存设置。右键点击空白处,依次选择“复制到可执行文件”|“所有修改”|“全部复制”,在弹出界面空白处点击右键,选择“保存文件”,文件名称为“Setup.exe”,退出OllyDBG。(6) 对“Setup.exe”进行扫描,若杀毒软件查杀不到,则证明免杀成功。4. 将免杀的木马安装程序发送给主机 B(1) 将经过免杀的木马安装程序 Setup.exe 发送给同组主机 B(可通过网络共享,或从 Web 资源库下载
18、 FeiQ 通信工具等方法进行数据传输)。(2) 在灰鸽子中观察文件目录浏览视图,等待被控制主机出现。主机 B5. 运行木马被控制端安装程序(1) 接收主机 A 发来的 Setup.exe 和未免杀的 Server_Setup.exe 文件。使用 AVG 反病毒软件对主机 A 发送的两个安装程序进行病毒扫描。扫描结果如何?(2) 运行反病毒软件未报警(无异常)的安装程序。主机 A6. 查看肉鸡是否上线并尝试对其进行控制(1) 在主机 B 运行免杀后的木马安装程序后,在木马程序的“文件目录浏览”视图中第二章 任务 2 木马免杀6会出现上线主机。(2) 选择上线主机 B,点击“捕获屏幕”按钮,查看
19、主机 B 屏幕信息。第三章 任务 3 木马捆绑7(3) 点击“远程屏幕”中“传送鼠标和键盘”按钮,对主机 B 进行远程控制。第三章 任务 3 木马捆绑3.1 木马捆绑概述鉴于木马的危害性,很多人对木马知识还是有一定了解的,这对木马的传播起了一定的抑制作用,这是木马设计者所不愿见到的,因此他们开发了多种功能来伪装木马,其中捆绑文件是常用的手段之一。这种伪装手段是将木马捆绑到一个安装程序上,当安装程序运行时,木马在用户毫无察觉的情况下,偷偷的进入了系统。至于被捆绑的文件一般是可执行文件即 EXE、COM 一类的文件。3.2 木马捆绑原理为了将两个可执行程序结合在一起,攻击者会使用一个包装工具。这些
20、工具包括包装工具(Wrappers)、绑定工具(binders)、打包工具(packers)、EXE 绑定工具(EXE binders)和 EXE 结合工具(EXE joiner)等。下图说明了攻击者如何使用包装程序。本质上,这些包装器允许攻击者使用任何可执行后门程序,并将其与任何的合法程序结合起来,不用写一行新代码就可以创建一个特洛伊木马。3.3 实验步骤实验操作前实验主机需从 Web 资源库下载实验所需木马程序(灰鸽子)、zsoft 软件程序(一个即时通信工具)及捆绑工具(学生可以选择使用系统自带的 IExpress 或专门用于打包的软件)。注实验过程两主机可同步进行,即主机 B 同时进行
21、木马捆绑,并最终将捆绑的程序发送给主机 A,主机 A 运行打包后的程序。主机 B 对主机 A 进行控制。主机 A1. 生成木马服务器程序参考知识点二,运行木马并生成木马服务器程序。第三章 任务 3 木马捆绑82. 捆绑过程实现运行捆绑工具,通过设置将 zsoft 软件程序与木马被控制端程序打包在一起,并设置打包后的程序属性为:只显示正常程序;木马程序在后台隐藏运行;运行后删除木马程序在系统中的痕迹等。本实验以 IExpress 为例实现捆绑过程。(1) 主机 A 登陆 http:/,下载并解压 zsoft 文件到本地。(2) 主机 A 打开“开始”|“运行”,输入“IExpress”,点击“确
22、认”,进入IExpress 向导。(3) 选择“Create new Self Extraction Directive file”,点击“下一步”。(4) 进入“Package purpose”页签,选择“Extract files and run an installation command”,点击“下一步”按钮。(5) 进入“Package title”页签,在空白处输入“ ”(空格),点击“下一步”按钮。(6) 进入“Confirmation prompt”页签,选择“No prompt”,点击“下一步”按钮。(7) 进入“License agreement”页签,选择“Do not
23、 display a license”,点击“下一步”按钮。(8) 进入“Packaged files”页签,点击“Add”按钮,添加木马程序和 zsoft 软件程序,点击“下一步”按钮。(9) 进入“Install Program to”页签,在“install Program”选择木马程序,在“Post Install Command”中选择 zsoft 软件程序。点击“下一步”按钮。(10) 进入“Show window”页签,选择“Hidden”选项,点击“下一步”按钮。(11) 进入“Finished message”页签,选择“No message”选项,点击“下一步”按钮。(12
24、) 进入 “Package Name and Options”页签,填入捆绑后程序路径,文件名为software.exe。在“Options”选项中选择“Hide File Extracting Progress Animation from User”,点击“下一步”按钮。(13) 进入“Configure restart”页签,选择“No restart”选项,点击“下一步”按钮。(14) 进入“Save Self Extraction Directive”页签,选择“Dont save”选项,点击“下一步”按钮。(15) 进入“Create package”页签,点击“下一步”按钮,完成
25、操作。生成捆绑完成的文件“software.exe”。3. 将打包生成的程序 software.exe 发送给主机 B主机 B4. 运行打包程序(1) 主机 B 运行主机 A 发送过来的软件程序 software.exe。(2) 观察软件运行过程中出现的现象,能否发现除 zsoft 软件外其它程序的运行过程。主机 A5. 查看肉鸡是否上线,若上线尝试对其进行控制第四章 任务 4 木马植入9第四章 任务 4 木马植入4.1 木马植入的方式使用木马程序的第一步是将木马的“服务器程序”放到远程被监控主机上,这个过程成为木马的植入过程。常见的植入过程有如下几种方法。 邮件收发:将木马的“服务器程序”放
26、入电子邮件中植入到远程主机。 网页浏览:将木马的“服务器程序”放入网页中植入到远程主机。 文件下载:将木马的“服务器程序”和被下载的文件捆绑到一起植入到远程主机。4.2 木马的运行方式服务端用户运行木马或捆绑木马的程序后,木马就会自动进行安装。首先将自身拷贝到 WINDOWS 的系统文件夹中(C:WINDOWS 或 C:WINDOWSSYSTEM 目录下) ,然后在注册表,启动组,非启动组中设置好木马的触发条件,这样木马的安装就完成了。安装后就可以启动木马了。1. 自启动激活木马(1) 注册表:打开 HKEY_LOCAL_MACHINESoftwareMicrosoftWindows Curr
27、entVersion 下的 Run 主键,在其中寻找可能是启动木马的键值。(2) WIN.INI:C:WINDOWS 目录下有一个配置文件 win.ini,用文本方式打开,在windows字段中有启动命令 load=和 run=,在一般情况下是空白的,如果有启动程序,可能是木马。(3) SYSTEM.INI:C:WINDOWS 目录下有个配置文件 system.ini,用文本方式打开,在386Enh,mci,drivers32中有命令行,在其中寻找木马的启动命令。(4) Autoexec.bat 和 Config.sys:在 C 盘根目录下的这两个文件也可以启动木马。但这种加载方式一般都需要控
28、制端用户与服务端建立连接后,将已添加木马启动命令的同名文件上传到服务端覆盖这两个文件才行。(5) *.INI:即应用程序的启动配置文件,控制端利用这些文件能启动程序的特点,将制作好的带有木马启动命令的同名文件上传到服务端覆盖这同名文件,这样就可以达到启动木马的目的了。(6) 启动菜单:在“开始-程序-启动”选项下也可能有木马的触发条件。(7) 通过将自身注册成系统服务,并添加注册表服务项,常驻内存。4.3 实验步骤实验操作前实验主机需从 Web 资源库下载实验所需木马程序(灰鸽子)和恶意网页模板。方法一 :网页木马与木马植入注实验过程两主机可同步进行,即主机 B 同时制作网页木马,最后主机 A
29、 访问主机 B 制作的网页木马,实现中马的过程。第四章 任务 4 木马植入101. 生成网页木马(1) 生成木马的“服务器程序”。主机 A 运行“灰鸽子”木马,参考知识点二配置生产木马被控制端安装程序Server_Setup.exe,并将其放置于 Internet 信息服务(IIS) 默认网站目录“C:Inetpubwwwroot”下。(2) 编写生成网页木马的脚本。主机 A 在 Web 资源库中下载恶意网页模板 Trojan.htm,并编辑内容,将脚本第 15 行“主机 IP 地址”替换成主机 A 的 IP 地址。主机 A 将生成的“Trojan.htm”文件保存到“C:Inetpubwww
30、root”目录下(“C:Inetpubwwwroot”为“默认”的网站空间目录),“Trojan.htm”文件就是网页木马程序。注注意查看生成的 Server_Setup.exe 和 Trojan.htm 文件是否允许 Internet 来宾账户的读权限访问。(3) 启动 WWW 服务。鼠标右键单击“我的电脑”,选择“管理”。在“计算机管理(本地)”中选择“服务和应用程序”“服务”,启动“World Wide Web Publishing Service”服务。2. 木马的植入主机 B 启动 IE 浏览器,访问 http:/主机 A 的 IP 地址 /Trojan.htm。观察实验现象是否有变
31、化。3. 查看肉鸡是否上线,并尝试进行控制主机 A 等待“灰鸽子远程控制”程序主界面的“文件管理器”属性页中“文件目录浏览”树中出现“自动上线主机”。尝试对被控主机 B 进行远程控制。4. 主机 B 验证木马现象(1) 主机 B 查看任务管理器中有几个“IEXPLORE.EXE”进程。(2) 主机 B 查看服务中是否存在名为“Windows XP Vista”的服务。5. 主机 A 卸载掉主机 B 的木马器程序主机 A 通过使用“灰鸽子远程控制”程序卸载木马的“服务器”程序。具体做法:选择上线主机,单击“远程控制命令”属性页,选中“系统操作”属性页,单击界面右侧的“卸载服务端”按钮,卸载木马的
32、“服务器”程序。方法二:缓冲区溢出与木马植入攻击者通过远程缓冲区溢出攻击受害者主机后,得到受害者主机的命令行窗口,在其命令行窗口下使用 VBE 脚本程序实现木马植入。下面,由主机 B 来重点验证利用 VBE 脚本上传木马的过程。(远程缓冲区溢出部分内容将在后续知识学习中进行详细介绍)1. 生成下载脚本主机 B 在命令行下逐条输入如下命令生成木马自动下载脚本 down.vbs。该脚本的作用是:使主机 B 自动从主机 A 的 WEB 服务器上下载 Server_Setup.exe 到第四章 任务 4 木马植入11主机 B 的 C:WINDOWSsystem32 目录下,并重命名为 down.exe
33、,而该程序就是主机 A 要植入的灰鸽子服务器端。2. 下载木马后门主机 B 运行 down.vbs 脚本,使用命令形式如下:主机 B 运行灰鸽子服务器程序,使用命令如下:3. 主机 B 验证木马现象(1) 主机 B 查看任务管理器中有几个“IEXPLORE.EXE”进程。(2) 主机 B 查看服务中是否存在名为“Windows XP Vista”的服务。4. 主机 B 卸载木马程序(1) 主机 B 启动 IE 浏览器,单击菜单栏“工具”“Internet 选项”,弹出“Internet 选项”配置对话框,单击“删除文件”按钮,在弹出的“删除文件”对话框中,选中“删除所有脱机内容”复选框,单击“
34、确定”按钮直到完成。(2) 双击“我的电脑”,在浏览器中单击“工具”|“文件夹选项”菜单项,单击“查看”属性页,选中“显示所有文件和文件夹”,并将“隐藏受保护的操作系统文件”复选框置为不选中状态,单击“确定”按钮。(3) 关闭已打开的 Web 页,启动“Windows 任务管理器”。单击“进程”属性页,在“映像名称”中选中所有“IEXPLORE.EXE”进程,单击“结束进程”按钮。(4) 删除“C:WindowsH.ini”文件。(5) 启动“服务”管理器。选中右侧详细列表中的“Windows XP Vista”条目,单击右键,在弹出菜单中选中“属性”菜单项,在弹出的对话框中,将“启动类型”改
35、为“禁用”,单击“确定”按钮。(6) 启动注册表编辑器,删除“HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesWindows XP Vista”节点。(7) 重新启动计算机。第五章 任务 5 缓冲区溢出12第五章 任务 5 缓冲区益处5.1 缓冲区益处概述缓冲区是程序员为保存特定的数据而在计算机内存中预分配的一块连续的存储空间。缓冲区溢出是指在向缓冲区内填充数据时,数据位数超过了缓冲区本身的容量,致使溢出的数据覆盖在合法数据上,而引起系统异常的一种现象。操作系统所使用的缓冲区又被称为“堆栈” 。 在各个操作进程之间,指令会被临时储存在“ 堆栈”
36、当中, “堆栈”也会出现缓冲区溢出。缓冲区溢出是一种非常普遍、非常危险的漏洞,在各种操作系统、应用软件中广泛存在。一些高明的“黑客”或者病毒制造者利用缓冲区溢出漏洞,精心编制出“木马”程序或者病毒,伴随覆盖缓冲区的数据侵入被攻击的电脑,造成系统破坏、数据泄密、甚至可以取得系统特权,给用户造成重大的损失。在缓冲区溢出中,最为危险的是堆栈溢出,因为入侵者可以利用堆栈溢出,在函数返回时改变返回程序的地址,让其跳转到任意地址,带来的危害一种是程序崩溃导致拒绝服务,另外一种就是跳转并且执行一段恶意代码,比如得到 shell,然后为所欲为。缓冲区溢出攻击的目的在于扰乱具有某些特权运行的程序的功能,这样可以
37、使得攻击者取得程序的控制权。为了达到这个目的,攻击者必须达到如下的两个目标:在程序的地址空间里安排适当的代码;通过适当的初始化寄存器和内存,让程序跳转到入侵者安排的地址空间执行。5.2 缓冲区益处危害缓冲区溢出漏洞的危害性非常大,与其他一些黑客攻击手段相比更具破坏力和隐蔽性。主要体现在如下几个方面:(1) 漏洞普遍存在,而且极容易使服务程序停止运行、死机甚至删除数据。(2) 漏洞在发现之前,一般程序员是不会意识到自己的程序存在漏洞,从而疏忽监测。(3) 黑客通过缓冲区溢出嵌入的非法程序通常都非常短,而且不像病毒那样存在多个副本,因此,很难在执行过程中被发现。(4) 由于漏洞存在于防火墙内部,攻
38、击者所发送的字符串一般情况下不会受到防火墙的阻拦,而且,攻击者通过执行核心级代码所获得的本来不运行或没有权限的操作,在防火墙看来是合法的,因此,防火墙是无法检测远程缓冲区溢出攻击的。(5) 一个完整的核心代码的执行并不一定会使系统报告错误,并可能完全不影响正常程序的运行,因此,系统和用户都很难觉察到攻击的存在。(6) 缓冲区溢出攻击在没有发生攻击时攻击程序并不会有任何变化,攻击的随机性和不可预测性都使得防御缓冲区溢出攻击变得异常困难。知识应用1. 黑客渗透视角利用缓冲区溢出对目标机进行攻击,获取超级用户权限,进而控制目标机。第五章 任务 5 缓冲区溢出13例如:黑客李某在入侵某公司管理员的主机
39、后,为了获得更多“肉鸡” ,对内网中的其他主机进行漏洞扫描,并发现了缓冲区溢出漏洞,他立即根据这些漏洞精心设计了获取超级用户权限的溢出程序,开始对存在漏洞的主机实施攻击,在很隐蔽的情况下得到了超级用户的权限,从而实现了对其他主机的控制。2. 网络运维视角加强网络安全意识,采取有效地防范措施,避免系统受缓冲区溢出的攻击。例如:要完全避免缓冲区溢出造成的安全威胁是不可能的,但系统管理员可以构建完善的防范体系来降低缓冲区溢出攻击的威胁。目前,有效地防范措施主要有:(1) 通过操作系统使得缓冲区不可执行,从而阻止攻击者植入攻击代码(ShellCode)。(2) 程序开发人员书写正确的、安全的代码。(3
40、) 利用编译器的边界检查来实现缓冲区的保护,使得缓冲区溢出不可能出现,从而完全消除缓冲区溢出的威胁。5.3 实验步骤实验操作前实验主机需从 Web 资源库下载 MS06040 漏洞攻击工具和 NetCat 工具。注实现过程中,主机 A 和主机 B 可同时进行以下步骤。1. 远程缓冲区溢出(1) 主机 A 利用 NetCat 在本地监听 60350 端口。当溢出成功后,漏洞服务会通过60350 端口与远程主机建立连接。单击“开始”|“运行”,输入“cmd”。进入 Netcat 目录。使用命令:执行效果如下:(2) 主机 A 发起溢出攻击主机 B,单击“开始”|“运行”|“cmd”。新建一个命令行
41、窗口,进入溢出攻击目录。利用工具输入如下命令进行远程溢出:上面命令实现向远程主机发起远程溢出攻击,溢出成功后与本地主机通过 60350 端口建立连接程序。(3) 获取 CmdShell。当主机 A 成功实现溢出攻击后,步骤 3 中的控制台窗口出现如下图所示界面。第五章 任务 5 缓冲区溢出14此时,已经获得了远程主机的 CmdShell。输入“ipconfig”命令验证主机 B 的 IP 配置信息。确认此时控制台为远程主机 B 的 CmdShell(溢出 CmdShell)。2. 溢出 CmdShell 的利用(4) 主机 A 实现文件上传到主机 B。主机 A 在溢出 CmdShell 下执行
42、如下命令,新建一个用户。(5) 将新添加的用户加入管理组。在溢出 CmdShell 下执行如下命令:(6) 将主机 B 的 C 盘添加默认共享。在溢出 CmdShell 下执行如下命令:(7) 建立与主机 B 的连接。在本机的命令行下执行如下命令:(8) 上传文件。主机 A 在本机的命令行下执行如下命令:(9) 删除在主机 B 上新建用户。主机 A 在溢出 CmdShell 下执行如下命令:(10) 主机 B 查看在本地 C 盘根目下是否有主机 A 上传的文件。第六章 任务 6 远程控制15第六章 任务 6 远程控制6.1 远程控制基本原理远程控制是在网络上由一台电脑(主控端 Remote/客
43、户端)远距离去控制另一台电脑(被控端 Host/服务器端)的技术,主要通过远程控制软件实现。 远程控制软件工作原理:远程控制软件一般分客户端程序(Client)和服务器端程序(Server)两部分,通常将客户端程序安装到主控端的电脑上,将服务器端程序安装到被控端的电脑上。使用时客户端程序向被控端电脑中的服务器端程序发出信号,建立一个特殊的远程服务,然后通过这个远程服务,使用各种远程控制功能发送远程控制命令,控制被控端电脑中的各种应用程序运行。6.2 实验步骤实验操作前实验主机需要从网络拟攻击系统下载实验所需的远程控制程序(灰鸽子)。1. 配置木马服务器程序主机 A 运行灰鸽子木马程序,点击“配
44、置服务程序”按钮,进入“服务器配置”界面,在“IP 通知 http 访问地址、DNS 解析域名或固定 IP”文本框中输入本机 IP 地址。点击“安装选项”页签,选中“程序安装成功后提示安装成功”和“程序运行时在任务栏显示图标”两个复选框。最后在“保存路径”选项中将木马生成在桌面,单击“生成服务器”按钮,生成木马服务器程序。2. 远程控制连接的建立主机 A 将生成的被控制端安装程序发送给主机 B。主机 B 运行安装程序,并观察本机有何现象。(弹出提示窗口“灰鸽子远程控制服务端安装成功”;在系统托盘区出现如下图标)3. 进行远程控制主机 A 等待“灰鸽子远程控制”程序主界面的“文件管理器”属性页中
45、“文件目录浏览”树中出现“自动上线主机”后,对主机 B 进行远程控制。在“自动上线主机”中选择主机 B,选择 D 盘,点击右侧的“上传文件”按钮 (若上传按钮为灰色,请单击右侧空白处),在新弹出的窗口中选择要上传的文件,点击“确定”按钮即可完成文件的上传。 主机 A 浏览找到主机 B 的“C:WINDOWSsystem32”目录,单击选中 cmd.exe 程序,单击 按钮将其删除。主机 A 通知主机 B 验证。主机 B 单击“开始”|“运行”|“cmd”。查看 cmd.exe 程序第六章 任务 6 远程控制16删除后的效果。第七章 任务 7 主机发现174. 获取屏幕主机 A 再次在“自动上线
46、主机”中选择主机 B,点击“捕获屏幕”按钮 。在弹出的“远程屏幕”界面中,点击“传送鼠标和键盘操作”按钮 后,即可通过鼠标来进行远程控制了。5. 卸载被控制端主机 A 退出远程屏幕功能,选择“自动上线主机”中的主机 B,点击“远程控制命令”页签,点击“卸载服务端”按钮,即可完成被控制端程序的卸载。主机 B 观察本机有何变化。(系统托盘区小图标消失)第七章 任务 7 主机发现7.1 主机发现概述任何网络探测任务的最初几个步骤之一就是把一组 IP 范围(有时该范围是巨大的)缩小为一列活动的或者你所感兴趣的主机,这个过程称之为“主机发现” 。什么样的主机令你感兴趣主要依赖于扫描的目的。网络管理员也许
47、只对运行特定服务的主机感兴趣,而从事安全的人士则可能对每一个细节都感兴趣。一个系统管理员也许仅仅使用 Ping 来定位内网上的主机,而一个外部入侵测试人员则可能绞尽脑汁用各种方法试图突破防火墙的封锁。7.2 主机发现原来主机发现有时候也叫做 ping 扫描,但它远远超越用世人皆知的 ping 工具发送简单的ICMP 回显请求报文,也可以使用 ARP 扫描、TCP SYN/ACK、UDP 等多种扫描与连接探测。这些探测的目的是获得响应以显示某个 IP 地址是否是活动的(正在被某主机或者网络设备使用)。 在许多网络上,在给定的时间,往往只有小部分的 IP 地址是活动的。这种情况在基于RFC1918
48、 的私有地址空间如 10.0.0.0/8 尤其普遍。那个网络有 16,000,000 个 IP,然而,在使用它的大多数公司中连 1000 台机器都没有。主机发现就是要找到零星分布于 IP 地址海洋上的那些机器。7.4 主机发现1. 利用 ARP 协议实现主机发现向目的主机发送 ARP 请求报文后,如果接收到目的主机返回的 ARP 应答报文,那么说明目的主机处于活动状态;否则,说明目的主机处于不活动状态。利用 ARP 协议实现主机发现的过程如下图所示:第七章 任务 7 主机发现182. 利用 ICMP 协议实现主机发现向目的主机发送 ICMP 回显请求报文后,如果接收到目的主机返回的 ICMP
49、回显应答报文,那么说明目的主机处于活动状态;否则,说明目的主机处于不活动状态。【注】利用 ICM 进行主机发现时,应注意防火墙存在的现象,如果目标主机进行了防火墙设置,禁止 ICMP 回显请求数据包通过,则主机发现失败。7.5 实验步骤实验操作前实验主机需从 Web 资源库下载实验所需局域网扫描器软件。1 主机扫描(1) 主机 A 运行“局域网扫描器”,在“扫描地址”栏中输入扫描的 IP 范围。(注意:需与本机同网段),扫描方式为默认方式“普通扫描”,点击“扫描”按钮开始扫描目标IP 段内存活主机。(2) 扫描结果包括“IP 地址”、 “MAC 地址”和“主机名”三部分。2. 结果对比(3) 扫描完成后,主机 A 将扫描结果与扫描到的同组主机进行对比,并针对当前网络环境验证其正确性。第八章 任务 8 端口扫描19第八章 任务 8 端口扫描8.1 端口扫描概述网络中的每一台计算机如同一座城堡,在这些城堡中,有的对外完全开放,有的却是紧锁城门。入侵者们是如何找到,并打开他们的城门的呢?在网络技术中,把这些城堡的“城门”称之为计算机的“