端口问题,是用户在端口上所用技术的问题,还是攻击者所用技术的问题?
通过TCP或UDP协议,数据包在与特定IP地址和终端相关联的编号网络端口上穿梭。所有端口都面临被攻击的风险,没有任何端口是天生安全的。
RedTeam Security 首席安全顾问科特·穆尔称:“每个端口及其底层服务都有各自的风险。风险来自于服务版本、配置方式、口令有无及口令强度。还有很多因素决定着端口或服务的安全性。”这其他因素包括,端口是否被攻击者选中发起攻击或投送恶意软件,以及用户是否开放了端口。
基于相关应用、漏洞和攻击对风险网络端口进行分析,可以得出保护企业免受恶意黑客对开放端口滥用的方法。
是什么让这些端口面临风险?
TCP端口65535个,UDP端口65535个,我们只需要注意最危险的那几个。
首当其冲就是 TCP 21 端口。该端口承载FTP连接控制任务。FTP服务器漏洞满满,随便点点都有一堆,比如匿名身份验证、目录浏览、跨站脚本,简直是超级理想的攻击目标。
有些服务的漏洞好歹还是陆续出现的,TCP 23 端口的Telnet之类遗留服务,却是从一开始就不安全。带宽确实很小,一次仅几个字节,但人家是完全不遮掩的明文传输。攻击者可以监听Telnet流量,查找其中凭证信息,通过中间人攻击注入指令,最终执行远程代码。
有用于切入的网络端口,就有用于出站的网络端口。域名解析服务所用的 TCP/UDP 53 端口,就是个很好的出站策略。一旦网络内的犯罪黑客拿到了所需的数据,他们需要做的,就是利用将数据转换成DNS流量的软件,来将战利品投递出门。DNS流量极少被监测,更少被过滤。只要攻击者将数据安全护送出企业,就可以通过他们的DNS 服务器将数据转译成原始格式发送。
端口越常用,就越容易被用来偷渡攻击数据包。用于HTTP协议的 TCP 80 端口,支持浏览器接收的网页流量。通过80端口对Web客户端发起的攻击包括:SQL注入、跨站请求伪造、跨站脚本和缓冲区溢出。
网络罪犯会在各个端口上设置他们自己的服务。TCP 1080 端口是业界指定的套接字安全“SOCKS”代理,被攻击者用以支持恶意软件和行为。计算机木马和蠕虫,比如Mydoom和Bugbear,就一直用1080端口进行攻击。如果网络管理员没有设置SOCKS代理,其存在就可能意味着网络中有恶意活动。
黑客犯懒的时候,往往会用些容易记住的端口号,比如234或6789之类数列,或者一些重复的数字,比如666或888。有些后门和木马软件会打开 TCP 4444 端口,行监听、通信、转发外部恶意流量和发送恶意载荷之事。使用该端口的一些恶意软件包括:Prosiak、Swift Remote 和CrackDown。
Web流量不仅仅使用80端口。HTTP流量也使用 TCP 8080 端口。连接这些端口的服务器大多是无人管控的遗留主机,随时间流逝漏洞越积越多。开放了这些端口的服务器也有可能是HTTP代理,如果网络管理员没有安装过,那就可能代表着系统中有需要关注的安全问题了。
据传高级攻击者将TCP和 UDP 31337 端口,用作著名的 Back Orifice 后门和其他一些恶意软件的通信端口。TCP 31337 端口的例子有:Sockdmini、Back Fire、icmp_pipe.c、Back Orifice Russian、Freak88、Baron Night 和BO客户端。UDP 31337 上的例子则包含有 Deep BO。在使用字母和数字的黑客文中,31337被拼成“eleet”,意思为“精英(elite)”。
弱口令可致SSH和22端口成为唾手可得的目标。22端口指定为SSH端口,可以访问物理服务器硬件的远程shell,当凭证中包含默认或易猜用户名及口令时,该端口也就不安全了。利用熟悉的短语,少于8字符的短口令,以及纯数字序列口令,对攻击者来说真是太好猜了。
6660到6669端口上跑的IRC,也依然是犯罪黑客的攻击目标。IRC漏洞很多,比如可让攻击者远程执行程序的 Unreal IRCD。
有些端口和协议可让攻击者横向拓展。比如引无数黑客垂涎的 UDP 161 端口,因为承载着简单网络管理(SNMP)协议,能够让攻击者通过该端口管理联网主机、查询信息、发送流量。SNMP可以查询服务器,找出用户名、网络共享和其他信息。SNMP通常都用缺省口令。
端口、服务保卫战
企业可以通过SSH公钥验证、root登录禁用,以及将SSH挪到更高端口号让攻击者不那么容易找到,来保护SSH。如果用户用25000之类高端口号连接SSH,攻击者就难以定位SSH服务的攻击界面了。
如果公司运营有IRC,用防火墙围住它。别让网络外面的任何流量接触到IRC服务。要使用IRC的用户必须通过VPN连入网络。
重复数字端口和特别长的数字序列端口,往往不是合法端口。如果看到此类端口,请确保它们是真实的。DNS流量也需要被监视和过滤,以防数据渗漏。Telnet服务和23端口还是关了吧。
所有网络端口都应该采用深度防御的安全方法。关闭所有不用的端口,在每台主机上使用基于主机的防火墙,对网络应用基于网络的下一代防火墙,监视并过滤端口流量。定期端口扫描应作为渗透测试的一部分,确保这些端口上都没有未经检查的漏洞。要特别注意SOCKS代理或其他任何你并未设置的服务。连接到端口的每一个设备、软件或服务都要保持更新,随时处于完美防御状态。保持积极主动,因为新旧软件中总会出现可供攻击者通过网络端口进行利用的漏洞。
采用支持服务的最新版本,对服务进行正确配置,使用强口令;访问控制列表可助你限制连接端口和服务的人员。经常测试端口和服务。如果环境中有诸如HTTP和HTTPS之类可定制的服务,很容易就会错误配置,意外引入漏洞。另外,缺省SNMP用户名和口令字符串一定要记得改掉。
端口大全
根据端口所关联威胁的类型和严重性,或给定端口服务漏洞的等级之类各种不同的标准,专家们给出了多张具有重大风险的端口列表。没有哪张列表能列全的。不过,你可以从下面这三张表开始:
SpeedGuide: http://www.speedguide.net/ports_sg.php
GaryKessler.net: http://www.garykessler.net/library/is_tools_scan.html
SANS.org: https://www.sans.org/security-resources/idfaq/which-backdoors-live-on-which-ports/8/4