网站仿真问题排查思路和方法大盘点
上一篇文章《阿里云网站服务器镜像取证方法》发布后,广大一线电子数据取证工作人员都觉得非常实用,但是在操作过程中,常常遇到网站仿真后,却无法正常打开的现象,本篇文章效率源效哥盘点下网站仿真问题排查思路和方法,希望能帮到大家。
一、问题原因
在实际取证过程中,网站在本地进行仿真搭建后,却无法访问?
主要有以下这几个原因:
1.技术水平:
一般情况下,正常网站搭建只使用一种网站环境搭建工具和常见端口即可。而违法网站技术人员搭建方式比较粗犷,实现思路比较独特,可能出现多种网站环境搭建工具或修改使用一些特别的端口来伪装自己;
2.服务没有启动:
办案机关在本地用镜像仿真后实际系统是重新启动了一次,而网站服务没有开机启动;
3.搭建工具复杂:
系统中搭建网站的工具较多且混乱,难以分清具体使用的站点目录或者数据库等情况,从而影响正常的取证;
4.端口占用:
存在多种网站环境搭建工具,端口被大量占用。例如IIS默认启动占用了80端口等。
二、排查思路和工具
1.本地仿真网站无法访问的排查思路
正常搭建一个网站所需要的条件,包括web中间件环境、网站源码以及数据库等。
一般拿到的服务器镜像中,基本都包含这些条件,很容易搭建成功,出现失误更多是由我们搭建的方式不正确而导致。
排查问题的思路可以简单分为五步。
排查思路5步法:
第一步:
☑确定网站或数据库服务是否正常启动;
☑如果没有启动或者启动有报错,根据具体报错去解决,或者直接安装新的环境替代。
例如web服务因为使用http协议,正常启动后会默认监听80端口,而mysql则是3306端口,开机后我们可以通过netstat -ano这个dos命令对系统的端口监听情况进行分析。
如果常见端口未监听,我们可以找到web服务或数据库服务的配置文件,查看配置文件中具体设置的端口是多少,对比netstat -ano的结果查看配置的端口是否在监听,如若未监听,可以尝试手动启动web服务或数据库服务。
第二步:
☑web服务以及数据库服务启动监听正常;
☑访问报错是500错误,先排查需要环境是否正常,可以使用一些探针文件,比如php探针或者asp探针等。
第三步:
☑确定环境正常,但访问出现数据库的报错信息。检查网站源码里面的数据库连接信息文件,判断用的本地数据库还是其他服务器的数据库;
☑如果是本地的,检查账号密码是否正确、数据是否存在等问题。
第四步:
☑发现系统中有多种网站环境搭建的工具,可以尝试单独启动它们;
☑还是无法访问网站,查看每个程序的站点配置以及数据库内容,尝试找出符合需要的站点和数据库,并进行不同的组合搭建网站;
☑如果出现端口冲突的情况,可以使用netstat -ano命令找出对应端口占用进程的PID,可以在任务管理器中根据PID值找到具体进程,kill或者结束掉占用端口的进程即可。
第五步
☑所有服务、端口、环境、数据库均正常,那么一般来说网站是能够成功搭建访问;
☑但是有些特殊情况,比如伪静态规则问题,或者有些程序有域名绑定等情况,我们可以尝试修改伪静态规则和配置一下本机hosts文件即可。
2、排查工具
以下是在网站仿真中会用到的工具:
qemu-img软件
该软件的功能是将raw格式的镜像转换为vmdk格式的镜像,vmdk格式镜像即是仿真所需的镜像格式。
VMware Workstations软件
该软件的功能是将vmdk格式的镜像进行仿真,还原网站环境。
三、实操案例及操作步骤
案例信息:
案例素材:阿里云服务器raw镜像
系统参数:win2008系统,运行php站点和mysql数据库
存在问题:在本地仿真后,发现系统中存在3种网站环境搭建工具,启动了网站后,总是无法正常访问网站
操作步骤:
01.安装qemu-img工具,该工具可以将阿里云的raw镜像文件转换为vmdk的虚拟文件。
在VMware软件里新建虚拟机,挂载使用转换后的vmdk打开虚拟机。
具体操作步骤可以参考之前的《阿里云网站服务器镜像取证方法》。(→传送门点这里←)
02.根据系统的类型,采用单用户模式修改linux的密码或挂载PE的方式修改windows的密码,并重启,成功进入windows操作系统。
03.进入操作系统,使用win+R键打开【运行】,并输入cmd进入命令行界面,输入命令netstat -ano 查看端口占用情况。
如下图,可以发现并没有常见的web服务和数据库服务端口在监听,由此可以得出网站服务可能未开机启动,端口未监听,需手动启动相关服务。
04.对网站服务相关的信息进行搜集,先查看系统安装的进行程序是否有搭建网站相关的内容。
如下图,在桌面存在明显的网站环境搭建工具IIS、PHPSTUDY以及wamp,我们可以分别启动它们查看试试。
接下来在【运行】中输入services.msc打开【服务】,尝试查找是否有明显的web服务和数据库服务。(有些服务可能由于用户密码的修改从而导致未正常开机自启动)
如下图,可以查看到有wamp的Apache服务以及mysql服务未启动。从属性中查看并非是修改密码导致未启动,确定是其他启动方式。
05.根据了解到的情况,我们先从最有可能的wamp开始依次运行,看看是否能访问我们需要的网站。经过尝试发现wamp启动后,网站访问并未成功,查看apache的配置文件,发现wamp并未配置网站。
接下来打开IIS,查看网站只有一个,是一个ASP的网站,并非我们需要网站,可以排除。
最后运行PHPSTUDY,尝试可以访问,但是网站访问数据库报错1045,这个报错是数据库账号密码不正确的错误。
06.根据PHPSTUDY里面的网站配置信息,找到网站所在路径,并分析出数据库连接信息文件,大多时候我们可以根据经验,快速查看是否存在database或者config或者inc之类的文件或目录。
通常里面存在有数据库连接信息文件,或者是开源的cms,可以百度到数据库连接信息文件存放的位置。
在这个案例中,先找到了config目录中存在database.php文件,打开查看,根据内容可以知道数据库是本地的,使用root 账号,密码是root。
07.之后重置PHPSTUDY的mysql密码,发现存在数据库名称,但是数据库没有任何表。
马上我们可以想到wamp也有mysql服务,上面或许存在该数据库,我们关闭PHPSTUDY,启动wamp的mysql,使用账号root,密码root尝试登陆成功,查看存在数据库。
那么网站可能是运行的PHPSTUDY的apache服务,数据库却使用的wamp的mysql。
08.接下来,就尝试怎样实现网站搭建吧。
1)首先我们启动PHPSTUDY,再在cmd下用netstat-ano列出端口情况,找到监听3306端口的进程PID;
2)再打开任务管理器,找到该PID的进程,也就是PHPSTUDY的mysql的服务进程,操作结束进程。
3)之后打开wamp,只选择启动wamp的mysql服务。
09.最后验证打开网站访问成功,说明我们的排查思路是正确的,嫌疑人搭建网站应该是采用了phpstudy的web服务和php环境,数据库采用的wamp的mysql数据库进行搭建网站的。
现在网站重新搭建成功,就可以进行后续的取证操作了。
排查结论:
通过上述的操作,我们知道这个网站仿真后无法正常访问的原因是网站采用了两个不同网站环境搭建工具组成,需要分别运行web服务和mysql服务才能正常访问。
不同网站搭建不成功的原因很多,解决方法也有差异,但排查思路大致相同。虽然上述案例比较特殊少见,但是也希望可以给大家一些启迪和参考思路。