端口扫描器的工作原理图_端口扫描器的工作原理

hacker|
239

什么是端口扫描?

一个端口就是一个潜在的通信通道,也就是一个入侵通道。对目标计算机进行端口扫描,能得到许多有用的信息。进行扫描的 *** 很多,可以是手工进行扫描,也可以用端口扫描软件进行。 在手工进行扫描时,需要熟悉各种命令。对命令执行后的输出进行分析。用扫描软件进行扫描时,许多扫描器软件都有分析数据的功能。 通过端口扫描,可以得到许多有用的信息,从而发现系统的安全漏洞。 什么是扫描器 扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器你可一不留痕迹的发现远程服务器的各种TCP端口的分配及提供的服务和它们的软件版本!这就能让我们间接的或直观的了解到远程主机所存在的安全问题。 工作原理 扫描器通过选用远程TCP/IP不同的端口的服务,并记录目标给予的回答,通过这种 *** ,可以搜集到很多关于目标主机的各种有用的信息(比如:是否能用匿名登陆!是否有可写的FTP目录,是否能用TELNET,HTTPD是用ROOT还是nobady在跑!) 扫描器能干什么 扫描器并不是一个直接的攻击 *** 漏洞的程序,它仅仅能帮助我们发现目标机的某些内在的弱点。一个好的扫描器能对它得到的数据进行分析,帮助我们查找目标主机的漏洞。但它不会提供进入一个系统的详细步骤。 扫描器应该有三项功能:发现一个主机或 *** 的能力;一旦发现一台主机,有发现什么服务正运行在这台主机上的能力;通过测试这些服务,发现漏洞的能力。 编写扫描器程序必须要很多TCP/IP程序编写和C, Perl和或SHELL语言的知识。需要一些Socket编程的背景,一种在开发客户/服务应用程序的 *** 。开发一个扫描器是一个雄心勃勃的项目,通常能使程序员感到很满意。 常用的端口扫描技术 TCP connect() 扫描 这是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。这个技术的一个更大的优点是,你不需要任何权限。系统中的任何用户都有权利使用这个调用。另一个好处就是速度。如果对每个目标端口以线性的方式,使用单独的connect()调用,那么将会花费相当长的时间,你可以通过同时打开多个套接字,从而加速扫描。使用非阻塞I/O允许你设置一个低的时间用尽周期,同时观察多个套接字。但这种 *** 的缺点是很容易被发觉,并且被过滤掉。目标计算机的logs文件会显示一连串的连接和连接是出错的服务消息,并且能很快的使它关闭。 TCP SYN扫描 这种技术通常认为是“半开放”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听态。如果收到一个SYN|ACK,则扫描程序必须再发送一个RST信号,来关闭这个连接过程。这种扫描技术的优点在于一般不会在目标计算机上留下记录。但这种 *** 的一个缺点是,必须要有root权限才能建立自己的SYN数据包。 TCP FIN 扫描 有的时候有可能SYN扫描都不够秘密。一些防火墙和包过滤器会对一些指定的端口进行监视,有的程序能检测到这些扫描。相反,FIN数据包可能会没有任何麻烦的通过。这种扫描 *** 的思想是关闭的端口会用适当的RST来回复FIN数据包。另一方面,打开的端口会忽略对FIN数据包的回复。这种 *** 和系统的实现有一定的关系。有的系统不管端口是否打开,都回复RST,这样,这种扫描 *** 就不适用了。并且这种 *** 在区分Unix和NT时,是十分有用的。 IP段扫描 这种不能算是新 *** ,只是其它技术的变化。它并不是直接发送TCP探测数据包,是将数据包分成两个较小的IP段。这样就将一个TCP头分成好几个数据包,从而过滤器就很难探测到。但必须小心。一些程序在处理这些小数据包时会有些麻烦。 TCP 反向 ident扫描 ident 协议允许(rfc1413)看到通过TCP连接的任何进程的拥有者的用户名,即使这个连接不是由这个进程开始的。因此你能,举

什么是端口探查

就是扫描一下端口。

端口扫描的原理就是通过往某一个IP发送制定的 *** 信息

设置的端口数目

比如 1-8000端口 发送数据

返回正常代表端口存在。

在 *** 技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他 *** 设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里将要介绍的就是逻辑意义上的端口。

端口扫描原理

"端口扫描"通常指用同一信息对目标计算机的所有所需扫描的端口进行发送,然后根据返回端口状态来分析目标计算机的端口是否打开、是否可用。"端口扫描"行为的­一个重要特征是:在短时期内有很多来自相同的信源地址传向不同的目的地端口的包。

对于用端口扫描进行攻击的人来说,攻击者总是可以做到在获得扫描结果的同时,使自己很难被发现或者说很难被逆向跟踪。为了隐藏攻击,攻击者可以慢慢地进行扫描。­除非目标系统通常闲着(这样对一个没有listen端口的数据包都会引起管理员的注意),有很大时间间隔的端口扫描是很难被识别的。隐藏源地址的 *** 是发送大量­的欺骗性的端口扫描包(1000个),其中只有一个是从真正的源地址来的。这样,即使全部包(1000)都被察觉,被记录下来,也没有人知道哪个是真正的信源地­址。能发现的仅仅是"曾经被扫描过"。也正因为这样那些黑客们才乐此不彼地继续大量使用这种端口扫描技术来达到他们获取目标计算机信息、并进行恶意攻击。

通常进行端口扫描的工具目前主要采用的是端口扫描软件,也通称之为"端口扫描器",端口扫描可以为提供三个用途:

(1)识别目标系统上正在运行的TCP协议和UDP协议服务。

(2)识别目标系统的操作系统类型(Windows 9x, Windows

NT,或UNIX,等)。

(3)识别某个应用程序或某个特定服务的版本号。

端口扫描器是一种自动检测远程或本地计算机安全性弱点的程序,通过使用扫描器你可不留痕迹的发现远程服务器的各种TCP协议端口的分配及提供的服务,还可以得知­它们所使用的软件版本!这就能让间接的了解到远程计算机所存在的安全问题。

端口扫描器通过选用远程TCP/IP协议不同的端口的服务,记录目标计算机端口给予的回答的 *** ,可以搜集到很多关于目标计算机的各种有用信息(比如:是否有端­口在侦听?是否允许匿名登陆?是否有可写的FTP目录,是否能用TELNET等。

端口扫描器并不是一个直接攻击 *** 漏洞的程序,它仅仅能帮助发现目标机的某些内在的弱点。一个好的扫描器还能对它得到的数据进行分析,帮助查找目标计算机的漏洞­。但它不会提供一个系统的详细步骤。

端口扫描器在扫描过程中主要具有以下三个方面的能力:

(1) 发现一个计算机或 *** 的能力;

(2)

一旦发现一台计算机,就有发现目标计算机正在运行什么服务的能力;

(3)

通过测试目标计算机上的这些服务,发现存在的漏洞的能力。

编写扫描器程序必须要很多TCP/IP协议程序编写和C,Perl和或SHELL语言的知识。需要一些Socket编程的背景,一种在开发客户/服务应 端口服务。)。

端口扫描原理及工具 - 安全工具篇

"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口。端口可分为虚拟端口和物理端口,其中虚拟端口指计算机内部端口,不可见。例如计算机中的80端口、21端口、23端口等。

一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、 *** TP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的 *** 服务呢?显然不能只靠IP地址,因为IP 地址与 *** 服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区分不同的服务的。

因此,一个开放的端口代表一个提供的服务,不同的服务具有不同的端口号, 因此要对服务进行测试,首先要确定是否开放对应端口号 。

TCP端口和UDP端口。由于TCP和UDP 两个协议是独立的,因此各自的端口号也相互独立,比如TCP有235端口,UDP也 可以有235端口,两者并不冲突。

1、周知端口

周知端口是众所周知的端口号,范围从0到1023,其中80端口分配给WWW服务,21端口分配给FTP服务等。我们在IE的地址栏里输入一个网址的时候是不必指定端口号的,因为在默认情况下WWW服务的端口是“80”。

2、动态端口

动态端口的范围是从49152到65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。

3、注册端口

端口1024到49151,分配给用户进程或应用程序。这些进程主要是用户安装的程序。

1、使用Nmap工具查找ip的tcp端口

-O :获取操作系统版本信息

2、使用Nmap工具查找udp端口

-sU :表示udp scan , udp端口扫描

-Pn :不对目标进行ping探测(不判断主机是否在线)(直接扫描端口)

对于udp端口扫描比较慢,扫描完6万多个端口需要20分钟左右

3、使用Nmap工具获取端口Banner

只会返回有Banner信息的,没有则不会返回。

4、使用Nmap嗅探服务版本信息

如果没有返回banner信息的,也可以使用该 *** 尝试嗅探服务版本信息。

5、利用nmap对目标进行完整测试

在针对内容测试时,有授权的情况下,可以利用nmap对目标进行完整测试

端口扫描的目的

端口扫描的目的是扫描大范围的主机连接一系列的TCP端口,判断主机开放了哪些服务,这些开放的端口往往与一定的服务相对应,通过这些开放的端口,就能了解主机运行的服务,然后就可以进一步整理和分析这些服务可能存在的漏洞,随后采取针对性的攻击。

端口扫描是指某些别有用心的人发送一组端口扫描消息,试图以此侵入某台计算机,并了解其提供的计算机 *** 服务类型(这些 *** 服务均与端口号相关)。端口扫描是计算机解密高手喜欢的一种方式。攻击者可以通过它了解到从哪里可探寻到攻击弱点。实质上,端口扫描包括向每个端口发送消息,一次只发送一个消息。接收到的回应类型表示是否在使用该端口并且可由此探寻弱点。

端口扫描原理

端口扫描,顾名思义,就是逐个对一段端口或指定的端口进行扫描。通过扫描结果可以知道一台计算机上都提供了哪些服务,然后就可以通过所提供的这些服务的己知漏洞就可进行攻击。其原理是当一个主机向远端一个服务器的某一个端口提出建立一个连接的请求,如果对方有此项服务,就会应答,如果对方未安装此项服务时,即使你向相应的端口发出请求,对方仍无应答,利用这个原理。

黑客常用的扫描器是怎样的存在?

在Internet安全领域,扫描器是常用攻击工具之一。许多 *** 入侵是从扫描开始的。利用扫描器能够找出目标主机的各种安全漏洞,尽管其中的一些漏洞早已公布于众,但在许多系统中仍然存在,于是给了外部入侵以可乘之机。

扫描器是一种自动检测远程或本地主机安全性弱点的程序,通过使用扫描器,我们可以自动发现系统的安全缺陷。不同的扫描器检查不同的安全漏洞,但一般来说归结为两种类型:

主机系统扫描器;

*** 扫描器。

主机系统扫描器用来扫描查找本地主机的安全漏洞,这些漏洞经常是错误的文件权限配置和默认帐号。主机系统扫描器的最常见工具是COPS(Computer Oracle and Password System) ,它是用来检查UNIX系统的常见安全配置问题和系统缺陷。 *** 扫描器是通过检查可用的端口号和服务,查找远程攻击者所能利用的安全缺陷。SATAN(System Administrator’s Tool for Analyzing Networks)是一个著名的 *** 扫描器,它可以用来发现以下方面的漏洞:

文件传输协议漏洞;

*** 文件系统漏洞;

*** 信息服务口令漏洞;

远程shell访问漏洞;

Sendmail漏洞漏洞;

普通文件传输协议漏洞;

X服务器安全和访问控制。

另外,还有SAINT、ISS 、NESSUS、NMAP 等有名的 *** 扫描器。由于 *** 系统中有新的漏洞出现,所以扫描器要不断地更新的检查漏洞库或检查程序。

工作原理

尽管从技术的角度来看,主机系统扫描器和 *** 扫描器不尽同,但是它们具有共同的特征。其中,就是扫描器的检测机制。大多数扫描器按上图所示的工作流程工作。

以 *** 扫描器为例,我们分析扫描器的工作原理。 *** 扫描器是通过连接远程TCP/IP不同的端口的服务,并记录目标给予的回答,就可以搜集到很多关于目标主机的各种有用的信息(如是否能用匿名登录访问FTP服务,是否有可写的FTP目录,是否能用Telnet,HTTPD是用Root还是普通用户在运行)。

当目标主机运行的是Unix操作系统时,通常提供了较多的服务。可以对该主机的端口扫描一遍,检测它提供了哪些服务。例如,扫描主机192.168.0.68的10到100之间的端口,结果如下:

$portscan 192.168.0.68 10 100

192.168.0.68 21 accepted

192.168.0.68 23 accepted

192.168.0.68 25 accepted

192.168.0.68 80 accepted

可以看出,主机192.168.0.68在21、23、25和80这些端口都提供服务。对于1024以下的端口,端口号与服务的对应是固定的。例如:

21对应的是FTP服务

23对应的是telnet服务

25对应的是mail服务

80对应的是Web服务

在Unix系统中,还有一些可以扫描某些特定服务的工具,用于观察某一特定服务进程是否正在远程主机上运行。例如,rusers和finger,这两个都是Unix命令。通过这两个命令,你能收集到目标计算机上的有关用户的消息。使用rusers命令,产生的结果如下示意:

wh yjb.dcs:ttyp1 Nov 13 15:42 7:30 (remote)

root yjb.dcs:ttyp2 Nov 13 14:57 7:21 (remote)

显示了通过远程登录的用户名,还包括上次登录时间、使用的Shell类型等信息。使用finger可以产生类似下面的结果:

user S00 PPP ppp-122-pm1.wiza Thu Nov 14 21:29:30 - still logged in

user S15 PPP ppp-119-pm1.wiza Thu Nov 14 22:16:35 - still logged in

user S04 PPP ppp-121-pm1.wiza Fri Nov 15 00:03:22 - still logged in

user S03 PPP ppp-112-pm1.wiza Thu Nov 14 22:20:23 - still logged in

这个命令能显示用户的状态。该命令是建立在客户/服务模型之上的。用户通过客户端软件向服务器请求信息,然后解释这些信息,提供给用户。在服务器上需要运行fingerd程序,根据服务器的配置,能向客户提供某些信息。若考虑到保护这些个人信息,有可能许多服务器不提供这个服务,或者只提供一些无关的信息。

对于一个功能较完备的扫描器,它能对操作系统与服务程序存在的各种系统漏洞和Bug进行检测。为了实现该项功能,需要检查各个系统配置文件,例如,

/etc/passwd 口令文件

/etc/hosts 主机列表文件

/etc/networks *** 列表文件

/etc/protocols 协议列表文件

/etc/services 服务列表文件

/etc/hosts.equiv 主机信任列表文件

比较成熟的扫描器,如SATAN,Nessus,ISS等,都能对这些配置文件进行细致的检测,并给出完整的报告和建议。

0条大神的评论

发表评论