2016/10/03

10/01,簡單分析 Facebook 影片連結散布病毒

10/01 晚間,Facebook 上的某些朋友開始大量在別人的塗鴉牆上張貼影片連結,這種根本想都不用想當然有問題啊 XD

雖然現在瀏覽器的安全性都相當不錯,不太可能因為打開了某個網頁就中毒 (除非攻擊者很神,能夠利用作業系統、瀏覽器等的零時差漏洞,不然大部分都是藉由釣魚、社交工程的手段),但是一般而言還是建議不要亂點來路不明的連結或檔案,除非你很清楚自己在做什麼。

因為看到有些同學不幸中標,所以我就想來分析一下原因 (這樣會不會人很差啊......)。

我在虛擬機裡打開那個影片連結,結果什麼事都沒發生。以 curl -v 連結那個網站,得到的回應是 HTTP 狀態 "302 Found",代表「原本的網路資源已經暫時移動至他處」,應該是我來晚了吧。

之後,我去找 Google 的網頁快取,結果還真的有快取到那個網站被撤下前的版本。看一看原始碼,很明顯有問題的當然就是這段 Javascript 啊:

很難讀? 那就 js-beautify 一下。他的字串都故意用 Character escape sequence 來表示 (下圖上半,那些 "\x??" 的字串,其中 "??" 是一個 16 進位的數字),目的當然就是要找分析者的麻煩。不過,要轉換成容易看懂的型態其實很簡單啦 (下圖下半)。

看不懂? 我寫一下註解這樣就簡單了吧!

簡單來說,他首先建立一個 XMLHttpRequest 物件,之後向一個 GeoIP 服務的 API 發出連線請求,如此一來就可以判斷訪客來自於哪個國家。如果訪客來自美國,則這段 Javascript 就會停止執行,沒有後續動作;如果不是,訪客就會被轉址到某個網站,圖中我已經把這個網站馬賽克了避免誤觸。不過呢......,倒是可以提示一下,網站的內容是成人限定。

因此,這些人會中鏢的原因已經水落石出--我就不明講了。

資訊安全最弱的環節往往是人類本身。

繼續閱讀......

2016/09/30

Windows 10 版本 1607 當機、凍結、藍白畫面

我有定期重灌電腦的習慣,大概每半年到一年就會把系統分區格式化,然後全部重新來過。我已經數不清自己幫過那些人重灌電腦了,其他服務 (?) 還包括組裝、疑難雜症排除等等,所以可能算是一種職業病吧 XD

因此,為了節省時間以及確保每次重灌的一致性,我寫了許多批次檔來自動化、標準化所有的操作過程。搭配由 Windows 系統映像管理員所撰寫的回應檔,就可以在接近無人值守的狀態下完成軟體安裝、設定調整。被我幫過的人可能會覺得有點奇怪,在重灌過程中,螢幕上總是會看到一個或多個命令提示字元、Powershell 視窗在執行,然後我好像在旁邊看看就好。其實不是啦! 我做的努力都在事前的運籌帷幄之中!

進入正題。

這次我重灌的是 Windows 10 版本 1607,過沒多久就讓我第一次遇到 Windows 在安裝過程中藍白畫面--沒錯,就是裝到一半當機。錯誤訊息為 "Critical Process Died",同時還附贈一個哭臉和 QR Code。

What the heck? 應該是我比較想哭吧。除此之外還有更刺激的驚喜在等著--系統所在的那顆硬碟從 BIOS 中消失了! 重新啟動也沒有用,BIOS 仍然找不到那顆硬碟......。結果虛驚一場,按電源鍵強制關機後再開機那顆硬碟就出現了,害我冒了一身冷汗。啊不就幸好我的電腦都有存備份映像,碰到這種系統壞掉的狀況只需要還原就好。但是令人不解的是,我之前用 Windows 10 版本 1507、1511 都很正常,怎麼新的版本 1607 竟然連安裝都有問題。

經過鍥而不捨的嘗試,又多看到幾次裝可愛的藍白畫面,好不容易有一次成功讓我到達桌面了。但是,馬上可以察覺得到有東西不太對勁: 每隔幾分鐘硬碟使用率會衝上 100%,持續幾十秒,而且這段時間裡電腦會完全沒有回應,好像被凍結一樣。這時我才恍然大悟,Windows 10 版本 1607 剛釋出時,外國的討論區就有部分使用者表示這個更新害他們的電腦被「凍住! 不許走!」。本來以為這只是更新過程的問題,應該不至於影響全新安裝,看來我錯了。

打開事件檢視器,在系統紀錄中充滿了一堆這樣的警告:

Source: storahci
Event ID: 129
Description: Reset to device, \Device\RaidPort0, was issued.

元兇如今水落石出--"storahci.sys" 是 Windows 內建的 SATA 控制器驅動程式。因為 Windows 10 版本 1607 內建的這個驅動程式和主機板的晶片組不相容,所以才導致這些麻煩。解決方法是,使用 AMD 晶片組的電腦需要去官網下載 "AMD Chipset Driver" 來安裝,而使用 Intel 晶片組的電腦則需要 "Intel Rapid Storage Technology Driver"。以我的電腦為例,下圖上半、下半分別是裝置管理員在安裝驅動程式前、後的狀態。

因此,對於準備要升級到 Windows 10 版本 1607 的人,建議先更新一下電腦上所有適用的驅動程式再進行冒險 (其實也沒什麼好冒險的,升級失敗的話它會自動還原)。而對於準備要進行全新安裝的人,幸好 Windows 安裝程式在下面這個畫面出現的時候,可以按 "Load Driver" 來預先載入上面所提到的 SATA 控制器驅動程式,如此一來往後的過程應該就會順利無誤了。剩下的驅動程式可以等稍後再來補齊。

同樣以我的電腦為例,我將下載到的 AMD 晶片組驅動程式解壓縮,那麼資料夾 "Packages\Drivers\SBDrv\HSeries\AHCI\WT64A" 裡面的檔案 "amd_sata.cat"、"amd_sata.inf"、"amd_sata.sys"、"amd_xata.sys" 就是這裡所需要的。

問題解決! 下一題。

繼續閱讀......

2016/03/12

Sub Rosa 2.0.0

我因為寫不出 Sub Rosa 2.0.0 所以失蹤了嗎? 可能吧,中間碰到很多事情所以寫得斷斷續續的,然後就是一直覺得沒有達到自己滿意的狀態。

最近對這裡做了一些看不見的變動,主要是將所有外連的 Javascript 和背景圖片移動到 Microsoft Azure 雲端,穩定性應該會比較好。而且我總有一天要畢業的吧,不能一直靠臺大給的網頁空間啊 XD

我在寫 Sub Rosa 2.0.0 的過程中學到了很多,尤其是有關如何將 Javascript 程式寫得安全、有組織、條理分明等方面......,我甚至覺得自己以前寫的東西根本就是 "Spaghetti code",由於程式碼像義大利麵一樣錯綜複雜、相互交織,使得往後的維護變得非常困難。現在,我相當滿意目前的成果。

總之就是好久不見,我回來了! 這段時間發生了好多好多 (快樂的) 事,有機會一定要好好細數一下。

繼續閱讀......