zoukankan      html  css  js  c++  java
  • 计算机端口

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

    我们这里将要介绍的就是逻辑意义上的端口。
    逻辑意义上的端口是指本地操作系统会给那些有需求的进程分配的协议端口 (protocal port,即我们常说的端口),
    每个协议端口由一个正整数标识,如:80,139,445,等等。当目的主机接收到数据报后,将根据报文首部的目的端口号,
    把数据发送到相应端口,而与此端口相对应的那个进程将会领取数据并等待下一组数据的到来。
    两台host的通信实际上是进程间的通信,通过各自IP在网络中找到对方的网卡,host接收要通过对应端口接收,对应进程在此端口领取数据。
    端口其实就是队,操作系统为各个进程分配了不同的队,数据报按照目的端口被推入相应的队中,等待被进程取用,在极特殊的情况下,
    这个队也是有可能溢出的,不过操作系统允许各进程指定和调整自己的队的大小。

    不光接受数据报的进程需要开启它自己的端口,发送数据报的进程也需要开启端口,这样,数据报中将会标识有源端口,
    以便接受方能顺利的回传数据报到这个端口。


    端口分类
    逻辑意义上的端口有多种分类标准:

    1. 按端口号分布划分

    (1)知名端口(Well-Known Ports)|固定端口
    知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP服务,25端口分配给SMTP(简单邮件传输协议)服务,
    80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
    使用集中式管理机制,即服从一个管理机构对端口的指派,这个机构负责发布这些指派。
    由于这些端口紧绑于一些服务,所以我们会经常扫描这些端口来判断对方 是否开启了这些服务,
    如TCP的21(ftp),80(http),139(netbios),UDP的7(echo),69(tftp)等等一些大家熟知的端口;

    (2)动态端口(Dynamic Ports)
    动态端口的范围从1024到65535|49151?,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,
    那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。
    操作系统将这些端口动态的分配给各个进程, 同一进程两次分配有可能分配到不同的端口。
    不过一些应用程序并不愿意使用操作系统分配的动态端口,
    他们有其自己的‘商标性’端口,如oicq客户端的 4000端口,木马冰河的7626端口等都是固定而出名的。
    动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。

    2. 按协议类型划分
    按协议类型划分,可以分为TCP、UDP、IP和ICMP(Internet控制消息协议)等端口。下面主要介绍TCP和UDP端口:
    他们都用正整数标识,但这并不会引起歧义,TCP的80端口和UDP的80端口,因为数据报在标明端口的同时,还将标明端口的类型。 


    (1)TCP端口
    TCP端口,即传输控制协议端口,需要在客户端和服务器之间建立连接,这样可以提供可靠的数据传输。常见的包括FTP服务的21端口,Telnet服务的23端口,
    SMTP服务的25端口,以及HTTP服务的80端口等等。


    (2)UDP端口
    UDP端口,即用户数据包协议端口,无需在客户端和服务器之间建立连接,安全性得不到保障。常见的有DNS服务的53端口,
    SNMP(简单网络管理协议)服务的161端口,QQ使用的8000和4000端口等等。


    查看端口
    Windows 2000/XP/Server 2003中要查看端口,可以使用Netstat命令

    依次点击“开始→运行”,键入“cmd”并回车,打开命令提示符窗口。在命令提示符状态下键入“netstat -a -n”,按下回车键后就可以看到以数字形式显示的TCP和UDP连接的端口号及状态。

    小知识:Netstat命令用法
    命令格式:Netstat ?-a? ?-e? ?-n? ?-o? ?-s?

    -a 表示显示所有活动的TCP连接以及计算机监听的TCP和UDP端口。

    -e 表示显示以太网发送和接收的字节数、数据包数等。

    -n 表示只以数字形式显示所有活动的TCP连接的地址和端口号。

    -o 表示显示活动的TCP连接并包括每个连接的进程ID(PID)。

    -s 表示按协议显示各种连接的统计信息,包括端口号。

    关闭/开启端口
    在介绍各种端口的作用前,这里先介绍一下在Windows中如何关闭/打开端口,因为默认的情况下,有很多不安全的或没有什么用的端口是开启的,
    比如Telnet服务的23端口、FTP服务的21端口、SMTP服务的25端口、RPC服务的135端口等等。
    为了保证系统的安全性,我们可以通过下面的方法来关闭/开启端口。


    关闭端口
    比如在Windows 2000/XP中关闭SMTP服务的25端口,可以这样做:首先打开“控制面板”,双击“管理工具”,
    再双击“服务”。接着在打开的服务窗口中找到并双击“Simple Mail Transfer Protocol (SMTP)”服务,单击“停止”按钮来停止该服务,然后在“启动类型”中选择“已禁用”,最后单击“确定”按钮即可。这样,关闭了SMTP服务就相当于关闭了对应的端口。


    开启端口
    如果要开启该端口只要先在“启动类型”选择“自动”,单击“确定”按钮,再打开该服务,在“服务状态”中单击“启动”按钮即可启用该端口,最后,单击“确定”按钮即可。

    提示:在Windows 98中没有“服务”选项,你可以使用防火墙的规则设置功能来关闭/开启端口。

    常见网络端口

    端口:0

    服务:Reserved

    说明:通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用通常的闭合端口连接它时将产生不同的结果。
    一种典型的扫描,使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。


    端口:1

    服务:tcpmux

    说明:这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,默认情况下tcpmux在这种系统中被打开。
    Irix机器在发布是含有几个默认的无密码的帐户,如:IP、GUEST UUCP、NUUCP、DEMOS 、TUTOR、DIAG、OUTOFBOX等。
    许多管理员在安装后忘记删除这些帐户。因此HACKER在INTERNET上搜索tcpmux并利用这些帐户。


    端口:7

    服务:Echo

    说明:能看到许多人搜索Fraggle放大器时,发送到X.X.X.0和X.X.X.255的信息。

    端口:19

    服务:Character Generator

    说明:这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时会发送含有垃圾字符的数据流直到连接关闭。
    HACKER利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。同样Fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,
    受害者为了回应这些数据而过载。


    21端口
    端口说明:21端口主要用于FTP(File Transfer Protocol,文件传输协议)服务,FTP服务主要是为了在两台计算机之间实现文件的上传与下载,
    一台计算机作为FTP客户端,另一台计算机作为FTP服务器,可以采用匿名(anonymous)登录和授权用户名与密码登录两种方式登录FTP服务器。目前,
    通过FTP服务来实现文件的传输是互联网上上传、下载文件最主要的方法。另外,还有一个20端口是用于FTP数据传输的默认端口号。


    在Windows中可以通过Internet信息服务(IIS)来提供FTP连接和管理,也可以单独安装FTP服务器软件来实现FTP功能,比如常见的FTP Serv-U

    操作建议:因为有的FTP服务器可以通过匿名登录,所以常常会被黑客利用。另外,21端口还会被一些木马利用,比如Blade Runner、FTP Trojan、
    Doly Trojan、WebEx等等。如果不架设FTP服务器,建议关闭21端口。


    端口:22

    服务:Ssh

    说明:PcAnywhere建立的TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点,如果配置成特定的模式,许多使用RSAREF库的版本就会有不少的漏洞存在。

    23端口
    端口说明:23端口主要用于Telnet(远程登录)服务,是Internet上普遍采用的登录和仿真程序。同样需要设置客户端和服务器端,
    开启Telnet服务的客户端就可以登录远程Telnet服务器,采用授权用户名和密码登录。登录之后,允许用户使用命令提示符窗口进行相应的操作。
    在Windows中可以在命令提示符窗口中,键入“Telnet”命令来使用Telnet远程登录。


    操作建议:利用Telnet服务,黑客可以搜索远程登录Unix的服务,扫描操作系统的类型。而且在Windows 2000中Telnet服务存在多个严重的漏洞,
    比如提升权限、拒绝服务等,可以让远程服务器崩溃。Telnet服务的23端口也是TTS(Tiny Telnet Server)木马的缺省端口。所以,建议关闭23端口。


    上面我们介绍了关闭/开启端口的方法,并介绍了21和23端口的内容,下面将介绍其他的常见端口说明,以及相应的操作建议。

    25端口
    端口说明:25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件,如今绝大多数邮件服务器都使用该协议。
    比如我们在使用电子邮件客户端程序的时候,在创建账户时会要求输入SMTP服务器地址,该服务器地址默认情况下使用的就是25端口。


    端口漏洞:

    1. 利用25端口,黑客可以寻找SMTP服务器,用来转发垃圾邮件。

    2. 25端口被很多木马程序所开放,比如Ajan、Antigen、Email Password Sender、ProMail、trojan、Tapiras、Terminator、WinPC、WinSpy等等。
    拿WinSpy来说,通过开放25端口,可以监视计算机正在运行的所有窗口和模块。


    操作建议:如果不是要架设SMTP邮件服务器,可以将该端口关闭。

    53端口
    端口说明:53端口为DNS(Domain Name Server,域名服务器)服务器所开放,主要用于域名解析,DNS服务在NT系统中使用的最为广泛。
    通过DNS服务器可以实现域名与IP地址之间的转换,只要记住域名就可以快速访问网站。


    端口漏洞:如果开放DNS服务,黑客可以通过分析DNS服务器而直接获取Web服务器等主机的IP地址,再利用53端口突破某些不稳定的防火墙,从而实施攻击。
    近日,美国一家公司也公布了10个最易遭黑客攻击的漏洞,其中第一位的就是DNS服务器的BIND漏洞。


    操作建议:如果当前的计算机不是用于提供域名解析服务,建议关闭该端口。

    67、68端口
    端口说明:67、68端口分别是为Bootp服务的Bootstrap Protocol Server(引导程序协议服务端)和Bootstrap Protocol Client(引导程序协议客户端)
    开放的端口。Bootp服务是一种产生于早期Unix的远程启动协议,我们现在经常用到的DHCP服务就是从Bootp服务扩展而来的。通过Bootp服务可以为局域网中的计算机
    动态分配IP地址,而不需要每个用户去设置静态IP地址。


    端口漏洞:如果开放Bootp服务,常常会被黑客利用分配的一个IP地址作为局部路由器通过“中间人”(man-in-middle)方式进行攻击。

    操作建议:建议关闭该端口。

    上面我们介绍了用于SMTP服务的25端口、DNS服务器的53端口以及用于Bootp服务的67、68端口,下面将分别介绍用于TFTP的69端口、用于Finger服务的79端口
    和常见的用于HTTP服务的80端口。


    69端口
    端口说明:69端口是为TFTP(Trival File Tranfer Protocol,次要文件传输协议)服务开放的,TFTP是Cisco公司开发的一个简单文件传输协议,类似于FTP。
    不过与FTP相比,TFTP不具有复杂的交互存取接口和认证控制,该服务适用于不需要复杂交换环境的客户端和服务器之间进行数据传输。


    端口漏洞:很多服务器和Bootp服务一起提供TFTP服务,主要用于从系统下载启动代码。可是,因为TFTP服务可以在系统中写入文件,而且黑客还可以利用TFTP的错误配
    置来从系统获取任何文件。


    操作建议:建议关闭该端口。

    79端口
    端口说明:79端口是为Finger服务开放的,主要用于查询远程主机在线用户、操作系统类型以及是否缓冲区溢出等用户的详细信息。
    比如要显示远程计算机www.abc.com上的user01用户的信息,可以在命令行中键入“finger user01@www.abc.com”即可。


    端口漏洞:一般黑客要攻击对方的计算机,都是通过相应的端口扫描工具来获得相关信息,比如使用“流光”就可以利用79端口来扫描远程计算机操作系统版本,
    获得用户信息,还能探测已知的缓冲区溢出错误。这样,就容易遭遇到黑客的攻击。而且,79端口还被Firehotcker木马作为默认的端口。


    操作建议:建议关闭该端口。

    80端口
    端口说明:80端口是为HTTP(HyperText Transport Protocol,超文本传输协议)开放的,这是上网冲浪使用最多的协议,
    主要用于在WWW(World Wide Web,万维网)服务上传输信息的协议。我们可以通过HTTP地址加“:80”(即常说的“网址”)来访问网站的,
    比如http://www.cce.com.cn:80,因为浏览网页服务默认的端口号是80,所以只要输入网址,不用输入“:80”。


    端口漏洞:有些木马程序可以利用80端口来攻击计算机的,比如Executor、RingZero等。

    操作建议:为了能正常上网冲浪,我们必须开启80端口。

    通过上面的介绍,我们了解了用于TFTP服务的69端口、用于Finger服务的79端口以及上网冲浪用于WWW服务的80端口。下面将分别为大家介绍比较陌生
    的99端口、用于POP3服务的109、110端口和RPC服务的111端口。


    99端口
    端口说明:99端口是用于一个名为“Metagram Relay”(亚对策延时)的服务,该服务比较少见,一般是用不到的。

    端口漏洞:虽然“Metagram Relay”服务不常用,可是Hidden Port、NCx99等木马程序会利用该端口,比如在Windows 2000中,NCx99可以把cmd.
    exe程序绑定到99端口,这样用Telnet就可以连接到服务器,随意添加用户、更改权限。


    操作建议:建议关闭该端口

    109、110端口
    端口说明:109端口是为POP2(Post Office Protocol Version 2,邮局协议2)服务开放的,110端口是为POP3(邮件协议3)服务开放的,
    POP2、POP3都是主要用于接收邮件的,目前POP3使用的比较多,许多服务器都同时支持POP2和POP3。客户端可以使用POP3协议来访问服务端的邮件服务,
    如今ISP的绝大多数邮件服务器都是使用该协议。在使用电子邮件客户端程序的时候,会要求输入POP3服务器地址,默认情况下使用的就是110端口(如图)。


    端口漏洞:POP2、POP3在提供邮件接收服务的同时,也出现了不少的漏洞。单单POP3服务在用户名和密码交换缓冲区溢出的漏洞就不少于20个,
    比如WebEasyMail POP3 Server合法用户名信息泄露漏洞,通过该漏洞远程攻击者可以验证用户账户的存在。另外,110端口也被ProMail trojan等木马
    程序所利用,通过110端口可以窃取POP账号用户名和密码。


    操作建议:如果是执行邮件服务器,可以打开该端口。

    111端口
    端口说明:111端口是SUN公司的RPC(Remote Procedure Call,远程过程调用)服务所开放的端口,主要用于分布式系统中不同计算机的内部进程通信
    ,RPC在多种网络服务中都是很重要的组件。常见的RPC服务有rpc.mountd、NFS、rpc.statd、rpc.csmd、rpc.ttybd、amd等等。在Microsoft的Windows中,同样也有RPC服务。


    端口漏洞:SUN RPC有一个比较大漏洞,就是在多个RPC服务时xdr_array函数存在远程缓冲溢出漏洞。

    上面我们介绍了不知名但是容易受到木马攻击的99端口,常见的用于POP服务的109、110端口,以及用于Sun的RPC服务的111端口。下面将分别介绍与很
    多网络服务息息相关的113端口、用于NEWS新闻组传输的119端口以及遭遇“冲击波”攻击的135端口。

    113端口
    端口说明:113端口主要用于Windows的“Authentication Service”(验证服务),一般与网络连接的计算机都运行该服务,主要用于验证TCP连接的用户,
    通过该服务可以获得连接计算机的信息。在Windows 2000/2003 Server中,还有专门的IAS组件,通过该组件可以方便远程访问中进行身份验证以及策略管理。


    端口漏洞:113端口虽然可以方便身份验证,但是也常常被作为FTP、POP、SMTP、IMAP以及IRC等网络服务的记录器,这样会被相应的木马程序所利用,
    比如基于IRC聊天室控制的木马。另外,113端口还是Invisible Identd Deamon、Kazimas等木马默认开放的端口。


    操作建议:建议关闭该端口。

    119端口
    端口说明:119端口是为“Network News Transfer Protocol”(网络新闻组传输协议,简称NNTP)开放的,主要用于新闻组的传输,
    当查找USENET服务器的时候会使用该端口。


    端口漏洞:著名的Happy99蠕虫病毒默认开放的就是119端口,如果中了该病毒会不断发送电子邮件进行传播,并造成网络的堵塞。

    操作建议:如果是经常使用USENET新闻组,就要注意不定期关闭该端口。

    135端口
    端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,
    通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以通过网络直接进行通信,能够跨包括HTTP协议在内的多种网络传输。


    端口漏洞:相信去年很多Windows 2000和Windows XP用户都中了“冲击波”病毒,该病毒就是利用RPC漏洞来攻击计算机的。
    RPC本身在处理通过TCP/IP的消息交换部分有一个漏洞,该漏洞是由于错误地处理格式不正确的消息造成的。
    该漏洞会影响到RPC与DCOM之间的一个接口,该接口侦听的端口就是135。


    操作建议:为了避免“冲击波”病毒的攻击,建议关闭该端口。

    通过上面的介绍想必大家已经了解到用于验证服务的113端口、用于网络新闻组的119端口,以及被“冲击波”病毒所利用的135端口。
    下面笔者将介绍用于NetBIOS名称服务的137端口,用于Windows文件和打印机共享的139端口以及IMAP协议的143端口。


    137端口
    端口说明:137端口主要用于“NetBIOS Name Service”(NetBIOS名称服务),属于UDP端口,使用者只需要向局域网或互联网上的某台计算机的137端口发送一个请求,
    就可以获取该计算机的名称、注册用户名,以及是否安装主域控制器、IIS是否正在运行等信息。


    端口漏洞:因为是UDP端口,对于攻击者来说,通过发送请求很容易就获取目标计算机的相关信息,有些信息是直接可以被利用,并分析漏洞的,比如IIS服务。
    另外,通过捕获正在利用137端口进行通信的信息包,还可能得到目标计算机的启动和关闭的时间,这样就可以利用专门的工具来攻击。


    操作建议:建议关闭该端口。

    139端口
    端口说明:139端口是为“NetBIOS Session Service”提供的,主要用于提供Windows文件和打印机共享以及Unix中的Samba服务。
    在Windows中要在局域网中进行文件的共享,必须使用该服务。比如在Windows 98中,可以打开“控制面板”,双击“网络”图标,
    在“配置”选项卡中单击“文件及打印共享”按钮选中相应的设置就可以安装启用该服务;在Windows 2000/XP中,可以打开“控制面板”,双击“网络连接”图标,
    打开本地连接属性;接着,在属性窗口的“常规”选项卡中选择“Internet协议(TCP/IP)”,单击“属性”按钮;然后在打开的窗口中,单击“高级”按钮;
    在“高级TCP/IP设置”窗口中选择“WINS”选项卡,在“NetBIOS设置”区域中启用TCP/IP上的NetBIOS。


    端口漏洞:开启139端口虽然可以提供共享服务,但是常常被攻击者所利用进行攻击,比如使用流光、SuperScan等端口扫描工具,可以扫描目标计算机的139端口,
    如果发现有漏洞,可以试图获取用户名和密码,这是非常危险的。


    操作建议:如果不需要提供文件和打印机共享,建议关闭该端口。

    上面我们介绍了可以获取远程计算机名称等信息的137端口,为Windows提供文件和打印机共享的139端口。下面将介绍用于电子邮件接收服务(IMAP)的143端口,
    用于SNMP服务的161端口,以及用于HTTPS服务的443端口。


    143端口
    端口说明:143端口主要是用于“Internet Message Access Protocol”v2(Internet消息访问协议,简称IMAP),和POP3一样,是用于电子邮件的接收的协议。
    通过IMAP协议我们可以在不接收邮件的情况下,知道信件的内容,方便管理服务器中的电子邮件。不过,相对于POP3协议要负责一些。
    如今,大部分主流的电子邮件客户端软件都支持该协议。


    端口漏洞:同POP3协议的110端口一样,IMAP使用的143端口也存在缓冲区溢出漏洞,通过该漏洞可以获取用户名和密码。
    另外,还有一种名为“admv0rm”的Linux蠕虫病毒会利用该端口进行繁殖。


    操作建议:如果不是使用IMAP服务器操作,应该将该端口关闭。

    161端口
    端口说明:161端口是用于“Simple Network Management Protocol”(简单网络管理协议,简称SNMP),该协议主要用于管理TCP/IP网络中的网络协议,
    在Windows中通过SNMP服务可以提供关于TCP/IP网络上主机以及各种网络设备的状态信息。目前,几乎所有的网络设备厂商都实现对SNMP的支持。


    在Windows 2000/XP中要安装SNMP服务,我们首先可以打开“Windows组件向导”,在“组件”中选择“管理和监视工具”,
    单击“详细信息”按钮就可以看到“简单网络管理协议(SNMP)”,选中该组件;然后,单击“下一步”就可以进行安装。


    端口漏洞:因为通过SNMP可以获得网络中各种设备的状态信息,还能用于对网络设备的控制,所以黑客可以通过SNMP漏洞来完全控制网络。

    操作建议:建议关闭该端口。

    443端口
    端口说明:443端口即网页浏览端口,主要是用于HTTPS服务,是提供加密和通过安全端口传输的另一种HTTP。在一些对安全性要求较高的网站,
    比如银行、证券、购物等,都采用HTTPS服务,这样在这些网站上的交换信息其他人都无法看到,保证了交易的安全性。网页的地址以https://开始,
    而不是常见的http://。


    端口漏洞:HTTPS服务一般是通过SSL(安全套接字层)来保证安全性的,但是SSL漏洞可能会受到黑客的攻击,比如可以黑掉在线银行系统,盗取信用卡账号等。

    操作建议:建议开启该端口,用于安全性网页的访问。另外,为了防止黑客的攻击,应该及时安装微软针对SSL漏洞发布的最新安全补丁。

    554端口
    端口说明:554端口默认情况下用于“Real Time Streaming Protocol”(实时流协议,简称RTSP),该协议是由RealNetworks和Netscape共同提出的,
    通过RTSP协议可以借助于Internet将流媒体文件传送到RealPlayer中播放,并能有效地、最大限度地利用

     入侵者通常会用扫描器对目标主机的端口进行扫描,以确定哪些端口是开放的,从开放的端口,入侵者可以知道目标主机大致提供了哪些服务,

     进而猜测可能存在 的漏洞,因此对端口的扫描可以帮助我们更好的了解目标主机,而对于管理员,扫描本机的开放端口也是做好安全防范的第一步。

  • 相关阅读:
    Java学习笔记之——封装
    Java学习笔记之——String和Arrays常用方法
    Flask+uwsgi+virtualenv环境配置
    shell常用函数封装-main.sh
    APK模式下,epg版本升级,需要做同步
    cboss升级顺序
    Mariadb使用xtrabackup工具备份数据脚本
    Seaweedfs-启动脚本
    运营商-工作内容调整记录
    MSC服务器-主从检测脚本-check_server_state.sh
  • 原文地址:https://www.cnblogs.com/kimsimple/p/7776548.html
Copyright © 2011-2022 走看看