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

S.l.e!ep.¢%

像打了激速一樣,以四倍的速度運轉,開心的工作
簡單、開放、平等的公司文化;尊重個性、自由與個人價值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

安全密碼框的設計 [轉]

Posted on 2009-12-22 15:19 S.l.e!ep.¢% 閱讀(1225) 評論(1)  編輯 收藏 引用 所屬分類: RootKit
前兩天在學校做的一個小設計的論文,隨手發上來,小弟不才,錯誤之處還請各位大牛多多指點
如果大家還有什么鍵盤記錄的方法和防御的方法一定一定要告訴小弟我啊。

?/*****************************************************************************************/

鍵盤作為計算機的主要輸入設備,是大部分輸入信息的主要來源,但是我們每天從鍵盤輸入的信息安全嗎?隨著互聯網的普及,各種網絡應用也是層出不窮,電子購物,網上聊天等等等等,每天我們都會在各種程序上輸入各式各樣得分密碼啊用戶名啊銀行卡號啊,你認為這些秘密安全嗎?那位同學要說了:沒事啊,不都是有保護措施嗎,像什么QQ的號稱無懈可擊的nprotect技術,網銀也有各種安全插件,沒事的!” “呵呵,真的像他們說的那摩安全嗎,那可不一定,沒有什么是絕對的,下面我們就來看看鍵盤的秘密,看看黑客們是如何記錄你的鍵盤操作的,以及我們該如何抵御這些猥瑣的攻擊方式。

?

.鍵盤的硬件模型

其實鍵盤應該算是計算機中最簡單的設備了,在我們使用的普通的計算機系統中,與鍵盤有關的硬件說白了也就是兩個芯片,i8048i8042 i8042也就是intel8042,位于主板上,CPU通過IO端口與i8042通信,i8042負責讀取鍵盤按鍵的掃描嗎或是發送個中鍵盤命令.i8048,它是位于鍵盤中的,是將鍵盤上的按鍵轉換成所謂的掃描碼的,然后傳送給i8042。呵呵,就是這末簡單個東西。上面說的都是比較老的計算機的結構了,現在這些芯片都集成到南橋芯片組里面去了,不過原理還是這樣的。

當我們按下一個鍵與抬起的時候都會觸發鍵盤的中斷,在老早的計算機中都是采用兩片i8259A芯片級聯來管理中斷的,鍵盤掛在主片的IRQ1引腳上,當有按鍵按下或抬起是會引發硬件中斷,然后會調用相應的中斷處理程序進行處理.

在實模式與保護模式下對于中斷的處理是不同的。在實模式下我就不說了,也記不的了,自己看看微機原理。在保護模式下是采用IDT對中斷進行管理的,在IDT中是各種各樣的門啊,啥中斷門,陷阱門,調用門啊等等等等,對于鍵盤中斷在XP下對應的是0X31號中斷服務,但也有的XP對應的事0x93,原因我也不太明白,反正在我的系統上是0x31號。

好了既然都已經都調用中斷處理程序了,那么在經過一系列復雜的處理最終我們就可以在應用層上舒舒服服的用WORD打字了。

好了,硬件這塊就說到這,下面用到了相關的我們在說。

?

.猥瑣的鍵盤記錄器

對于那些盜號的所謂的黑客我是很不齒的,這里我們要探討一些竊取鍵盤信息的方法并不是圍了寫個鍵盤記錄的盜號程序,我們只是站在攻防對立統一的角度來看各式盜號手段,并給出相關的防御措施.

我知道的一些盜號的手段也不多,而且都是一些比較普遍的手法,有些也都是爺爺輩的技術了,不過現在還是很好用,好多盜號的還是用這些土槍土炮打打打打劫

WINDOWS系統是分為應用層與內核層的,從CPU的角度看就是RING3RING0。應用層是受管制的,不可進行端口IO,不可執行特權指令,限制多多。內核就不說了,想干嘛就干吧。

?

我也是按照應用層與內核兩個層面進行討論的。好了廢話太多了,進入正題吧.

?

1.爺爺輩的WM_GETTEXT消息獲取密碼

?

用過MFC的都知道密碼框吧,就那個******的框子,他其實是個文本框只不過是加了密碼屬性而已,本質上還是文本框。對于文本框我們就可以通過對其發送WM_GETTEXT消息來獲取密碼的。不過還有點問題,在WIN98系列中這樣就OK了,但是NT后,你要就是對著密碼框大喊WM_GETTEXT是沒用的,密碼框會說:“你又不是我們家里的,我憑啥把密碼告你啊“.其實這是跟操作系統有關的,在WIN98下所用的進程是共享一個4GB的虛擬內存的,那個就沒什么你的我的了,所有的都是大家共有的,所以一個進程對另一個進程發送一個WM_GETEXT消息,應為大家都是自己人所以密碼就告你了。但是到了NT后各個進程就鬧分家了,每個進程獨享4GB的虛擬內存,各個進程之間是互相隔離的,所以就沒人理你了。

我們要采用些特殊的手段才能成功。也就是要把你的那段發送WM_GETTEXT消息的代碼移到目標進程中去執行,方法還是有的,我使用的遠程線程技術,也就是將一個功能模塊諸如到目標進程中然后執行,這樣就OK了。對于如何進行線程注入,方法很多,google一下就可以了。

原理就是這樣很簡單,問題就在怎樣在目標進程中去執行代碼,這種方法就說到這把。

?

?

2.屠夫的鉤子

?

呵呵,玩過dota嗎,對就是屠夫用的鉤子,在windows中同樣有鉤子,而且也是相當的犀利。

使用鉤子相當的簡單,就一個API函數?SetWindowsHookEx,不過內涵很豐富,在windows下存在各式各樣的鉤子,消息鉤子,鼠標鉤子,鍵盤鉤子,日志鉤子,等等,具體的看看MSDN,這些鉤子各有各的用途,對于黑客們來說主要會用到消息鉤子,鍵盤鉤子與日志鉤子,這些鉤子都可以用來監控鍵盤,下面分別來說.

?

(1)往日黃花鍵盤鉤子

不要迷戀哥,哥只是個傳說。

???????????????????????????????????????? ------一腦殘兒童說

鍵盤鉤子在當年可是相當的輝煌,在那個Rootkit還不是很盛行的年代,各種盜號軟件

幾乎總是和他聯系在一起的,只不過這幾年由于所謂的主動防御殺軟的出現,這種技術才慢慢的消失.

鍵盤鉤子分為全局鉤子與局部鉤子。鍵盤鉤子安裝之后可以截獲所進程的鍵盤信息。局部鉤子只可以截獲安裝線程的鍵盤信息。既然要盜號嗎,當然是IC卡,IQ卡統統告訴我密碼,要大面積撒網,就要安裝全局鉤子。

鍵盤鉤子也分為兩種:普通的鍵盤鉤子與低級鍵盤鉤子。對于這兩種鉤子的區別我自己在編程中總結的是:低級鍵盤鉤子可以截獲一些系統按鍵,比如Windows健,但是普通的就不行了。我曾經寫了個玩Dota時屏蔽Windows健的用的是低級鉤子,普通的不行.如果只是攔截個一般的按鍵兩種鉤子無所謂了.

具體的編程很簡單:調用SetWindwosHookEx函數,參數就填入 WH_KEYBORAD(普通鉤子)或者WH_KEYBOARD_LL(低級鉤子),然后寫個鉤子的回調函數,在回調函數里面就可以獲取按鍵的虛擬鍵碼了,在講虛擬鍵碼經過處理就得到我們想要的了.

再提一點就是關于SHIFT鍵狀態與CapsNum狀態的檢測,只要調用GetKeyState函數就可以了,具體的不說了,自己看MSDN吧。

?

?

2)竹林蹊徑日志鉤子

?

日志鉤子是用來攔截輸入到系統消息隊列中的輸入消息的鉤子,鍵盤消息既然屬于輸入消息,那就勾住吧。

用法也是so easy,調用SetWindwosHookEx函數傳遞WH_JOURNALRECORD參數給他,在他的回調函數里面有個指向EVENTMSG的指針,結構如下:

typedef struct {

??? UINT message;

??? UINT paramL;

??? UINT paramH;

??? DWORD time;

??? HWND hwnd;

} EVENTMSG, *PEVENTMSG;

我們只攔截message ==WM_KEYDOWN的消息,就是按鍵按下的消息啦,然后paramL&0x000000FF的值就是虛擬鍵碼,剩下的和鍵盤鉤子就一樣了,不說了,下一節吧。

?

3)完美的世界---中英文記錄的消息鉤子

?

到目前為止我們記錄到得都只是些 abc123這些的字母數字,那位小朋友要說了,我要知道他在網上的聊天內容,行嗎?消息鉤子就站出來了,”no problem,記錄中文俺拿手啊

消息鉤子,見名知意,肯定是用來過濾消息的。我們先來了解一個概念”IME””.

 IME 是輸入法編輯器(Input Method Editor) 的英文縮寫(IME),它是一種專門的應用程序,用來輸入代表東亞地區書面語言文字的不同字符。

說白了,我們平時輸入漢字時其實都是跟這個IME打交道的。IME也是會發出很多的消息的,如

WM_IME_CHAR??????????????????? WM_IME_COMPOSITION

WM_IME_COMPOSITIONFULL?????? WM_IME_CONTROL

WM_IME_ENDCOMPOSITION??????? WM_IME_KEYDOWN

WM_IME_KEYUP?????????????????? WM_IME_NOTIFY

WM_IME_REQUEST???????????????? WM_IME_SELECT

WM_IME_SETCONTEXT???????????? WM_IME_STARTCOMPOSITION

?

我們現在主要關心一個消息WM_IME_COMPOSITION,就是當要拼出一個字的時候會發出這個消息.,并且副參數為GCS_RESULTSTR的時候,就說明輸入完了,可以將拼出的句子讀出來了,這就得到了漢字了.,下面為參考代碼:

?

/* this code from ZWELL 獲得輸入法處理后的字符串 */

if(pmsg->message==WM_IME_COMPOSITION){

????????????? ?DWORD dwSize;

????????????? ?char lpstr[128];

????????????? ?if(pmsg->lParam & GCS_RESULTSTR){

???????????????????? ?//先獲取當前正在輸入的窗口的輸入法句柄

???????????????????? ?hIMC = ImmGetContext(hWnd);

???????????????????? ?if(!hIMC)?return 0;

???????????????????? ?// 先將ImmGetCompositionString的獲取長度設為0來獲取字符串大小.

???????????????????? ?dwSize = ImmGetCompositionString(hIMC, GCS_RESULTSTR, NULL, 0);

???????????????????? ?// 緩沖區大小要加上字符串的NULL結束符大小,

???????????????????? ?// 考慮到UNICODE

???????????????????? ?dwSize += sizeof(WCHAR);

???????????????????? ?memset(lpstr, 0, sizeof(lpstr));

???????????????????? ?// 再調用一次.ImmGetCompositionString獲取字符串

???????????????????? ?ImmGetCompositionString(hIMC, GCS_RESULTSTR, lpstr, dwSize);

???????????????????? ?//現在lpstr里面即是輸入的漢字了。你可以處理lpstr,當然也可以保存為文件...

???????????????????? ?//MessageBox(NULL, lpstr, lpstr, MB_OK);

?

?

其實在輸入漢字的時候也是會發出WM_CHARWM_KEYDOWN這些消息的,只不過WM_CHAR的參數與輸入英文是是不同的。漢字的輸入實際上是兩個WM_CHAR,用內碼就可以判斷是否輸入的是否是漢字字符。如果是,漢字兩個字節的最高位都是1,連續兩次判斷就可以做到。即每次的CHAR字符的最高位是否是1,如果是,記住這個字符,然后當下CHAR字符來到是,如果最高位還是1,就可以將這兩個字符合成漢字。這樣就可以記錄一個漢字了。

至于WM_KEYDOWN可以用來記錄非ASCII的按鍵,像F1—F12TABENTER等等。

這樣就是中英文完美的鍵盤記錄了.

?

?

(4)用泥巴胡個墻吧.---應用層的抗擊

?

應用層鍵盤記錄的小伎倆就說這幾種吧(呵呵,俺也就會這幾種),既然要攻防統一,那我們就來談談如何來防御吧。在應用層防御個人感覺很是雞肋的,實現也很是麻煩,效果也不好,不過還是說說吧,

首先說說全局鍵盤鉤子吧,全局鍵盤鉤子是不能獨立存在的,他必須附加一個動態鏈接庫文件,因為全局鉤子是要監控所有的進程的,所以這個模塊就要注入到其他的進程的地址空間中去,所以要寫一個單獨的模塊。

我們知道在Windows下加載一個模塊時使用的APILoadLibrary函數,這個函數內部又會調用LoadLibraryEx函數,windows底層是UINCODE的,所以應該調用的是LoadLibraryExW。如果我們寫的正常程序,如果調用了LoadLibrary那摩LoadLibraryExW函數的返回地址應該位于Kernel32.dll中,或者我們就是直接調用了LoadLibraryExW那摩返回地址應該位于我們的程序中。但是如果是被裝了鉤子后,當你按下一個健后,系統會下按鍵焦點程序的地址空間中加載黑客寫的鍵盤記錄模塊,調用的是LoadLibraryExW,那摩這個函數的返回地址就不是以上的兩種情況了,經我是實驗是位于user32.dll中。哈哈,根據這一點我們就可以判斷一個模塊是否為非法加載模塊了.

原理就是這樣啦。具體的實現要用到APIHook技術了。在《Windwos核心編程》中有簡紹的。可以HOOKIAT也可以InLineHook,我用的是InLineHokk,在自己寫的HOOk函數中首先獲取[ESP]的值,這個就是返回值了,具體為什么應該都明白吧,不明白就找本匯編書好好補補吧。那摩就拿這個返回值去比較就可以了。簡單吧。。

當然對于HOOKAPI你也可以用微軟的那個Hook庫,那就更簡單了。

?

只能檢測是不夠的,太被動了,我們應該主動出擊。

Windows下的鉤子邏輯上是一個鏈狀的,一個系統中可以安裝很多的鉤子,這些鉤子會形成一個鉤子鏈,先裝的鉤子在最前頭,前面的鉤子通過調用CallNextHookEx函數將信息傳給后面的鉤子,如不不調用這個函數那摩鏈子就斷了,后面的鉤子永遠互惠獲取信息。

好了,聰明的你一定想到了。對,我們不往下傳遞信息,我們自己處理,讓下面的鉤子瞪著眼著急去吧。

具體做法為:我們在我們的程序中裝上局部鉤子,在局部鉤子的回調函數中我們截獲按鍵消息,我們自己存起來,然后再給密碼框發個假消息,比如按下了A健,我們用我們的局部鉤子截獲了A健消息,我們保存起來,然后我們給密碼框發個假消息,,就說我們接受到了個B健,然后讓不調用那個CallNextHookEx函數,而是直接返回1,這樣下面的鉤子就game over .

?

好了,應用層的鍵盤監控與反監控就說這些吧,由于殺毒軟件的發展,特別是所謂的牛X主動防御的出現,這些都已進了歷史的垃圾堆了,現在是RootKit的時代,打劫也要講與時俱進,下面我們就來看看ring0下的鍵盤記錄的手段吧。

?

3.新的戰場,新的戰斗—rootkit的瘋狂

?

人都是屬驢的,不打不逼是不會走的.

???????????????????????????????? ----------俺的一位老師說的

ring3下猥瑣黑客們的安逸被被殺軟打破了,生存還是死亡。當然是要生存下去了,怎沒辦?”TMD,反了,我們要和殺軟對著干。游戲規則被改變了。。黑客軟件不在是只做老鼠被殺軟這只大貓到處攆這跑,老鼠要吃貓啦。

?

4.中規中矩----鍵盤過濾驅動

?

既然到了內核的領地,那我們就來看看在內核中是如何處理按鍵消息的,我們從按下一個健到我們在WORD看到這個字母,究竟發生了什么,下面是網上說的:

?

/*引用自: http://hi.baidu.com/buzztiger/blog/item/a851712b3739c924d52af170.html */

?

寫過windows程序的人都知道,win32程序是基于消息驅動的,其中就有鍵盤消息,這個消息其實是csrss.exe這個進程發送給應用程序的,而在應用程序中我們可以使用setWindowsHook的方法來獲得鍵盤消息,從而實現改鍵啊,捕捉用戶按鍵內容。那么csrss.exe這個進程的鍵盤消息是怎么來的呢?原來csrss.exe中有個win32!RawInputThread這個線程,這個線程通過一個GUID,即GUID_CLASS_KEYBOARDDEFINE_GUID(GUID_CLASS_KEYBOARD, 0x884b96c3, 0x56ef, 0x11d1, 0xbc, 0x8c, 0x00, 0xa0, 0xc9, 0x14, 0x05, 0xdd)來獲得鍵盤設備棧中PDO的符號鏈接名。win32!RawInputThread執行到win32k!openDevice,調用zwCreateFile打開設備,然后調用zwReadFile與鍵盤驅動通信了。它會創建一個IRP_MJREADIRP發送給鍵盤驅動,而鍵盤驅動通常使這個IRP Pending,這樣它就會一直被放在那里等待,等來來自鍵盤的數據,即win32!RawInputThread這個線程也會一直等待,等待這個讀操作的完成。當鍵盤有鍵按下時這個IRP將會完成,win32!RawInputThread將對得到的數據進行處理,分發給合適的進程(通常是獲得焦點的進程)這時win32!RawInputThread又會立即再調用nt!ZwReadFile要求讀入數據,又開始了下一個等待,周而復始

?

/*引用結束*/

?

鍵盤的驅動棧從上到下依次為:kbdclass.sys---ài8042port.sys---àacpi.sys

其中kbdclass.sys為鍵盤的類驅動,不管是PS/2鍵盤還是USB鍵盤都要通過這一層驅動,所以在這一層進行過濾可以有和好的兼容性。

I8042port.sysPS/2鍵盤的端口驅動,這個只對PS/2鍵盤好用,USB鍵盤他管不了的。

對于鍵盤的過濾驅動,我選擇是在kbdclass.sys進行過濾.

具體做法:

1.使用ObReferenceObjectByName獲取”\\Driver\\Kbdclass”所對應的驅動對象。

2.枚舉這個驅動對象下的所有設備,并創建一個過濾設備附加上去.

3.主要處理IRP_MJ_READ這個IRP。首先設置一個完成函數,然后向下轉發此IRP

4.在完成函數中就可以獲取此次的案件的掃描碼了。

5.對于IRP_MJ_POWER, IRP_MJ_PNP也要進行處理.

?

呵呵,很簡單吧,驅動入門級的Hello Wolrd

?

5.乾坤大挪移----HOOKIDT與操縱APIC

?

在前面我們講到在按下一個鍵與抬起的時候會觸發一個硬件中斷,XP下,操作系統回去調用 0x310x93中斷處理程序區處理。那么我們可不可以自己寫一個ISR去接管鍵盤中斷呢,?當然,別忘了,我們是在內核中現在,我們無所不能

我們知道在保護模式下是采用IDT進行中斷管理的,IDT是有許多門組成的。每個悶得結構如下:

typedef struct IDTEntry

{

HB_U16 LowOffset ;//偏移的低16

HB_U16 Selector ;//選擇子

HB_U8?Count:5; //參數的雙字計數

HB_U8?Reserve:3 ;//保留為0

HB_U8 Type:4 ;//類型

HB_U8 DT0:1; //DT=0,系統段描述符

HB_U8 DPL:2; //DLP

HB_U8 P:1; //P

HB_U16 HightOffset;//偏移的高16

}IDTEntry,*PIDTEntry;

其中LowoffsetHighOffset就構成了實際的中斷處理程序的地址.。我們如果自己寫一個中斷處理程序,然后修改LowoffsetHighOffset,讓其指向我們自己的寫的那個函數不久可以了嗎..

在我們自己的鍵盤中斷處理函數中我們可以直接將數據從i8042的端口讀出,存儲起來,然后再調用原先的系統默認的函數,這樣就神不知鬼不覺的達到的不可告人的目的.

?

還有一種方法使用的手段于此相似,也是替換,不過這次是將鍵盤的IRQ1中斷的處理函數的中斷向量更改,不在是指向0x31或是0x93了,而是指向另一個向量.這個向量包含我們自己的處理程序.,這就是APIC機制.。不過我的這個破筆記本比較老了,沒有這個機制,

所以只能紙上談兵了.,還是先簡紹一下APIC.

APIC是可以用于多個核心的CPU的新型中斷控制器,APIC的作用相當于當一個IRQ發生時,這個硬件決定將IRQ發個呢個CPU核心,以及一何種形式發送等。APIC是可編程的,也可以將PS/2鍵盤的硬件中斷請求發給某個CPU核心,讓該核心的IDT中的某個中斷號對應的中斷服務程序來處理.

WindowsAPIC的系列寄存器映射到了地址0xFEC000000xFEC00010的位置。

也就是說我們可以通過編程來進行中斷的重定位,具體操作看著APIC的說明添添數據就可以了,其實和HOOKIDT一樣的。就不多說了.

?

?

6.返璞歸真輪詢i8042

?

有時候其實一個問題的解決方法并不是月復雜就越強悍,有時候簡單的土的掉渣的技術反而是最穩固的

輪詢,這種古老的技術,雖然由于效率低下已經早已被淘汰,但是我們需要的正是這個。

鍵盤是可以通過編程關閉中斷的,但是當我們按下一個健的時候,鍵盤的輸出緩沖區中仍然會有掃描碼填充,只是中斷關閉了,操作系統并不知道。

我們的做法是:首先關閉鍵盤的中斷,然后通過輪詢的方法讀取輸出端口的案件掃描碼,自己進行一些處理,然后打開鍵盤中斷,再將此按鍵重放,這樣操作系統會獲取這個按鍵,然后在關閉中斷,一直這樣循環下去。

?

原理就是這樣,簡單也很可靠,我最終的密碼保護就是采用這個方案的。

?

我的程序分了三個層次:

因為在Ring3下無法讀寫端口的,所以自己寫了個驅動,負責讀寫端口,RING3上載寫個DLL通過DeviceIoControl與內核進行通信,傳遞端口地址與設置的值等信息,并對上面的應用程序提供簡單的如READ_PORT(ULONG port),這樣的接口。

?

在應用程序中,在要保護的密碼框獲取焦點時(處理WM_SETFOCUS消息),則關閉鍵盤中斷進行輪詢,在市區焦點時則打開鍵盤中斷.在獲取按鍵后你可以在程序中記錄下來,再在密碼框中填充個假的密碼。

由于是不間斷的輪詢所以保證在第一時間獲取掃描碼,在上層的如過濾驅動,HOOKIDT

還有應用層得到鉤子啥的,統統失效,實踐證明還是很可靠的,只不過還不是很完善,目前只支持PS/2鍵盤,USB的還不行.

?

?

7.我們都OUT----硬件鍵盤記錄器

?

日防夜防,家賊難防啊,要是硬件上做了手腳,那就這能55555555555……

看看這個猥瑣的家伙吧高科技哦


?

?

好了,該結尾了,呵呵,現在你還信你的鍵盤嗎?

Feedback

# re: 安全密碼框的設計 [轉]  回復  更多評論   

2010-01-08 22:55 by S.l.e!ep.¢%
# re: 安全密碼框的設計 2009-12-22 16:04 zwp
土了吧。。。
應用層還有一個強大raw input可以獲取鍵盤、鼠標、HID等設備的輸入信息呢。這可是比上面的消息鉤子還要底層一點的。 回復 更多評論
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久久蜜桃精品| 久久夜色精品国产欧美乱极品| 国产在线精品自拍| 亚洲精品国偷自产在线99热| 欧美日韩国产va另类| 美女免费视频一区| 国产精品久久久999| 亚洲电影视频在线| 精品不卡在线| 西西裸体人体做爰大胆久久久| 亚洲最快最全在线视频| 久久综合成人精品亚洲另类欧美| 国产欧美亚洲日本| 在线亚洲自拍| 中文欧美字幕免费| 国产精品卡一卡二卡三| 久久精品亚洲热| 国产欧美亚洲一区| 亚洲尤物影院| 亚洲女优在线| 一区二区三区四区五区在线| 欧美成人a∨高清免费观看| 美脚丝袜一区二区三区在线观看| 国产拍揄自揄精品视频麻豆| 亚洲午夜电影网| 性欧美18~19sex高清播放| 欧美三级视频| 亚洲午夜电影网| 羞羞答答国产精品www一本| 国产精品女主播一区二区三区| 99riav国产精品| 亚洲专区一二三| 国产精品―色哟哟| 欧美主播一区二区三区美女 久久精品人| 亚洲自啪免费| 午夜精品国产| 久久在线免费| 亚洲欧洲精品一区二区三区波多野1战4 | 日韩图片一区| 亚洲制服欧美中文字幕中文字幕| 亚洲愉拍自拍另类高清精品| 国产精品久久7| 国产日韩一区二区三区在线播放| 午夜宅男欧美| 国产综合在线视频| 免费h精品视频在线播放| 亚洲国产日韩在线一区模特| 日韩午夜中文字幕| 国产精品男gay被猛男狂揉视频| 亚洲一级影院| 免播放器亚洲| 亚洲视频在线看| 国产一区导航| 欧美精品免费在线| 欧美在线观看www| 精品av久久久久电影| 欧美电影资源| 亚洲欧美国产日韩天堂区| 免费高清在线视频一区·| 99精品热6080yy久久| 国产区二精品视| 蜜臀av在线播放一区二区三区| 国产亚洲人成网站在线观看| 亚洲字幕一区二区| 欧美福利小视频| 午夜亚洲视频| 亚洲国产一二三| 国产裸体写真av一区二区| 美女脱光内衣内裤视频久久网站| 99在线|亚洲一区二区| 巨乳诱惑日韩免费av| 亚洲丝袜av一区| **性色生活片久久毛片| 国产精品久久久久久五月尺| 麻豆91精品| 羞羞视频在线观看欧美| 亚洲精选中文字幕| 亚洲国产一区二区三区青草影视| 午夜视频一区二区| 欧美另类一区| 久久久久久午夜| 亚洲自拍偷拍网址| 99国产精品99久久久久久| 欧美va亚洲va香蕉在线| 欧美一区网站| 亚洲一区亚洲| 99精品国产高清一区二区 | 久久婷婷综合激情| 亚洲自拍啪啪| 日韩午夜电影在线观看| 伊人色综合久久天天| 国产欧美亚洲一区| 国产女人aaa级久久久级| 欧美日韩一级黄| 欧美激情一区二区三区成人| 久久亚洲欧美| 久久久久国产免费免费| 欧美在线免费播放| 午夜精品视频在线观看一区二区| 一本色道久久综合| 亚洲精品中文字幕在线| 91久久夜色精品国产网站| 免费观看成人网| 欧美sm视频| 亚洲高清久久网| 极品少妇一区二区三区| 国精品一区二区三区| 国产一区二区久久精品| 国产欧美日韩一区| 亚洲国产欧美久久| 在线观看欧美日本| 黄网站免费久久| 一区二区三区偷拍| 久久夜色精品国产噜噜av| 午夜影院日韩| 久久久91精品国产一区二区三区| 欧美中在线观看| 久久久久久久久久码影片| 久久久久久久999| 免费观看成人| 亚洲欧洲中文日韩久久av乱码| 最新国产の精品合集bt伙计| 亚洲免费不卡| 亚洲一区视频在线| 久久爱91午夜羞羞| 久久夜色精品一区| 欧美另类一区二区三区| 欧美性事免费在线观看| 国产精品亚洲综合色区韩国| 黄色欧美成人| 亚洲久久成人| 新狼窝色av性久久久久久| 激情综合网激情| 日韩午夜剧场| 欧美亚洲综合在线| 免费影视亚洲| av成人免费在线| 欧美在线播放高清精品| 欧美1级日本1级| 国产精品观看| 亚洲第一精品电影| 亚洲午夜精品久久久久久app| 亚洲男人影院| 久久久www成人免费毛片麻豆| 欧美黄色网络| 国产精品视频男人的天堂| 亚洲成人原创| 亚洲欧美乱综合| 欧美二区在线观看| 欧美综合第一页| 欧美精品一区二区在线播放| 国产乱肥老妇国产一区二| 亚洲国产成人久久综合| 亚洲在线播放电影| 美女主播一区| 亚洲伊人久久综合| 欧美黄色免费| 激情欧美国产欧美| 午夜国产欧美理论在线播放| 欧美成人网在线| 午夜日韩视频| 欧美特黄一级| 欧美激情网友自拍| 国内成+人亚洲+欧美+综合在线| 一二三区精品| 欧美成人精品激情在线观看| 亚洲自拍偷拍福利| 欧美日韩一区在线播放| 在线观看视频免费一区二区三区| 午夜精品在线看| 亚洲精品久久久一区二区三区| 99国产精品视频免费观看一公开| 亚洲日本成人网| 久久亚洲一区| 欧美一区免费视频| 国产精品欧美日韩一区| 一本色道久久综合狠狠躁的推荐| 蜜桃av综合| 久久艳片www.17c.com| 很黄很黄激情成人| 久久国产日韩| 午夜视频一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 日韩一区二区精品葵司在线| 欧美激情在线观看| 久久综合色播五月| 在线观看欧美黄色| 女人色偷偷aa久久天堂| 欧美中文字幕精品| 国产一区亚洲一区| 久久久综合免费视频| 91久久午夜| 日韩一级黄色大片| 在线视频亚洲| 亚洲乱码国产乱码精品精天堂| 欧美成人小视频| 9i看片成人免费高清| 亚洲激情二区| 欧美深夜福利| 亚洲欧美成人一区二区三区|