很多人可能会认为黑客入侵过程是多么紧张和刺激,知道真相后你可能套大失所望,因为黑客在整个入侵行动中,真正入侵的时间非常短,绝大部分的时间用在寻找目标,搜集目标信息等枯燥乏味的工作上,其中,寻找目标最常用的手段是网络扫描。
事实上,网络扫描技术并非黑客专用,网络管理人员同样需要精通这项技术,否则不能及时发现和修复主机潜在的漏洞,这样就套让黑客有机可乘。奉章将从网络安全管理的角度,详细介绍网络扫描和端口保护的应用。
扫描活动的主机
通常情况下,一次完整的网络安全检测有以下三个阶段:
第一步:搜寻目标主机或网络,如果主机没有连接网络,黑客就无法对其发起攻击。
第二步:发现目标后,接着搜集目标的信息,例如操作系统类型、运行哪些服务,以及所使用的服务程序版本等。
第三步:根据所收集的信息对目标主机进行分析或模拟攻击,发现潜在的安全漏洞。
从网络安全检测的流程可知,检测的第一步就是扫描活动的主机。要发现活动的主机,最简单的方法就是使用Ping命令,在实际应用中,手动PinglP地址的工作量太大了,必须使用软件来自动进行。常用的网络扫描软件都会带有扫描活动主机的功能,如Nmap、SuperScan等。
使用Nmap扫描活动的主机
Nmap是一款跨平台的开源扫描工具,支持在Linux、FreeBSD、UNIX及Windows操作系统中使用,它可以帮助系统管理员查看大型网络内有哪些主机及运行了哪些服务。Nmap的功能主要有三个:一是主机扫描,探测网络上有哪些活动的主机:二是端口扫描,检测主机提供了哪些网络服务:三是远程主机os指纹识别,探测目标主机的操作系统类型。
下面将介绍如何使用Nmap扫描活动主机的方法:
Nmap无须安装,下裁并解压缩后通过命令提示符窗口运行即可。需要注意的是,Nmap需要WinPcap的支持,如果电脑没有安装WinPcap,将会出现以下提示信息:
1.png
Nmap目录已经附带了WinPcap的安装文件,双击该文件进行安装即可,安装的过程很简单,只需依次单击“下一步”按钮即可,这里就不再赘述了。
扫描活动的主机可以使用-sP参数,注意Nmap的参数区分大小写,千万不能写成-sP或者-sp。具体格式如下
-sP参数既用于探测局域网,也用于探测Internet的主机。例如:要探测192.168.1~192+168.1.100地址段内有哪些活动的主机,则输入nmap-sP192.168,1.1-100命令。
2.png
探测完毕,nmap会列出所有活动的主机,并且显示它们的lP地址和MAC地址。从本例的探测结果来看,该网段共有7台活动主机。
使用AngrylPScanner扫描活动的主机
除了Nmap之外,用户也可以使用AngrylPScanner等程序来扫描网络内活动的主机,AngrylPScanner可以在图形界面中运行,使用比较简单,但扫描结果不及Nmap详细,只能判断主机是否活动而已。
下面以扫描221.5.88,1~221.5+88.:254网段为例,示范如何使用AngryIPScanner扫描活动主机,
方法如下:
启动AngrylPScanner后,在“IP范围”栏位输入要扫描的IP地址范围,然后单击“开始”按钮。扫描完毕,程序会显示扫描结果,8-1。
3.png
为了方便查看和使用扫描结果,可以将其导出为txt文档,单击“文件”按钮,选择“导出全部”命令,然后在弹出的对话框中选择要保存的目录,并输入文件名,最后单击“保存”按钮,8-2。
4.png
扫描主机开放了哪些端口
网络服务主要是通过相对固定的端口提供,例如80端口提供http服务、25端口提供smtp服务等(部分服务的端几可以更改)。扫描主机开放了哪些端口,就可以知道其开放了哪些服务。
扫描地址段搜寻开放特定端口的主机
使用Nmap扫描日标主机开放的端U,需要掌握以下几个参数:
-sS:这是使用频率最高的扫描选项-SYN扫描,也称半开放扫描,这种扫描方式不建立完整的TCP连接,扫描效率较高而且相对不容易被察觉。
-sT:当-sS不能用时,才使用这种扫描方式,也就是默认的TCP扫描方式。
-p:指定要扫描的端口,如果不指定端口号,Nmap默认扫描1—1024端口及nmap-services文件中所列出的端口(该文件位于Nmap下载包中)。例如扫描端口1~100可输入-pl-100;要扫描23,
25,80端口可输入-P23,25,80。
扫描某一网段内开放端口的主机时,建议只扫描特定的端口,不要扫描所有端口,否则会消耗大量的带宽,影响网络的正常使用,同时也会占用太多的时间,影响被主机正常工作。
例如:要扫描192.168.1.1~192.168.1.70网段内所有主机的前100个端口,则输入nmap-sS
192.168.1.1-70一pI-10命令O,扫描完毕,nmap就会显示所有活动主机所开放的端口
5.png
6.png
使用Nmap扫描目标主机开放的端口
除了扫描整个IP地址段的主机,还可以使用Nmap单独扫描某台丰机,检测其开放的端口。例如要使用SYN扫描方式扫描局域网内主机192.168.1.66开放的端口,端口范围为1~4000,则输入nmap-sS192.168.1,66-p1-4000命令。
7.png
使用SuperScan扫描目标主机开放的端口
除了Nmap之外,也可以使用SuperScan对目标主机进行扫描,检测其开放了哪些端口,从而推测出目标主机开放了哪些服务。SuperScan4.0具有友好的图形操作界面,比较适合普通用户使用。
使用SuperScan扫描目标主机开放端口的方法如下:
Stepl运行SuperScan4.0,然后在“主机名”栏住输入要扫描的主机,本例输入局域网内的主机lP地址,然后单击.叫按钮,将其添加到右侧的列表中,8-3。
8.png
Step2切换至“主机和服务扫描设置”选项卡,该选项卡有三项扫描任务,分别是查找主机、
UDP端口扫描和TCP端口扫描。取消选择“查找主机”复选框,然后单击UDP端口扫描区域中的
“清除所有”按钮,清除默认设置的端口,接着输入要扫描的端口范围,最后单击-.按钮将其添加到列表中,8。4。
9.png
Step3在“TCP端口扫描”区域中单击“清除所有”按钮,然后在左侧输入要扫描的端口范围,并单击按钮,将其添加到右侧的列表中,接着选择扫描的类型,建议选择SYN单选按钮,当SYN扫描不可用时,才选择“直接连接”单选按钮,8-5
10.png
11.png
Step4切换至‘‘扫描’选项卡,然后单击按钮
12.png
开始扫描,扫描所需的时间视网络状况及用户设置的
扫描项目而定,完成扫描后,画面会显示简要的扫描结果,8-6,单击“查看FrrML结果”按钮可查看详细的报告。
13.png
判断目标主机操作系统类型
无论是安全检测还是入侵,判断目标主机使用的操作系统都显得非常重要,确定目标主机的操作系统类型和版本后,就可以针对性地进行测试和分析漏洞等安全隐患。例如知道同标主机使用的是Windows2000系统,就可以检测主机是否存在Windows2000特有的漏洞。
操作系统指纹识别的原理
出于安全等因素的考虑,大多数情况下,远程主机不会轻易告知他人所使用的操作系统和服务程序,不过在Internet通信中需要使用TCP/IP协议,而TCPflP协议栈技术只在RFC文档中有描述,具体的细节并没有严格的限制。操作系统的开发者在编写自身操作系统的TCP/IP协议栈的时候,对RFC文档的诠释各不相同,达就造成了不同的操作系统在TCPfIP协议的实现上有细微的差异,通过这些差异可以判断出远程主机所使用的操作系统。
根据识别方式的差异,操作系统指纹识别分成主动协议栈指纹识别和被动协议栈指纹识别两大类。其中,主动协议栈指效识别是指向目标主机发送一些特别的数据包,根据目标主机的反应来判断其操作系统,具体的技术有FrN探测、ACK探测、重叠片段处理等。
·FIN探测:向目标主机发送一个FIN包,然后等待回应,一些系统的TCP/IP协议栈实现将返回一个Reset包。
·ACK探测;不同操作系统在ACK包序列号的选择上有差异,有些操作系统发回所确认的TCP包的序列号,另一些则发回所确认的TCP包的序列号加l。
·重叠片段处理:不同的TCP/IP协议栈实现对重叠片段的处理也有差异,有些在重组时会使用新的数据覆盖旧数据,有些则相反。
·TOS服务类型:检测ICMP端口不可到达消息的TOS字段,大多数操作系统会是0.而一则不是。
·ICMP出错消息回射完整性:一些操作系统在返回ICMP出错信息时,会修改所引用的lP头,因此检测对IP头的改动就可以粗略判断操作系统的类型。
·JCMP出错信息抑制:一些操作系统会限制ICMP出错信息的速率,通过给随机一个高端口持续发送UDP包,统计出某个时间段内接受的出错消息的数日,也可以椎断目标主机的操作系统。
主动协议栈指纹识别需要向目标主机发送数据包,这些特殊的数据包在正常的网络通信中较少出现,比较容易被察觉:而被动协议栈指纹识别从不主动发送数据包,而是被动地捕获目标主机的数据包来分析其操作系统的类型,虽然其识别的成功率和准确举不如前者,但优势在于隐蔽性好,几乎不可能被察觉。
除了前面介绍的FIN探测、ACK探测等方式之外,还有很多“指纹”可以用来判断目标主机的操作系统,扫描软件根据这些原理开发出操作系统识别功能,只需简单的操作即可探测到目标主机的操作系统类型。
使用Nmap判断主机的操作系统及服务程序
Nmap内置了多种TCPflP栈指纹识别技术,可以轻易检测出大多数主机的操作系统及服务程序。
使用Nmap的-o参数可以判断目标主机所使用的操作系统。下面将示范检测局域刚内的主机192.168.1.66,输入nmap-0192.168.1,66命令后,结果如下
14.png
除了操作系统信息之外,还可以使用-A参数,进~步获取目标主机各项服务所使用的程序信息。通过这些信息,就可以针对目标主机检测服务程序是否存在漏洞。下面同样以这台主机为例,检测的结果如下
15.png
扫描存在系统漏洞的电脑
前面介绍的搜寻活动主机及扫描主机端口,实际上是为扫描系统漏洞所做的准备,扫描系统漏洞不但是黑客必修的课程,网络管理人员更需要精通这项技能,因为只有及时发现及修补主机的安全漏洞,才能保证网络的安全。
漏洞扫描的原理
漏洞扫描主要通过两种方法来对目标主机进行检测,一是模拟黑客攻击的手法,对目标主机进行试探性攻击,例如弱口令测试。如果模拟攻击成功,则说明目标主机存在漏洞。
另一种漏洞扫描的方法是扫描目标主机开启的端口信息,然后将获得的信息与扫描程序的漏洞库数据进行匹配比较,从而获得漏洞信息。这种方法的关键在于建立可靠的漏洞库资料,即把对黑客攻击案例的分析、系统安全漏洞报告等信息建立一套标准的系统漏洞库,然后生成相应的匹配规则,由扫描程序根据规则自动进行漏洞扫描的工作。漏洞库信息的完整性和及时性真接决定了漏洞扫描的准确性。
为了便于升级维护,基于该原理的漏洞扫描软件通常使用模块化技术,即使用perl或其他脚本语言编辑插件或功能模块,扫描程序调用脚本进行漏洞扫描。
使用X-Scan扫描目标主机的漏洞
X-Scan是国内著名的综合性扫描工具,它可以使用多线程方式对单个IP或者lP地址段内的主
机进行漏洞检测,可以检测操作系统类型、IIS编码解码漏洞、远程操作系统、Snmp信息、开放服务及多种弱口令漏洞。软件支持插件功能(扫描模块),用户可以加载更多插件以增加新的漏洞扫描功能,甚至口J‘以加载部分Nessus插件。
下面以检测日标.主机是否存在FTP弱口令漏洞为例,示范X-Scan的使用方法。
Stepl启动X-Scan后,单击“设置”按钮,选择“扫描参数”命令,打开“扫描参数”对话框。
Step2单击左侧的“检测范围”项目,然后在右侧“指定lP范围”栏位输入要扫描的范围,这里既可以输入单一的IP地址,也可以输A地址段,单击旁边的“示例”按钮可以查看输入的格式,由于这次的目标已经锁定,故直接输入lP地址,8.7。
16.png
$tep3展开“全局设置”一“扫描模块”列表,然后选择要使用的模块。本例目标主机已经通过端口扫描证实开启了FTP端口,因要测试其是否存在弱口令漏洞,故选择“FTP弱口令’复选框,8-8
17.png
18.png
Step4选择“并发扫描”项目后,设置大机数量(默认为10)和最大并发线程数量(默认为100),8.9。其中,并发主机数量越大,扫描效率就越高,对本机的性能和网络要求也越高:并发线程数量越大,扫描效率也越高,但也容易造成漏报和误报
19.png
Step5选择“扫描报告”项目,可以设置报告文件的名称和格式等信息。
Step6选择“其他设置”项目,如果用户要查看扫描的进度,可选择“显示详细进度”复选框。Step7X-Scan内置的字典文件仅仅是简单的示范,其密码猜解能力非常有限,强烈建议用户设置复杂的字典。展开“插件设置”_+“字典文件设置”列表,固本倒进行FTP弱口令扫描,故双击“FTP密码字典”项目,然后在弹出的菜单中选择要使用的字典,最后单击“打开”按钮。使用同样的方法设置FTP用户名字典,8-10
20.png
21.png
Step8单击“文件”按钮,选择“开始扫描”命令后,立即执行扫描操作,扫描所需的时间视用户电脑的性能、要扫描的项目、字典的复杂程度、网络状态等因素而定。扫描完毕,会弹出一个窗口显示扫描结果,从结果可以看出,本例的主机存在一个弱口令漏洞,8-11。
、
22.png
使用Nessus对目标主机进行安全检测
Nessus是一个支持多平台的安全扫描工具,该软件免费且更新速度快,深受广大网络管理员的青睐,据说是目前世界上最多人使用的系统漏洞扫描与分析软件。
1998年,Nessus的创始人RenaudDeraison发起了一项名为Nessus的计划,曰的是为Internet社群提供‘个免费的、更迅速的系统安全扫描程序,此举得到许多网络安全弩家和系统管理员的支持,Nessus迅速发展成与ISS等商业解决方案并肩的安全扫描工具。2002年,Renaud与RonGula、
JackHuffard按同创办了TenableNetworkSecurity,并注册了nessus+org网站,存发布第一版Nessus时收同版权和封闭源代码。虽然Nessus不再是开源目但个人用户仍可以免费使用。
Nessus的优点表现在以下几个方面:
·Nessus是免费的,与商业的安全扫描工具相比,具有明显的价格优势。
·采用了基于多种安全漏洞的扫描,为网络安全人员提供完善的安全检测。
·Nessus被设计成Server/client的结构,服务器端负责进行漏洞扫描,客户端用来配置管理服务器端,灵活的架构给工作带来了方便,系统管理员可以操控远程的服务器端来完成安全扫描工作。
·Nessus的安全检查是由程序调用Plug-in插件来完成的,脚本采用NASL脚本语言或C语言编写。
Nessus的脚本更新非常及时,每当有新的安全漏洞被发现时,TenableNf:tworkSecurity会在很短时间内编写相应的检测脚本,通过在线更新功能提供给用户。此外,用户也可以在扫描器中加入自己编写的脚本。
1.安装注册Nessus
针对不同的操作系统,Nessus有不同的版本,必须下载与操作系统对应的版本,否则无法使用。由于Nessus包括服务器和客户端两部分,在Linux、FreeBSD等版本中,用户可以根据需要单独安装服务器和客户端,而Windows版本的安装包需要同时安装服务器和客户端。
Nessus的安装过程很简单,基本上只需一直单击Next按钮即可完成,这里便不再赘述。需要注意的是,首次启动NessusServerManager(服务器)时,需要输入激活码,单击Obtainanactivationcode按钮,通过访问Nessus官方网站可以免费获取激活码。其具体的操作步骤如下
Stepl在NessusServerManager对话框中单击Obtainanactivationcode按钮。
Step2在弹出的浏览器窗口中单击HomeFeed图标,然后单击IAccept按钮,接受许可协议。
Step3输入邮箱地址,然后单击Register按钮。
Step4收到Nessus官网发迟的电子邮件后,将激活码输入NessusServerManager对话框中,然后单击Register按钮,激活成功后,Nessus会自动联网升级扫描插件,所需时间可能较长,需耐心等侯,8-12
23.png
2.添加管理员账户
Nessus采用Server/client结构,用户需要创建一个管理员账户,然后才能在客户端中使用该账户登录Nessus服务器端并进行安全扫描。添加管理员账户的方法如下:
Stapl激活软件后,接下来要创建一个账户,单击ManageUsers按钮,8-13。
24.png
$tep2单击+按钮,在弹出的对话框中输入账户名和密码,然后选择Administrator复选框,最后单击Save按钮,8-14
25.png
3.创建扫描策略
在扫描2前,首先要创建一个扫描策略(即扫描方案),设置要检测哪些目,然后调用这个扫描策略对目标主机进行检测。创建扫描策略的方法如下:
Stepl通过“开始”菜单打开Nessus客户端或者直接启动IE浏览器,输八https://运行Nessus服务器端的主机的lP地址:8834即可。
Step2若出现此网站的安全证书有问题的提示,直接单击“继续浏览此网站”链接文字即可,
Step3输入账户名和密码,然后单击Login按钮。
Stfp4Nessus主界面有四个按钮,分别是Reports(报表)、Scans(扫描)、Policies(策略)和Users(用户),8-15,单击Policies按钮,然后单击Add按钮,添扫描策略
Step6这里可以配置登录服务器所需的凭证,如SMB(ServerMessageBLOCK)account、
password等,8-17,允许Nessus登录扫描目标主机上,以检查目标主机的安全配置情况。如果不需要设置凭证,直接单击Next按钮即可
26.png
Step7选择需要使用的扫描插件,Nessus将功能相关的插件归为同一类,在左侧选择插件类型后,右侧就会显示插件的明细。Nessus包含数万个插件,只需选择与目标主机相关的即可,没必要全部选择。例如本例扫描Windows主机,故选择最后面的四类。然后单击Nex按钮8-18。
27.png
Step8配置目标主机的数据库、HTTP、FTP等账号、密码信息,让Nessus执行更深入的扫描,检测更多的安奎漏洞。配置完毕,单击Submit按钮,s-19。
28.png
4.使用扫描策略检测目标主机
扫描策略创建完毕,接下来就可以新建一个扫描任务,调用该策略对目标主机进行安全检查,具体的方法如下:
Stepl单击Scans按钮,然后单击Add按钮,设置该扫描项目的名称、类型、要使用的扫描策略及扫描的目标,最后单击LaunchScan按钮,开始扫描,8-20。
29.png
Step2Nessus会根据用户设置的扫描策略,对目标主机进行各种安奎测试,扫描所需的时问可能较长,请耐心等候,8-21
30.png
Step3完成扫描后,单击Reports按钮查看扫描结果,Nessus会将结果按照危险程度标记出来,双击相应的项目,即可查看漏洞的详细介绍及解决方案,8-22
31.png
局域网扫描
局域网扫描工县可以快速探测局域网内其他电脑的信息,例如计算机名、lP地址、MAC地址、共享资源等。一些黑客攻陷网络中的某台电脑后,常常会使用这类软件扩大战果。因此,系统管理员必须对局域网扫描工具有一定的了解。
局域网扫描程序有很多,如LanSee、NetSuper等,这些软件的功能大同小异,主要咀探测局域网内的资源为主,一些软件可能会整合了网络嗅探等其他功能。下面以LanSeel.67为例,简单介绍局域网扫描软件的使用方法。
运行LanSee后,展开“搜索工具”一“搜索计算机”列表,然后单击右侧的“开始”按钮,
搜索局域网内活动的电脑。扫描结束后,就可以在列表中查看所有活动的电脑,并显示其IP地址、计算机名、工作组及MAC地址信息,8-23
32.png
默认情况下,LanSee在搜索计算机时选择了“同时搜索共享资源”复选框,在左侧单击“搜索共享资源”项目,即可查看局域网内各种共享资源,双击列表中的项日即可打开共享资源,8-24
33.png
防御黑客扫描和漏洞入侵
前面已经提到,黑客入侵通常是从端r]扫描开始,要防范黑客入侵,首先要关闭各种不必要的端口,并且使用防火墙软件进行保护,此外,还应当及时更新系统安全补丁,以免漏洞被黑客利用,本节将分别讲解这些防御手段
使用防火墙保护
防火墙的原意是指古时修于房屋之间的土墙或石墙,当发生火灾时,这堵墙可以防止火势蔓延。防火墙这一概念被引用到网络安全领域时,是指用于隔离本地网络和外界网络的一道防御体系,以保护防火墙内的网络和主机。防火墙的作用主要有以下几个方面:
·对网络通信进行检查,阻止来自Jntemet的扫描和攻击。
·关闭不使用的端口,能禁止特定端口的流出通信,阻止木马程序向外通信。
·防止Intemet,上的威胁传播到网络内部。
·控制网络访问,限定用户访问特殊的站点。
·监视Internet通信的安全,记录Internet上的活动。
从软、硬件形式上看,防火墙可分为软件防火墙和硬件防火墙及芯片级防火墙。对于数据流量较大的网络,推荐使用硬件防火墙,硬件防火墙具有很强的数据吞吐能力、防黑能力和入侵监控能力;对于中小型网络或者个人电脑,防火墙软件已经可以满足需求。
关闭不必要的端口
端口是正常网络通信必不可少的“窗口”,同时也是黑客入侵的敲门砖,开放的端口越少,暴露在黑客面前的弱点就越少。为了降低电脑安全的风险,建议网络管理员把不必要的端口全部关闭,只留正常网络服务所需的端口。
在以WindowsNT为核心的操作系统中,关闭端r|的方法并不困难,只需停止运行使用该端口进行通信的服务即可,具体的操作如下:
Stepl单击“开始”按钮,选择“控制面板”命令,打开“控制面板”窗口。
Stop2单击“性能和维护”链接文字,然后单击“管理工具”链接文字,接着腻击“服务”图标,打开“服务”窗口。
Stap3在“服务一窗口可以查看这台电脑的所有服务项目,双击要停用的服-务项目,然后在弹出的对话框中单击“停止”按钮,并在“启动类型”下拉列表中选择“已禁用”选项,最后单击“确定”按钮。
8-25
34.png
停用服务后,这项服务对应的端口便会自动关闭。通过上述操作,系统管理员就以将主机所有闲置的端口全部关闭,只保留正常网络通信的端口。
及时更新安全补丁
编写操作系统和各种服务程序是一个非常复杂的系统工程,一个没有任何缺陷的完美操作系统是不可能存在的,无论是Windows、MacOS、Linux还是以安全著称的UNIX,都存在安全漏洞。
为了防止漏洞被黑客利用,必须及时更新安全补丁。通常情况下,漏洞在被发现之后不久就会推出相应的安全补丁。
以使用Windows操作系统的主机为例,系统管理员只需做好以下几点,就能有效地减少被黑客利用漏洞入侵的机会。
·启用WindowsUpdate,以确保Windows及时获得各种更新。
·及时安装ServicePack。微软每隔一段时间就会发布一个重大补丁,称为ServicePack,主要是修补系统、软件的漏洞及一些功能的升级。
·定期对系统进行安全检测。前面介绍过使用Nessus对主机进行安全检测。在Nessus检测报告中会提供如何修补安全漏洞的信息,只要根据这些信息及时修补系统的安全漏洞即可。
本文内容所提及均为本地测试或经过目标授权同意,旨在提供教育和研究信息,内容已去除关键敏感信息和代码,以防止被恶意利用。文章内提及的漏洞均已修复,作者不鼓励或支持任何形式的非法行为。