`
xinklabi
  • 浏览: 1563525 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
文章分类
社区版块
存档分类
最新评论

常见端口详解,可能攻击和防御策略

 
阅读更多

网络不安全,需要恶补端口知识

  现在电脑的价格真是便宜,尤其是在北京、上海等较发达的地区,不但电脑售价便宜,而且性能还贼好。为了上网,家家户户都安装了ADSL宽带。虽然网上的花花世界让人目不暇接,但是此时您会想到有坏人已经盯上你了嘛?

 

外面的数据就好像来存钱的人手里拿的钞票,你根本就不知道他们拿的是白纸还是zhadan!

    众所周知,计算机与外部网络是通过端口进行的数据交换的。当你访问某一站点的时候,系统会在本地开放一个端口去连接远程网站服务器的某个开放端口,只有两者端口可以互连的时候,你才能在本机看到各种各样的资讯。同理,外围网络想要访问本地电脑的时候也是如此。

    一个端口就是一个潜在的通讯通道,同时也是一个入侵通道,开放一个端口就是一台计算机在网络上打开了一扇窗户,而在刚装好的windowsXP系统会默认在本地电脑上打开许多服务端口,而心怀托测的黑客也常会利用这些端口入侵您的电脑。由此,不掌握一些端口方面的相关知识,怎能安心上网?

■一般常见端口,以及其分类

 

  一台电脑与网络上其他节点的相互数据传输需要使用到TCP/IP协议。


    我们可以在本地连接属性中看到它的存在,双击它则是设置IP地址以及DNS服务器的对话框。上网必须安装的协议,windowsXP默认安装。

    根据TCP/IP协议规定,端口号只有整数,一台电脑可以拥有256×256(65536)个端口,范围从0 到65535。而这些端口按照连接方式可以细分为TCP和UDP两种。如果按端口号大小还可分为以下三大类:

  1.系统保留端口(从0到1023)

    这些端口不允许你随意使用,它们紧密与一些系统服务绑定。通常这些端口的开放都表明了系统可以提供某种网络服务。例如:80对应着Web服务、21对应着FTP、25对应着SMTP、110对应着POP3等。

  2.动态端口(从1024到49151)

    这些动态端口不像系统保留端口无法随意使用。你可以将你需要的很多服务绑定在这些端口上,不过一个服务只能对应一个端口。而且还有少数的系统服务会绑定在1024到49151的端口上,例如3389端口(远程终端服务),就无法被随意使用。

  而且当你需要与别人通信时,Windows会从1024起,在本机上随机分配一个动态端口,如果1024端口正在使用,那么等到再需要端口时就会分配另外一个空闲的端口供你使用。

    3.私有端口(从49152到65535)

  从49152到65535这一段端口,通常没有捆绑系统服务,Windows可以将这些端口随意分配给你使用。

    由于本地电脑上的端口数量实在是太多,小编也在网上搜索了部分常见端口,方便您的查阅,详情请看下页。


■常见端口大全

 

  下边附常用端口列表,以及用途

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

  7 Echo   你能看到许多人们搜索Fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。常见的一种DoS攻击是echo循环(echo-loop),攻击者伪造从一个机器发送到另一个机器的UDP数据包,而两个机器分别以它们最快的方式回应这些数据包。另一种东西是由DoubleClick在词端口建立的TCP连接。有一种产品叫做“Resonate Global Dispatch”,它与DNS的这一端口连接以确定最近的路由。Harvest/squid cache将从3130端口发送UDP echo:“如果将cache的source_ping on选项打开,它将对原始主机的UDP echo端口回应一个HIT reply。”这将会产生许多这类数据包。

  19 chargen  这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时,会发送含有垃圾字符的数据流知道连接关闭。Hacker利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。由于服务器企图回应两个服务器之间的无限的往返数据通讯一个chargen和echo将导致服务器过载。同样fraggle DoS攻击向目标地址的这个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。

  21 ftp  最常见的攻击者用于寻找打开“anonymous”的ftp服务器的方法。这些服务器带有可读写的目录。Hackers或Crackers 利用这些服务器作为传送warez (私有程序) 和pron的节点。

    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 攻击者寻找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地址。

  79 finger Hacker用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器finger扫描。

  80 HTTP服务器所用到的端口。

  109 POP2 并不象POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上POP3的漏洞在POP2中同样存在。

  110 POP3 用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少有20个(这意味着Hacker可以在真正登陆前进入系统)。成功登陆后还有其它缓冲区溢出错误。

  137 NetBIOS name service nbtstat (UDP) 这是防火墙管理员最常见的信息。

  139 NetBIOS File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows“文件和打印机共享”和SAMBA。在Internet上共享自己的硬盘是可能是最常见的问题。大量针对这一端口始于1999,后来逐渐变少。2000年又有回升。一些VBS(IE5 VisualBasic SCripting)开始将它们自己拷贝到这个端口,试图在这个端口繁殖。

  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会利用这些信息进入系统。

  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页需要一个新端口。

  1025,1026 参见1024

  1080 SOCKS 这一协议以管道方式穿过防火墙,允许防火墙后面的许多人通过一个IP地址访问Internet。理论上它应该只允许内部的通信向外达到Internet。但是由于错误的配置,它会允许Hacker/Cracker的位于防火墙外部的攻击穿过防火墙。或者简单地回应位于Internet上的计算机,从而掩饰他们对你的直接攻击。WinGate是一种常见的Windows个人防火墙,常会发生上述的错误配置。在加入IRC聊天室时常会看到这种情况。

  1243 Sub-7木马(TCP)

  1433 MSSQL数据库服务端口

  27374 Sub-7木马(TCP)

   30100 NetSphere木马(TCP) 通常这一端口的扫描是为了寻找中了NetSphere木马。

  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服务。

■如何查看本机开放端口

 

  默认状态下,Windows XP系统会打开很多“服务端口”,同时在你上网的时候也会打开一些动态窗口。想要查看本地电脑打开了哪些端口、有哪些电脑正在与本地电脑交换数据,盖茨大叔已经在windows 系统内预置了查询手段,当然了,也有一些专门的程序可以查看。

    首先让我们来看看,windows xp自带的查询手段吧,我们将用到的工具是windows xp内置的MSdo工具。

    运行方法:直接用快捷键WIN+R调出运行程序栏,然后输入cmd,回车就可以进入到MSdos工具了。


    我们需要使用到的命令为netstat(网络状况)。进入MSdos窗口,输入netstat,然后回车就可以看到目前本地连接的所有情况以及打开的窗口。


    Proto表示连接使用的网络协议,Local Address代表本地电脑名称和打开的端口号(图中本机1024之前的端口已经全部被关闭了),Foreign Address是远程计算机的IP地址和端口号,State表明当前TCP的连接状态,图中established表示的是保持中的连接。此时我使用了2个即时通讯软件都在线,表示本地正在与远程电脑保持连接。

  如果你在DOS窗口中输入了netstat -nab命令,还将显示每个连接都是由哪些程序创建的。


    上图中本地电脑的135端口,就是由svchost.exe程序创建的,该程序一共调用了5个组件(WS2_32.dll、RPCRT4.dll、rpcss.dll、svchost.exe、ADVAPI32.dll)来完成创建工作。而下方打红框的则是上面那个保持连接的即时通讯软件,使用了本地电脑的1041端口,与远程的192.168.1.1相连接。

    假如你发现本地电脑上出现了可疑的进程,就可以用该命令察看它调用的相关Dll文件,由此来确定是否为木马之类的黑客软件。

  2.使用端口查看类软件

  能实现netstat命令的端口监视类软件能查看本地计算机打开的端口,而且外观看起来更漂亮。这类软件非常多,著名的有Tcpview、Port Reporter、网络端口查看器等。小编比较推荐的是TcpvIEw,可以非常直观的让你监视本机的网络连接情况。

    下面就请出“TCPVIEw”,它一款静态显示当前PC的端口与线程的工具,占用资源少,在NT内核的系统如win2000、xp、2003等操作系统中使用可以显示端口所对应的程序图标,让你一眼就能看出某个端口是什么程序所打开的。


    有些运行的程序名称可能会与系统内的程序名称一样或者类似,但实际上却是黑客软件。其实,我们可以从硬盘的路径判断出来,在某个程序上点右键,在弹出的菜单中选择 “进程属性”。


    只要看看程序路径就知道是否为正常程序了,非常好用吧!

 

■如何关闭本机不用端口

 

    之前说过,默认下Windows XP会打开很多端口,但是很多端口你并没有使用到。一旦你上网,黑客就可以通过一些有潜在危险的端口连上你的电脑,因此对于那些不需要的端口你应该选择关闭。

    而之前也说过,每个开放的端口都对应着一个系统服务进程或者软件的应用接口。目前我们主要需要预防的就是:TCP139、445、593、1025 端口和 UDP123、137、138、445、1900端口、以及一些流行病毒的后门端口(如 TCP 2513、2745、3127、6129 端口),以及远程服务访问端口3389。

    首先,我们应该通过组策略管理器将一些较少用到的系统服务关闭。使用WIN+R键调出运行栏,然后键入services.ms后回车,然后找到不需要的系统服务选择停止即可。如果您对系统服务不是那么精通,可以参照小编已经优化好的系统服务。


    一般来说台式电脑保证上面开启的系统服务就可以了,如果您需要知道更多的资料可以在网上查找一些相关的优化指南。

    最简单的就是直接安装一个防火墙,然后配置相应防火墙策略就可以完全防范了。


■重新定义默认端口,保护系统安全

 

  假使本地计算机需要使用的服务其默认端口被黑客破坏的几率很大,你可以将它重定义到另一个地址,这样即可隐藏公认的默认端口,降低受破坏机率,保护系统安全。

  例如你的电脑上开放了远程终端服务(Terminal Server)端口(默认是3389),可以将它重定向到另一个端口(3333),方法是:

  1.在本机上(服务器端)修改,使用WIN+r快捷键调出运行栏,输入regedit后回车。找到下列两个注册表项,将其中的 PortNumber,全部改成自定义的端口(3333)即可:

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp]

  [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]


  2.在客户端上修改

   依次单击“开始→程序→附件→通讯→远程桌面连接”,打开“远程桌面连接”窗口,单击“选项”按钮扩展窗口,填写完相关参数后,单击“常规”下的“另存为”按钮,将该连接参数导出为.rdp文件。用记事本打开该文件,在文件最后添加一行:server port:i:1234 (这里填写你服务器自定义的端口)。以后,直接双击这个.rdp 文件即可连接到服务器的这个自定义端口了。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics