第3章网 络 隐 身 IP地址是计算机网络中任何联网设备的身份标识,MAC地址是以太网终端设备的链路层标识,所谓网络隐身就是使得目标不知道与其通信的设备的真实IP地址或MAC地址,当安全管理员检查攻击者实施攻击留下的各种痕迹时,由于标识攻击者身份的IP或MAC地址是冒充的或者是不真实的,管理员无法确认或者需要花费大量精力去追踪该攻击的实际发起者。因此,网络隐身技术可以较好地保护攻击者,避免其被安全人员过早发现。本章实验涉及的网络隐身技术包括MAC地址欺骗(或MAC盗用)、网络地址转换和代理隐藏。 3.1MAC地址欺骗 3.1.1实验原理 MAC地址欺骗通常用于突破基于MAC地址的局域网访问控制,使用MAC地址欺骗可对某个网络进行非授权访问,例如在交换机上限定只转发源MAC地址在预定义的访问列表中的报文,其他报文一律拒绝。攻击者只需将自身主机的MAC地址修改为某个存在于访问列表中的MAC地址即可突破该访问限制,而且这种修改是动态的并且容易恢复。 在不同的操作系统中修改MAC地址有不同的方法,其实质都是网卡驱动程序从系统中读取地址信息并写入网卡的硬件存储器,而不是实际修改网卡硬件ROM中存储的原有地址,即所谓的“软修改”,因此攻击者可以为了实施攻击临时修改主机的MAC地址,事后也可以很容易恢复为原来的MAC地址。 3.1.2实验目的 ① 掌握MAC地址欺骗技术的基本原理。 ② 掌握在Windows和Linux系统修改MAC地址的方法。 ③ 掌握经典地址修改工具macchanger的使用方法。 3.1.3实验内容 ① 学习在Windows系统直接修改有线网卡的MAC地址。 ② 学习修改注册表实现对无线网卡MAC地址的修改。 ③ 学习在Linux系统中使用ifconfig完成MAC地址修改。 ④ 学习应用macchanger完成MAC地址修改。 3.1.4实验环境 ① 操作系统: Kali Linux v3.30.1、Windows 7 SP1 旗舰版。 ② 工具软件: macchanger 1.7.0。 3.1.5实验步骤 在Windows中,几乎所有的网卡驱动程序都可以从注册表中读取用户指定的MAC地址,当驱动程序确定这个MAC地址有效时,就会将其编程写入网卡的硬件寄存器中,而忽略网卡原来的MAC地址。在Windows系统中修改MAC地址有两种方法: 一种是直接在网卡的“配置→高级→网络地址”菜单项中修改; 另一种是通过注册表修改。 在Linux系统下修改MAC地址十分方便,只要网卡的驱动程序支持修改网卡的物理地址,即可应用三条ifconfig命令完成地址修改任务: ①禁用网卡; ②设置网卡的MAC地址; ③启用网卡。也可以使用经典地址修改工具macchanger完成Linux下的MAC地址修改,它不需要用户保存原有地址即可自动恢复。 1. 直接修改有线网卡的MAC地址 ① 打开“控制面板”窗口,单击“网络和共享链接”,打开窗口如图31所示 也可以在Windows任务栏的右方使用鼠标右键单击网络图标,在弹出菜单中选择“打开网络和共享中心”命令。,然后单击“更改适配器设置”链接,打开“网络连接”窗口,如图32所示。选择需要配置的网络连接,单击鼠标右键,在弹出菜单中选择“属性”命令,打开“本地连接属性”对话框,如图33所示。 图31网络和共享中心窗口示例 图32网络连接窗口示例 ② 单击“配置”按钮,选中“高级”选项卡,在“属性”列表框中选取“本地管理的地址” 有的系统显示“网络地址”或“Network Address”。,如图34所示,选中右边的“值(V)”单选按钮,然后在文本框中输入新的MAC地址(6字节的十六进制值),最后单击“确定”按钮,地址修改立即生效。打开命令行窗口,输入ipconfig /all命令查看网卡对应的IP和MAC地址信息,如图35所示。 图33本地连接属性 图34有线网卡的地址属性设置 图35ipconfig /all示例 ③ 可以看出,名称为Intel<R> PRO/1000 MT Network Connection的网卡对应的MAC地址是F0DEF1ACBCAE,正是图34中设置的MAC地址,说明地址修改成功。如果在图34所示的对话框中,选中“不存在”单选项,然后单击“确定”按钮,那么网卡会恢复为初始的MAC地址,如图36所示,在命令行窗口中输入ipconfig /all,结果如图37所示,MAC地址已经恢复为000C299936D0。 图36恢复初始MAC地址 图37初始的网卡地址信息 【实验探究】 修改主机网卡的MAC地址为1212ABABDDEE,并检查地址是否修改成功。 2. 修改无线网卡MAC地址 与有线网卡不同,在无线网卡的配置对话框的高级属性列表中不存在网络地址属性,所以不能直接在配置对话框中修改无线MAC地址。因此需要修改注册表,在配置对话框的高级属性列表中增加网络地址属性,然后采用类似有线网卡的方法修改无线MAC地址。实验使用两种不同方法修改注册表,一是通过注册表编辑器手工修改,二是使用脚本自动修改。 ① 输入组合键Win+R,弹出“运行”对话框如图38所示,输入regedit,然后单击“确定”按钮,打开注册表编辑器。 图38运行注册表编辑 ② 打开“编辑”菜单,选择“查找”命令,在弹出的对话框中输入无线网卡的驱动描述信息Intel(R) Dual Band WirelessAc 3160 网卡的驱动描述信息可以从类似图33的接口属性对话框的属性文本框中复制得到。,如图39所示。不断单击“查找下一个”按钮,直到该信息与HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Class目录的某个子项的键值相匹配,如图310所示,找到驱动信息为Intel(R) Dual Band WirelessAc 3160的无线网卡位置,与\{4D36E972E32511CEBFC108002BE10318}\0014子项对应的DriverDesc键值相匹配。 图39注册表查找指定网卡驱动信息 图310注册表定位无线网卡位置 ③ 选中0014子项的\Ndi\Params子项,单击鼠标右键,在弹出菜单中选择“新建”命令,然后在弹出子菜单中选择“项”命令,如图311所示。输入子项名NetworkAddress,结果如图312所示。 图311注册表新建子项示例 图312生成子项NetworkAddress ④ 选中新建的NetworkAddress子项,单击鼠标右键,在弹出菜单中选择“新建”命令,然后在弹出子菜单中选择“字符串值”命令,输入default,为NetworkAddress子项增加键值default。选中default键,单击鼠标右键,在弹出菜单中选择“修改”命令,在弹出的对话框中输入6字节的十六进制数,如D05349000000,最后单击“确定”按钮,修改键值内容,结果如图313所示,然后采用相同方法增加LimitText、optional、ParamDec、Type和UpperCase等键值。 图313NetworkAddress键值示例 ⑤ 此时查看无线网卡配置,高级属性列表中已经增加了网络地址项,图314给出增加NetworkAddress项及键值前后的高级属性列表对比。 图314增加NetworkAddress前后无线网卡属性列表对比 ⑥ 选择“网络地址”列表项,然后选中“值(V)”单选按钮,输入新的MAC地址,如001122AABBCC,最后单击“确定”按钮,无线MAC地址修改立即生效,如图315所示。此时查看注册表中0014子项的键值,可以看到增加了新键NetworkAddress,值为001122AABBCC,如图316所示。 图315修改无线网卡示例 图316无线网卡地址对应的注册表键值 ⑦ 上述手工修改注册表的方法可以变为自动修改,首先将需要写入所有信息保存为后缀名为.reg的文件,如图317所示,保存为文件1111.reg。双击1111.reg的文件图标,在弹出的对话框中单击“确定”按钮,如图318所示,Windows会自动将文件中的信息导入注册表,实现图313的效果。然后重复步骤⑤和⑥即可完成无线网卡的MAC地址修改。 图317需要修改的注册表项和键值 图318导入注册表信息示例 【实验探究】 分别使用两种方法修改主机的无线MAC地址,并检查是否修改成功。 3. 在Linux系统中使用ifconfig完成MAC地址修改 使用ifconfig命令修改MAC地址有一个缺点,它无法自动恢复初始的MAC地址。用户必须预先手工保存初始MAC地址,然后使用三条ifconfig命令恢复。 ① 运行终端程序,在打开窗口中输入ifconfig eth0 down,禁用网卡eth0,如图319所示。然后输入ifconfig eth0 hw ether 0000aabbccff,为eth0设置新的MAC地址0000aabbccff,最后输入ifconfig eth0 up,重新启用网卡eth0,此时eth0的MAC地址被修改为0000aabbccff。 ② 输入ifconfig eth0命令查看地址修改是否成功,如图319所示,网卡eth0的ether属性已经被成功设置为00:00:aa:bb:cc:ff。 图319ifconfig修改网卡MAC地址 【实验探究】 在Linux系统下将主机的MAC地址设置为新的MAC地址。 4. 应用macchanger完成MAC地址修改 应用经典地址修改工具macchanger实现Linux下的MAC地址修改,可以自动修复初始地址。macchanger可以设置新的MAC地址为与初始MAC地址厂家相同的随机MAC地址、为不同厂家但是与初始地址类型相同的随机MAC地址、为不同厂家不同类型的随机MAC地址或者为完全随机的MAC地址。 ① 运行终端程序,在打开窗口中输入macchanger help,查看其主要参数及含义,如图320所示。 图320macchanger主要参数及含义 V: 查看当前软件的版本; s: 查看指定网卡的MAC地址; e: 修改为同一厂家的随机MAC地址; a: 修改为不同厂家同一类型的随机MAC地址; A: 修改为不同厂家不同类型的随机MAC地址; p: 自动恢复原有MAC地址; r: 修改为完全随机的MAC地址; l: 显示知名厂家的MAC地址段; m: 修改为指定的MAC地址段。 ② 输入macchanger V,查看工具的版本,如图321所示,当前版本为1.7.0。 图321查看macchanger版本 ③ 首先输入ifconfig eth0 down,禁用网卡eth0。然后输入macchanger r eth0,把eth0的MAC地址修改为完全随机的MAC地址,如图322所示,MAC地址从初始地址00:0c:29:0a:bb:8f修改为随机生成的新地址e6:10:09:ea:95:e5。接着输入ifconfig eth0 up,重新启用网卡eth0,最后输入ifconfig eth0查看地址修改是否已经成功。 图322macchanger修改mac地址示例 ④ 恢复初始MAC地址。首先输入ifconfig eth0 down,禁用网卡eth0。然后输入macchanger p eth0,网卡eth0的MAC地址即变为初始地址。接着输入ifconfig eth0 up,重新启动网卡eth0,最后输入ifconfig eth0,检查地址恢复是否成功,如图323所示,地址已经成功恢复为初始地址00:0c:29:0a:bb:8f。 图323macchanger恢复初始MAC地址 【实验探究】 尝试将主机MAC地址修改为其他三种类型,观察是否能够修改成功。 3.2网络地址转换 3.2.1实验原理 网络地址转换(Network Address Translation,NAT)是一种将私有地址转换为公有IP地址的技术,对终端用户透明。攻击者使用NAT时,管理员只能查看到经过转换后的IP地址,无法追查攻击者的实际IP地址,除非他向NAT服务器的拥有者请求帮助,而且NAT服务器实时记录并保存了所有的地址转换记录。在同一时刻,可能有很多内网主机共用一个公有IP地址对外访问,所以攻击者可以将自己隐藏在这些IP地址中,降低被发现的可能性。 NAT有三种实现方式: 静态转换、动态转换和端口地址转换。 静态转换指将内网的私有IP地址转换为公有IP地址,转换方式是一对一且固定不变,一个私有IP地址只能固定转换为一个公有IP地址。使用静态转换可以实现外网对内网的某些特定设备或服务的访问。 动态转换指将内网的私有IP地址转换为公有IP地址时,有多种选择,NAT会从公有IP地址池中随机选择一个。只要分别指定可转换的内部地址集合和合法的外部地址集合,就可以进行动态转换,它适用于没有传输层的IP报文。 端口地址转换(Port Address Translation,PAT)指既改变外出报文的IP地址,也改变报文的端口。内网的所有主机均可共享一个合法外部IP地址实现对外访问,从而可以最大限度地节约IP地址资源,同时又可隐藏网络内部的所有主机,有效避免来自外部的攻击。由于是对端口进行转换,所以只适用于基于UDP/TCP的网络通信。 3.2.2实验目的 ① 掌握静态、动态和端口地址转换技术的基本原理。 ② 熟练掌握NAT的配置方式。 3.2.3实验内容 ① 学习在Windows系统中配置动态NAT,观察并分析动态NAT转换过程。 ② 学习在Windows系统中配置静态NAT,观察并分析静态NAT转换过程。 ③ 学习在Windows系统中配置PAT,观察并分析PAT转换过程。 3.2.4实验环境 ① 操作系统: Kali Linux v3.30.1、Windows Server 2003 Enterprise Edition。 ② 工具软件: Wireshark v1.10.2。 3.2.5实验步骤 搭建包含三台主机和两个局域网的虚拟网络,设置一台Windows Server 2003作为NAT网关。将一台Windows Server 2003主机配置外网主机,IP地址是192.168.78.1,网关不设置。将一台Linux主机配置为内网主机,IP地址是192.168.56.171,网关为192.168.56.149。 NAT网关需要配置两块网卡,一块连接内网作为内网的网关,一块连接外网。将本地连接设置为内网网关,IP地址为192.168.56.149,把本地连接2设置为外网网卡,IP地址为192.168.78.50,两块网卡都不要设置网关地址 NAT具有路由功能,自身就是网关,因此无须设置。。 1. 配置动态NAT ① 启用路由和远程访问服务。单击“开始”按钮打开“应用程序”菜单,选择“管理工具”命令,在子菜单中选择“路由和远程访问”命令,打开“路由和远程访问服务”窗口,如图324所示。打开“操作”菜单,选择“配置并启用路由和远程访问”命令,打开“配置向导”对话框,如图325所示。单击“下一步”按钮,打开“服务安装向导”对话框,选中“网络地址转换”单选项,如图326所示。单击“下一步”按钮,打开“NAT Internet连接”对话框,如图327所示。 图324开启路由和远程访问服务 图325配置向导 图326选择启用NAT服务 ② 选择外部网络接口。配置NAT服务必须明确指明外部和内部网络接口,示例选择本地接口2作为外部网络接口,IP地址是192.168.78.50。单击“下一步”按钮,打开“配置完成”提示对话框,如图328所示,单击“完成”按钮,关闭配置向导,回到“路由和远程访问”窗口,如图329所示。 图327外部网络接口配置 图328配置完成提示 图329配置NAT服务属性示例 ③ 配置内部网络接口。选取“NAT/基本防火墙”列表项,然后选取右边窗口的“本地连接”列表项,单击鼠标右键,在弹出菜单中选择“属性”命令,打开“本地连接属性”对话框,如图330所示。选中接口类型“专用接口连接到专用网络”单选按钮,即将本地连接设置为内部网络接口,然后单击“确定”按钮完成接口配置。 图330内部网络接口属性对话框示例 ④ 指派外部网络IP地址范围。 打开“本地连接2属性”对话框,如图331所示。该接口已经被设置为外部网络接口,并且NAT服务已经开启。选中“地址池”选项卡,如图332所示,设置地址池范围为192.168.78.120~192.168.78.150,即动态外部接口IP地址的可选范围。单击“编辑”按钮,可以修改地址范围值,也可以先单击“删除”按钮,然后单击“添加”按钮,重新设置地址范围。 图331外部网络接口属性对话框示例 图332地址池设置示例 ⑤ 验证动态NAT。动态地址转换时,NAT会从公有IP地址池中随机选择,示例选择192.168.78.120。在Linux主机192.168.56.171的终端窗口输入nmap sT 192.168.78.1,向目标主机发起多个端口的全连接扫描,在图329窗口中鼠标右键单击“本地连接2”列表项,在弹出菜单中选择“显示映射”命令,打开“网络地址转换会话映射表格”窗口如图333所示。每一行列出内部主机的IP地址和端口号、转换后的外部接口IP地址和端口号以及目标地址的IP地址和端口号。内部IP地址192.168.56.171在NAT出口处被转换为外部IP地址192.168.78.120,但是端口号不变。相应地,图334给出会话对应的报文序列,58号报文“192.168.56.171:36920→192.168.78.1:5900”被NAT服务器替换为59号报文“192.168.78.120:36920→192.168.78.1:5900”,60号响应报文“192.168.78.1:5900→192.168.78.120:36920”被NAT服务器替换为61号报文“192.168.78.1:5900→192.168.56.171:36920”,IP地址192.168.56.171被映射为192.168.78.120,端口不变。 图333动态NAT示例 图334动态NAT转换报文序列示例 【实验探究】 (1) 使用两台内部主机与外部网络通信,观察网络地址转换表中的会话映射情况。 (2) 如果NAT转换表中记录着类似图333的会话,此时从外部主机ping 192.168.78.120,并观察NAT转换表的变化,分析原因。 2. 配置静态NAT ① 静态NAT的配置与动态NAT的配置基本相同,只是静态地址转换时,需要将内网IP地址一对一地固定映射为外网IP地址。配置静态NAT是在指派地址池范围时,单击“保留”按钮,打开“地址保留”对话框,绑定公有IP地址和专用IP地址即可,如图335所示,内网主机192.168.56.171固定映射为公有地址192.168.78.130,允许传入会话是指外网主机可以通过192.168.178.130来连接内网主机192.168.56.171。 图335静态NAT配置示例 ② 验证静态NAT。在Linux主机192.168.56.171的终端窗口输入nmap sT 192.168.78.1,向目标主机发起多个端口的全连接扫描,NAT服务器上的静态NAT地址转换会话表如图336所示,IP地址192.168.56.171被固定映射为192.168.78.130,端口不变。 图336静态NAT示例 接着,在主机192.168.78.1的控制台窗口输入ping 192.168.78.130,静态NAT会将报文转发给固定映射的内部主机192.168.56.171,报文序列如图337所示。原始报文“192.168.78.1→192.168.78.130”被替换为“192.168.78.1→192.168.56.171”,而响应报文“192.168.56.171→192.168.78.1”被替换为“192.168.78.130→192.168.78.1”,外部IP地址192.168.78.130被固定映射为内部IP地址192.168.56.171。 图337静态NAT传入会话示例 【实验探究】 在转换表记录为空时,尝试直接从外网主机ping 192.168.78.130,观察转换表是否会建立会话,分析原因。 3. 配置PAT ① PAT与动态NAT的配置基本相同,只是不在地址池中分配任何地址。所有从内部发往外部的报文的目标IP都会被转换为NAT服务器的外部网络接口地址,目标端口也会被转换。当外部返回的报文到达NAT服务器时,根据转换表中记录的信息将目标IP和端口转换为内部主机的IP和端口。 PAT还可以配置静态端口映射,在图329窗口中鼠标右键单击“本地连接2”列表项,在弹出菜单中选择“属性”命令,选中“服务和端口”选项卡,如图338所示,会列出所有内置的静态端口映射列表。单击“添加”按钮,打开“编辑服务”对话框,在服务描述文本框中输入映射名称,选择“TCP或UDP协议”单选按钮,配置传入端口、专用地址和传出端口,如图339所示。增加名为“端口”的新映射,它把所有目标IP是NAT服务器外部网络接口并且目标端口为8080的TCP报文,自动转发至内部主机192.168.56.171的80端口。单击“确定”按钮,成功添加新映射,如图340所示,列表中增加了名为“端口”的映射。 图338服务和端口选项卡示例 图339端口映射示例 图340映射增加成功示例 ② 验证PAT配置。在Linux主机192.168.56.171的终端窗口输入nmap sT 192.168.78.1,向目标主机发起多个端口的全连接扫描,NAT地址转换会话表如图341所示。例如,内网IP地址和端口号192.168.56.171:36366被转换为外部网络接口的IP地址和端口号192.168.78.50:62599,IP地址和端口号都被NAT服务器转换了。由于PAT不仅改变IP地址,也改变端口号,所以仅适用于基于UDP/TCP的网络通信。 图341PAT模式的NAT转换表示例 打开外部主机浏览器,在URL地址栏中输入http://192.168.78.50:8080,NAT根据静态端口映射配置将该请求转发至192.168.56.171的80端口,浏览器将获得从192.168.56.171返回的Web页面,如图342所示,该端口运行Apache服务,对应的报文序列如图343所示。 图342端口映射效果示例 图343端口映射报文序列 【思考问题】 PAT模式最多可以支持内网多少台主机同时上网? 【实验探究】 在PAT模式下,从内网发送ICMP请求给外网主机,观察并分析转换表中记录的表项。 3.3代 理 隐 藏 3.3.1实验原理 代理隐藏指攻击者不直接与目标主机进行通信,而是通过代理主机(或跳板主机)间接地与目标主机通信,目标主机的日志中只会留下代理的IP地址,无法看到攻击者的实际IP地址。 按照代理服务的对象不同,可分为正向代理和反向代理两种。正向代理指客户主机访问目标服务器时,必须向代理主机发送请求(该请求指定了目标主机),然后代理主机向目标主机转发请求并获得应答,最后将应答转发给客户主机。客户主机必须知道代理主机的IP地址和运行代理服务的端口号。反向代理为目标服务器提供服务,相当于实际服务器的前端,通常用于保护和隐藏真正的目标服务器。与正向代理不同,客户主机无须做任何设置也不知道代理主机的存在,它直接向代理主机提供的服务发起请求,代理主机根据预定义的映射关系判定将向哪个目标服务器转发请求,然后将收到的应答转发给客户主机。如果正向代理不需要配置代理主机的IP地址和端口,则称为透明代理。 3.3.2实验目的 ① 掌握代理隐藏技术的基本原理。 ② 熟练掌握OWASP ZAP、CCProxy、Sockscap64、proxychains工具的使用方法。 3.3.3实验内容 ① 学习应用CCProxy工具配置正向代理和反向代理。 ② 学习应用Sockscap64和ZAP组合配置透明代理。 ③ 学习应用proxychains工具灵活配置多级代理。 3.3.4实验环境 ① 操作系统: Windows 7、Kail Linux v3.30.1。 ② 工具软件: OWASP ZAP v2.7.0、CCProxy v7.2、Sockscap64 v1.0和proxychains v3.1。 3.3.5实验步骤 1. CCProxy配置正向和反向代理 CCProxy是国内出品的Windows代理软件,配置简单,支持所有常见代理协议,支持正向和反向代理,但不支持透明代理,需要与其他工具如Sockscap64配合实现透明代理功能。 ① 双击CCProxy图标,打开主界面如图344所示,单击“设置”按钮,打开“设置”对话框,如图345所示,默认HTTP和HTTPS代理端口为808,默认SOCKS代理端口为1080。选中“端口映射”复选框并且单击E按钮,打开“端口映射”对话框,配置反向代理,如图346所示。 图344CCProxy主界面示例 图345CCProxy配置示例 设置目标地址为www.jxnu.edu.cn,目标端口为80,端口类型为TCP,本地端口为80,然后单击“增加”按钮,新的端口映射添加成功,如图347所示。CCProxy将在80端口监听TCP报文,并将所有报文转发至www.jxnu.edu.cn的80端口,即实现反向代理功能。 图346端口映射配置示例 图347端口映射增加成功示例 ② 验证正向代理。使用正向代理时,客户端必须指明代理的IP地址和端口。运行主机浏览器 实验以360安全浏览器为例。,打开“工具”菜单并选择“Internet选项”命令,弹出“Internet属性”对话框,如图348所示。选中“连接”选项卡,如图349所示,单击“局域网设置”按钮,在打开的对话框中选中“为LAN使用代理”复选框,单击“高级”按钮,配置代理主机和端口对话框,如图350所示,设置HTTP和FTP应用的代理主机和端口为192.168.1.104和808,单击“确定”按钮完成配置。 图348打开Internet属性 图349客户端设置代理方式 图350配置代理主机和IP示例 在浏览器地址栏中输入http://www.jxnu.edu.cn,返回江西师范大学主页,同时在命令行窗口中输入netstat an,结果如图351所示,浏览器首先与CCProxy的808端口建立连接,然后CCProxy再连接主机219.229.249.6 域名www.jxnu.edu.cn对应的IP地址为219.229.249.6。的80端口建立。 图351正向代理应用示例 ③ 验证反向代理。使用反向代理时,客户程序不能设置代理主机的IP地址和端口,如图352所示。打开浏览器,在地址栏输入http://192.168.1.104,浏览器显示江西师范大学主页的内容。同时,在命令行窗口中输入netstat an,显示结果如图353所示。这表明CCProxy收到来自客户主机并且目标端口为80的报文后,会将该报文转发至219.229.249.6的80端口,即向江西师范大学网站发起HTTP请求,然后将获得的HTTP应答转发给客户机。 图352客户端不设置代理 图353应用反向代理示例 【实验探究】 验证正向和反向代理时,在代理服务器上监听和观察报文序列,分析代理的工作原理。 2. Sockscap64和ZAP组合配置透明代理 Sockscap64是Taro Lab开发的一款免费软件,借助Sockscap64可以使Windows网络应用程序通过Socks代理来访问网络,而不需要对这些应用程序做任何修改,即使本身不支持Socks代理的应用程序通过Sockscap64都可以实现代理访问,它支持Socks 4、Socks 5和HTTP协议。与其他代理软件配合,即可实现透明代理功能,用户无须做任何设置,只需从Sockscap64中运行有关程序即可通过代理访问。 OWASP ZAP是OWASP组织开发的一款免费Web安全扫描器,集成了一个HTTP和HTTPS的代理服务器,简单易用,仅支持正向代理功能。 ① 双击Sockscap64图标运行Sockscap64,显示主界面如图354所示。单击“程序”按钮在下拉菜单中选择“导入网页浏览器”命令,Sockscap64会自动导入主机中安装的所有浏览器,图354显示主机安装了Chrome、搜狗和IE浏览器。 图354Sockscap64使用示例 ② 在Kali中运行ZAP,然后打开Tools菜单并选择Options命令,如图355所示。打开Options对话框,选中Local Proxies列表项,在右边窗口配置本地代理 ZAP设置本地代理的IP地址时,必须是本机的某个IP地址或者0.0.0.0。的IP地址和端口,如图356所示,设置端口为8080,IP地址为192.168.56.163,然后单击OK按钮,完成代理设置。 图355ZAP打开选项对话框方式 图356配置ZAP代理示例 ③ 在Sockscap64窗口单击代理按钮,打开Socks Manger窗口,在空白处单击鼠标右键,在弹出菜单中选择新增一个代理命令,窗口中会新增一个代理列表项,分别双击列表项的IP列、端口列和代理类型列,配置代理的IP地址、端口和类型,如图357所示。设置代理地址为192.168.5.6163,端口为8080,类型为SOCKS 5,然后单击“保存”按钮,ZAP代理就被添加进Sockscap64了。 图357Sockscap64 添加代理示例 ④ 验证透明代理。在Sockscap64中双击Chrome浏览器图标,打开Chrome浏览器 浏览器没有设置代理。,在URL地址栏中输入www.jxnu.edu.cn,在获取江西师范大学主页内容的同时,监测的报文序列如图358所示。主机192.168.56.1首先与ZAP代理192.168.56.163的8080端口建立TCP连接,然后ZAP代理在收到HTTP请求时,自动与目标主机219.229.249.6 的80端口建立连接,并转发HTTP请求,ZAP代理在收到HTTP应答后,再转发给192.168.56.1。 图358Sockcap64透明代理的报文序列示例 【实验探究】 尝试将ZAP与CCProxy级联成二级代理(在图356中设置Additional Proxies),然后再用Sockcaps增加ZAP代理,接着打开浏览器访问网站,观察并分析报文序列。 3. proxychains配置多级代理 proxychains是命令行形式的多级代理工具,可以在Linux和所有UNIX平台下运行,支持HTTP、SOCKS 4和SOCKS 5协议。它与Sockscap64功能类似,允许不支持代理的应用程序通过代理访问。 实验首先按照前两节的方法配置ZAP的HTTP代理和CCProxy的SOCKS 5代理,分别是192.168.56.145的80端口和192.168.56.1的1080端口。 ① 配置proxychains。配置文件为/etc/proxychains.conf,使用strict_chain选项,要求所有代理必须在线,proxychains将按顺序逐个连接,然后将上述ZAP和CCProxy代理写入配置文件,如图359所示。 图359proxychains添加代理示例 ② 测试proxychains。在终端窗口输入proxychains firefox 219.229.249.6,使得火狐浏览器通过二级代理访问目标主机,结果如图360所示,proxychains严格按照配置文件中的代理顺序进行连接,首先连接CCProxy的1080端口,然后连接ZAP代理的8080端口,最后由ZAP代理访问目标主机的80端口。相应的报文序列如图361所示,三组框内的TCP连接握手报文,分别对应连接CCProxy、ZAP和目标主机。 图360应用proxychains示例 图361proxychains执行二级代理的报文序列示例 【实验探究】 (1) 配置dynamic_chain选项,然后关闭CCProxy代理,执行proxychains并观察代理连接情况。 (2) 配置random_chain选项,执行proxychains并观察代理连接情况。 【小结】 本章针对网络隐身的常见技巧进行实验演示,包括MAC地址欺骗、网络地址转换(NAT)和代理隐藏,希望读者学会以下网络隐身技能。 (1) 在Windows系统中修改有线网卡MAC地址,修改注册表实现修改无线网卡MAC地址,在Linux系统中使用ifconfig和macchanger修改网卡MAC地址。 (2) 在Windows系统中配置动态NAT、静态NAT和PAT等三种地址转换方法。 (3) 应用CCProxy工具配置正向代理和反向代理,应用Sockscap64和ZAP组合配置透明代理,应用proxychains工具灵活配置多级代理。