網站模擬問題排查思路和方法大盤點
上一篇文章《阿里雲網站伺服器映象取證方法》釋出後,廣大一線電子資料取證工作人員都覺得非常實用,但是在操作過程中,常常遇到網站模擬後,卻無法正常開啟的現象,本篇文章效率源效哥盤點下網站模擬問題排查思路和方法,希望能幫到大家。
一、問題原因
在實際取證過程中,網站在本地進行模擬搭建後,卻無法訪問?
主要有以下這幾個原因:
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服務才能正常訪問。
不同網站搭建不成功的原因很多,解決方法也有差異,但排查思路大致相同。雖然上述案例比較特殊少見,但是也希望可以給大家一些啟迪和參考思路。