
抗D云WAF
下一代Web类业务DDoS防御服务,自研云甲DDoS清洗系统,DDoS清洗中心覆盖全球主要国家,千万级CC攻击防御能力,让您的业务固若金汤。

云御游戏盾
专为在线游戏打造的终极DDoS防御服务,多种DDoS清洗算法和规则,端云联动,无损清洗DDoS攻击,Anycast近源清洗和加速网络保障游戏丝滑流畅。
上篇文章中,我们针对“网络通信原理”做了详细描述,在通信原理里也提到了端口这个概念,但是没有详细讲解,今天我详细讲解一下“网络协议端口”,因为这个“东东”也是黑客们常常利用渗透入侵的手段。
一、先讲一讲几种不同的“端口”的定义
计算机"端口"是英文port的译义,可以认为是计算机与外界通讯交流的出口。其中硬件领域的端口又称接口,如:USB端口、串行端口等。
软件领域的端口一般指网络中面向连接服务和无连接服务的通信协议端口,是一种抽象的软件结构,包括一些数据结构和I/O(基本输入输出)缓冲区。
在网络技术中,端口(Port)有好几种意思。集线器、交换机、路由器的端口指的是连接其他网络设备的接口,如RJ-45端口、Serial端口等。
而我们今天要讲的“网络协议端口”不是指物理意义上的端口,而是特指TCP/IP协议中的端口,是逻辑意义上的端口。
二、网络协议端口简单描述
网络协议中的端口指的是什么呢?如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536(即:256×256)个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535(256×256)。
在Internet上,各主机间通过TCP/TP协议发送和接收数据报,各个数据报根据其目的主机的ip地址来进行互联网络中的路由选择。可见,把数据报顺利的传送到目的主机是没有问题的。问题出在哪里呢?我们知道大多数操作系统都支持多程序(进程)同时运行,那么目的主机应该把接收到的数据报传送给众多同时运行的进程中的哪一个呢?显然这个问题有待解决,端口机制便由此被引入进来。
操作系统会给那些有需求的进程分配协议端口(protocal port,即我们常说的端口),每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据报后,将根据报文首部的目的端口号,把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。说到这里,端口的概念似乎仍然抽象,那么继续听我继续讲解。
端口其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。
接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,以便接受方能顺利的回传数据报到这个端口。
三、“网络协议端口”详解
常常在网络上听说“我的主机开了多少的 port ,会不会被入侵呀!?”或者是说“开那个 port 会比较安全?又,我的服务应该对应什么 port 呀!?”很神奇吧!怎么一部主机上面有这么多的奇怪的 port 呢?这个 port 有什么作用呢?!
由于每种网络的服务功能都不相同,因此有必要将不同的封包送给不同的服务来处理,所以蹦愕闹骰笨袅 FTP 与 WWW 服务的时候,那么别人送来的资料封包,就会依照 TCP 上面的 port 号码来给 FTP 这个服务或者是 WWW 这个服务来处理,当然就不会错乱!很多人会问说:“为什么计算机同时有 FTP、WWW、E-Mail 这么多服务,传资料过来,计算机怎么知道如何判断?计算机真的都不会误判吗?”现在知道为什么了吧?!“对啦!就是因为 port 不同嘛”!每一种服务都有特定的 port 在监听!您无须担心计算机会误判的问题。
每一个 TCP 联机都必须由一端(通常为 client )发起请求这个 port 通常是随机选择大于 1024 以上的 port 号来进行!其 TCP 封包会将(且只将) SYN 旗标设定起来!这是整个联机的第一个封包; 如果另一端(通常为 Server ) 接受这个请求的话(当然,特殊的服务需要以特殊的 port 来进行,例如 FTP 的port 21 ),则会向请求端送回整个联机的第二个封包!其上除了 SYN 旗标之外同时还将 ACK 旗标也设定起来,并同时时在本机端建立资源以待联机之需;然后,请求端获得服务端第一个响应封包之后,必须再响应对方一个确认封包,此时封包只带 ACK 旗标(事实上,后继联机中的所有封包都必须带有 ACK 旗标);
只有当服务端收到请求端的确认( ACK )封包(也就是整个联机的第三个封包)之后,两端的联机才能正式建立。这就是所谓的 TCP 联机的'三段式交握( Three-Way Handshake )'的原理。经过三向交握之后,你的 client 端的 port 通常是高于 1024 的随机取得的 port 至于主机端则视当时的服务是开启哪一个 port 而定,例如 WWW 选择80 而 FTP 则以 21 为正常的联机信道!
四、端口的分类
1. 按对应的协议类型端口有两种
一种是TCP端口,一种是UDP端口。计算机之间相互通信的时候,分为两种方式:一种是发送信息以后,可以确认信息是否到达,也就是有应答的方式,这种方式大多采用TCP协议;一种是发送以后就不管了,不去确认信息是否到达,这种方式大多采用UDP协议。对应这两种协议的服务提供的端口,也就分为TCP端口和UDP端口。
由网络OSI七层协议可知,TCP/UDP是工作在传输层的,传输层与网络层最大的区别是传输层提供进程通信能力,网络通信的最终地址不仅包括主机地址,还包括可描述进程的某种标识。所以TCP/IP协议提出的协议端口,可以认为是网络通信进程的一种标识符。
在应用程序中(调入内存运行后一般称为:进程)通过系统调用与某端口建立连接(binding,绑定)后,传输层传给该端口的数据都被相应的进程所接收,相应进程发给传输层的数据都从该端口输出。在TCP/IP协议的实现中,端口操作类似于一般的I/O操作,进程获取一个端口,相当于获取本地唯一的I/O文件,可以用一般的读写方式访问类似于文件描述符,每个端口都拥有一个叫端口号的整数描述符,用来区别不同的端口。由于TCP/IP传输层的TCP和UDP两个协议是两个完全独立的软件模块,因此各自的端口号也相互独立。如TCP有一个255号端口,UDP也可以有一个255号端口,两者并不冲突。端口号有两种基本分配方式:第一种叫全局分配这是一种集中分配方式,由一个公认权威的中央机构根据用户需要进行统一分配,并将结果公布于众,第二种是本地分配,又称动态连接,即进程需要访问传输层服务时,向本地操作系统提出申请,操作系统返回本地唯一的端口号,进程再通过合适的系统调用,将自己和该端口连接起来(binding,绑定)。TCP/IP端口号的分配综合了以上两种方式,将端口号分为两部分,少量的作为保留端口,以全局方式分配给服务进程。每一个标准服务器都拥有一个全局公认的端口叫周知口,即使在不同的机器上,其端口号也相同。剩余的为自由端口,以本地方式进行分配。TCP和UDP规定,小于256的端口才能作为保留端口。
2. 按端口号可分为3大类:
五、已知服务、木马常用端口列表
1. TCP端口
2. UDP端口
六、查看端口的相关方法和工具
1. netstat -an
在cmd中输入这个命令就可以了。如下:
- C:>netstat -an
- Active Connections
- Proto Local Address Foreign Address State
- TCP 0.0.0.0:135 0.0.0.0:0 LISTENING
- TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
- TCP 0.0.0.0:1025 0.0.0.0:0 LISTENING
- TCP 0.0.0.0:1026 0.0.0.0:0 LISTENING
- TCP 0.0.0.0:1028 0.0.0.0:0 LISTENING
- TCP 0.0.0.0:3372 0.0.0.0:0 LISTENING
- UDP 0.0.0.0:135 *:*
- UDP 0.0.0.0:445 *:*
- UDP 0.0.0.0:1027 *:*
- UDP 127.0.0.1:1029 *:*
- UDP 127.0.0.1:1030 *:*
这是我没上网的时候机器所开的端口,两个135和445是固定端口,其余几个都是动态端口。
2. Strobe
超级优化TCP端口检测程序Strobe是一个TCP端口扫描器。它具有在最大带宽利用率和最小进程资源需求下,迅速地定位和扫描一台远程目标主机或许多台主机的所有TCP“监听”端口的能力。
3. Internet Scanner
Internet Scanner可以说是可得到的最快和功能最全的安全扫描工具,用于UNIX和Windows NT。它容易配置,扫描速度快,并且能产生综合报告。
4. Port Scanner
Port Scanner是一个运行于Windows 95 和Windows NT上的端口扫描工具,其开始界面上显示了两个输入框,上面的输入框用于要扫描的开始主机IP地址,下面的输入框用于输入要扫描的结束主机IP地址。在这两个IP地址之间的主机将被扫描。
5. Nmap
世界上最受黑客欢迎的扫描器,能实现秘密扫描、动态延迟、重发与平行扫描、欺骗扫描、端口过滤探测、RPC直接扫描、分布扫描等,灵活性非常好,功能强大
七、端口在入侵中的作用,我们该如何保护?
1. 端口在入侵中的作用
黑客曾经把目标终端比作房子,而把端口比作通向不同房间(服务)的门,入侵者要占领这间房子,势必要破门而入,那么对于入侵者来说,了解房子开了几扇门,都是什么样的门,门后面有什么东西就显得至关重要。
入侵者通常会用扫描器对目标主机的端口进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,进而猜测可能存在的漏洞,因此对端口的扫描可以帮助我们更好的了解目标主机,而对于管理员,扫描本机的开放端口也是做好安全防范的第一步。
2. 常被黑客利用的端口
一些端口常常会被黑客利用,还会被一些木马病毒利用,对计算机系统进行攻击,以下是被黑客入侵的的端口分析。
(1) 端口渗透剖析
FTP通常用作对远程服务器进行管理,典型应用就是对web系统进行管理。一旦FTP密码泄露就直接威胁web系统安全,甚至黑客通过提权可以直接控制服务器。这里以Serv_uFTP服务器为例,剖析渗透FTP服务器的几种方法。
(2) 23端口渗透剖析
telnet是一种旧的远程管理方式,使用telnet工具登录系统过程中,网络上传输的用户和密码都是以明文方式传送的,黑客可使用嗅探技术截获到此类密码。
(3) 53端口渗透剖析
53端口是DNS域名服务器的通信端口,通常用于域名解析。也是网络中非常关键的服务器之一。这类服务器容易受到攻击。对于此端口的渗透,一般有三种方式。
(4) 80端口渗透剖析
80端口通常提供web服务。目前黑客对80端口的攻击典型是采用SQL注入的攻击方法,脚本渗透技术也是一项综合性极高的web渗透技术,同时脚本渗透技术对80端口也构成严重的威胁。
(5) 135端口的渗透剖析
135端口主要用于使用RPC协议并提供DCOM服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。同时这个端口也爆出过不少漏洞,最严重的就是缓冲区溢出漏洞,曾经疯狂一时的‘冲击波’病毒就是利用这个漏洞进行传播的。对于135端口的渗透,黑客的渗透方法为:
(6) 139/445端口渗透剖析
139端口是为‘NetBIOS SessionService’提供的,主要用于提供windows文件和打印机共享以及UNIX中的Samba服务。445端口也用于提供windows文件和打印机共享,在内网环境中使用的很广泛。这两个端口同样属于重点攻击对象,139/445端口曾出现过许多严重级别的漏洞。
下面剖析渗透此类端口的基本思路。
(7) 1433端口渗透剖析
1433是SQLServer默认的端口,SQL Server服务使用两个端口:tcp-1433、UDP-1434.其中1433用于供SQLServer对外提供服务,1434用于向请求者返回SQLServer使用了哪些TCP/IP端口。1433端口通常遭到黑客的攻击,而且攻击的方式层出不穷。最严重的莫过于远程溢出漏洞了,如由于SQL注射攻击的兴起,各类数据库时刻面临着安全威胁。利用SQL注射技术对数据库进行渗透是目前比较流行的攻击方式,此类技术属于脚本渗透技术。
(8) 1521端口渗透剖析
1521是大型数据库Oracle的默认监听端口,估计新手还对此端口比较陌生,平时大家接触的比较多的是Access,MSSQL以及MYSQL这三种数据库。一般大型站点才会部署这种比较昂贵的数据库系统。对于渗透这种比较复杂的数据库系统,黑客的思路如下:
(9) 3306端口渗透剖析
3306是MYSQL数据库默认的监听端口,通常部署在中型web系统中。在国内LAMP的配置是非常流行的,对于php+mysql构架的攻击也是属于比较热门的话题。mysql数据库允许用户使用自定义函数功能,这使得黑客可编写恶意的自定义函数对服务器进行渗透,最后取得服务器最高权限。对于3306端口的渗透,黑客的方法如下:
(10) 3389端口渗透剖析
3389是windows远程桌面服务默认监听的端口,管理员通过远程桌面对服务器进行维护,这给管理工作带来的极大的方便。通常此端口也是黑客们较为感兴趣的端口之一,利用它可对远程服务器进行控制,而且不需要另外安装额外的软件,实现方法比较简单。当然这也是系统合法的服务,通常是不会被杀毒软件所查杀的。使用‘输入法漏洞’进行渗透。
(11) 4899端口渗透剖析
4899端口是remoteadministrator远程控制软件默认监听的端口,也就是平时常说的radmini影子。radmini目前支持TCP/IP协议,应用十分广泛,在很多服务器上都会看到该款软件的影子。对于此软件的渗透,思路如下:
(12) 5631端口渗透剖析
5631端口是著名远程控制软件symantecpcanywhere的默认监听端口,同时也是世界领先的远程控制软件。利用此软件,用户可以有效管理计算机并快速解决技术支持问题。由于软件的设计缺陷,使得黑客可随意下载保存连接密码的*.cif文件,通过专用破解软件进行破解。这些操作都必须在拥有一定权限下才可完成,至少通过脚本渗透获得一个webshell。通常这些操作在黑客界被称为pcanywhere提权技术。
(13) 5900端口渗透剖析
5900端口是优秀远程控制软件VNC的默认监听端口,此软件由著名的AT&T的欧洲研究实验室开发的。VNC是在基于unix和linux操作系统的免费的开放源码软件,远程控制能力强大,高效实用,其性能可以和windows和MAC中的任何一款控制软件媲美。对于该端口的渗透,思路如下:
(14) 8080端口渗透剖析
8080端口通常是apache_Tomcat服务器默认监听端口,apache是世界使用排名第一的web服务器。国内很多大型系统都是使用apache服务器,对于这种大型服务器的渗透,主要有以下方法:
3. 最后我们如何保护好自己的端口
电脑开放了过多端口,担心其中就有后门程序的端口,担心被渗透怎么办? 那么只要做好下面几点就行了:
限制端口的方法如下:
对于采用windows的用户来说,不需要安装任何其他软件,可以利用"修改组策略"或"TCP/IP筛选功能"限制服务器的端口。
具体设置如下:
(1) 第一种方法——“修改组策略”:
于是重新启动后,电脑中上述网络端口就被关闭了,病毒和黑客再也不能连上这些端口,从而保护了你的电脑。
(2) 第二种方法——"TCP/IP筛选功能":
这样,您就可以来自己添加或删除您的TCP或UDP或IP的各种端口了。
添加或者删除完毕,重新启动机器以后,您的服务器就被保护起来了。
马上开启您的安全之旅
立即开启