當(dāng)時(shí)據(jù)我推出,應(yīng)該是光面撒網(wǎng),應(yīng)該不是獨(dú)一事件,于是就訪問(wèn)了下易迅、淘寶、天貓這些電商網(wǎng)站,結(jié)果發(fā)現(xiàn)易迅也受到同樣的攻擊??雌饋?lái)這次流量劫持的目的是將電商網(wǎng)站流量導(dǎo)給返利聯(lián)盟,通過(guò)返利聯(lián)盟獲得當(dāng)前用戶成交金額的返利。
當(dāng)時(shí)據(jù)我推出,應(yīng)該是光面撒網(wǎng),應(yīng)該不是獨(dú)一事件,于是就訪問(wèn)了下易迅、淘寶、天貓這些
電商網(wǎng)站,結(jié)果發(fā)現(xiàn)易迅也受到同樣的攻擊。看起來(lái)這次流量劫持的目的是將
電商網(wǎng)站流量導(dǎo)給返利聯(lián)盟,通過(guò)返利聯(lián)盟獲得當(dāng)前用戶成交金額的返利。
基本確認(rèn)運(yùn)營(yíng)商有問(wèn)題,但是無(wú)法確認(rèn)是運(yùn)營(yíng)商官方故意的還是遭到黑客攻擊或者是內(nèi)部人士偷偷搞的。
攻擊源定位
來(lái)看看當(dāng)時(shí)的路由結(jié)果:
如果按初始TTL值為255來(lái)算,HTTP包到達(dá)本機(jī)后為252,推算出經(jīng)過(guò)了3(255-252)個(gè)路由,出問(wèn)題的地方就在第4個(gè)路由附近,也就是這里的119.145.220.86(屬于深圳電信)。
當(dāng)然了,雖然基本可以確認(rèn)是第四個(gè)路由附近的問(wèn)題(筆者連續(xù)幾天抓包,偽造的HTTP響應(yīng)包TTL值一直是252),但是不排除設(shè)備故意構(gòu)造一個(gè)初始TTL值(比如設(shè)置為254)來(lái)增加追查難度,為了嚴(yán)謹(jǐn)?shù)闹螌W(xué)態(tài)度及避免被攻擊者迷惑,所以證據(jù)要坐實(shí)了。
定位比較簡(jiǎn)單,既然攻擊設(shè)備是旁路偵聽數(shù)據(jù)包,可以推測(cè)它是基于包而非狀態(tài)的,我們構(gòu)造被偵聽的數(shù)據(jù)包(也就是直接發(fā)出訪問(wèn)京東首頁(yè)的HTTP請(qǐng)求TCP包,不需要三次握手)多次發(fā)送,TTL值從1開始遞增,精確地傳遞數(shù)據(jù)包到每一個(gè)路徑上,直到出現(xiàn)偽造響應(yīng)——沒有問(wèn)題的位置是不會(huì)有響應(yīng)的,第一個(gè)出現(xiàn)偽造響應(yīng)的位置就是出問(wèn)題的位置。
這個(gè)時(shí)候就需要一個(gè)數(shù)據(jù)包構(gòu)造工具了,基于Python的Scapy或者Windows下的XCAP都行。
于是一路發(fā)過(guò)去,TTL值等于4的時(shí)候偽造的響應(yīng)包出現(xiàn)了——確認(rèn)就是第四跳路由出問(wèn)題了,同時(shí)119.145.55.14回復(fù)了Time-to-live Exceeded的ICMP包。
有了充分證據(jù),于是整理了一個(gè)圖文并茂的文檔通過(guò)騰訊安全應(yīng)急響應(yīng)中心向深圳電信報(bào)障。