婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 通過(guò)perl實(shí)現(xiàn)一個(gè)簡(jiǎn)單的NIDS

通過(guò)perl實(shí)現(xiàn)一個(gè)簡(jiǎn)單的NIDS

熱門(mén)標(biāo)簽:惠州龍門(mén)400電話要怎么申請(qǐng) 萬(wàn)利達(dá)百貨商場(chǎng)地圖標(biāo)注 okcc外呼系統(tǒng)怎么調(diào)速度 電話機(jī)器人哪里有賣(mài) 熱門(mén)電銷機(jī)器人 外呼電信系統(tǒng) 上海企業(yè)外呼系統(tǒng) 河南虛擬外呼系統(tǒng)公司 智能機(jī)器人電銷神器

隨著對(duì)網(wǎng)絡(luò)安全需求的深入開(kāi)發(fā),基于網(wǎng)絡(luò)的入侵檢測(cè)技術(shù)已經(jīng)成為一個(gè)重要且有意思的研究方向。想學(xué)習(xí)NIDS技術(shù)除了去讀一些現(xiàn)成的資料和一些開(kāi)源系統(tǒng)的源碼,最好的辦法莫過(guò)于自己去寫(xiě)一個(gè)NIDS程序,只有那樣才能真正體會(huì)到一些NIDS的實(shí)現(xiàn)需求和設(shè)計(jì)妙處。

本質(zhì)上說(shuō)NIDS只是一種網(wǎng)絡(luò)流量的分析工具,通過(guò)對(duì)網(wǎng)絡(luò)流量的分析識(shí)別出一些已知或未知的攻擊行為,一個(gè)最簡(jiǎn)單的NIDS完成的主要工作也就是抓包->協(xié)議解碼->匹配,眾所周知PERL是極其強(qiáng)大的腳本語(yǔ)言,尤其是它的字符串處理能力可以方便地實(shí)現(xiàn)對(duì)于網(wǎng)絡(luò)流量中惡意特征進(jìn)行匹配。當(dāng)然PERL畢竟只是腳本語(yǔ)言,它的執(zhí)行效率不允許用于真正大流量生產(chǎn)性環(huán)境,但PERL的簡(jiǎn)單易學(xué)及強(qiáng)大功能對(duì)于實(shí)現(xiàn)一個(gè)簡(jiǎn)單的NIDS達(dá)到學(xué)習(xí)的目的無(wú)疑是非常好的,下面我介紹一個(gè)用PERL實(shí)現(xiàn)的簡(jiǎn)單NIDS框架,我們將在Linux下實(shí)現(xiàn)它,在其他操作系統(tǒng)上類似。

PERL的一個(gè)強(qiáng)大特性就在于它海量的CPAN模塊庫(kù),很多你想實(shí)現(xiàn)的功能都可以找到現(xiàn)成的模塊,你所要做的只是安裝上那些模塊即可,關(guān)于PERL的模塊及面向?qū)ο筇匦缘墓芾砗褪褂迷谶@就不介紹了,請(qǐng)參看相關(guān)資料,比如O'REILLY出版的《高級(jí)Perl編程》。在用PERL編寫(xiě)網(wǎng)絡(luò)流量分析腳本之前,需要安裝一些底層的抓包及基本的數(shù)據(jù)包解碼模塊,包括如下這些:
http://www.tcpdump.org/release/libpcap-0.8.1.tar.gz
底層基本的抓包庫(kù)。

http://www.cpan.org/authors/id/T/TI/TIMPOTTER/Net-Pcap-0.04.tar.gz
libpcap的PERL接口。

http://www.cpan.org/authors/id/T/TI/TIMPOTTER/Net-PcapUtils-0.01.tar.gz
Net-Pcap模塊的wrapper,包裝Net-Pcap的函數(shù),可以更方便地在PERL里調(diào)用抓包。

http://www.cpan.org/authors/id/T/TI/TIMPOTTER/NetPacket-0.03.tar.gz
用于基本的IP/TCP/UDP等包解碼的模塊,剝除各種協(xié)議頭,抽取各個(gè)字段。

下面的代碼演示了一個(gè)帶有基本SMB和FTP協(xié)議解碼模塊的最簡(jiǎn)單NIDS框架,此程序?qū)崿F(xiàn)最簡(jiǎn)單的NIDS功能,面向單包,不關(guān)心包的狀態(tài),不具備高級(jí)的商業(yè)NIDS產(chǎn)品諸如流重組,包狀態(tài)及應(yīng)用層協(xié)議的跟蹤等功能。為了提高檢測(cè)的準(zhǔn)確性,與Snort直接匹配數(shù)據(jù)區(qū)不同的是,這個(gè)腳本實(shí)現(xiàn)了兩個(gè)應(yīng)用層協(xié)議:SMB、FTP的簡(jiǎn)單解碼,解碼完全是面向NIDS的需要,代碼也沒(méi)有經(jīng)過(guò)仔細(xì)的測(cè)試可能存在問(wèn)題。

(一)perl-ids.pl 實(shí)現(xiàn)抓包及檢測(cè)分析的主程序。

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

#!/usr/bin/perl
#
# Comments/suggestions to stardust at xfocus dot org
#
#
# $Id: perl-ids.pl,v 1.16 2004/03/04 21:51:12 stardust Exp $
#
# 引用所有相關(guān)的模塊
use Net::PcapUtils;
use NetPacket::Ethernet qw(:strip);
use NetPacket::TCP;
use NetPacket::IP qw(:protos);
use NetPacket::SMB;
use NetPacket::FTP;
# 定義日志文件名
$workingdir = "./";
$attacklog = "attack.log";
$monitorlog = "monitor.log";
# 以后臺(tái)進(jìn)程方式運(yùn)行
daemon ();
sub daemon {
unless (fork) {
SniffLoop ();
exit 0;
}
exit 1;
}
# 抓包循環(huán)
sub SniffLoop {
# 進(jìn)入工作目錄
chdir ("$workingdir");
# 打開(kāi)日志文件
open (ATTACKLOG,">> $attacklog");
open (MONITORLOG,">> $monitorlog");
# 設(shè)置文件讀寫(xiě)為非緩沖模式
select(ATTACKLOG); $ ++; select(MONITORLOG); $ ++; select(STDOUT); $ ++;
# 設(shè)置信號(hào)處理函數(shù),因?yàn)槌绦蜻\(yùn)行于后臺(tái),退出時(shí)需要利用信號(hào)處理函數(shù)做些清理工作
$SIG{"INT"} = 'HandleINT';
$SIG{"TERM"} = 'HandleTERM';
# 進(jìn)入抓包回調(diào)函數(shù)
Net::PcapUtils::loop(sniffit, SNAPLEN => 1800, Promisc => 1, FILTER => 'tcp or udp', DEV => 'eth0');
}
sub sniffit {
my ($args,$header,$packet) = @_;
# 解碼IP包
$ip = NetPacket::IP->decode(eth_strip($packet));
# TCP協(xié)議
if ($ip->{proto} == IP_PROTO_TCP) {
# 解碼TCP包
$tcp = NetPacket::TCP->decode($ip->{data});
# 檢查來(lái)自SMB客戶端的包
if (($tcp->{dest_port} == 139)    ($tcp->{dest_port} == 445)) {
# 如果目的端口是139或445,認(rèn)為是SMB協(xié)議包,做相應(yīng)的檢查
SmbClientCheck ($ip->{src_ip},$tcp->{src_port},$ip->{dest_ip},$tcp->{dest_port},$tcp->{data});
} elsif ($tcp->{dest_port} == 21) {
# 如果目的端口是21,認(rèn)為是FTP協(xié)議,做相應(yīng)的檢查
FtpClientCheck ($ip->{src_ip},$tcp->{src_port},$ip->{dest_ip},$tcp->{dest_port},$tcp->{data});
} else {}
# UDP協(xié)議
} elsif ($ip->{proto} == IP_PROTO_UDP) {
} else {}
}
sub SmbClientCheck {
my ($src_ip,$src_port,$dest_ip,$dst_port,$data) = @_;
# 調(diào)用SMB解碼模塊解碼
$smb = NetPacket::SMB->decode($data);
# 如果解碼成功
if ($smb->{valid}) {
# 示例檢測(cè)新近公布eeye的那個(gè)ASN.1解碼錯(cuò)誤導(dǎo)致的堆破壞漏洞
# BID:9633,9635 CVEID:CAN-2003-0818 NSFOCUSID:6000
# 如果SMB命令是Session Setup AndX
if ($smb->{cmd} == 0x73) {
# 如果設(shè)置了Extended Security Negotiation位,表示有包里有Security Blob
if ($smb->{flags2} F2_EXTSECURINEG) {
# 用正則表達(dá)式匹配通常會(huì)在攻擊包里出現(xiàn)的OID及引發(fā)錯(cuò)誤的畸形數(shù)據(jù)串
# 由于不是從原理上檢測(cè)加之ASN.1編碼的靈活性,這樣的檢測(cè)會(huì)導(dǎo)致漏報(bào)
if (($smb->{bytecount} > 0) ($smb->{bytes} =~ m/x06x06x2bx06x01x05x05x02.*[xa1x05x23x03x03x01x07 x84xffxffxff]/)) {
# 記入日志文件
LogAlert ($src_ip,$src_port,$dest_ip,$dst_port,"ASN.1 malform encode attack!");
}
}
}
}
}
sub FtpClientCheck {
my ($src_ip,$src_port,$dest_ip,$dst_port,$data) = @_;
# 調(diào)用FTP解碼模塊解碼
$ftp = NetPacket::FTP->decode($data);
# 如果解碼成功
if ($ftp->{valid}) {
# 示例檢測(cè)新近公布的Serv-U 5.0.0.4版FTP服務(wù)器MDTM命令溢出攻擊
# BID:9751 NSFOCUSID:6078
# 遍歷從數(shù)據(jù)包里解碼出來(lái)的FTP命令及其參數(shù)
for (my $i = 1;$i = $ftp->{cmdcount};$i++) {
my $cmd = "cmd"."$i";
my $para = "para"."$i";
# 如果FTP命令是MDTM
if (uc($ftp->{$cmd}) eq "MDTM") {
# 用正則表達(dá)式匹配引發(fā)溢出的參數(shù)串,這里體現(xiàn)了正則
# 表達(dá)式的強(qiáng)大,用此匹配可以從原理上檢測(cè)到畸形參數(shù)串
if ($ftp->{$para} =~ m/d{14}[+ -]S{5,}s+S{1,}/) {
LogAlert ($src_ip,$src_port,$dest_ip,$dst_port,"Serv-U v5.0.0.4 MDTM command long timezone string overflow attack!");
}
}
}
}
}
# 記錄攻擊告警
sub LogAlert {
my ($src_ip,$src_port,$dest_ip,$dst_port,$message) = @_;
my $nowtime = localtime;
printf ATTACKLOG ("%s %s:%s -> %s:%s %s ",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);
printf ("%s %s:%s -> %s:%s %s ",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);
}
# 記錄監(jiān)控信息
sub LogMonitor {
my ($src_ip,$src_port,$dest_ip,$dst_port,$message) = @_;
my $nowtime = localtime;
printf MONITORLOG ("%s %s:%s -> %s:%s %s ",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);
printf ("%s %s:%s -> %s:%s %s ",$nowtime,$src_ip,$src_port,$dest_ip,$dst_port,$message);
}
# INT信號(hào)處理例程
sub HandleINT {
CleanUp ();
exit (0);
}
# TERM信號(hào)處理例程
sub HandleTERM {
CleanUp ();
exit (0);
}
# 清理,主要工作是關(guān)閉文件句柄
sub CleanUp {
close (ATTACKLOG); close (MONITORLOG);
}

(二)FTP.pm FTP協(xié)議解碼模塊,抽取數(shù)據(jù)包里的FTP命令及相應(yīng)的參數(shù),此文件需要拷貝到NetPacket系列模塊所在的目錄,通常是在/usr/lib/perl5/site_perl/5.x.x/NetPacket/

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

#
# NetPacket::FTP - Decode FTP packets
#
# Comments/suggestions to stardust at xfocus dot org
#
#
# $Id: FTP.pm,v 1.16 2004/03/03 l1:16:20 stardust Exp $
#
package NetPacket::FTP;
use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
use NetPacket;
my $myclass;
BEGIN {
$myclass = __PACKAGE__;
$VERSION = "0.01";
}
sub Version () { "$myclass v$VERSION" }
BEGIN {
@ISA = qw(Exporter NetPacket);
# Items to export into callers namespace by default
# (move infrequently used names to @EXPORT_OK below)
@EXPORT = qw(
);
# Other items we are prepared to export if requested
@EXPORT_OK = qw(
);
# Tags:
%EXPORT_TAGS = (
ALL => [@EXPORT, @EXPORT_OK],
);
}
#
# Decode the packet
#
# FTP協(xié)議文本參看RFC959,http://www.ietf.org/rfc/rfc0959.txt
# 常見(jiàn)的FTP命令
my @ftp_cmds = qw(ABOR ACCT ALLO APPE CDUP CWD DELE HELP LIST MKD MODE NLST
NOOP PASS PASV PORT PWD QUIT REIN REST RETR RMD RNFR RNTO
SITE SMNT STAT STOR STOU STRU SYST TYPE USER XCUP XCWD XMKD
XPWD XRMD LPRT LPSV ADAT AUTH CCC CONF ENC MIC PBSZ PROT
FEAT OPTS EPRT EPSV LANG MDTM MLSD MLST SIZE DIGT CLNT MACB
);
sub decode {
my $class = shift;
my($data) = @_;
my $self = {};
my $cmdhead = 0;
my $cmdtail = 0;
my @parts = ();
my $cmdcount = 0;
my $returnindex = 0;
my $data_len = length($data);
# 如果數(shù)據(jù)長(zhǎng)度過(guò)短則不處理
if ($data_len >= 4) {
# 一個(gè)包里的FTP命令個(gè)數(shù)
$self->{cmdcount} = 0;
# 搜索回車(chē),之前認(rèn)為是一個(gè)命令行,需要注意的是一個(gè)包里可能包含多個(gè)FTP命令
while ( (($returnindex = index ($data,"x0a",$cmdhead)) >=0)    (($returnindex 0) (($data_len - $cmdhead) >= 4))) {
# 調(diào)整一個(gè)命令行串尾指針
if ($returnindex 0) {
$cmdtail = $data_len -1;
} else {
$cmdtail = $returnindex;
}
if ((my $cmdlen = ($cmdtail - $cmdhead + 1)) >= 4) {
# 取出命令行串
my $cmdline = substr($data,$cmdhead,$cmdlen);
# 從命令行里拆分出命令名和它的參數(shù)串
if (splitcmd($cmdline,@parts)) {
$self->{cmdcount}++;
my $cmdindex = "cmd"."$self->{cmdcount}";
my $paraindex = "para"."$self->{cmdcount}";
# 記錄到要返回到主程序的對(duì)象
$self->{$cmdindex} = $parts[0];
$self->{$paraindex} = $parts[1];
}
}
# 調(diào)整命令行串頭指針
$cmdhead = $cmdtail + 1;
}
# 如果命令個(gè)數(shù)大于0,則說(shuō)明解碼是有效的
if ($self->{cmdcount} == 0) {
$self->{valid} = 0;
} else {
$self->{valid} = 1;
}
} else {
$self->{valid} = 0;
}
# 返回對(duì)象
bless($self, $class);
return $self;
}
sub splitcmd {
my ($cmdline,$parts) = @_;
# 去除行尾的回車(chē)
chomp($cmdline);
# 用正則表達(dá)式抽取出命令名字和參數(shù),既然效率不是考慮的主要問(wèn)題就“毫無(wú)顧忌”地使用正則表達(dá)式,因?yàn)榉奖?BR>if ($cmdline =~ m/^s*([a-zA-Z]{3,4})s+(.*)/) {
my $valid_cmd = 0;
# 檢查抽出來(lái)的命令名字是否是一個(gè)已知的合法FTP命令
for (my $i=0;$i@ftp_cmds;$i++) {
if ($ftp_cmds[$i] eq uc($1)) {
$valid_cmd = 1;
last;
}
}
# 如果是合法的命令則返回給調(diào)用函數(shù)
if ($valid_cmd) {
${$parts}[0] = $1;
${$parts}[1] = $2;
return 1;
} else {
return 0;
}
} else {
return 0;
}
}
#
# Module initialisation
#
1;
# autoloaded methods go after the END token ( pod) below
__END__

(三)SMB.pm 對(duì)SMB包頭結(jié)構(gòu)的簡(jiǎn)單解碼模塊,此文件需要拷貝到NetPacket系列模塊所在的目錄,通常是在/usr/lib/perl5/site_perl/5.x.x/NetPacket/

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

#
# NetPacket::SMB - Decode SMB packets
#
# Comments/suggestions to stardust at xfocus dot org
#
#
# $Id: SMB.pm,v 1.16 2004/02/23 12:25:17 stardust Exp $
#
package NetPacket::SMB;
use strict;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
use NetPacket;
my $myclass;
# SMB flags
use constant F2_LONGNAMEALLW => 0x0001;
use constant F2_EXTATTRIBUTE => 0x0002;
use constant F2_SECURITYSIGN => 0x0004;
use constant F2_LONGNAMEUSED => 0x0040;
use constant F2_EXTSECURINEG => 0x0800;
use constant F2_DONTRESOLDFS => 0x1000;
use constant F2_EXECONLYREAD => 0x2000;
use constant F2_ERRORCODTYPE => 0x4000;
use constant F2_UNICODSTRING => 0x8000;
use constant F_LOCKANDREAD => 0x01;
use constant F_RCVBUFFPOST => 0x02;
use constant F_CASESENSITV => 0x08;
use constant F_CANONICPATH => 0x10;
use constant F_OPLOCKSREQU => 0x20;
use constant F_NOTIFYONOPN => 0x40;
use constant F_REQUERESPON => 0x80;
BEGIN {
$myclass = __PACKAGE__;
$VERSION = "0.01";
}
sub Version () { "$myclass v$VERSION" }
BEGIN {
@ISA = qw(Exporter NetPacket);
# Items to export into callers namespace by default
# (move infrequently used names to @EXPORT_OK below)
@EXPORT = qw(F2_LONGNAMEALLW F2_EXTATTRIBUTE F2_SECURITYSIGN
F2_LONGNAMEUSED F2_EXTSECURINEG F2_DONTRESOLDFS
F2_EXECONLYREAD F2_ERRORCODTYPE F2_UNICODSTRING
F_LOCKANDREAD F_RCVBUFFPOST F_CASESENSITV
F_CANONICPATH F_OPLOCKSREQU F_NOTIFYONOPN
F_REQUERESPON
);
# Other items we are prepared to export if requested
@EXPORT_OK = qw(smb_strip
);
# Tags:
%EXPORT_TAGS = (
ALL => [@EXPORT, @EXPORT_OK],
strip => [qw(smb_strip)],
);
}
#
# Strip header from packet and return the data contained in it
#
undef smb_strip;
*smb_strip = strip;
# 剝除SMB頭的函數(shù)
sub strip {
my ($data) = @_;
my $smb_obj = NetPacket::SMB->decode($data);
return $smb_obj->{data};
}
#
# Decode the packet
#
sub decode {
my $class = shift;
my($data) = @_;
my $self = {};
my $data_len = 0;
my $temp = "";
$data_len = length ($data);
# 如果數(shù)據(jù)區(qū)長(zhǎng)度小于39字節(jié)(4+32+3),則認(rèn)為不是一個(gè)可解碼的SMB包
if ($data_len 39) {
$self->{valid} = 0;
} else {
# 取SMB的標(biāo)志串
my $smb_mark = substr ($data,4,4);
# 是否符合標(biāo)志串
if ($smb_mark ne "xffx53x4dx42") {
$self->{valid} = 0;
} else {
$self->{valid} = 1;
# Decode SMB packet
if (defined($data)) {
# 用PERL的unpack函數(shù)解碼32字節(jié)長(zhǎng)的SMB頭結(jié)構(gòu),頭結(jié)構(gòu)可
# 參考 http://www.cs.uml.edu/~bill/cs592/cifs.chm
# 感謝小四(scz at nsfocus dot com)對(duì)于SMB頭結(jié)構(gòu)中字段字節(jié)序的提醒
($self->{nbt_type}, $self->{nbt_flag}, $self->{nbt_len},
$self->{mark}, $self->{cmd}, $self->{status},
$self->{flags}, $self->{flags2}, $self->{ext},
$self->{ext2}, $self->{ext3}, $self->{tid},
$self->{pid}, $self->{uid}, $self->{mid},
$self->{data}) = unpack("CCna4CVCvVVVvvvva*", $data);
($self->{wordcount},$temp) = unpack("Ca*",$self->{data});
if ((36 + 1 + $self->{wordcount} * 2) = ($data_len - 2)) {
# 解碼SMB結(jié)構(gòu)下的wordcount字節(jié)及bytecount字節(jié)數(shù)據(jù)
my $wordbytes = $self->{wordcount} * 2;
($self->{wordcount},$self->{words},$self->{bytecount},$self->{bytes}) = unpack("C"."a"."$wordbytes"."va*",$self->{data});
} else {
($self->{wordcount},$self->{words}) = unpack("Ca*",$self->{data});
$self->{bytecount} = -1; $self->{bytes} = "";
}
}
}
}
# 返回對(duì)象
bless($self, $class);
return $self;
}
#
# Module initialisation
#
1;
# autoloaded methods go after the END token ( pod) below
__END__

標(biāo)簽:合肥 綏化 淮安 秦皇島 百色 周口 周口 綿陽(yáng)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《通過(guò)perl實(shí)現(xiàn)一個(gè)簡(jiǎn)單的NIDS》,本文關(guān)鍵詞  通過(guò),perl,實(shí)現(xiàn),一個(gè),簡(jiǎn)單,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《通過(guò)perl實(shí)現(xiàn)一個(gè)簡(jiǎn)單的NIDS》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于通過(guò)perl實(shí)現(xiàn)一個(gè)簡(jiǎn)單的NIDS的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成人的网站免费观看| 国产精品国产精品国产专区不蜜 | 成人一级黄色片| 欧美亚日韩国产aⅴ精品中极品| 日韩视频中午一区| 国产精品理论在线观看| 国产一区欧美日韩| 日韩欧美国产综合一区| 日韩精品成人一区二区三区| 亚洲欧美另类小说| 91久久精品一区二区二区| 欧美mv和日韩mv的网站| 日韩激情一区二区| 日韩免费观看高清完整版| 日本最新不卡在线| www欧美成人18+| 成人av中文字幕| 日日夜夜精品免费视频| 精品国产人成亚洲区| 国产69精品久久777的优势| 国产精品乱人伦一区二区| 91视频在线观看| 日本女人一区二区三区| 久久奇米777| 这里是久久伊人| 国产成人免费视频网站| 亚洲自拍偷拍网站| 久久亚洲一区二区三区明星换脸 | 久久久精品欧美丰满| 9色porny自拍视频一区二区| 亚洲一区在线电影| 国产精品麻豆欧美日韩ww| 欧美三级韩国三级日本三斤| 久久精品国产77777蜜臀| 亚洲一区欧美一区| 亚洲免费观看高清完整| 中文字幕中文乱码欧美一区二区| 精品视频免费看| 91视频xxxx| 欧美怡红院视频| 欧美视频一区二区三区在线观看| 国产一二三精品| 日本成人在线看| 麻豆91精品91久久久的内涵| a亚洲天堂av| 国产欧美精品一区aⅴ影院| 日韩免费成人网| 精品国精品国产| 精品国产免费久久| 国产亚洲污的网站| 亚洲色图欧美偷拍| 亚洲国产视频一区| 精品亚洲国内自在自线福利| 国产成人av资源| 不卡的电视剧免费网站有什么| 国产精品一卡二卡在线观看| aaa欧美日韩| 欧美一区二区日韩一区二区| 久久久久久久免费视频了| 中文字幕一区日韩精品欧美| 亚洲精品日日夜夜| 久久精品国内一区二区三区| 成人免费看片app下载| 成人黄色在线视频| 亚洲激情男女视频| 欧美精品一区二区三区蜜桃视频| 久久久久九九视频| 天天综合色天天综合| 国产成人午夜精品5599 | 玉米视频成人免费看| 毛片av一区二区| 一本久久a久久精品亚洲| 日韩一区二区三区视频| 亚洲日本电影在线| 国产大陆精品国产| 国产三级三级三级精品8ⅰ区| 日韩中文字幕不卡| 欧美在线播放高清精品| 亚洲素人一区二区| 99久久久精品免费观看国产蜜| 精品不卡在线视频| 男人的天堂亚洲一区| 欧美v国产在线一区二区三区| 肉肉av福利一精品导航| 在线不卡一区二区| 老司机免费视频一区二区三区| 欧美日韩中文精品| 欧美aaa在线| 中文字幕av不卡| 91捆绑美女网站| 亚洲女爱视频在线| 91精品黄色片免费大全| 首页欧美精品中文字幕| 91精品国产综合久久小美女| 蜜臀av性久久久久av蜜臀妖精| 日韩一区二区电影网| 国产一区二区调教| 一区二区三区免费看视频| 色综合久久天天综合网| 久久精品国产第一区二区三区| 一本在线高清不卡dvd| 欧美zozozo| 成人免费精品视频| 亚洲三级电影全部在线观看高清| 亚洲高清在线视频| 欧美极品xxx| 欧美人牲a欧美精品| 国产美女精品在线| 亚洲福利视频一区| 337p日本欧洲亚洲大胆色噜噜| 久久99蜜桃精品| 日韩国产精品久久| 亚洲精品成人少妇| 精品福利二区三区| 色婷婷综合久久久久中文一区二区| 亚洲日本在线看| 亚洲精品ww久久久久久p站| 久久久亚洲综合| 日韩精品在线看片z| 制服丝袜在线91| 日韩视频一区二区在线观看| 91黄色免费版| 91成人在线精品| 欧美日韩国产高清一区二区三区| 国产精品夜夜爽| 欧美精选在线播放| 久久se这里有精品| 亚洲高清在线视频| 日韩精品一区二区三区中文精品| 国产福利一区在线观看| 久久精品国产亚洲一区二区三区| 日韩精品每日更新| 麻豆一区二区三| 91福利国产成人精品照片| 色综合激情五月| 欧美日韩一区成人| 久久午夜色播影院免费高清| 国产目拍亚洲精品99久久精品| 中文字幕国产一区二区| 亚洲香肠在线观看| 国产一区二区在线观看免费| 91原创在线视频| 欧洲一区二区三区在线| 欧美xingq一区二区| 亚洲卡通欧美制服中文| 日韩精品成人一区二区三区| 粉嫩一区二区三区性色av| 欧美一二区视频| 亚洲午夜影视影院在线观看| 九色综合狠狠综合久久| 成人黄色大片在线观看| 欧美一区二区三区影视| 一区二区三区在线观看视频| 岛国精品在线观看| 91精品在线麻豆| 自拍偷在线精品自拍偷无码专区| 天天影视色香欲综合网老头| 成人av电影免费在线播放| 欧美一区二区三区播放老司机 | 国产精品久久久久影院| 中文字幕亚洲在| www.日韩av| 久久久久久久久99精品| 亚洲精品久久嫩草网站秘色| 亚洲一区二区欧美激情| 成人app网站| 国产精品免费视频一区| 不卡av免费在线观看| 亚洲天堂免费看| 91福利社在线观看| 亚洲久本草在线中文字幕| 成人性生交大片免费看视频在线| 亚洲精品在线观看网站| 国产寡妇亲子伦一区二区| 久久夜色精品一区| 美女视频一区二区| 国产午夜精品久久久久久久| 国产美女视频一区| 亚洲大片精品永久免费| 欧美艳星brazzers| 国产经典欧美精品| 国产精品青草综合久久久久99| 国产.欧美.日韩| 亚洲自拍与偷拍| 国产情人综合久久777777| 99精品久久99久久久久| 国产九色sp调教91| 亚洲欧美日本韩国| 国产精品麻豆网站| 欧美一区二区三区精品| jizz一区二区| 午夜视频一区在线观看| 26uuu亚洲综合色| 色妹子一区二区| 国产.欧美.日韩| 久久激五月天综合精品| 亚洲久本草在线中文字幕| 久久久久久夜精品精品免费| 日本一区二区三区高清不卡| 七七婷婷婷婷精品国产|