端口可分为3大类: 1) 公认端口(Well Known Ports):从0到1023,它们紧密绑定于一些服务。一般这些端口的通信明确代表了某种服务的协议。例如:80端口实际上老是HTTP通信。 2) 注册端口(Registered Ports):从1024到49151。它们松散地绑定于一些服务。也就是说有许多服务绑定于这些端口,这些端口一样用于许多其它目的。例如:许多系统处理动态端口从1024左右开始。 3) 动态和/或私有端口(Dynamic and/or Private Ports):从49152到65535。理论上,不该为服务分配这些端口。实际上,机器一般从1024起分配动态端口。但也有例外:SUN的RPC端口从32768开始。 本节讲述一般TCP/UDP端口扫描在防火墙记录中的信息。记住:并不存在所谓ICMP端口。若是你对解读ICMP数据感兴趣,请参看本文的其它部分。 0 一般用于分析操做系统。这一方*可以工做是由于在一些系统中“0”是无效端口,当你试图使用一种一般的闭合端口链接它时将产生不一样的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。 1 tcpmux 这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,缺省状况下tcpmux在这种系统中被打开。Iris机器在发布时含有几个缺省的无密码的账户,如lp, guest, uucp, nuucp, demos, tutor, diag, EZsetup, OutOfBox, 和4Dgifts。许多管理员安装后忘记删除这些账户。所以Hacker们在Internet上搜索tcpmux并利用这些账户。 7 Echo 你能看到许多人们搜索Fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。 常见的一种DoS***是echo循环(echo-loop),***者伪造从一个机器发送到另外一个机器的UDP数据包,而两个机器分别以它们最快的方式回应这些数据包。(参见Chargen) 另外一种东西是由DoubleClick在词端口创建的TCP链接。有一种产品叫作“Resonate Global Dispatch”,它与DNS的这一端口链接以肯定最近的路由。 Harvest/squid cache将从3130端口发送UDP echo:“若是将cache的source_ping on选项打开,它将对原始主机的UDP echo端口回应一个HIT reply。”这将会产生许多这类数据包。 11 sysstat 这是一种UNIX服务,它会列出机器上全部正在运行的进程以及是什么启动了这些进程。这为***者提供了许多信息而威胁机器的安全,如暴露已知某些弱点或账户的程序。这与UNIX系统中“ps”命令的结果类似 再说一遍:ICMP没有端口,ICMP port 11一般是ICMP type=11 19 chargen 这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP链接时,会发送含有垃圾字符的数据流知道链接关闭。Hacker利用IP欺*能够发动DoS***。伪造两个chargen服务器之间的UDP包。因为服务器企图回应两个服务器之间的无限的往返数据通信一个chargen和echo将致使服务器过载。一样fraggle DoS***向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。 21 ftp 最多见的***者用于寻找打开“anonymous”的ftp服务器的方*。这些服务器带有可读写的目录。Hackers或Crackers 利用这些服务器做为传送warez (私有程序) 和pr0n(故意拼错词而避免被搜索引擎分类)的节点。 22 ssh PcAnywhere创建TCP和这一端口的链接多是为了寻找ssh。这一服务有许多弱点。若是配置成特定的模式,许多使用RSAREF库的版本有很多漏洞。(建议在其它端口运行ssh) 还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会扫描整个域的ssh主机。你有时会被使用这一程序的人无心中扫描到。 UDP(而不是TCP)与另外一端的5632端口相连意味着存在搜索pcAnywhere的扫描。5632(十六进制的0x1600)位交换后是0x0016(使进制的22)。 23 Telnet ***者在搜索远程登录UNIX的服务。大多数状况下***者扫描这一端口是为了找到机器运行的操做系统。此外使用其它技术,***者会找到密码。 25 smtp ***者(spammer)寻找SMTP服务器是为了传递他们的spam。***者的账户总被关闭,他们须要拨号链接到高带宽的e-mail服务器上,将简单的信息传递到不一样的地址。SMTP服务器(尤为是sendmail)是进入系统的最经常使用方*之一,由于它们必须完整的暴露于Internet且邮件的路由是复杂的(暴露+复杂=弱点)。 53 DNS Hacker或crackers多是试图进行区域传递(TCP),欺*DNS(UDP)或隐藏其它通信。所以防火墙经常过滤或记录53端口。 须要注意的是你常会看到53端口作为UDP源端口。不稳定的防火墙一般容许这种通信并假设这是对DNS查询的回复。Hacker常使用这种方*穿透防火墙。 67和68 Bootp和DHCP UDP上的Bootp/DHCP:经过DSL和cable-modem的防火墙常会看见大量发送到广播地址255.255.255.255的数据。这些机器在向DHCP服务器请求一个地址分配。Hacker常进入它们分配一个地址把本身做为局部路由器而发起大量的“中间人”(man-in-middle)***。客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。这种回应使用广播是由于客户端还不知道能够发送的IP地址。 69 TFTP(UDP) 许多服务器与bootp一块儿提供这项服务,便于从系统下载启动代码。可是它们经常错误配置而从系统提供任何文件,如密码文件。它们也可用于向系统写入文件。 79 finger Hacker用于得到用户信息,查询操做系统,探测已知的缓冲区溢出错误,回应从本身机器到其它机器finger扫描。 98 linuxconf 这个程序提供linux boxen的简单管理。经过整合的HTTP服务器在98端口提供基于Web界面的服务。它已发现有许多安全问题。一些版本setuid root,信任局域网,在/tmp下创建Internet可访问的文件,LANG环境变量有缓冲区溢出。此外由于它包含整合的服务器,许多典型的HTTP漏洞可能存在(缓冲区溢出,历遍目录等) 109 POP2 并不象POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上POP3的漏洞在POP2中一样存在。 110 POP3 用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个(这意味着Hacker能够在真正登录前进入系统)。成功登录后还有其它缓冲区溢出错误。 111 sunrpc portmap rpcbind Sun RPC PortMapper/RPCBIND。访问portmapper是扫描系统查看容许哪些RPC服务的最先的一步。常见RPC服务有:rpc.mountd, NFS, rpc.statd, rpc.csmd, rpc.ttybd, amd等。***者发现了容许的RPC服务将转向提供服务的特定端口测试漏洞。 记住必定要记录线路中的daemon, IDS, 或sniffer,你能够发现***者正使用什么程序访问以便发现到底发生了什么。 113 Ident auth 这是一个许多机器上运行的协议,用于鉴别TCP链接的用户。使用标准的这种服务能够得到许多机器的信息(会被Hacker利用)。可是它可做为许多服务的记录器,尤为是FTP, POP, IMAP, SMTP和IRC等服务。一般若是有许多客户经过防火墙访问这些服务,你将会看到许多这个端口的链接请求。记住,若是你阻断这个端口客户端会感受到在防火墙另外一边与e-mail服务器的缓慢链接。许多防火墙支持在TCP链接的阻断过程当中发回RST,着将回中止这一缓慢的链接。 119 NNTP news 新闻组传输协议,承载USENET通信。当你连接到诸如:news://comp.security.firewalls/. 的地址时一般使用这个端口。这个端口的链接企图一般是人们在寻找USENET服务器。多数ISP限制只有他们的客户才能访问他们的新闻组服务器。打开新闻组服务器将容许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送spam。 135 oc-serv MS RPC end-point mapper Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111端口的功能很类似。使用DCOM和/或RPC的服务利用机器上的end-point mapper注册它们的位置。远端客户链接到机器时,它们查询end-point mapper找到服务的位置。一样Hacker扫描机器的这个端口是为了找到诸如:这个机器上运行Exchange Server吗?是什么版本? 这个端口除了被用来查询服务(如使用epdump)还能够被用于直接***。有一些DoS***直接针对这个端口。 137 NetBIOS name service nbtstat (UDP) 这是防火墙管理员最多见的信息,请仔细阅读文章后面的NetBIOS一节 139 NetBIOS File and Print Sharing 经过这个端口进入的链接试图得到NetBIOS/SMB服务。这个协议被用于Windows“文件和打印机共享”和SAMBA。在Internet上共享本身的硬盘是多是最多见的问题。 大量针对这一端口始于1999,后来逐渐变少。2000年又有回升。一些VBS(IE5 VisualBasic *******ing)开始将它们本身拷贝到这个端口,试图在这个端口繁殖。 143 IMAP 和上面POP3的安全问题同样,许多IMAP服务器有缓冲区溢出漏洞运行登录过程当中进入。记住:一种Linux蠕虫(admw0rm)会经过这个端口繁殖,所以许多这个端口的扫描来自不知情的已被感染的用户。当RadHat在他们的Linux发布版本中默认容许IMAP后,这些漏洞变得流行起来。Morris蠕虫之后这仍是第一次普遍传播的蠕虫。 这一端口还被用于IMAP2,但并不流行。 已有一些报道发现有些0到143端口的***源于脚本。 161 SNMP(UDP) ***者常探测的端口。SNMP容许远程管理设备。全部配置和运行信息都储存在数据库中,经过SNMP客得到这些信息。许多管理员错误配置将它们暴露于Internet。Crackers将试图使用缺省的密码“public”“private”访问系统。他们可能会试验全部可能的组合。 SNMP包可能会被错误的指向你的网络。Windows机器常会由于错误配置将HP JetDirect remote management软件使用SNMP。HP OBJECT IDENTIFIER将收到SNMP包。新版的Win98使用SNMP解析域名,你会看见这种包在子网内广播(cable modem, DSL)查询sysName和其它信息。 162 SNMP trap 多是因为错误配置 177 xdmcp 许多Hacker经过它访问X-Windows控制台,它同时须要打开6000端口。 513 rwho 多是从使用cable modem或DSL登录到的子网中的UNIX机器发出的广播。这些人为Hacker进入他们的系统提供了颇有趣的信息。 553 CORBA IIOP (UDP) 若是你使用cable modem或DSL VLAN,你将会看到这个端口的广播。CORBA是一种面向对象的RPC(remote procedure call)系统。Hacker会利用这些信息进入系统。 600 Pcserver backdoor 请查看1524端口 一些玩script的孩子认为他们经过修改ingreslock和pcserver文件已经彻底攻破了系统-- Alan J. Rosenthal. 635 mountd Linux的mountd Bug。这是人们扫描的一个流行的Bug。大多数对这个端口的扫描是基于UDP的,但基于TCP的mountd有所增长(mountd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪一个端口,须要在端口111作portmap查询),只是Linux默认为635端口,就象NFS一般运行于2049端口。 1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在意用哪一个端口链接网络,它们请求操做系统为它们分配“下一个闲置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配端口1024。为了验证这一点,你能够重启机器,打开Telnet,再打开一个窗口运行“natstat -a”,你将会看到Telnet被分配1024端口。请求的程序越多,动态端口也越多。操做系统分配的端口将逐渐变大。再来一遍,当你浏览Web页时用“netstat”查看,每一个Web页须要一个新端口。 ?ersion 0.4.1, June 20, 2000 http://www.robertgraham.com/pubs/firewall-seen.html Copyright 1998-2000 by Robert Graham (mailtfirewall-seen1@robertgraham.com. All rights reserved. This document may only be reproduced (whole or in part) for non-commercial purposes. All reproductions must contain this copyright notice and must not be altered, except by permission of the author. 1025 参见1024 1026 参见1024 1080 SOCKS 这一协议以管道方式穿过防火墙,容许防火墙后面的许多人经过一个IP地址访问Internet。理论上它应该只容许内部的通讯向外达到Internet。可是因为错误的配置,它会容许Hacker/Cracker的位于防火墙外部的***穿过防火墙。或者简单地回应位于Internet上的计算机,从而掩饰他们对你的直接***。WinGate是一种常见的Windows我的防火墙,常会发生上述的错误配置。在加入IRC聊天室时常会看到这种状况。 1114 SQL 系统自己不多扫描这个端口,但经常是sscan脚本的一部分。 1243 Sub-7***(TCP) 参见Subseven部分。 1524 ingreslock后门 许多***脚本将安装一个后门Sh*ll 于这个端口(尤为是那些针对Sun系统中Sendmail和RPC服务漏洞的脚本,如statd, ttdbserver和cmsd)。若是你刚刚安装了你的防火墙就看到在这个端口上的链接企图,极可能是上述缘由。你能够试试Telnet到你的机器上的这个端口,看看它是否会给你一个Sh*ll 。链接到600/pcserver也存在这个问题。 2049 NFS NFS程序常运行于这个端口。一般须要访问portmapper查询这个服务运行于哪一个端口,可是大部分状况是安装后NFS 杏谡飧龆丝冢?acker/Cracker于是能够闭开portmapper直接测试这个端口。 3128 squid 这是Squid HTTP代理服务器的默认端口。***者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。你也会看到搜索其它代理服务器的端口:8000/8001/8080/8888。扫描这一端口的另外一缘由是:用户正在进入聊天室。其它用户(或服务器自己)也会检验这个端口以肯定用户的机器是否支持代理。请查看5.3节。 5632 pcAnywere 你会看到不少这个端口的扫描,这依赖于你所在的位置。当用户打开pcAnywere时,它会自动扫描局域网C类网以寻找可能得代理(译者:指agent而不是proxy)。Hacker/cracker也会寻找开放这种服务的机器,因此应该查看这种扫描的源地址。一些搜寻pcAnywere的扫描常包含端口22的UDP数据包。参见拨号扫描。 6776 Sub-7 artifact 这个端口是从Sub-7主端口分离出来的用于传送数据的端口。例如当控制者经过电话线控制另外一台机器,而被控机器挂断时你将会看到这种状况。所以当另外一人以此IP拨入时,他们将会看到持续的,在这个端口的链接企图。(译者:即看到防火墙报告这一端口的链接企图时,并不表示你已被Sub-7控制。) 6970 RealAudio RealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP7070端口外向控制链接设置的。 13223 PowWow PowWow 是Tribal Voice的聊天程序。它容许用户在此端口打开私人聊天的链接。这一程序对于创建链接很是具备“进攻性”。它会“驻扎”在这一TCP端口等待回应。这形成相似心跳间隔的链接企图。若是你是一个拨号用户,从另外一个聊天者手中“继承”了IP地址这种状况就会发生:好象不少不一样的人在测试这一端口。这一协议使用“OPNG”做为其链接企图的前四个字节。 17027 Conducent 这是一个外向链接。这是因为公司内部有人安装了带有Conducent "adbot" 的共享软件。Conducent "adbot"是为共享软件显示广告服务的。使用这种服务的一种流行的软件是Pkware。有人试验:阻断这一外向链接不会有任何问题,可是封掉IP地址自己将会致使adbots持续在每秒内试图链接屡次而致使链接过载: 机器会不断试图解析DNS名─ads.conducent.com,即IP地址216.33.210.40 ;216.33.199.77 ;216.33.199.80 ;216.33.199.81;216.33.210.41。(译者:不知NetAnts使用的Radiate是否也有这种现象) 27374 Sub-7***(TCP) 参见Subseven部分。 30100 NetSphere***(TCP) 一般这一端口的扫描是为了寻找中了NetSphere***。 31337 Back Orifice “elite” Hacker中31337读作“elite”/ei’li:t/(译者:*语,译为中坚力量,精华。即3=E, 1=L, 7=T)。所以许多后门程序运行于这一端口。其中最有名的是Back Orifice。曾经一段时间内这是Internet上最多见的扫描。如今它的流行愈来愈少,其它的***程序愈来愈流行。 31789 Hack-a-tack 这一端口的UDP通信一般是因为"Hack-a-tack"远程访问***(RAT, Remote Access Trojan)。这种***包含内置的31790端口扫描器,所以任何31789端口到317890端口的链接意味着已经有这种***。(31789端口是控制链接,317890端口是文件传输链接) 32770~32900 RPC服务 Sun Solaris的RPC服务在这一范围内。详细的说:早期版本的Solaris(2.5.1以前)将portmapper置于这一范围内,即便低端口被防火墙封闭仍然容许Hacker/cracker访问这一端口。扫描这一范围内的端口不是为了寻找portmapper,就是为了寻找可被***的已知的RPC服务。 33434~33600 traceroute 若是你看到这一端口范围内的UDP数据包(且只在此范围以内)则多是因为traceroute。参见traceroute部分。 41508 Inoculan 早期版本的Inoculan会在子网内产生大量的UDP通信用于识别彼此。参见 http://www.circlemud.org/~jelson/software/udpsend.html http://www.ccd.bnl.gov/nss/tips/inoculan/index.html (二) 下面的这些源端口意味着什么? 端口1~1024是保留端口,因此它们几乎不会是源端口。但有一些例外,例如来自NAT机器的链接。参见1.9。 常看见紧接着1024的端口,它们是系统分配给那些并不在意使用哪一个端口链接的应用程序的“动态端口”。 Server Client 服务 描述 1-5/tcp 动态 FTP 1-5端口意味着sscan脚本 20/tcp 动态 FTP FTP服务器传送文件的端口 53 动态 FTP DNS从这个端口发送UDP回应。你也可能看见源/目标端口的TCP链接。 123 动态 S/NTP 简单网络时间协议(S/NTP)服务器运行的端口。它们也会发送到这个端口的广播。 27910~27961/udp 动态 Quake Quake或Quake引擎驱动的游戏在这一端口运行其服务器。所以来自这一端口范围的UDP包或发送至这一端口范围的UDP包一般是游戏。 61000以上 动态 FTP 61000以上的端口可能来自Linux NAT服务器(IP Masquerade)