在尝试学习分析的过程中,判断结论不一定准确,只是一些我自己的思考和探索。敬请批评指正!
涉及内容:
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
-
阅读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配置文件主要内容阅读,真的发现了问题所在并成功解决。
参考资料
- 参考资料1:病毒木马查杀实战第001篇:基本查杀理论与实验环境配置
- 参考资料2:浅谈病毒分析中的虚拟网络环境配置
- 参考资料3:ubuntu 14.04安装INetSim模拟Internet
- 参考资料4:Installing and Configuring InetSim
- 参考资料5:下载ApateDNS