日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

NTLM

發布時間:2023/12/20 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 NTLM 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

NTLM HTTP認證

過程如下:

??? 1: C? --> S?? GET ...

??? 2: C <--? S?? 401 Unauthorized

?????????????? ??WW-Authenticate: NTLM

??? 3: C? --> S?? GET ...

???????????????? Authorization: NTLM <base64-encoded type-1-message>

??? 4: C <--? S?? 401 Unauthorized

???????????????? WWW-Authenticate: NTLM <base64-encoded type-2-message>

??? 5: C? --> S?? GET ...

???????????????? Authorization: NTLM <base64-encoded type-3-message>

??? 6: C <--? S?? 200 Ok

從交互過程可以發現,client會發送type-1消息和type-3消息給server,而server會發送type-2消息給client。

Type-1消息包括機器名、Domain

Type-2消息包括server發出的NTLM challenge

Type-3消息包括用戶名、機器名、Domain、以及兩個根據server發出的challenge計算出的response,這里response是基于challenge和當前用戶的登錄密碼計算而得

?

SMB協議可以說是WIN系統的核心協議,這里大致給大家講解一下SMB認證登陸的過程:
????????? 1。協議解析棧
????????? CLIENT:APP----->NET/MRP/RPC
????? API------>MRXSMB.SYS------>NETBT.SYS---->TCP/IP
????????????????????????????????????????????????????????????????
????????? SERVER:
????? SRV.SYS<-----------MRXSMB.SYS<----------NETBT.SYS<--------TCP/IP
????????
?????????? 應用程序調用NET/MPR/RPC等API將信息寫入WKSSVC管道,這個管道是一個特殊的管道,對應的其實是一個LPC端口。
?????????? MRXSMB.SYS是一個SMB的小端口驅動,負責完成客戶端的SMB的封裝和實現,如發起協商,認證的加密/解密過程等。對于服務器端則主要
????? 完成會話狀態的一些管理,然后將SMB包發送給下級驅動處理。
?????????? NETBT.SYS是NETBIOS OVER
????? TCP/IP的驅動,一般都是作為MRXSMB的下級驅動,不過MRXSMB也可以有其他的下級驅動,最后通過一個網絡驅
????? 動實現通訊,這里假設是使用TCP/IP。
?????????? SRV.SYS是服務器端的SMB協議驅動程序,實現完成真正的SMB的協議功能,然后將結果按原路返回給客戶端。

????????? 2。SMB的認證協議。
????????? 通過SMB進行認證客戶端一般都要先使用SMB的協商命令(0X72)發送客戶端支持的認證協議給服務器,服務器則選擇其中的一個,然后返回
????? 給客戶端,客戶端然后再使用SMB的會話設置和X命令(0X73)進行認證和登陸。
????????? MS的SMB已經使用的SMB認證協議有:
??????????? 協議??????????????????????? 備注
????????? PC NETWORK PROGRAM 1.0??????????????? W2K支持????????????????
????????? PCLAN1.0??????????????????????? W2K支持
????????? MICROSOFT NETWORKS 1.03??????????????? W2K支持
????????? MICROSOFT NETWORKS 3.0??????????????? W2K支持
????????? LANMAN1.0??????????????????????? W2K支持
????????? DOS LM1.2X002??????????????????? W2K支持
????????? Windows for Workgroups 3.1a???????????? W2K不支持,老的Windows for
????? Workgroups 3.1使用此協議方式。
????????? LM1.2X002??????????????????????? W2K支持??
????????? DOS LANMAN2.1??????????????????? W2K支持
????????? LANMAN2.1??????????????????????? W2K支持
????????? NT LM 0.12??????????????????????? W2K支持
????????? Cairo 0.xa??????????????????????? W2K支持,這是NT后MS自己開發的一個認證協議
?????????
????????? 這里我們首先講講大家用的最多和最熟悉的NTLM認證方式:

????????? 3。NTLM認證過程
????????? NTLM在發展的過程中也存在這兼容的一些問題,現在的NTLM是支持挑戰方式的,但原始的W9X的NTLM則不支持挑戰會話方式的,所以
????? 從協議過程來看存在2種方式,一種是支持挑戰加密的方式(NT,2K等),一種是不支持加密挑戰的方式(W9X)。
????????? i.??? 認證過程1
????? ???? (客戶端發起:會話協商協議)包含支持NTLM認證的選項且支持挑戰選項。
????? ????? (服務器:會話協商協議)選擇了NTLM認證協議,且包含服務器的GUID
????? ???? (客戶端發起:會話設置和X協議)申請挑戰會話的安全BLOB
????? ???? (服務器:會話設置和X協議)返回帶有挑戰KEY的安全BLOB
????? ???? (客戶端發起:會話設置和X協議)帶會話KEY加密的口令散列的安全BLOB
????? ???????? 認證成功:會話設置和X協議返回成功信息
????????????? 認證失敗:會話設置和X協議返回失敗信息,發起注銷協議包
????????? ii.??? 認證過程2
????? ???? (客戶端發起:會話協商協議)包含支持NTLM認證的選項且不支持挑戰選項。
????? ????? (服務器:會話協商協議)選擇了NTLM認證協議,且包含會話KEY
????? ???? (客戶端發起:會話設置和X協議)使用會話KEY加密的密碼散列
????? //注意可以指定是非加密方式的密碼明文來進行登陸
????? ???? 認證成功:會話設置和X協議返回成功信息
????????? 認證失敗:會話設置和X協議返回失敗信息,發起注銷協議包

????????? 我們這里主要講認證過程1,其實過程2一般為很多工具使用,因為可以通過特定的FLAG字段指定不使用挑戰和加密方式進行登陸,
????? 那么就可以方便的使用明文口令,如SMBCRACK主要使用這種方法進行口令暴力破解,但是需要注意的一點是,這種屬于老的方式,是可以在
????? 服務器端禁止的。
????????? 客戶端APP通過寫入WKSSVC管道(LPC端口發起)相關命令和數據
????????????? 客戶端MRXSMB.SYS的SmbCeNegotiate函數負責進行協商包的封裝并交下級驅動封裝
????????????? 服務器SRV.SYS的SrvSmbNegotiate函數負責選取一個認證協議并返回給客戶端,并返回服務器的GUID
????????? 客戶端的MRXSMB.SYS的SmbCeReferenceSession負責進行認證:
????? 模擬過程函數如下:

????? BYTE buf1[0x404c];
????? TOKEN_STATISTICS ts;
????? CredHandle phs;
????? CredHandle phc;
????? CtxtHandle cthc;
????? CtxtHandle cths;
????? SECURITY_STATUS?? ss;
????? wchar_t TargetName[]=L"HOST/192.168.0.34";
????? int len;

????? typedef struct _Credentials
????? {
????????? char * pusername;
????????? DWORD usernamelen;
????????? char * pdomainname;
????????? DWORD domainnamelen;
????????? char * ppassword;
????????? DWORD passwordlen;
????????? DWORD credtype;
????????? BYTE info[0x200];
????? }Credentials,* PCredentials;

????? void client1()
????? {
????????? Credentials crt;
????????? LUID LogonID;
????????? HANDLE tk;
????????? TimeStamp Lifetime;
????????? DWORD ContextAttributes;
????????? DWORD rlen;
????????? char
????? crtinfo[]={'a',0,'d',0,'m',0,'i',0,'n',0,'i',0,'s',0,'t',0,'r',0,'a',0,'t',0,'o',0,'r',0,0,0,'p',0,'s',0,'w',0,'d',0,0,0};
?????????
????????? SecBufferDesc???? OutBuffDesc;
????????? SecBufferDesc???? InBuffDesc;
????????? SecBuffer???????? InSecBuff;
????????? SecBuffer???????? OutSecBuff;
????????? LogonID.HighPart =0;
????????? LogonID.LowPart = 0x7d80;

????????? //輸入的口令在此需要CRT
????????? //自動的則不需要
????????? OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &tk);
????????? GetTokenInformation(tk,TokenStatistics,&ts,sizeof(ts),&rlen);
????????? crt.pusername = crt.info;
????????? crt.usernamelen = 0xd;
????????? crt.pdomainname =0;
????????? crt.domainnamelen = 0;
????????? crt.ppassword = crt.info+0x1c;
????????? crt.passwordlen =4;
????????? crt.credtype = 6;
????????? memcpy(crt.info,crtinfo,0x22);

????????? ss=AcquireCredentialsHandleW
?????????????
????? (NULL,L"Negotiate",SECPKG_CRED_OUTBOUND,&ts.AuthenticationId,&crt,NULL,NULL,&phc,&Lifetime);

????????? InBuffDesc.ulVersion = 0;
????????? InBuffDesc.cBuffers = 1;
????????? InBuffDesc.pBuffers = &InSecBuff;
????????? InSecBuff.BufferType =SECBUFFER_TOKEN;
????????? InSecBuff.cbBuffer =0;
????????? InSecBuff.pvBuffer = buf1;
????????? OutBuffDesc.ulVersion = 0;
????????? OutBuffDesc.cBuffers = 1;
????????? OutBuffDesc.pBuffers = &OutSecBuff;
????????? OutSecBuff.BufferType = SECBUFFER_TOKEN;
????????? OutSecBuff.cbBuffer =0x404c;
????????? OutSecBuff.pvBuffer = buf1;
????????? ss=InitializeSecurityContextW(
????????????????? &phc,
????????????????? NULL,
????????????????? TargetName,
?????????????????
????? ASC_REQ_MUTUAL_AUTH|ASC_REQ_DELEGATE|ASC_REQ_STREAM|ASC_REQ_ALLOW_NON_USER_LOGONS,//0x210003
????????????????? 0,
????????????????? SECURITY_NATIVE_DREP,
????????????? &InBuffDesc,
????????????????? 0,
????????????????? &cthc,
????????????????? &OutBuffDesc,
????????????????? &ContextAttributes,
????????????????? &Lifetime
????????????????? );
????????? len=OutSecBuff.cbBuffer;
?????????
????? }
????????? 解釋:
?????????
????? TargetName后面的192.168.0.34是SMB服務器的名字,如果是用的IP就使用IP,用的NETBIOS名字就使用NETBIOS名字
????????? InitializeSecurityContextW之后的buf1里面就是BLOB數據。然后將此數據放于SMB包中的安全BLOB處進行傳送。
?????????
????? AcquireCredentialsHandle中的crt是當使用輸入用戶與口令的時候使用的,格式是明文和UNICODE的(參考Credentials結構)。當
????? 系統使用SAM數據進行登陸的時候,此處可以是NULL;NULL的時候和非NULL的時候生成的安全BLOB的頭內容是不同的。
?????????
????? ts.AuthenticationId是認證的LUID,其實MRXSMB使用的是WIN32K.sys的不對外的GetProcessLuid函數來獲取的,這里使用
????? GetTokenInformation來進行模擬。當系統使用系統的SAM登陸時,必須獲得此值,才知道使用的認證ID,當然如果你知道且能獲得其他用戶進
????? 程的認證LUID,也可以使用,不僅僅非要是自己進程的認證LUID;

?????????
????? 服務器的SRV.SYS獲得此安全BLOB之后,調用SrvSmbSessionSetupAndX函數來進行處理,實際的處理函數是BlockingSessionSetupAndX函數。
????? 調用SrvValidateSecurityBuffer,主要工作是根據客戶端的初始BLOB生成帶會話KEY的安全BLOB返回給客戶端,模擬程序如下:

????? void server2()
????? {
????????? TimeStamp???????? Lifetime;
????????? SecBufferDesc???? OutBuffDesc;
????????? SecBuffer???????? OutSecBuff;
????????? SecBufferDesc???? InBuffDesc;
????????? SecBuffer???????? InSecBuff;
????????? DWORD ContextAttributes;
????????? BYTE pOut[0X40DD];
????????? BYTE pIn[0X50];
?????????
????????? ss=AcquireCredentialsHandleW
?????????????
????? (NULL,L"Negotiate",SECPKG_CRED_INBOUND,NULL,NULL,NULL,NULL,&phs,&Lifetime);

???????? OutBuffDesc.ulVersion = 0;
???????? OutBuffDesc.cBuffers = 1;
???????? OutBuffDesc.pBuffers = &OutSecBuff;
???????? OutSecBuff.cbBuffer = 0x40dd;
???????? OutSecBuff.BufferType = SECBUFFER_TOKEN;
???????? OutSecBuff.pvBuffer = pOut;
???????? InBuffDesc.ulVersion = 0;
???????? InBuffDesc.cBuffers = 1;
???????? InBuffDesc.pBuffers = &InSecBuff;
???????? InSecBuff.cbBuffer = len;
???????? InSecBuff.BufferType = SECBUFFER_TOKEN;
???????? InSecBuff.pvBuffer = pIn;
???????? memset(pIn,0,0x40dd);
???????? memset(pOut,0,0x40dd);
???????? memcpy(pIn,buf1,0x10);

???????? ss=AcceptSecurityContext (
????????????????? &phs,
????????????????? NULL,
????????????????? &InBuffDesc,
?????????????????
????? ASC_REQ_DELEGATE|ASC_REQ_EXTENDED_ERROR|ASC_REQ_FRAGMENT_TO_FIT,
????? //ASC_REQ_ALLOW_NULL_SESSION
????????????????? 0x10,//SECURITY_NATIVE_DREP,

????????????????? &cths,
????????????????? &OutBuffDesc,
????????????????? &ContextAttributes,
????????????????? &Lifetime
????????????????? );
????????? len=OutSecBuff.cbBuffer;
????? }

????????? 解釋:
????????? ASC_REQ_ALLOW_NULL_SESSION選項在用戶模式下不可用,在SRV.SYS則可以使用
?????????
????? 實際上客戶端生成的初始BLOB只有前0X10字節(BLOB頭)是有意義的,AcceptSecurityContext執行后的pOut緩沖里就是需要返回的
????? 帶會話KEY的安全BLOB

????????? 客戶端的MRXSMB.SYS獲得這個安全BLOB后就會使用此KEY進行加密。模擬的程序如下:
????? void client3()
????? {
????????? TimeStamp Lifetime;
????????? DWORD ContextAttributes;
????????? SecBufferDesc???? OutBuffDesc;
????????? SecBufferDesc???? InBuffDesc;
????????? SecBuffer???????? InSecBuff;
????????? SecBuffer???????? OutSecBuff;

????????? InBuffDesc.ulVersion = 0;
????????? InBuffDesc.cBuffers = 1;
????????? InBuffDesc.pBuffers = &InSecBuff;
????????? InSecBuff.BufferType =SECBUFFER_TOKEN;
????????? InSecBuff.cbBuffer =len;
????????? InSecBuff.pvBuffer = buf1;
????????? OutBuffDesc.ulVersion = 0;
????????? OutBuffDesc.cBuffers = 1;
????????? OutBuffDesc.pBuffers = &OutSecBuff;
????????? OutSecBuff.BufferType = SECBUFFER_TOKEN;
????????? OutSecBuff.cbBuffer =0x404c;
????????? OutSecBuff.pvBuffer = buf1;
????????? ss=
????? (
????????????????? &phc,
????????????????? &cthc,
????????????????? TargetName,
?????????????????
????? ASC_REQ_MUTUAL_AUTH|ASC_REQ_DELEGATE|ASC_REQ_STREAM|ASC_REQ_ALLOW_NON_USER_LOGONS,//0x210003
????????????????? 0,
????????????????? SECURITY_NATIVE_DREP,
????????????????? &InBuffDesc,
????????????????? 0,
????????????????? &cthc,
????????????????? &OutBuffDesc,
????????????????? &ContextAttributes,
????????????????? &Lifetime
????????????????? );
????? }
?????????
????????? 在這個生成的過程中一些特性:
????????? 我們使用同一返回的KEY,每次生成的認證內容都不一樣,但是每次都是可以被認證的,那么我們可以得出一個結論,在這個認證的
????????? 信息里還包含有時間戳或其他隨機生成數據,加密和解密的算法還使用到了這個數據,這個數據也在認證內容中一起被發送到服務器。

????? 服務器端進行認證的代碼
????? void server4()
????? {
????????? TimeStamp???????? Lifetime;
????????? SecBufferDesc???? OutBuffDesc;
????????? SecBuffer???????? OutSecBuff;
????????? SecBufferDesc???? InBuffDesc;
????????? SecBuffer???????? InSecBuff;
????????? DWORD ContextAttributes;
?????????

???????? OutBuffDesc.ulVersion = 0;
???????? OutBuffDesc.cBuffers = 1;
???????? OutBuffDesc.pBuffers = &OutSecBuff;
???????? OutSecBuff.cbBuffer = 0x40dd;
???????? OutSecBuff.BufferType = SECBUFFER_TOKEN;
???????? OutSecBuff.pvBuffer = buf1;
???????? InBuffDesc.ulVersion = 0;
???????? InBuffDesc.cBuffers = 1;
???????? InBuffDesc.pBuffers = &InSecBuff;
???????? InSecBuff.cbBuffer = len;
???????? InSecBuff.BufferType = SECBUFFER_TOKEN;
???????? InSecBuff.pvBuffer = buf1;


???????? ss=AcceptSecurityContext (
????????????????? &phs,
????????????????? &cths,
????????????????? &InBuffDesc,
?????????????????
????? ASC_REQ_DELEGATE|ASC_REQ_EXTENDED_ERROR|ASC_REQ_FRAGMENT_TO_FIT,
????? //ASC_REQ_ALLOW_NULL_SESSION
????????????????? 0x10,//SECURITY_NATIVE_DREP,
????????????????? &cths,
????????????????? &OutBuffDesc,
????????????????? &ContextAttributes,
????????????????? &Lifetime
????????????????? );
????????? if(ss==SEC_E_OK)
????????????? printf("ok");
????????? else
????????????? printf("error");
?????????
????? }
?????????
????? 4.挑戰NTLM的編程實現
????????????? 那么我們就可以實現一個純TCP/IP的SMB使用NTLM的挑戰方式進行登陸了,再這之前大家需要了解SMB協議,這里由于涉及到
????? 公司的商業利益,我不能給予大家最詳細的協議說明,但從程序代碼和其中的注解大家應該大致知道。這個程序大家修改一下就可以
????? 得到類似SMBCRACK功能的口令破解的多線程支持NTLM挑戰方式的(這樣可以使用在標準的W2K認可的方式,關閉了非挑戰和不許可明
????? 文口令方式登陸的W2K服務器)的工具,但是由于口令計算的消耗,速度就會慢一些:
????? SMB.h文件:
????? #include <windows.h>

????? typedef struct _SMBNBT
????? {
????????? unsigned char nbtsmb;
????????? unsigned char flag;
????????? short smbpacketlen;
????? }SMBNBT,* PSMBNBT;

????? typedef struct _SMBINFO
????? {
????????? unsigned char magic[4];
????????? BYTE smbtoken;
????????? BYTE errcodeclass;
????????? BYTE dosaherrcode;
????????? unsigned char errcode[2];
????????? BYTE flagsummary;
????????? short flagsummary2;
????????? short unuse[6];
????????? short treeid;
????????? short callprocessid;
????????? short userid;
????????? short multiplexid;
????????? unsigned char info[2048];
????? }SMBINFO,* PSMBINFO;

????? typedef struct _SMBP
????? {
????????? SMBNBT smbnbt;
????????? SMBINFO smbinfo;
????? }SMBP,* PSMBP;

????? typedef struct _Credentials
????? {
????????? char * pusername;
????????? DWORD usernamelen;
????????? char * pdomainname;
????????? DWORD domainnamelen;
????????? char * ppassword;
????????? DWORD passwordlen;
????????? DWORD credtype;
????????? BYTE info[0x200];
????? }Credentials,* PCredentials;
?????????
????? 客戶端程序:

????? #include <stdio.h>
????? #include <winsock2.h>
????? #include <windows.h>
????? #include <wincrypt.h>
????? #include <process.h>
????? #include <string.h>
????? #include <winbase.h>
????? # include <wincrypt.h>
????? #define SECURITY_WIN32
????? # include <Security.h>
????? #include "SMB.H"

????? void SmbNegotiate(SMBP * psmbp);
????? void SmbSessionSetupAndX1(SMBP * psmbp,wchar_t * username,wchar_t *
????? domainname,wchar_t * password);
????? void SmbSessionSetupAndX2(SMBP * psmbp,unsigned char * ntlmrcv,short
????? ntlmlen);

????? TOKEN_STATISTICS ts;
????? CredHandle phs;
????? CredHandle phc;
????? CtxtHandle cthc;
????? CtxtHandle cths;
????? SECURITY_STATUS?? ss;
????? wchar_t
????? TargetName[]=L"HOST/192.168.13.34";//后面的192.168.0.34是SMB服務器的名字,如果是用的IP就使用IP,用的NETBIOS名字就使用NETBIOS名字)
????? wchar_t navos[]=L"windows 2000 2195";
????? wchar_t lanman[]=L"windows 2000 5.0";

????? void main(int argc,char ** argv)
????? {
????????? WSADATA WSAData;
????????? int i;
????????? SOCKET sock;
????????? SOCKADDR_IN addr_in;
????????? int len;
????????? char serverip[]="192.168.13.34";
????????? short port=445;
????????? WORD olen,nlen;
????????? unsigned char buf1[0x1000];
????????? SMBP smbp;

????????? if (WSAStartup(MAKEWORD(2,0),&WSAData)!=0)
????????? {
????????????? printf("WSAStartup error.Error:%d\n",WSAGetLastError());
????????????? return;
????????? }

????????? addr_in.sin_family=AF_INET;
????????? addr_in.sin_port=htons(port);
????????? addr_in.sin_addr.S_un.S_addr=inet_addr(serverip);
?????????
????????? if ((sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP))==INVALID_SOCKET)
????????? {
????????????? printf("Socket failed.Error:%d\n",WSAGetLastError());
????????????? return;
????????? }
????????? if(WSAConnect(sock,(struct sockaddr
????? *)&addr_in,sizeof(addr_in),NULL,NULL,NULL,NULL)==SOCKET_ERROR)
????????? {
????????????? printf("Connect failed.Error:%d",WSAGetLastError());
????????????? return;
????????? }
????????? SmbNegotiate(&smbp);
????????? if (send(sock,(unsigned char
????? *)&smbp,ntohs(smbp.smbnbt.smbpacketlen)+4,0)==SOCKET_ERROR)
????????? {
????????????????? printf("Send failed.Error:%d\n",WSAGetLastError());
????????????????? return;
????????? }
????????? len=recv(sock,buf1,1024,NULL);
????????? SmbSessionSetupAndX1(&smbp,L"administrator",L"",L"1972");
????????? if (send(sock,(unsigned char
????? *)&smbp,ntohs(smbp.smbnbt.smbpacketlen)+4,0)==SOCKET_ERROR)
????????? {
????????????????? printf("Send failed.Error:%d\n",WSAGetLastError());
????????????????? return;
????????? }
????????? len=recv(sock,buf1,1024,NULL);
????????? if((buf1[0]==0xff)&&(buf1[1]=='S')&&(buf1[2]=='M')&&(buf1[3]=='B'))
????????????? olen=0x20;
????????? else
????? if((buf1[4]==0xff)&&(buf1[5]=='S')&&(buf1[6]=='M')&&(buf1[7]=='B'))
????????????? olen=0x24;
????????? else
????????????? return;
????????? smbp.smbinfo.userid =? *(WORD *)(buf1+olen-0x4);
????????? nlen=*(WORD *)(buf1+olen+1+2*3);//BLOB的長度
????????? olen=olen+1+2*buf1[olen]+2;
????????? SmbSessionSetupAndX2(&smbp,buf1+olen,nlen);
????????? if (send(sock,(unsigned char
????? *)&smbp,ntohs(smbp.smbnbt.smbpacketlen)+4,0)==SOCKET_ERROR)
????????? {
????????????????? printf("Send failed.Error:%d\n",WSAGetLastError());
????????????????? return;
????????? }
????????? len=recv(sock,buf1,1024,NULL);
????????? if((buf1[0]==0xff)&&(buf1[1]=='S')&&(buf1[2]=='M')&&(buf1[3]=='B'))
????????????? olen=0x20;
????????? else
????? if((buf1[4]==0xff)&&(buf1[5]=='S')&&(buf1[6]=='M')&&(buf1[7]=='B'))
????????????? olen=0x24;
????????? else
????????????? return;
????????? if(buf1[olen]==0)
????????????? printf("error username and password\n");
????????? else
????????????? printf("login ok\n");
????????? WSACleanup();
????????? return;
????? }

????? void SmbSessionSetupAndX1(SMBP * psmbp,wchar_t * username,wchar_t *
????? domainname,wchar_t * password)
????? {
????????? LUID LogonID;
????????? unsigned char buf1[0x404c];
????????? HANDLE tk;
????????? TimeStamp Lifetime;
????????? DWORD ContextAttributes;
????????? DWORD rlen;
????????? DWORD r1,r2,r3;
????????? int i;
????????? Credentials crt;
????????? SecBufferDesc???? OutBuffDesc;
????????? SecBufferDesc???? InBuffDesc;
????????? SecBuffer???????? InSecBuff;
????????? SecBuffer???????? OutSecBuff;
????????? LogonID.HighPart =0;
????????? LogonID.LowPart = 0x7d80;

????????? psmbp->smbinfo.smbtoken =0x73;
????????? memset(psmbp->smbinfo.info,0,0x200);
????????? psmbp->smbinfo.flagsummary2 = 0xc807;
????????? *(DWORD *)(psmbp->smbinfo.info+21) = 0x800000D4;
????????? //指定使用加密的FLAG
????????? psmbp->smbinfo.info[0]=0xc;//WORD 參數個數
????????? *(WORD *)(psmbp->smbinfo.info+1)=0Xff;//無下一個命令
????????? *(WORD *)(psmbp->smbinfo.info+3)=0Xb0;//下一命令偏移
????????? *(WORD *)(psmbp->smbinfo.info+5)=0X4104;//最大緩沖
????????? *(WORD *)(psmbp->smbinfo.info+7)=0X32;//最大的MPX
????????? *(WORD *)(psmbp->smbinfo.info+9)=0X0;//虛擬通道
????????? *(DWORD *)(psmbp->smbinfo.info+11)=0X0;//虛擬通道
????????? *(DWORD *)(psmbp->smbinfo.info+17)=0X0;//保留

????????? //輸入的口令在此需要CRT
????????? //自動的則不需要
????????? OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &tk);
????????? GetTokenInformation(tk,TokenStatistics,&ts,sizeof(ts),&rlen);
????????? r1=0;
????????? for(i=0;i<0x30;i++)
????????? {
????????????? if(username[i]==0)
????????????????? break;
????????????? r1=r1+2;
????????? }
????????? r2=0;
????????? for(i=0;i<0x30;i++)
????????? {
????????????? if(domainname[i]==0)
????????????????? break;
????????????? r2=r2+2;
????????? }
????????? r3=0;
????????? for(i=0;i<0x30;i++)
????????? {
????????????? if(password[i]==0)
????????????????? break;
????????????? r3=r3+2;
????????? }
????????? crt.pusername = crt.info;
????????? crt.usernamelen = r1/2;
????????? if(r2>0)
????????? {
????????????? crt.pdomainname =crt.info+r1+2;
????????????? crt.domainnamelen = r2/2;
????????????? crt.ppassword = crt.pdomainname+r2+2;
????????????? crt.passwordlen =r3/2;
????????? }
????????? else
????????? {
????????????? crt.pdomainname =0;
????????????? crt.domainnamelen = 0;
????????????? crt.ppassword = crt.info+r1+2;
????????????? crt.passwordlen =r3/2;
????????? }
????????? crt.credtype = 6;
????????? memcpy(crt.pusername,username,r1);
????????? if(r2>0)
????????????? memcpy(crt.pdomainname,domainname,r2);
????????? memcpy(crt.ppassword,password,r3);
????????? ss=AcquireCredentialsHandleW
?????????????
????? (NULL,L"Negotiate",SECPKG_CRED_OUTBOUND,&ts.AuthenticationId,&crt,NULL,NULL,&phc,&Lifetime);
????????? //LOGIN會影響生成
????????? InBuffDesc.ulVersion = 0;
????????? InBuffDesc.cBuffers = 1;
????????? InBuffDesc.pBuffers = &InSecBuff;
????????? InSecBuff.BufferType =SECBUFFER_TOKEN;
????????? InSecBuff.cbBuffer =0;
????????? InSecBuff.pvBuffer = buf1;
????????? OutBuffDesc.ulVersion = 0;
????????? OutBuffDesc.cBuffers = 1;
????????? OutBuffDesc.pBuffers = &OutSecBuff;
????????? OutSecBuff.BufferType = SECBUFFER_TOKEN;
????????? OutSecBuff.cbBuffer =0x404c;
????????? OutSecBuff.pvBuffer = buf1;
????????? ss=InitializeSecurityContextW(
????????????????? &phc,
????????????????? NULL,
????????????????? TargetName,
?????????????????
????? ASC_REQ_MUTUAL_AUTH|ASC_REQ_DELEGATE|ASC_REQ_STREAM|ASC_REQ_ALLOW_NON_USER_LOGONS,//0x210003
????????????????? 0,
????????????????? SECURITY_NATIVE_DREP,
????????????????? &InBuffDesc,
????????????????? 0,
????????????????? &cthc,
????????????????? &OutBuffDesc,
????????????????? &ContextAttributes,
????????????????? &Lifetime
????????????????? );

????????? *(WORD *)(psmbp->smbinfo.info+15)=OutSecBuff.cbBuffer;? //BLOB的長度
????????? memcpy(psmbp->smbinfo.info+27,buf1,OutSecBuff.cbBuffer);//放入BLOB
????????? memcpy(psmbp->smbinfo.info+28+OutSecBuff.cbBuffer,navos,36);//
????????? memcpy(psmbp->smbinfo.info+66+OutSecBuff.cbBuffer,lanman,32);//
????????? *(WORD *)(psmbp->smbinfo.info+25)=73+OutSecBuff.cbBuffer;
????????? psmbp->smbnbt.smbpacketlen = htons(132+ OutSecBuff.cbBuffer);
????? }

????? void SmbSessionSetupAndX2(SMBP * psmbp,unsigned char * ntlmrcv,short
????? ntlmlen)
????? {
????????? TimeStamp Lifetime;
????????? DWORD ContextAttributes;
????????? SecBufferDesc???? OutBuffDesc;
????????? SecBufferDesc???? InBuffDesc;
????????? SecBuffer???????? InSecBuff;
????????? SecBuffer???????? OutSecBuff;
????????? unsigned char buf1[0x404c];

????????? psmbp->smbinfo.smbtoken =0x73;
????????? memset(psmbp->smbinfo.info,0,0x200);
????????? psmbp->smbinfo.flagsummary2 = 0xc807;
????????? *(DWORD *)(psmbp->smbinfo.info+21) = 0x800000D4;
????????? //指定使用加密的FLAG
????????? psmbp->smbinfo.info[0]=0xc;//WORD 參數個數
????????? *(WORD *)(psmbp->smbinfo.info+1)=0Xff;//無下一個命令
????????? *(WORD *)(psmbp->smbinfo.info+3)=0X12e;//下一命令偏移
????????? *(WORD *)(psmbp->smbinfo.info+5)=0X4104;//最大緩沖
????????? *(WORD *)(psmbp->smbinfo.info+7)=0X32;//最大的MPX
????????? *(WORD *)(psmbp->smbinfo.info+9)=0X0;//虛擬通道
????????? *(DWORD *)(psmbp->smbinfo.info+11)=0X0;//虛擬通道
????????? *(DWORD *)(psmbp->smbinfo.info+17)=0X0;//保留

????????? //輸入的口令在此需要CRT
????????? //自動的則不需要
????????? InBuffDesc.ulVersion = 0;
????????? InBuffDesc.cBuffers = 1;
????????? InBuffDesc.pBuffers = &InSecBuff;
????????? InSecBuff.BufferType =SECBUFFER_TOKEN;
????????? InSecBuff.cbBuffer =ntlmlen;
????????? InSecBuff.pvBuffer = ntlmrcv;
????????? OutBuffDesc.ulVersion = 0;
????????? OutBuffDesc.cBuffers = 1;
????????? OutBuffDesc.pBuffers = &OutSecBuff;
????????? OutSecBuff.BufferType = SECBUFFER_TOKEN;
????????? OutSecBuff.cbBuffer =0x404c;
????????? OutSecBuff.pvBuffer = buf1;
????????? ss=InitializeSecurityContextW(
????????????????? &phc,
????????????????? &cthc,
????????????????? TargetName,
?????????????????
????? ASC_REQ_MUTUAL_AUTH|ASC_REQ_DELEGATE|ASC_REQ_STREAM|ASC_REQ_ALLOW_NON_USER_LOGONS,//0x210003
????????????????? 0,
????????????????? SECURITY_NATIVE_DREP,
????????????????? &InBuffDesc,
????????????????? 0,
????????????????? &cthc,
????????????????? &OutBuffDesc,
????????????????? &ContextAttributes,
????????????????? &Lifetime
????????????????? );
????????? *(WORD *)(psmbp->smbinfo.info+15)=OutSecBuff.cbBuffer;? //BLOB的長度
????????? memcpy(psmbp->smbinfo.info+27,buf1,OutSecBuff.cbBuffer);//放入BLOB
????????? memcpy(psmbp->smbinfo.info+28+OutSecBuff.cbBuffer,navos,36);//
????????? memcpy(psmbp->smbinfo.info+66+OutSecBuff.cbBuffer,lanman,32);//
????????? *(WORD *)(psmbp->smbinfo.info+25)=73+OutSecBuff.cbBuffer;
????????? psmbp->smbnbt.smbpacketlen = htons(132+ OutSecBuff.cbBuffer);
????? }

????? void SmbNegotiate(SMBP * psmbp)
????? {
????????? unsigned char magic[4]={0xff,'S','M','B'};
????????? short len;
????????? char langitem1[]="PC NETWORK PROGRAM 1.0";
????????? char langitem2[]="LANMAN1.0";
????????? char langitem3[]="Windows for Workgroups 3.1a";
????????? char langitem4[]="LM1.2X002";
????????? char langitem5[]="LANMAN2.1";
????????? char langitem6[]="NT LM 0.12";
????????? char langitem7[]="PCLAN1.0";
????????? char langitem8[]="MICROSOFT NETWORKS 1.03";
????????? char langitem9[]="MICROSOFT NETWORKS 3.0";
????????? char langitem10[]="DOS LM1.2X002";
????????? char langitem11[]="DOS LANMAN2.1";
????????? char langitem12[]="Cairo 0.xa";

????????? memset(psmbp,0,sizeof(SMBP));
????????? psmbp->smbnbt.nbtsmb = 0;
????????? psmbp->smbnbt.flag = 0;
????????? memcpy(psmbp->smbinfo.magic, magic,4);
????????? psmbp->smbinfo.smbtoken = 0x72;
????????? psmbp->smbinfo.errcodeclass = 0x0;
????????? psmbp->smbinfo.dosaherrcode = 0x0;
????????? psmbp->smbinfo.errcode[0] = 0x0;
????????? psmbp->smbinfo.errcode[1] = 0x0;
????????? psmbp->smbinfo.flagsummary = 0x18;
????????? psmbp->smbinfo.flagsummary2 = 0xc853;
????????? //指定了帶挑戰方式支持的FLAG
????????? psmbp->smbinfo.callprocessid = 0xfeff;
????????? psmbp->smbinfo.multiplexid = 0;
????????? psmbp->smbinfo.info[0]=0x0;
????????? len=3+2*(psmbp->smbinfo.info[0]);
????????? /*
????????? psmbp->smbinfo.info[len]=0x2;
????????? memcpy(psmbp->smbinfo.info+len+1,langitem3,sizeof(langitem3));
????????? len = len+1+sizeof(langitem3);
?????????
????????? psmbp->smbinfo.info[len]=0x2;
????????? memcpy(psmbp->smbinfo.info+len+1,langitem1,sizeof(langitem1));
????????? len = len+1+sizeof(langitem1);

????????? psmbp->smbinfo.info[len]=0x2;
????????? memcpy(psmbp->smbinfo.info+len+1,langitem2,sizeof(langitem2));
????????? len = len+1+sizeof(langitem2);
?????????

????????? psmbp->smbinfo.info[len]=0x2;
????????? memcpy(psmbp->smbinfo.info+len+1,langitem4,sizeof(langitem4));
????????? len = len+1+sizeof(langitem4);

?????????
????????? psmbp->smbinfo.info[len]=0x2;
????????? memcpy(psmbp->smbinfo.info+len+1,langitem5,sizeof(langitem5));
????????? len = len+1+sizeof(langitem5);
?????????????
????????? psmbp->smbinfo.info[len]=0x2;
????????? memcpy(psmbp->smbinfo.info+len+1,langitem6,sizeof(langitem6));
????????? len = len+1+sizeof(langitem6);
????????? */
????????? psmbp->smbinfo.info[len]=0x2;
????????? memcpy(psmbp->smbinfo.info+len+1,langitem6,sizeof(langitem6));
????????? len = len+1+sizeof(langitem6);

????????? *(WORD *)(psmbp->smbinfo.info+1) =len-3-2*(psmbp->smbinfo.info[0]);
????????? psmbp->smbnbt.smbpacketlen = htons(len+0x20);
????? }

轉載于:https://www.cnblogs.com/ahuo/archive/2008/09/03/1282745.html

總結

以上是生活随笔為你收集整理的NTLM的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

国产成人精品一区二区三区网站观看 | 久久兔费看a级 | 人人要人人澡人人爽人人dvd | 69国产盗摄一区二区三区五区 | 成人毛片一区 | 91原创在线观看 | 久久伊人婷婷 | 久久久久久蜜av免费网站 | 天堂av在线 | 国产高清在线观看 | 麻豆传媒在线免费看 | 日韩免费电影在线观看 | 日本中文在线观看 | 精品国产不卡 | 日韩在线视频线视频免费网站 | 99精品黄色 | 久久精品五月 | 国产伦理久久精品久久久久_ | 日韩黄色免费 | 欧美日韩精品二区第二页 | www.天天操 | 精品国产一区二区三区不卡 | 久草在线免 | 天天激情| 久久超级碰视频 | 亚洲视屏在线播放 | 日韩中文字幕第一页 | 四虎最新入口 | 尤物九九久久国产精品的分类 | 精品极品在线 | 亚洲无吗视频在线 | 亚洲黄色三级 | 国产视频中文字幕在线观看 | 欧美成人性网 | 高清久久久久久 | 国产精品ssss在线亚洲 | 精品一区二区久久久久久久网站 | 国产精品久久久久久久久久三级 | 国产精品一区二区三区在线播放 | 亚洲资源| 啪啪资源| 国产免费中文字幕 | 国产 欧美 在线 | 亚洲精品免费观看视频 | 丝袜足交在线 | 国产四虎在线 | 婷婷久草 | 婷婷亚洲五月色综合 | 午夜天天操 | 国产黄色一级大片 | 91福利视频久久久久 | 精品91视频 | 日韩在线不卡av | 精品国产自在精品国产精野外直播 | 偷拍福利视频一区二区三区 | 欧美99热| 亚洲高清视频在线播放 | 日韩黄色软件 | 天天草天天干天天射 | 久久久久久久电影 | 免费在线观看毛片网站 | 天天操福利视频 | aⅴ视频在线| 久草视频99 | 久久99国产精品免费网站 | 久久综合九色综合97婷婷女人 | 亚洲一区精品二人人爽久久 | 91中文字幕在线播放 | 亚洲九九九在线观看 | 亚洲a在线观看 | 日本在线观看中文字幕无线观看 | 丝袜美腿在线视频 | 中文字幕91视频 | 99精品一区二区 | 日本少妇高清做爰视频 | 免费大片黄在线 | 五月婷婷一区二区三区 | 日韩成人精品 | 人人澡超碰碰97碰碰碰软件 | 日韩欧美在线观看一区二区三区 | 免费av看片| 国产精品va在线观看入 | 免费在线一区二区 | 麻豆视频免费入口 | 夜色资源站国产www在线视频 | 日韩av播放在线 | 婷婷激情综合网 | 久久理伦片 | 99中文字幕| 欧美日韩视频在线观看一区二区 | 日韩高清免费在线 | 国产综合精品久久 | 国产精品一区二区三区免费看 | 日韩免费视频一区二区 | 外国av网 | 精品国产一区二区三区日日嗨 | 在线观看视频国产一区 | av电影在线观看完整版一区二区 | 亚洲国产精品人久久电影 | 免费福利在线播放 | 中文不卡视频 | 黄色成人在线观看 | 日本在线观看中文字幕无线观看 | 中文字幕在线一区观看 | 国产无吗一区二区三区在线欢 | 久久论理 | 久久人人97超碰国产公开结果 | 久久精品这里热有精品 | 婷婷伊人综合亚洲综合网 | 久久亚洲综合国产精品99麻豆的功能介绍 | 久久久久97国产 | 黄色三级免费网址 | 综合久久网站 | 国产视频一区在线播放 | 看黄色91 | 色播99| 午夜精品久久久久久久99水蜜桃 | 免费av网站观看 | 国产精品久久影院 | 成人网看片 | 精品综合久久久 | 人人爽人人爽人人爽人人爽 | 国产剧情久久 | 亚洲第一区在线播放 | 日韩字幕 | 91视频首页 | 亚洲高清视频在线播放 | 精品亚洲成a人在线观看 | 黄色软件网站在线观看 | av一级免费 | 国内成人综合 | 国产高清视频色在线www | 国内精品久久久久久久久 | 在线观看 国产 | 欧美一级片免费观看 | 久久经典视频 | 欧美性猛片, | 中文字幕国产精品一区二区 | 中文字幕乱码电影 | 免费黄a大片 | 韩国av免费观看 | 亚洲黄色一级大片 | av在线com| 亚洲国产人午在线一二区 | 久久综合久久综合这里只有精品 | 欧美在线视频不卡 | 二区视频在线 | 亚洲综合色视频 | 欧美在线视频不卡 | 久久毛片视频 | 欧美午夜性| 黄色av网站在线观看免费 | 午夜精品久久久久久久99 | 国产精品国产三级国产aⅴ入口 | 69精品视频在线观看 | 夜色成人av | 超碰久热 | 最新日韩电影 | 免费在线h| 在线a视频 | 中文一区二区三区在线观看 | 国产成人综合精品 | 久久国产精品网站 | av福利在线导航 | 中文字幕激情 | 99久久精品国产观看 | 69热国产视频 | 69视频在线 | 日韩乱码在线 | 黄色在线成人 | 欧美日韩中文字幕在线视频 | 2019天天干天天色 | 五月激情久久 | 免费观看www7722午夜电影 | 在线视频欧美精品 | 久久综合九色综合久99 | 国产精品久久久久久久久大全 | 欧美成人免费在线 | 成人精品999 | 日韩专区中文字幕 | 成人在线黄色电影 | 97在线视频观看 | 波多野结衣亚洲一区二区 | 夜夜躁狠狠躁 | 国产精品99久久久久久久久 | 在线观看日韩av | 91九色国产蝌蚪 | 视频成人免费 | 国产视频久久 | 亚洲午夜精品一区二区三区电影院 | 久久久免费精品视频 | 久久国产网站 | 国产亚洲一区二区三区 | 国产一区国产精品 | 精品久久久久_ | 欧美激情视频一区二区三区 | 69国产在线观看 | 久久综合中文字幕 | 国内精品久久久久久 | 精品av网站| 欧美性生活久久 | 91亚洲成人 | 国产成人精品久久 | 免费不卡中文字幕视频 | 国产一级视频在线观看 | 天天干天天操天天入 | 久久亚洲综合国产精品99麻豆的功能介绍 | 亚洲三级视频 | 国产精品久久久久国产精品日日 | 欧美性脚交| 白丝av免费观看 | 国产香蕉视频在线观看 | 精品国产1区2区 | 香蕉视频最新网址 | 国产大陆亚洲精品国产 | 国产群p视频 | 婷婷六月丁香激情 | 国产伦理一区二区三区 | 国产精品 日本 | 永久免费在线 | 亚洲夜夜网 | 91成人小视频 | 国产精品丝袜久久久久久久不卡 | 精品国产一区二区在线 | 玖玖爱免费视频 | 日韩综合精品 | 91精品在线视频观看 | 69精品| 91人人爱| 日韩午夜小视频 | 日韩欧美高清在线观看 | 探花视频免费在线观看 | 亚洲91中文字幕无线码三区 | 精品美女久久久久久免费 | 免费a一级 | 麻豆视频在线免费 | 国产亚洲精品久久19p | 五月开心激情网 | 欧美人体xx | 色综合久久综合网 | 奇米先锋 | 久久夜色精品国产欧美一区麻豆 | 国产精品久久久999 国产91九色视频 | www.av中文字幕.com | 国产精品一区二区三区在线 | 天天干天天怕 | 在线婷婷 | 欧美另类网站 | 日韩首页 | 久久都是精品 | 久久精品福利视频 | 久久国产精品久久久 | 深夜福利视频一区二区 | 一区二区三区av在线 | 视频一区二区视频 | 久久久久久久久久久久久9999 | 久香蕉 | 在线观看亚洲精品视频 | 国产福利免费在线观看 | 中文字幕在线免费看 | 欧美日韩免费网站 | 日韩网站在线看片你懂的 | 日韩精品欧美专区 | 成年人在线看视频 | 日韩有码在线播放 | 久久免费视频这里只有精品 | 久久99精品久久久久久三级 | 久久综合影音 | 欧美a级免费视频 | 亚洲经典中文字幕 | 国产视频欧美视频 | 久久久久久久久久影院 | av成人动漫在线观看 | 麻豆精品视频 | 在线精品国产 | 97人人澡人人添人人爽超碰 | 成年人在线播放视频 | 国产精品99久久久久久有的能看 | 狠狠干狠狠插 | 久草在线免费色站 | 国内久久精品视频 | 天天看天天干天天操 | 日日夜夜精品视频 | 亚洲影院国产 | 国产精选在线 | 国产亚洲精品久久久久动 | 欧洲精品视频一区 | 亚洲一区黄色 | 亚洲精品在线观看av | 欧美一区成人 | 国产精品手机看片 | 天天干天天做 | 天天干天天操天天操 | 国产午夜精品一区 | 精品国产综合区久久久久久 | 国产免费亚洲高清 | 国产99一区二区 | 久久精品国产一区二区三 | 久久这里只有精品23 | 亚洲爱视频 | 久久成年人视频 | 亚洲国产精品一区二区久久,亚洲午夜 | 色婷五月天 | 久久99久久99久久 | 久久免费视频这里只有精品 | 综合av在线 | 99热在线观看免费 | 精品国产aⅴ一区二区三区 在线直播av | 99视频免费看 | 国产在线中文 | 日韩精品视频一二三 | 亚洲天堂自拍视频 | 日本久久中文 | 国产999精品视频 | 欧美调教网站 | 国产精品四虎 | av综合在线观看 | 国产精品久久久久久久久久直播 | 亚洲视频久久久久 | 国产xxxxx在线观看 | 91社区国产高清 | 午夜视频黄 | 欧美精品乱码久久久久 | 精品在线一区二区三区 | 久久久久欧美精品 | 黄色在线观看免费 | 黄色一级影院 | 一区二区精品在线视频 | 久草在线官网 | 在线播放 日韩专区 | 天天草天天插 | 国产高清av在线播放 | 欧美另类重口 | 五月天久久久 | 久久成人在线视频 | 亚洲人成人99网站 | 天天做天天干 | 欧美男同网站 | 国产香蕉久久精品综合网 | 色婷婷视频在线观看 | 欧美久久久久久久久久 | 人人爱人人添 | av在线播放免费 | 久久久精品高清 | 黄色免费电影网站 | 中文字幕免费 | 麻豆91在线看 | 日韩三级在线观看 | 狠狠躁天天躁 | 久久精品国亚洲 | 成人h在线观看 | 亚洲精品久久久久久国 | 欧美日韩不卡在线 | 中文字幕在线视频免费播放 | 伊人www22综合色 | 久久五月天色综合 | 中文字幕av一区二区三区四区 | 亚洲国产wwwccc36天堂 | 97视频免费在线观看 | 亚洲精品1234区 | www.99热精品 | 有没有在线观看av | 国产精品国内免费一区二区三区 | 精品中文字幕视频 | 麻豆一区在线观看 | 欧美日韩国产一区 | 久久婷亚洲五月一区天天躁 | 亚洲乱码国产乱码精品天美传媒 | 中文字幕乱码日本亚洲一区二区 | 国产又黄又猛又粗 | 久草在线观看 | 天天操天天摸天天射 | 亚洲国产字幕 | 国产高清av免费在线观看 | 国产精品乱码一区二区视频 | se视频网址 | 亚洲www天堂com | 日韩在线观看中文字幕 | 亚洲三级在线播放 | 久久99中文字幕 | 国产精品亚州 | 久久久精品国产一区二区电影四季 | 成人av电影免费在线播放 | 国产无遮挡又黄又爽馒头漫画 | 91视频中文字幕 | 亚洲专区在线视频 | 人交video另类hd | 91亚洲国产成人久久精品网站 | 日韩亚洲欧美中文字幕 | 亚洲国产中文字幕在线观看 | www.黄色片网站 | av超碰在线 | 韩日电影在线观看 | 久久成年人 | 91看片麻豆 | 亚洲精品视频偷拍 | 久久99精品国产 | 91av视频导航 | 国产伦理久久精品久久久久_ | 日韩免费网站 | 亚洲视频在线免费看 | 二区在线播放 | 美腿丝袜一区二区三区 | 欧美精品九九99久久 | 国产一级二级三级在线观看 | 国产精品手机在线 | 怡红院av| 在线看片视频 | 91在线在线观看 | 日韩xxx视频| 97成人在线免费视频 | 国产成人精品在线播放 | 亚洲一本视频 | 久久久国产精华液 | 日韩av高潮 | 在线观看岛国av | 日韩欧美在线影院 | 久久噜噜少妇网站 | 麻豆视频在线观看 | 亚洲免费在线观看视频 | 亚洲精品理论片 | 91亚洲在线| 国产视频在线观看一区 | 激情综合啪 | 日本成人免费在线观看 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 九九亚洲精品 | 久久精品成人欧美大片古装 | 免费亚洲视频在线观看 | 久久久久国产成人免费精品免费 | 欧美在线视频不卡 | 99视频在线免费播放 | av不卡网站 | 五月天婷婷丁香花 | 91精品视频在线播放 | 手机av资源 | 日本免费一二三区 | 中文字幕色播 | 久久久久久久久影视 | 欧美日韩精品在线播放 | 国产一区欧美一区 | 精品一二三四五区 | 午夜狠狠干 | 亚洲成人黄色在线观看 | 国产一区二区三区四区大秀 | 最近av在线| 中文区中文字幕免费看 | 97超碰.com | 五月天天在线 | 激情婷婷综合网 | 91亚洲综合 | 探花视频在线观看+在线播放 | 久久九九网站 | 国产视频 亚洲视频 | 在线观看v片 | 国产在线精品二区 | 国产精品门事件 | 天天射日 | 超碰在线97免费 | 国产偷v国产偷∨精品视频 在线草 | 亚洲视频播放 | 五月婷婷色丁香 | 国产一级一片免费播放放 | 成人在线观看资源 | 国产一级视屏 | 国产xxxx| 美女啪啪图片 | 久久成人18免费网站 | 一区二区视频网站 | 欧美夫妻性生活电影 | 在线免费黄色av | 日本精品中文字幕在线观看 | 又污又黄网站 | 亚洲91精品在线观看 | 色婷婷免费视频 | 六月丁香伊人 | 日韩免费高清 | 99视频精品在线 | 色99色 | 五月婷激情 | 久久99久久99精品免费看小说 | 国产精品入口麻豆 | 国产精品久久久久久久久软件 | 婷婷在线综合 | av大全在线看 | 又黄又爽的免费高潮视频 | 天天操夜夜爱 | 日本免费一二三区 | 国产中文字幕亚洲 | 91视视频在线直接观看在线看网页在线看 | 久久夜靖品 | 亚洲一区二区观看 | 日韩精选在线观看 | 久久精品女人毛片国产 | 国产精品久久网站 | 四虎国产精品免费观看视频优播 | 三级黄色网络 | 色综合久久久久久久久五月 | 久久99精品热在线观看 | 欧美福利视频一区 | 毛片一区二区 | 黄a在线观看 | 天天干天天做 | 国产精品嫩草影院9 | 三级黄色免费片 | 免费国产一区二区视频 | 五月综合久久 | 91精品1区2区 | 亚洲午夜精品一区二区三区电影院 | av超碰在线 | 国产精品 中文字幕 亚洲 欧美 | 在线视频18在线视频4k | 在线观看视频精品 | 免费av网站观看 | 久久字幕精品一区 | 97超碰人人澡人人 | 毛片www | 在线 欧美 日韩 | 91麻豆精品 | 高潮久久久| 午夜在线国产 | 日韩专区一区二区 | 韩国精品一区二区三区六区色诱 | 欧美精品一区二区在线播放 | 青草视频在线免费 | 一区在线电影 | 久久精品视频一 | 国内外成人免费在线视频 | 亚洲 综合 激情 | 日日日日日 | 国产精品久久久久久久久大全 | 在线观看国产一区 | 永久免费av在线播放 | 精品一区二区三区电影 | 亚洲精品视频免费观看 | 久久国产乱 | 91视频在线国产 | 欧美日韩国产精品久久 | 91在线视频观看免费 | 欧美视频www | 国产精品12 | 九九九免费视频 | 91亚洲在线观看 | 国产美女网| 狠狠狠色丁香综合久久天下网 | 一区二区三区在线不卡 | 婷婷色网站 | 热久久在线视频 | 27xxoo无遮挡动态视频 | 亚洲日本va午夜在线影院 | 在线观看资源 | 午夜视频在线观看一区二区三区 | 日韩视频一区二区三区 | 国产精品久久久久久婷婷天堂 | 亚洲精品乱码久久久久久写真 | 国产精品久久久久久久久久久久午 | av理论电影 | 国产蜜臀av| 午夜精品一区二区三区在线播放 | 国产精品入口66mio女同 | 少妇bbbb揉bbbb日本 | 国产精品21区 | 在线观看免费中文字幕 | 亚洲免费观看视频 | 麻豆久久精品 | 久久久久久伊人 | 欧美视频日韩视频 | 午夜精品电影 | 激情婷婷网 | 在线电影中文字幕 | av天天色 | 欧美性精品 | 色网站国产精品 | 欧美精彩视频在线观看 | 国产91精品一区二区麻豆网站 | 4438全国亚洲精品在线观看视频 | 最新超碰在线 | 日韩理论在线视频 | 狠狠干我| 亚洲精选在线 | 青青久草在线视频 | 国产精品对白一区二区三区 | 国内精自线一二区永久 | 久草视频中文 | 久久好看免费视频 | av高清影院| 日本精品一区二区三区在线观看 | 欧美久久综合 | 国产精品99蜜臀久久不卡二区 | 最新免费av在线 | 亚洲第一av在线播放 | 丁香五月缴情综合网 | 黄色天堂在线观看 | 天天射天天操天天 | 久久精品二区 | 正在播放国产91 | 婷婷六月丁香激情 | 日本成人黄色片 | 成人综合免费 | 黄在线免费看 | 97超碰成人 | 少妇高潮冒白浆 | 国内精品久久久久影院一蜜桃 | 久亚洲 | 久久网页| 国产视频日韩视频欧美视频 | 99视频精品视频高清免费 | 午夜的福利 | 天天干中文字幕 | 丁香激情综合国产 | 国产这里只有精品 | 国产精品日韩欧美 | 日韩一区视频在线 | 国产精品一区二区你懂的 | 久久久久黄 | 一区二区不卡在线观看 | 午夜免费久久看 | 狠狠干天天操 | 天天舔天天搞 | 欧美色图亚洲图片 | 国产乱对白刺激视频在线观看女王 | 91精品1区 | 国产高清av在线播放 | 国产欧美精品一区二区三区四区 | 日韩精品视频网站 | 欧美精品一级视频 | 欧美人人 | 中文 一区二区 | 久久综合综合久久综合 | 99在线观看精品 | 成人免费视频网站在线观看 | 天天干天天摸 | 欧美色888| 欧美激情视频一二三区 | 久久99视频| 97视频入口免费观看 | av中文字幕网站 | 九九九九九九精品任你躁 | 亚洲精品人人 | 美女精品在线 | 国产涩图 | 中文字幕日本在线观看 | 高清免费av在线 | 特级西西www44高清大胆图片 | 高清精品久久 | www.久久久精品 | 国产黄网站在线观看 | avav片| 免费福利片2019潦草影视午夜 | 久久99国产精品久久99 | 日本不卡一区二区三区在线观看 | 日韩黄色一级电影 | 亚洲精品玖玖玖av在线看 | sm免费xx网站 | 99产精品成人啪免费网站 | 毛片一二区 | 日韩免费看的电影 | 日韩系列在线 | 欧美日韩三级在线观看 | 99精品视频在线观看免费 | 97超碰色偷偷 | 国产91综合一区在线观看 | 一级黄色大片在线观看 | 黄色大片av | 亚洲经典视频在线观看 | 亚洲天堂香蕉 | 中文字幕免费高 | 精品亚洲一区二区 | 亚洲视频免费视频 | 精品国产一区二区三区日日嗨 | 国产精品国产精品 | 97精品国产91久久久久久久 | 国产精品毛片一区二区三区 | 99视频精品免费观看, | 国产91对白在线 | 一区二区三区四区影院 | 天天综合精品 | 视频在线亚洲 | 五月天com | 日韩在线精品视频 | 婷婷福利影院 | 国产高清黄色 | 国产精品美女久久久久久久网站 | av中文字幕在线播放 | 亚洲影院色 | 97超碰在线免费 | 中文欧美字幕免费 | 欧美成人精品欧美一级乱黄 | 人人射| 一级免费av | 91视频免费 | 97在线观 | 亚洲va男人天堂 | 久久精品欧美日韩精品 | 这里只有精品视频在线观看 | 国产精品一区二区久久久 | 少妇资源站| 欧美亚洲xxx | 国产精品原创 | 丁香婷婷电影 | 国产福利91精品一区二区三区 | 亚洲激情在线观看 | 婷婷久久五月 | 久久国产精品视频观看 | 日韩精品免费 | 色哟哟国产精品 | 日韩乱色精品一区二区 | 日韩美精品视频 | 在线色吧 | 天天操比 | 成人精品视频 | 96久久欧美麻豆网站 | 欧美最新大片在线看 | 色婷婷亚洲综合 | 天天干一干 | 一级淫片在线观看 | 中文字幕日本在线 | 国产美女免费观看 | 日本黄色免费网站 | 97视频在线观看视频免费视频 | 婷婷国产在线观看 | 黄色a在线 | www.日日操.com | 五月天天色 | 久久精品美女视频网站 | 在线免费三级 | 欧美日韩精品区 | 色婷婷国产精品 | 一区二区伦理 | 2022久久国产露脸精品国产 | 精品久久久久久久久久岛国gif | 亚洲一区日韩 | 久久久久久国产精品 | 久草网在线观看 | 成人毛片在线视频 | www,黄视频 | 看毛片网站| 欧美激情精品久久久久久 | 国产黄在线免费观看 | 成人av免费播放 | 国产视频在 | 久久试看 | 欧美日韩精品二区第二页 | 国产亚洲亚洲 | 青青河边草免费直播 | 国产精品自拍av | 亚洲三区在线 | 国产999在线观看 | 日本精品在线 | 狠狠干天天 | 正在播放国产一区二区 | 一区精品久久 | 天天操天天干天天爽 | 欧美日韩一区二区三区免费视频 | 91精品啪在线观看国产81旧版 | 绯色av一区 | 91豆花在线观看 | 久久国产亚洲 | 国产一级不卡视频 | 亚洲欧美日韩国产一区二区三区 | 在线观看v片 | 欧美日韩天堂 | 日本免费一二三区 | 日本高清xxxx | 在线播放 日韩专区 | 香蕉网址 | 国产精品一区久久久久 | 亚洲精品tv | 五月天色综合 | 91精品久久久久久综合乱菊 | 在线观看日韩一区 | 日韩免费在线观看视频 | 高清中文字幕 | 成人片在线播放 | 狠狠操天天干 | 国产精品美女久久久久久2018 | 国产精品国产三级国产aⅴ9色 | 婷婷婷国产在线视频 | 久久视频在线观看 | 色视频网页 | 国内揄拍国内精品 | 黄色成人在线 | 久久国产一区 | 在线免费观看黄色大片 | 色婷婷电影 | 免费av福利| 特级xxxxx欧美| 免费看成人a | 国产精品一区久久久久 | 免费色视频网址 | 五月婷婷视频在线观看 | 久色 网| 国产成人无码AⅤ片在线观 日韩av不卡在线 | 色婷丁香| 9ⅰ精品久久久久久久久中文字幕 | 玖玖在线免费视频 | 成人av网站在线 | 亚洲97在线| 国内视频在线观看 | 欧美精品一区二区蜜臀亚洲 | 欧美精品一区二区性色 | 99久久精品日本一区二区免费 | 国产一线二线三线在线观看 | 亚洲综合色视频 | 69视频网站| 国产69久久 | 久久综合操 | 96精品在线 | 麻豆视频免费看 | 国产精品乱码久久久久久1区2区 | 久久久久国产精品一区二区 | 99色婷婷 | 欧美中文字幕久久 | 男女激情网址 | 亚洲免费在线视频 | 亚洲一级电影 | 日韩a级黄色 | 天天插综合 | 国产伦精品一区二区三区高清 | 色 免费观看 | 99久久精品免费看国产一区二区三区 | 国产黄在线 | 超碰999| 天天在线免费视频 | 麻豆视频入口 | 九九久久精品 | 色五月情 | 91精品免费| 久久av中文字幕片 | 天天干人人插 | 精品在线观看免费 | 天天干,天天射,天天操,天天摸 | 有码一区二区三区 | 亚洲人精品午夜 | 97干com | 成片免费观看视频 | 国产91精品高清一区二区三区 | 五月婷婷在线观看视频 | 国产精品门事件 | 成人a视频片观看免费 | 午夜日b视频 | 综合色亚洲| av一级网站 | 欧美日韩免费观看一区二区三区 | 天天干,天天插 | 99久久精品无免国产免费 | 在线中文字幕观看 | 国产美女永久免费 | 欧美激情视频在线免费观看 | 91香蕉亚洲精品 | 国产成人精品女人久久久 | 91精品一区二区三区蜜桃 | 精品久久一区 | 日韩在线视频线视频免费网站 | 免费成人在线观看视频 | 国产精品国产三级国产aⅴ9色 | 国产xx视频 | 国产成人久久精品77777 | 亚洲电影久久久 | 91热爆视频 | 国产 日韩 在线 亚洲 字幕 中文 | 天天操福利视频 | av888.com| 99久久毛片| 美女视频网站久久 | 亚洲资源在线 | 五月天久久综合网 | 久久69精品久久久久久久电影好 | 中文字幕在线播放一区二区 | 国产永久免费高清在线观看视频 | 亚洲三级精品 | 国产午夜精品av一区二区 | 日韩高清一区二区 | 99国产精品久久久久久久久久 | 91香蕉国产在线观看软件 | 国产视频91在线 | 天堂在线一区二区 | 国产精品原创av片国产免费 | 国语久久 | 欧美日韩一级视频 | 国产精品成人aaaaa网站 | 欧美成人h版 | 麻豆精品视频 | 97干com| www狠狠| 91观看视频| 精品国产伦一区二区三区免费 | 中文字幕乱视频 | 1024手机在线看 | 视频在线观看入口黄最新永久免费国产 | 91在线网址 | 又湿又紧又大又爽a视频国产 | a久久免费视频 | 色网站黄 | 成人在线播放av | 一区二区三区播放 | 久久精品欧美 | 久草视频在线新免费 | 香蕉视频国产在线观看 | 亚洲国产精品人久久电影 | 色婷婷一 | 免费看三级网站 | 免费进去里的视频 | 中文字幕精品久久 | 日本久久99| 国产伦精品一区二区三区免费 | 91免费在线看片 | 亚洲欧洲精品一区 | 久久99热国产 | a在线免费观看视频 | 国产亚洲婷婷 | 日本xxxx裸体xxxx17 | a色视频 | 2020天天干夜夜爽 | 91人人人| 91香蕉视频在线下载 | 四虎影视欧美 | 亚洲美女在线国产 | 久久成人国产 | 精品免费观看视频 | 亚洲国产精品激情在线观看 | 中文在线www | 99国产精品久久久久老师 | 欧美在线你懂的 | 日本精a在线观看 | 日韩欧美一区二区三区在线观看 | 在线免费看黄色 | 国产精品一区二区无线 | 午夜视频在线观看一区 | 亚洲综合在线五月天 | 国产精品久久电影网 | 最新日韩视频 | 免费成人av | 亚洲 中文 欧美 日韩vr 在线 | 亚洲高清av | 在线观看黄av | 亚洲精品久久久久58 | 久久影院午夜论 | 婷婷色中文 | 99久久精品国产亚洲 | 99精品观看| 国产区高清在线 | 月丁香婷婷 | 天天躁天天躁天天躁婷 | 免费看国产曰批40分钟 | 久久免费看a级毛毛片 | 久久久精品成人 | 久久草草热国产精品直播 | 亚洲免费观看在线视频 | 亚洲最新合集 | 久久三级视频 | 国产美女免费视频 | 国产欧美综合视频 | 天天干干 | 免费一级片在线 | 特黄特色特刺激视频免费播放 | 国产99视频在线观看 | 中文电影网 | 久草亚洲视频 | 国产麻豆果冻传媒在线观看 | 日韩欧美在线观看 | 奇米7777狠狠狠琪琪视频 | 免费在线播放av电影 | a成人v在线 | 国产一区二区在线免费播放 | 欧美国产日韩久久 | 97超碰在线视| 在线高清av | 碰碰影院 | 精品一区二区免费在线观看 | 久久精品区 | 最新av在线免费观看 | 日韩a级免费视频 | 色综合天天视频在线观看 | av中文在线观看 | 国产精品video爽爽爽爽 | 日韩精选在线 | 久久人人看 | 伊人天天| 久久艹艹 | 色狠狠综合 | a成人v在线 | 久久久久久久福利 | 99热国产在线中文 | 三级黄免费看 | 99久久精品无免国产免费 | 少妇bbw搡bbbb搡bbbb| 手机在线免费av | 免费看的黄色录像 | 久久只精品99品免费久23小说 | 黄色小说免费在线观看 | 欧美aa一级片| 男女激情网址 | 黄网站app在线观看免费视频 | 亚洲国产天堂av | 黄色毛片视频免费观看中文 | 激情综合网五月婷婷 | 在线看的av网站 |