• 计算机病毒实践汇总五:搭建虚拟网络环境


    在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索。敬请批评指正!

    涉及内容:
    INetSim安装及使用
    ApateDNS安装及使用

    1. 搭建病毒分析网络环境原因

    使用虚拟机作为沙箱能把病毒与外界完全隔离开,但是很多病毒需要连接网络才能触发特定的行为,所以我们需要搭建一个尽量真实的网络环境。
    
    • 在断网模式下,病毒很可能保持静默或者做一些无关紧要的事来迷惑我们。
    • 在不了解病毒之前直接把病毒接入互联网是非常危险的,原因有如下几点:
      • 会将自己的主机以及网内的设备都会暴露在感染中
      • 该虚拟机可能变成黑客所操控的僵尸机来执行DDOS攻击
      • 可能让黑客知悉我们在解剖他的病毒。
    • 因此我们需要在虚拟机之间搭建一个虚假的网络环境来欺骗病毒。

    2. 网络环境的配置

    (1)配置目标

    • 运行恶意代码进行分析的虚拟机:WinXP
    • 启动服务器的虚拟机:Kali
    • 配置需求:虚拟机互相连接,但不与主机和外部网络连接。

    (2)虚拟机的设置

    • 首先编辑网络编辑器,新增一个HOST ONLY的网络:

    • 将虚拟机的网络适配器都选用这个网络:(WinXP反应很慢,建议重启更新配置)

    (3)配置虚拟服务器

    • 安装INetSim

      • kali:自带有INetSim,无需安装。环境变量中已经加入其路径,直接输入INetSim(root权限)就可运行:

      • Ubuntu中第一次安装时无法运行,会出现缺少依赖的问题,可以通过重新配置数据源并更新依赖来解决:(教程ubuntu 14.04安装INetSim模拟Internet

          - 配置数据源
          >wget -q -O - http://www.inetsim.org/inetsim.org-archive-signing-key.asc | sudo apt-key add -
          >sudo sh -c 'echo "deb http://www.inetsim.org/debian/ binary/" >> /etc/apt/sources.list.d/getdeb.list'
          
          - 添加组
          >groupadd inetsim
          
          - 更新数据源,安装依赖
          >sudo apt-get update
          >sudo apt-get install perl perl-base perl-modules libnet-server-perl libnet-dns-perl  libdigest-sha-perl  libipc-shareable-perl libio-socket-ssl-perl libiptables-ipv4-ipqueue-perl
          
          - 安装inetsim
          >sudo apt-get install inetsim
        
      • 中间出现的apt-get问题可尝试使用sudo aptitude update && install提供的不同版本兼容性解决方法(但是后来还是安不成功libiptables-ipv4-ipqueue-perl包)。但是不管怎样,至少在Ubuntu里能安装上INetSim而且可以运行起来了。

    • 配置INetSim
      编辑INetSim的配置文件(kali中工具的配置文件在/usr/share目录下, Ubuntu下载后安装的文件在/usr/bin目录下,不同版本可能会有所不同)

    • 找到inetsim.conf文件(kali在conf/中),更改下面的配置(去掉注释):

    第一处更改:绑定本机IP

    service_bind_address 192.168.134.129(INetSim安装的虚拟机机IP)
    

    第二处更改:DNS解析IP,将流量重定向到本机。

    dns_default_ip  192.168.134.129(INetSim安装的虚拟机机IP)
    

    第三处更改:重定向开启

    redirect_enable yes
    

    第四处更改:连接绑定ip的tcp端口

    redirect_exclude_port tcp:22
    

    第五处更改:重定向外部地址(非注释信息,有些机器更改配置时自动更改,最好确认一下)

    redirect_external_address 192.168.134.129(INetSim安装的虚拟机机IP)
    

    (4)主机中配置网络方法一:直接更改

    • 直接在网络属性中更改

    (5)主机中配置网络方法二:使用ApateDNS

    在ApteDNS里设置解析后的IP为我们Ubuntu服务器的IP然后运行它。这样病毒都会去连接我们的假服务器。
    

    下载运行ApateDNS

    • 下载ApateDNS

    • 阅读ReadMe文件:

      • apatedns是一种控制DNS响应的GUI工具。它将响应DNS请求设置为任何你指定的IP地址。
      • 可以指定一些不存在的域(NXDOMAIN)响应返回之前有效的响应发送。
      • 默认情况下,它将可以使用DNS或默认网关设置为一个IP地址用于DNS响应。在退出后,还原本地DNS设置。
    • 运行环境要求:

        Windows XP or greater
        Microsoft .NET Runtime >= 2.0
      
      • 实际上直接在XP环境运行是有问题的,win7可以运行。
      • 使用Net framework4.0版本无法运行,2.0、3.5可以运行。
    • XP中出现问题一:

    • 解决方法:安装Net framework2.0或3.0或3.5。(注意:在安装了之后需要重启)

    • 出现问题二:提示“Please set registry key HKLMMicrosoft.NET FrameworkInstallRoot to point to the .NET Framework install location”

    • 原因:可能是NET Framework没有安装或是虽然安装成功但是没有在注册表中设置成功。

    • 解决方案一:如果是安装中出现提示,可以删除所有相关文件重新安装。

    • 解决方案二:如果是安装成功后提示错误,修改注册表 HKEY_LOCAL_MACHINESOFTWAREMicrosoft.NETFramework

    • 如果其中有InstallRoot这一键值,则将其值修改为.NET Framework的安装路径(一般为 C:WINDOWSMicrosoft.NETFramework )。如果没有则右击.NET Framework选择新建“字符串值”,设置数值名称为 InstallRoot,数值数据为 C:WINDOWSMicrosoft.NETFramework 或其他安装路径。

    • 应该可以正常打开了。

    配置ApateDNS使对任何网站访问都指向固定的网站

    • Ping一下指向的网站(以校网为例)

    • 将ApateDNS的DNS Reply IP设为123.127.3.2,开启服务。

    • 再次打开网页,所有的都显示校网的页面。

    • 在ApateDNS中可以看到,第一条是访问百度的DNS解析,后面几条是加载校网页面上的相关连接地址解析

    • 出现问题一:第一次ping校网的时候显示了一个111.13.100.2的地址,使用这个地址作为返回的DNS:

    • 访问百度,出现了校网的图标,但是无法显示出信息:

    • 出现问题二:刚开始的时候使用的百度的ip,但是无法实现这个功能,显示网页无法显示,然后我又尝试了使用ping到的hao123、扇贝网的ip,这两个页面倒是没说无法显示,但是也没有出来相应的网页,而且两者显示的不同。

    • 下图是设置为hao123的效果:

    • 下图为设置成扇贝网ip的效果:

    • 由于担心是浏览器的问题,我又尝试了IE、UC浏览器,但没有解决这个问题,还是一样的效果。

    • 经过老师的点拨,说是因为有些网站使用ip无法访问,我就回来试了一下,确实是这样的:

    • 百度了一下,这个Nginx是一个高性能的HTTP和反向代理服务器,就跟Apache差不多,对于有些ip无法访问的问题,我通过阅读资料觉得有两种解释的可能:

      • 可能性一:基于Nginx平台的服务器为了防止恶意DDOS攻击(通过IP访问)或避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,会设置IP访问限制,一般会设置成直接禁止使用ip访问或限制ip段重复访问,还可以绑定多个ip段显示不同内容。
      • 可能性二:如果服务器是把域名指向了IP,其中本身含有加载Web服务的功能,输入的ip就能够被直接重定位到对应的 Web 服务器。否则,在共享主机的服务器网络中,输入IP只能访问服务器上的一个站,无法确认去哪个目录访问对应网站的服务器主机。

    3. 运行病毒程序

    • 现在配置的环境:

      • 两台虚拟机在同一个仅主机虚拟网络中。
      • kali中开启INetSim服务。
      • WinXP中运行ApateDNS或更改网络配置使重定向到INetSim虚拟服务器。
    • 在配置好的环境中运行恶意代码:

    4. 小结

    • 这次实践花了大量的时间去解决软件问题,没有针对病毒进行分析。在这个过程中,通过不断地修改虚拟机的配置和对Linux系统的软件、关系依赖修改,锻炼操作能力。
    • 感觉看过的每一个教程都写得非常简单,实际上操作中会有各种问题,由于系统环境的不同问题也不同,虽然办法总比问题多,但是整个过程极为艰辛,尤其是电脑总是崩。而且一定选择适合的方法,比如这次经验教训就是对网上的解决方法要慎重使用:
      • 在尝试各种安装deb包的过程中,搜到一个解决办法是先sudo apt-get –f install修复依赖关系,结果我在kali里面运行之后,各种依赖都被解除了,重启机器了之后连开机启动图形化界面都找不到了….而且一开始忘记存快照,做Linux实践的文档还在里面找不到了…恢复了很早以前存的快照,所有的东西还要重新安装和更新,整个人极度崩溃。
      • 在做成功之后,解决别的同学出现的问题时深切地体会到:实践做得早虽然可以花更多的时间解决问题,但显然机器好更重要…有的虚拟机只要每一步都配置正确,几乎不用花什么功夫就出来了。
    • 在不知道问题所在的时候,就耐心的阅读说明吧,尽管我的英语不好,但是通过INetSim配置文件主要内容阅读,真的发现了问题所在并成功解决。

    参考资料

  • 相关阅读:
    [刷题] IDA*
    [BZOJ1330] Editing a Book
    [BZOJ5449] 序列
    [刷题] 搜索剪枝技巧
    [XJOI3529] 左右
    [CF920E] Connected Components?
    [第18届 科大讯飞杯 J] 能到达吗
    洛谷 P4779 【模板】单源最短路径(标准版)
    洛谷 P1175 表达式的转换
    pipioj 1291 中缀表达式转后缀表达式I
  • 原文地址:https://www.cnblogs.com/hyq20135317/p/5515675.html
Copyright © 2020-2023  润新知