端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关)。端口扫描是计算机解密高手喜欢的一种方式。攻击者可以通过它了解到从哪里可探寻到攻击弱点。
端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机网络服务类型(这些网络服务均与端口号相关)。端口扫描是计算机解密高手喜欢的一种方式。攻击者可以通过它了解到从哪里可探寻到攻击弱点。实质上,端口扫描包括向每个端口发送消息,一次只发送一个消息。接收到的回应类型表示是否在使用该端口并且可由此探寻弱点。
扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种 TCP 端口的分配及提供的服务和它们的软件版本!这就能让我们间接的或直观的了解到远程主机所存在的安全问题。
简介
一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的方法很多,可以是手工进行扫描,也可以用端口扫描软件进行扫描。在手工进行扫描时,需要熟悉各种命令。对命令执行后的输出进行分析。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。以上定义只针对网络通信端口,端口扫描在某些场合还可以定义为广泛的设备端口扫描,比如某些管理软件可以动态扫描各种计算机外设端口的开放状态,并进行管理和监控,这类系统常见的如 USB 管理系统、各种外设管理系统等。
端口扫描原理
端口扫描,顾名思义,就是逐个对一段端口或指定的端口进行扫描。通过扫描结果可以知道一台计算机上都提供了哪些服务,然后就可以通过所提供的这些服务的己知漏洞就可进行攻击。其原理是当一个主机向远端一个服务器的某一个端口提出建立一个连接的请求,如果对方有此项服务,就会应答,如果对方未安装此项服务时,即使你向相应的端口发出请求,对方仍无应答,利用这个原理,如果对所有熟知端口或自己选定的某个范围内的熟知端口分别建立连接,并记录下远端服务器所给予的应答,通过查看一记录就可以知道目标服务器上都安装了哪些服务,这就是端口扫描,通过端口扫描,就可以搜集到很多关于目标主机的各种很有参考价值的信息。例如,对方是否提供 FPT 服务、WWW 服务或其它服务。
端口扫描器分类
能够进行端口扫描的软件称为端口扫描器,不同的扫描器,扫描采用的技术、扫描算法、扫描效果各不相同。根据扫描过程和结果不同,可以把端口扫描器分成几个类别。
根据扫描软件运行环境可以分为 Unix/Linux 系列扫描器、Windows 系列扫描器、其它操作系统下扫描器。其中 Unix/Linux 由于操作系统本身与网络联系紧密,使得在此系统下扫描器非常多,编制、修改容易,运行效率高,但由于其普及度不高,因此只有部分人会使用。Windows 系统普及度高,使用方便,极易学习使用,但由于其编写、移植困难而数量不太多。其它操作系统下的扫描器因为这些操作系统不普及而使在这些操作系统下运行的扫描器难以普通。
根据扫描端口的数量可以分为多端口扫描器和专一端口扫描器。多端口扫描器一般可以扫描一段端口,有的甚至能把六万多个端口都扫描一遍,这种扫描器的优点是显而易见的,它可以找到多个端口而使得找到更多的漏洞,也可以找到许多网管刻意更换的端口。而专一端口扫描器则只对某一个特定端口进行扫描,一般这一端口都是非常常见的端口,比如 21,23,80,139 等端口,给出这一端口非常具体的内容。
根据向用户提供的扫描结果可以分为只扫开关状态和扫描漏洞两种扫描器。前者一般只能扫描出对方指定的端口是“开”还是“关”,没有别的信息。这种扫描器一般作用不是太大,比如,非熟知端口即使你知道知道开或关,但由于不知道是提供什么服务而没太大的用途。而扫描漏洞扫描器一般除了告诉用户某一端口状态之外,还可以得出对方服务器版本、用户、漏洞。
根据所采用的技术可以分为一般扫描器和特殊扫描器。一般扫描器在编制过程中通过常规的系统调用完成对系统扫描,这种扫描只是网络管理员使用,因为这种扫描器在扫描过程中会花费很长时间、无法通过防火墙、在被扫描的机器的日志上留下大量被扫描的信息。而特殊扫描器则通过一些未公开的函数、系统设计漏洞或非正常调用产生一些特殊信息,这些信息使系统某些功能无法生效,但最后却使扫描程序得到正常的结果,这种系统一般主要是黑客编制。
扫描工具
扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可以不留痕迹的发现远程服务器的各种 TCP 端口的分配及提供的服务和它们的软件版本!这就能让我们间接的或直观的了解到远程主机所存在的安全问题。
其它相关
作用
扫描器并不是一个直接的攻击网络漏洞的程序,它仅仅能帮助我们发现目标机的某些内在的弱点。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主机的漏洞。但它不会提供进入一个系统的详细步骤。
扫描器应该有三项功能:发现一个主机或网络的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现漏洞的能力。
编写扫描器程序必须要很多 TCP/IP 程序编写和 C,Perl 和或 SHELL 语言的知识。需要一些 Socket 编程的背景,一种在开发客户/服务应用程序的方法。开发一个扫描器是一个雄心勃勃的项目,通常能使程序员感到很满意。