nsfocus-笔试题

1.描述sendmail原理及通讯机制

  sendmail程序接受到待发邮件后,通过关键字@判断邮件的格式是否符合要求,匹配成功后提取邮件后缀域名信息并查询DNS数据库相关MX(邮件专用)记录,若有匹配信息多于一条,选择优先级更高的主机IP进行投递,如果没有查询到相关域名的MX记录则尝试与其根域名(163.com)25端口通讯并投递邮件,成功连接则投递信件,失败则将邮件打包退还发件者。

2.A,B,C三类的私有IP地址范围

  A:10.0.0.0 ~ 10.255.255.255

  B:172.16.0.0 ~ 172.31.255.255

  C:192.168.0.0 ~ 192.168.255.255

3.主流的防病毒厂商和产品(国内,外各三个)

  国外:Mcafee,AVAST,BitDefender,Kaspersky,ESET Nod32,Symantec,AVIRA(小红伞),Dr.web

  网内:金山,江民,微点,瑞星,360,VRV背信源,安铁诺,可牛,超级巡警

  Mcafee:Intel antivirus software,迈克菲。

  AVAST:avast是一款来自捷克的杀毒软件,已有数十年的历史,avast在国外市场一直处于领先地位avast分为家庭版、商业版、手机版以及专为Linux和Mac设计的版本等等众多版本。avast的实时监控功能十分强大,免费版的avast杀毒软件拥有八大防护模块:文件系统防护、网页防护、邮件防护、网络防护、P2P防护、即时消息防护、行为防护、脚本防护。免费版的需要每年注册一次,注册是免费的!

  BitDefender:BitDefender(中文名:比特梵德,简称BD)是来自罗马尼亚的老牌杀毒软件,拥有超大病毒库,防病毒引擎被业界公认领先,独有游戏免打扰模式,TopTenREVIEWS网站全球杀毒软件评比排名第一!用户遍及100多个国家和地区,以小于4小时的新病毒响应时间在众多防病毒软件中独占鳌头。

  Kaspersky:卡巴斯基

  ESET Nod32:ESET这一名称最早来源于埃及神话中的女神Isis。

Isis又称作Aset或Eset,是地神Geb和天神Nut的女儿,是主管爱情和富庶的女神,也是负责治疗和魔力的女神。ESET在英文中可以理解为Essential Solution Against Evolving Threats(针对病毒进化而必备的解决方案)。
ESET成立于1992年,是一家面向企业与个人用户的全球性的计算机安全软件提供商。开发总部在斯洛伐克的Bratislava,销售总部在美国西海岸的圣迭戈。其获奖产品——NOD32防病毒软件系统,能够针对各种已知或未知病毒、间谍软件(spyware)、rootkits和其他恶意软件为计算机系统提供实时保护。ESET NOD32占用系统资源少,侦测速度快,可以提供有效的保护,获得了最多的Virus Bulletin100%奖项。
  Symantec:诺顿,防病毒软件
  Avira AntiVir:是一套由德国的Avira公司所开发的杀毒软件。Avira 除了商业版本外,还有免费的个人版本。它的接口没有如此的华丽,也没有耍噱头而无用的多余项目。是一款知名的免费杀毒软件,用户超过七千万,它改写许多人“免费杀毒软件就一定比较差”的观念,在系统扫描、即时防护、自动更新等方面,表现都不输给知名的付费杀毒软件,甚至比部分商业杀毒软件还要高,因此成为许多用户挑选杀毒软件的首选。采用高效的启发式扫描,可以检测70%的未知病毒。在专业测试中是所有免费且是自主杀毒引擎的防病毒软件中,侦测率最高的。一些知名的杀毒软件像360,QQ电脑管家等也采用小红伞的引擎!
  Dr.web:大蜘蛛,来自俄罗斯安全软件品牌,最初在1992年由俄罗斯国家科学院开发,2003年之后由俄罗斯Doctor Web有限公司开发及发行,大蜘蛛一直都受到俄罗斯军方、俄罗斯国会、俄罗斯总统办公室、克里姆林宫俄罗斯其他安全部门以及全球数以万计的消费者及商业用户、企业用户的青睐及认可,同时大蜘蛛也是俄罗斯国防部唯一指定使用的安全产品,并同时为国家多个机密部门和安全部门提供安全保护工作。因为不以商业而以技术和实用性为主的理念,所以大蜘蛛在各种安全软件评测中排名并不很靠前,甚至经常不参与评测,但是实际论查杀能力和防御能力却是世界一流水准。并且其杀毒引擎在世界上非常优秀,处于顶尖引擎的位置。

4.使用过的主流漏扫产品,其优缺点

   nessus:漏洞扫描器提供几个重要的扫描特性,比如高速发现、资产概况和漏洞分析。

   Nmap:是一个用于网络检测或安全审计的免费开源工具。

  SAINT:漏洞扫描器只提供集成漏洞评估和渗透测试工具。

  metasploit:Metasploit Project 是已经催生了大量工具的一系列项目的总和,这些工具用途广泛,几乎可以完成从击败法规约束到躲避对其最著名软件 —— Metasploit Framework —— 的探测的任何任务。Metasploit 的设计初衷并不是作为一个黑客工具,尽管它听起来就像是一个黑客工具。实际上,这个工具的主要目标是研究安全性。但是,就像这种类型的其他工具一样,它的用途取决于使用者。记住,“权力越大,责任越大”,因此,请小心使用

  ps:

什么是漏洞扫描器?

简言之,漏洞扫描器 是专门设计用于查找和暴露应用程序和操作系统中的弱点的软件。每个扫描器可能都有自己的扫描和探测方法,但它们的结果都大同小异:报告所发现的问题或输出信息。

  本地漏洞扫描器 host scaner有:COPS,tripewire,tiger只能扫描本地存在的漏洞。

  网络漏洞扫描器:nsfocus的极光远程安全评估系统,优点:硬件设备,扫描不占系统资源,快速高效准确。缺点:付费产品且较贵。

漏洞扫描过程可以划分为一系列步骤,每个步骤都是查找应用程序或操作系统中的弱点所需的关键任务:

  1. 向扫描软件提供活动系统的主机名和 IP。这样,扫描器可以发现开放端口、响应的服务和当前可能正在系统上运行的任意应用程序。
  2. 扫描器生成一个报告,告知您所发现的问题。如果扫描器在这个步骤就结束,它提供的信息也许不太具有操作性并需要更多研究。使用其它扫描器,这个步骤可能只显示端口、服务和正在运行的应用程序,以便软件继续进行下一步。
  3. 扫描软件针对第 2 步中发现的端口和服务运行探测,目标是显示关于补丁级别、软件修改或任意潜在缺陷的信息。现代漏洞扫描器包含一些插件,它们设计用于在新的漏洞出现时发现它们。因此,也许今天运行扫描器没有发现问题,那么明天执行更新后可能就会发现问题。
  4. 这个扫描器可能试图研究漏洞(如果支持该特性),但这取决于扫描器的先进程度。事实上,某些现代扫描器可以在这个步骤配置它们的攻击程度,以免扫描器的攻击性太强,以至于在扫描过程中导致系统崩溃(它们具有这种能力,而且这种情况也发生过)。

5.经常访问的国内外的网络安全方面的网址

  www.nsfocus.com

  forum.eviloctal.com

  www.xfocus.net

  www.hackline.net

  www.chinacissp.com

6.tcp和udp的区别 

TCP使用窗口机制进行流量控制
什么是窗口?

连接建立时,各端分配一块缓冲区用来存储接收的数据,并将缓冲区的尺寸发送给另一端

接收方发送的确认信息中包含了自己剩余的缓冲区尺寸

剩余缓冲区空间的数量叫做窗口

tcp建立需要三次握手,断开需要四次挥手。包头结构:

源端口 16位
目标端口 16位
序列号 32位
回应序号 32位
TCP头长度 4位
reserved 6位
控制代码 6位
窗口大小 16位
偏移量 16位
校验和 16位
选项  32位(可选)
这样我们得出了TCP包头的最小长度,为20字节。

udp 用户数据包协议

(1) UDP是一个非连接的协议,传输数据之前源端和终端不建立连接,当它想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
(2) 由于传输数据不建立连接,因此也就不需要维护连接状态,包括收发状态等,因此一台服务机可同时向多个客户机传输相同的消息。
(3) UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销很小。
(4) 吞吐量不受拥挤控制算法的调节,只受应用软件生成数据的速率、传输带宽、源端和终端主机性能的限制。
(5)UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的链接状态表(这里面有许多参数)。
(6)UDP是面向报文的。发送方的UDP对应用程序交下来的报文,在添加首部后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界,因此,应用程序需要选择合适的报文大小。
我们经常使用“ping”命令来测试两台主机之间TCP/IP通信是否正常,其实“ping”命令的原理就是向对方主机发送UDP数据包,然后对方主机确认收到数据包,如果数据包是否到达的消息及时反馈回来,那么网络就是通的。
UDP的包头结构:
源端口 16位
目的端口 16位
长度 16位
校验和 16位

区别
      TCP UDP
是否连接 面向连接 面向非连接
传输可靠性 可靠   不可靠
应用场合 传输大量数据 少量数据
系统资源 多      少
结构   复杂    简单
数据正确性 有序    无序
速度   慢       快

7.防火墙的三种技术 
 1).应用代理技术
  2).电路层网关技术
  3).自适应代理技术
8.使用linux的安全风险有哪些?
  多用户系统带来的账户及权限安全。包括多用户带来的账户权限,文件归属管理的难度。linux自身安全及上端应用程序所面临的威胁。未经过专业人员安全加固过的厨师linux系统在攻击者面前,显得很脆弱,运行在上端的开源程序有着跟新维护不及时,存在漏洞的情况。系统自身服务安全性,运行在linux上的默认服务有着相互依存,安全设置有相互独立的现象,对于广大普通用户来说,根本无法制定出适合且有效的安全策略。
9.主流的防火墙厂商和产品
国外:1.checkpoint firewall-1
   2.Cisco cisco pix
   3.Netscreen netscreen
国内:1.360 360安全卫士
   2.联想 网御
3.天融信 网络卫士
4.中网 黑客愁
10.使用select查询语句的不安全之出在哪?

例如db_datareader,它授予对数据库里面所有对象的select权限。虽然你可以用db_datareader角色授予select权限,然后有选择地对个别用户或组拒绝select权限,但使用这种方法时,你可能忘记为某个用户或者对象设置权限
11.实现纯文本操作
  要求:程序可新建文件,打开文件,查看文件,在某一行插入文件,删除某行的文字,运行时的显示菜单。提示用户选择操作或退出操作,输入文件名,行号或文字,选择退出,程序结束,否则完成后应返回菜单继续。
  
/**
 *            File name               :file.c
 *            Author                  :kangkangliang
 *            File desc               :file operator
 *            Mail                    :liangkangkang@yahoo.com
 *            Create time             :2016-09-19
 */

/**
 *                     headfile
 */
#include <stdio.h>
#include <stdlib.h>


void show()
{

	printf("------------------\n");
	printf("1.show line code\n");
	printf("2.insert line code\n");
	printf("3.delete line code\n");
	printf("4.show all line code\n");
	printf("0.exit\n");
	printf("------------------\n");
}

void printLine(FILE *fp ,int line)
{
	int		count = 0;
	char	buf[1024];

	// read line
	while(!feof(fp)){
		if(count == line){
			fgets(buf,1024,fp);
			printf("%d %s\n", line,buf);
			break;
		}
		if(fgets(buf,1024,fp) != NULL)
			++count;
		else if(fgets(buf,1024,fp) == NULL && count < line){
			printf("your line too big over file line number");
			break;
		}
	}
}

void insertLine(FILE *fp,int line,char *buf)
{
	int		count = 0;

	// 保证在行的范围内
	// read line
	while(!feof(fp)){
		if(count == line){
			fprintf(fp, "%s\n", buf);
			break;
		}
		if(fgets(buf,1024,fp) != NULL)
			++count;
	}
}

void deleteLine(FILE *fp,int line)
{
/*
*   一、最简单的办法,建议读到链表里,删除其中一个节点。然后再覆盖写回到文件。
	二、找到要删除的位置,fseek到该位置,将之后需要保留的文件内容,从这里开始写。
	三、利用内存映射,将文件映射到内存,直接对内存修改,但是对内存修改,也是需要类似于方法2,将需要保留的内容重新移动位置。
*/
	int		count = 0;
	char	buf[1024];

	// 保证在行的范围内
	// read line
	while(!feof(fp)){
		if(count == line){
			break;
		}
		if(fgets(buf,1024,fp) != NULL)
			++count;
	}

}


void showAll(FILE *fp)
{
	char	buf[1024];
	int		count = 0;
	while(!feof(fp)){
		count++;
		fgets(buf,1024,fp);
		printf("%d %s",count, buf);
	}
}

/**
 *                    main function
 */
int
main(int argc,char **argv)
{

	char file_name[10];
	printf("please input filename:\n");
	scanf("%s",file_name);

	FILE *fp;

	if((fp = fopen(file_name,"rw")) == NULL){
		printf("open file error\n");
		exit(-1);
	}

	int		code;
	int		line;
	char	buf[1024];
	while(1){
		fseek(fp,0,0);
          // rewind(fp);  // 把文件内部的位置指针移到文件开头的地方,该函数没有返回值 show(); printf("input operateor code:"); scanf("%d",&code); if(0 == code) break; switch(code){ case(1): { printf("input line number:"); scanf("%d",&line); if(line <= 0){ printf("your line invalid\n"); break; } printLine(fp,line); break; } case(2): { printf("input line context:"); scanf("%s",buf); insertLine(fp,line,buf); break; } case(3):    { printf("input delete line number:"); scanf("%d",&line); deleteLine(fp,line); break; } case(4): { showAll(fp); break; } default: printf("input error\n"); break; } } return 0; }

  12.linuxshell 实现

  假设主机没有防火墙,该主机ip地址由命令带人,判断主机哪些端口开放,并将结果输入到文件中

  使用netstat命令,就可以解决这个问题

# netstat -tln

 netstat -tln 命令是用来查看linux的端口使用情况 

  /etc/init.d/vsftp start 是用来启动ftp端口~!
  看文件/etc/services
  netstat
  查看已经连接的服务端口(ESTABLISHED)
  netstat -a
  查看所有的服务端口(LISTEN,ESTABLISHED)
  sudo netstat -ap
  查看所有的服务端口并显示对应的服务程序名
  nmap <扫描类型><扫描参数>

13.139端口和445端口
139端口: NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows"文件和打印机共享"和SAMBA。在Internet上共享自己的硬盘是可能是最常见的问题。 
445端口:445端口是一个毁誉参半的端口,他和139端口一起是IPC$入侵的主要通道。有了它我们可以在局域网中轻松访问各种共享文件夹或共享打印机,但也正是因为有了它,黑客们才有了可乘之机,他们能通过该端口偷偷共享你的硬盘,甚至会在悄无声息中将你的硬盘格式化掉!我们所能做的就是想办法不让黑客有机可乘,封堵住445端口漏洞。
15.Cisco中哪个命令可以让登陆密码是明文显示
  service password xxxxx

 16.指定ping数据包的大小

  默认是4个数据包,我们可以通过-n来指定:ping baidu.com -n 100 

 17.ACL列表number分别支持的协议

  1-99 基于IP的标准访问控制列表
  100-199 基于IP的扩展访问控制列表
  200-299 基于协议类型码的访问控制列表

  18.列举Unix,Linux,FreeBSD各个版本的历史发行版本

  Unix:V1,V4,V6,V7

  著名,流行的Linux发行版本:Red hat Centos SUSE,Debian,GNU/Linux,Ubuntu,Fedora

  FreeBSD:1.x 从386BSD0.1发展而来,2.x版从4.4BSD lite而来。

 19.名词解释

  Ddos:(Distirbuted Denial of service)分布式拒绝服务

  Worm:蠕虫,网络传播类计算机恶意代码

  IP Spoof:IP欺骗,伪装成可信任的IP地址,对目标实施信息欺骗以达到目的。

  SYN Flood:SYN洪水攻击,拒绝服务攻击的一种。通过大量伪造TCP三次握手中的SYN包达到对目标拒绝服务攻击的目的。

  Brute Attack:强力攻击

  Social Engineering:社会工程学,通过非技术的其他任意手段达到最终的目的

  Honeybot:蜜罐系统,通常指通过对不设防的虚拟主机(蜜罐)进行监控,达到追踪攻击者(蜜蜂)的目的

  ShellCode:溢出代码,通常指能对某系统溢出漏洞获取特定权限的指针位代码

  20.网络安全的标准

  iso9000:ISO9000质量管理体系是企业发展与成长之根本,ISO9000不是指一个标准,而是一类标准的统称。是由TC176(TC176指质量管理体系技术委员会)制定的所有国际标准,是ISO12000多个标准中最畅销、最普遍的产品。

  BS7799:BS 7799(ISO/IEC17799):即国际信息安全管理标准体系,2000年12月,国际标准化组织ISO正式发布了有关信息安全的国际标准ISO17799,这个标准包括信息系统安全管理和安全认证两大部分,是参照英国国家标准BS7799而来的。

  sql注入:

所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。[1]  比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击. 20.数据库的漏洞如何挖掘

原理

SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。
根据相关技术原理,SQL注入可以分为平台层注入和代码层注入。前者由不安全的数据库配置或数据库平台的漏洞所致;后者主要是由于程序员对输入未进行细致地过滤,从而执行了非法的数据查询。基于此,SQL注入的产生原因通常表现在以下几方面:①不当的类型处理;②不安全的数据库配置;③不合理的查询集处理;④不当的错误处理;⑤转义字符处理不合适;⑥多个提交处理不当。

攻击

当应用程序使用输入内容来构造动态sql语句以访问数据库时,会发生sql注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生sql注入。sql注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可以通过测试工具pangolin进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态sql命令,或者作为存储过程的输入参数,这些表单特别容易受到sql注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是sql注入就发生了。
 
防护
归纳一下,主要有以下几点:
1.永远不要信任用户的输入。对用户的输入进行校验,可以通过正则表达式,或限制长度;对单引号和
双"-"进行转换等。
2.永远不要使用动态拼装sql,可以使用参数化的sql或者直接使用存储过程进行数据查询存取。
3.永远不要使用管理员权限的数据库连接,为每个应用使用单独的权限有限的数据库连接。
4.不要把机密信息直接存放,加密或者hash掉密码和敏感的信息。
5.应用的异常信息应该给出尽可能少的提示,最好使用自定义的错误信息对原始错误信息进行包装
6.sql注入的检测方法一般采取辅助软件或网站平台来检测,软件一般采用sql注入检测工具jsky,网站平台就有亿思网站安全平台检测工具。MDCSOFT SCAN等。采用MDCSOFT-IPS可以有效的防御SQL注入,XSS攻击等

  21.一次典型的网络攻击分为几个阶段,每个阶段采用什么技术

  攻击的基本步骤:搜集信息 实施入侵 上传程序、下载数据 利用一些方法来保持访问,如后门、特洛伊木马 隐藏踪迹 【 信息搜集 】  在攻击者对特定的网络资源进行攻击以前,他们需要了解将要攻击的环境,这需要搜集汇总各种与目标系统相关的信息,包括机器数目、类型、操作系统等等。踩点和扫描的目的都是进行信息的搜集。 

  攻击者搜集目标信息一般采用7个基本步骤,每一步均有可利用的工具,攻击者使用它们得到攻击目标所需要的信息。找到初始信息 找到网络的地址范围 找到活动的机器 找到开放端口和入口点 弄清操作系统 弄清每个端口运行的是哪种服务 画出网络图

22.知道的扫描器有哪些?

  Retina:Retina是eEye公司(www.eeye.com)的产品,强大的网络漏洞检测技术可以有效的检测并修复各种安全隐患和漏洞,并且生成详细的安全检测报告,兼容各种主流操作系统、防火墙、路由器等各种网络设备。曾在国外的安全评估软件的评测中名列第一。

  iss:(internet security scanner)ISS公司开发和维护的商业漏洞扫描程序,它的可移植性和灵活性很强,众多的UNIX的平台上都可以运行ISS。

  22.动态路由和静态路由

静态路由
  是在路由器中设置的固定的路由表。除非网络管理员干预,否则静态路由不会发生变化由于静态路由不能对网络的改变作出反映,一般用于网络规模不大、拓扑结构固定的网络中。静态路由的优点是简单、高效、可靠。在所有的路由中,静态路由优先级最高。当动态路由与静态路由发生冲突时,以静态路由为准

动态路由
  是网络中的路由器之间相互通信,传递路由信息,利用收到的路由信息更新路由器表的过程。它能实时地适应网络结构的变化。如果路由更新信息表明发生了网络变化,路由选择软件就会重新计算路由,并发出新的路由更新信息。这些信息通过各个网络,引起各路由器重新启动其路由算法,并更新各自的路由表以动态地反映网络拓扑变化。动态路由适用于网络规模大、网络拓扑复杂的网络

 

posted @ 2016-09-18 22:19  encourage  阅读(880)  评论(0编辑  收藏  举报