您的位置:首页资讯教你一招 → 解读防火墙记录

解读防火墙记录

时间:2004/10/15 1:15:00来源:本站整理作者:蓝点我要评论(0)

本文将向你解释你在防火墙的记录(Log)中看到了什么?尤其是那些端口是什么意思?你将能利用这些信息做出判断:我是否受到了Hacker的攻击?他/她到底想要干什么?本文既适用于维护企业级防火墙的安全专家,又适用于使用个人防火墙的家庭用户。 

*译者:现在个人防火墙开始流行起来,很多网友一旦看到报警就以为受到某种攻击,其实大多数情况并非如此。 

一、目标端口ZZZZ是什么意思 

所有穿过防火墙的通讯都是连接的一个部分。一个连接包含一对相互“交谈”的IP地址以及一对与IP地址对应的端口。目标端口通常意味着正被连接的某种服务。当防火墙阻挡(block)某个连接时,它会将目标端口“记录在案”(logfile)。这节将描述这些端口的意义。 

端口可分为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开始。 

从哪里获得更全面的端口信息: 
1ftp://ftp.isi.edu/in-notes/iana/ass...ts/port-numbers 
"Assigned Numbers" RFC,端口分配的官方来源。 
2.http://advice.networkice.com/advice/Exploits/Ports/ 
端口数据库,包含许多系统弱点的端口。 
3./etc/services 
UNIX 系统中文件/etc/services包含通常使用的UNIX端口分配列表。Windows NT中该文件位于%systemroot%/system32/drivers/etc/services。 
4.http://www.con.wesleyan.edu/~trieme...k/docservs.html 
特定的协议与端口。 
5.http://www.chebucto.ns.ca/~rakerman...port-table.html 
描述了许多端口。 
6.http://www.tlsecurity.com/trojanh.htm 
TLSecurity的Trojan端口列表。与其它人的收藏不同,作者检验了其中的所有端口。 
7.http://www.simovits.com/nyheter9902.html 
Trojan Horse 探测。 

一) 通常对于防火墙的TCP/UDP端口扫描有哪些? 

本节讲述通常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 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会利用这些信息进入系统。 

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

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后门 
许多攻击脚本将安装一个后门Shell于这个端口(尤其是那些针对Sun系统中Sendmail和RPC服务漏洞的脚本,如statd, ttdbserver和cmsd)。如果你刚刚安装了你的防火墙就看到在这个端口上的连接企图,很可能是上述原因。你可以试试Telnet到你的机器上的这个端口,看看它是否会给你一个Shell。连接到600/pcserver也存在这个问题。 

2049 NFS 
NFS程序常运行于这个端口。通常需要访问portmapper查询这个服务运行于哪个端口,但是大部分情况是安装后NFS运行于这个端口,Hacker/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) 

三) 我发现一种对于同一系列端口的扫描来自于Internet上变化很大的源地址 
这通常是由于“诱骗”扫描(decoy scan),如nmap。其中一个是攻击者,其它的则不是。 

利用防火墙规则和协议分析我们可以追踪他们是谁?例如:如果你ping每个系统,你就可以将获得的TTL与那些连接企图相匹配。这样你至少可以哪一个是“诱骗”扫描(TTL应该匹配,如果不匹配则他们是被“诱骗”了)。不过,新版本的扫描器会将攻击者自身的TTL随机化,这样要找出他们回更困难。 
你可以进一步研究你的防火墙记录,寻找在同一子网中被诱骗的地址(人)。你通常会发现攻击者刚刚试图对你连接,而被诱骗者不会。 

四) 特洛伊木马扫描是指什么? 
特洛伊木马攻击的第一步是将木马程序放置到用户的机器上。常见的伎俩有: 
1) 将木马程序发布在Newsgroup中,声称这是另一种程序。 
2) 广泛散布带有附件的E-mail 
3) 在其Web上发布木马程序 
4) 通过即时通讯软件或聊天系统发布木马程序(ICQ, AIM, IRC等) 
5) 伪造ISP(如AOL)的E-mail哄骗用户执行程序(如软件升级) 
6) 通过“文件与打印共享”将程序Copy至启动组 

下一步将寻找可被控制的机器。最大的问题是上述方法无法告知Hacker/Cracker受害者的机器在哪里。因此,Hacker/Cracker扫描Internet。 
这就导致防火墙用户(包括个人防火墙用户)经常看到指向他们机器的扫描。他们的机器并没有被攻击,扫描本身不会造成什么危害。扫描本身不会造成机器被攻击。真正的管理员会忽略这种“攻击” 

以下列出常见的这种扫描。为了发现你的机器是否被种了木马,运行“NETSTAT -an”。查看是否出现下列端口的连接。 


Port Trojan 
555 phAse zero 
1243 Sub-7, SubSeven 
3129 Masters Paradise 
6670 DeepThroat 
6711 Sub-7, SubSeven 
6969 GateCrasher 
21544 GirlFriend 
12345 NetBus 
23456 EvilFtp 
27374 Sub-7, SubSeven 
30100 NetSphere 
31789 Hack‘a‘Tack 
31337 BackOrifice, and many others 
50505 Sockets de Troie 

更多信息查看: http://www.commodon.com/threat/threat-ports.htm 

1. 什么是SUBSEVEN(sub-7) 

Sub-7是最有名的远程控制木马之一。现在它已经成为易于使用,功能强大的一种木马。原因是: 
1〕 它易于获得,升级迅速。大部分木马产生后除了修改bug以外开发就停止了。 
2〕 这一程序不但包含一个扫描器,还能利用被控制的机器也进行扫描。 
3〕 制作者曾比赛利用sub-7控制网站。 
4〕 支持“端口重定向”,因此任何攻击者都可以利用它控制受害者的机器。 
5〕 具有大量与ICQ, AOL IM, MSN Messager和Yahoo messenger相关的功能,包括密码嗅探,发送消息等。 
6〕 具有大量与UI相关的功能,如颠倒屏幕,用受害者扩音器发声,偷窥受害者屏幕。 
简而言之它不仅是一种hacking工具而且是一种玩具,恐吓受害者的玩具。 

Sub-7是由自称“Mobman”的人写的,他的站点是http://subseven.slak.org/。 
Sub-7可能使用以下端口: 

1243 老版本缺省连接端口 
2772 抓屏端口 
2773 键盘记录端口 
6711 ??? 
6776 我并不清楚这个端口是干什么用的,但是它被作为一些版本的后面 (即不用密码也能连接)。 
7215 "matrix" chat程序 
27374 v2.0缺省端口 
54283 Spy端口 

五) 来自低端口的DNS包 
Q:我看见许多来自1024端口以下的DNS请求。这些服务是“保留”的吗?他们不是应该使用1024-65535端口吗? 
A:他们来自于NAT防火墙后面的机器。NAT并不需要保留端口。(Ryan Russell http://www.sybase.com/) 

Q:我的防火墙丢弃了许多源端口低于1024的包,所以DNS查询失败。 
A:不要用这种方式过滤。许多防火墙有类似的规则,但这是一种误导。因为Hacker/Cracker能伪造任何端口。 

Q:这些NAT防火墙工作不正常吗? 
A:理论上不是,但实际上会导致失败。正确的方式是在任何情况下完全保证DNS通讯。(尤其在那些“代理”DNS并强迫DNS通过53端口的情况下) 

Q:我以为DNS查询应该使用1024端口以上的随机端口? 
A:实际上,一般DNS客户将使用非保留端口。但是有许多程序使用53端口。在任何情况下,NAT都会完全不同,因为它改变了所有SOCKET(IP+port combo) 


六) 一旦我拨号连接到ISP后,我的个人防火墙就开始警告“有人在探测你的xxxx端口”。 
这种情况很常见。因为你使用ISP分配给你的IP,而在你使用之前刚有人使用。你看到的是上一个用户的“残留”信息。 
常见的例子是聊天程序。如果有人刚刚挂断,刚才和他聊天的人会继续试图连接。一些程序的“超时”设置很长。如POWWOW或ICQ。 
另一个例子是多人在线游戏。你会看到来自游戏提供者的通讯(如MPlayer),或其它不知名的游戏服务器。这些游戏通常基于UDP,因此无法建立连接。但为了获得较好的用户感觉,他们对于建立连接又很“执着”。以下是一些游戏的端口: 

7777 Unreal, Klingon Honor Guard 
7778 Unreal Tournament 
22450 Sin 
26000 Quake 
26900 Hexen 2 
26950 HexenWorld 
27015 Half-life, Team Fortress Classic (TFC) 
27500 QuakeWorld 
27910 Quake 2 
28000-28008 Starsiege TRIBES (TRIBES.DYNAMIX.COM) 
28910 Heretic 2 

另一个例子是多媒体广播、电视。如RealAudio客户端使用6970-7170端口接收声音数据。 

你需要连接的来源。例如ICQ服务器运行于4000端口,而其客户端使用更高的随机端口。这就是说你会看到你会看到从4000端口到高端随机端口的UDP包。换句话说,不要试图查询端口列表找到随机高端端口的用途。重要的是源端口。 

Sub-7也有类似问题。它使用不同的TCP连接用于不同的服务。如果受害者的机器下线,它会持续企图连接受害者机器的端口,特别是6776端口。 


七) IRC服务器在探测我 
最流行的聊天方式之一是IRC。这种聊天程序的特点之一就是它能告诉你正在和你聊天的人的IP地址。聊天室的问题之一是:人们匿名登陆并四处闲逛,往往会遭遇跑题的评论、粗鲁的话语、被打断谈话、被服务器“冲洗”或被其它客户踢下线。 
因此,服务器端和客户端都默认禁止在聊天室内使用匿名登陆。特别需要指出的是,当有人进入聊天室时要检查他们是否通过其它代理服务器连接。最常见的这种扫描是SOCKS。假设你来的那个地方支持SOCKS,那么你完全有可能有一台完全独立的机器,你试图通过明处的代理服务器隐藏你在暗处的真实身份。Undernet’s关于这方面的策略可参考http://help.undernet.org/proxyscan. 
同时,crackers/hackers会试图扫描人们的机器以确定他们是否运行某种服务,可被他们用做跳板。同样,通过检查SOCKS,攻击者希望发现某人打开了SOCKS,例如一个家庭的个人用户SOCKS实现共享连接,但将其错误设置成Internet上所有用户都能通过它。 

八) 什么是“重定向”端口 
一种常见的技术是把一个端口重定向到另一个地址。例如默认的HTTP端口是80,许多人把他们重定向到令一个端口,如8080( 这样,如果你打算访问本文就得写成http://www.robertgraham.com:8080/pu...ewall-seen.html ) 
实现重定向是为了让端口更难被发现,从而使Hacker更难攻击。因为Hacker不能对一个公认的默认端口进行攻击而必须进行端口扫描。 
大多数端口重定向与原端口有相似之处。因此,大多数HTTP端口由80变化而来:81,88,8000,8080,8888。同样POP的端口原来在110,也常被重定向到1100。 
也有不少情况是选取统计上有特别意义的数,象1234,23456,34567等。许多人有其它原因选择奇怪的数,42,69,666,31337。近来,越来越多的远程控制木马( Remote Access Trojans, RATs )采用相同的默认端口。如NetBus的默认端口是12345。 
Blake R. Swopes指出使用重定向端口还有一个原因,在UNIX系统上,如果你想侦听1024以下的端口需要有root权限。如果你没有root权限而又想开web服务,你就需要将其安装在较高的端口。此外,一些ISP的防火墙将阻挡低端口的通讯,所以即使你拥有整个机器你还是得重定向端口。 

九) 我还是不明白当某人试图连接我的某个端口时我该怎么办? 
你可以使用Netcat建立一个侦听进程。例如,你想侦听1234端口: 
NETCAT -L -p 1234 
许多协议都会在连接开始的部分发送数据。当使用Netcat侦听某个端口时,你能想办法搞清在使用什么协议。如果幸运的话,你会发现是HTTP协议,它会为你提供大量信息,使你能追踪发生的事情。 
“-L”参数是让Netcat持续侦听。正常情况下Netcat会接受一个连接,复制其内容,并退出。加上这个参数后,它可以持续运行以侦听多个连接。 




解读防火墙记录(我看到的是什么?) 

来源:http://www.robertgraham.com/ 
翻译整理:Tony Shen 

(接上期) 

二.ICMP 
TCP和UDP能承载数据,但ICMP仅包含控制信息。因此,ICMP信息不能真正用于入侵其它机器。Hacker们使用ICMP通常是为了扫描网络,发动DoS攻击,重定向网络交通。(这个观点似乎不正确,可参考shotgun关于木马的文章,译者注) 

一些防火墙将ICMP类型错误标记成端口。要记住,ICMP不象TCP或UDP有端口,但它确实含有两个域:类型(type)和代码(code)。而且这些域的作用和端口也完全不同,也许正因为有两个域所以防火墙常错误地标记了他们。更多关于ICMP的知识请参考Infosec Lexicon entry on ICMP。 
关于ICMP类型/代码的含义的官方说明请参阅http://www.isi.edu/in-notes/iana/as...笸迹昙挛摹?/a> 

类型 代码 名称 含义 
0 * Echo replay 对ping的回应 
3 * Destination Unreachable 主机或路由器返回信息:一些包未达到目的地 
0 Net Unreachable 路由器配置错误或错误指定IP地址 
1 Host Unreachable 最后一个路由器无法与主机进行ARP通讯 
3 Port unreachable 服务器告诉客户端其试图联系的端口无进程侦听 
4 Fragmentation Needed but DF set 重要:如果你在防火墙丢弃记录中发现这些包,你应该让他们通过否则你的客户端将发现TCP连接莫名其妙地断开 
4 * Source Quench Internet阻塞 
5 * Redirect 有人试图重定向你的默认路由器,可能Hacker试图对你进行“man-in-middle”的攻击,使你的机器通过他们的机器路由。 
8 * Echo Request ping 
9 * Router Advertisement hacker可能通过重定向愕哪系穆酚善鱀oS攻击你的Win9x 或Solaris。邻近的Hacker也可以发动man-in-the-middle的攻击 
11 * Time Exceeded In Transit 因为超时包未达到目的地 
0 TTL Exceeded 因为路由循环或由于运行traceroute,路由器将包丢弃 
1 Fragment reassembly timeout 由于没有收到所有片断,主机将包丢弃 
12 * Parameter Problem 发生某种不正常,可能遇到了攻击 


(一) type=0 (Echo reply) 

发送者在回应由你的地址发送的ping,可能是由于以下原因: 
有人在ping那个人:防火墙后面有人在ping目标。 

自动ping:许多程序为了不同目的使用ping,如测试联系对象是否在线,或测定反应时间。很可能是使用了类似VitalSign‘s Net.Medic的软件,它会发送不同大小的ping包以确定连接速度。 

诱骗ping扫描:有人在利用你的IP地址进行ping扫描,所以你看到回应。 

转变通讯信道:很多网络阻挡进入的ping(type=8),但是允许ping回应(type=0)。因此,Hacker已经开始利用ping回应穿透防火墙。例如,针对internet站点的DdoS攻击,其命令可能被嵌入ping回应中,然后洪水般的回应将发向这些站点而其它Internet连接将被忽略。 

(二) Type=3 (Destination Unreachable) 

在无法到达的包中含有的代码(code)很重要 
记住这可以用于击败“SYN洪水攻击”。即如果正在和你通讯的主机受到“SYN洪水攻击”,只要你禁止ping(type=3)进入,你就无法连接该主机。 

有些情况下,你会收到来自你从未听说的主机的ping(type=3)包,这通常意味着“诱骗扫描”。攻击者使用很多源地址向目标发送一个伪造的包,其中有一个是真正的地址。Hacker的理论是:受害者不会费力从许多假地址中搜寻真正的地址。 

解决这个问题的最好办法是:检查你看到的模式是否与“诱骗扫描”一致。比如,在ICMP包中的TCP或UDP头部分寻找交互的端口。 

1) Type = 3, Code = 0 (Destination Net Unreachable) 
无路由器或主机:即一个路由器对主机或客户说,:“我根本不知道在网络中如何路由!包括你正连接的主机”。这意味着不是客户选错了IP地址就是某处的路由表配置错误。记住,当你把自己UNIX机器上的路由表搞乱后你就会看到“无路由器或主机”的信息。这常发生在配置点对点连接的时候。 

2) Type = 3, Code = 3 (Destination Port Unreachable) 
这是当客户端试图连击一个并不存在的UDP端口时服务器发送的包。例如,如果你向161端口发送SNMP包,但机器并不支持SNMP服务,你就会收到ICMP Destination Port Unreachable包。 

解码的方案 
解决这个问题的第一件事是:检查包中的端口。你可能需要一个嗅探器,因为防火墙通常不会记录这种信息。这种方法基于ICMP原始包头包含IP和UDP头。以下是复制的一个ICMP unreachable包: 

00 00 BA 5E BA 11 00 60 97 07 C0 FF 08 00 45 00 
00 38 6F DF 00 00 80 01 B4 12 0A 00 01 0B 0A 00 
01 C9 03 03 C2 D2 00 00 00 00 45 00 00 47 07 F0 
00 00 80 11 1B E3 0A 00 01 C9 0A 00 01 0B 08 A7 
79 19 00 33 B8 36 

其中字节03 03是ICMP的类型和代码。最后8个字节是原始UDP头,解码如下: 
08A7 UDP源端口 port=2215,可能是临时分配的,并不是很重要。 
7919 UDP目标端口 port=31001,很重要,可能原来用户想连接31001端口的服务。 
0033 UDP长度 length=51,这是原始UDP数据的长度,可能很重要。 
B836 UDP校验和 checksum=0xB836,可能不重要。 

你为什么会看到这些? 

“诱骗UDP扫描”:有人在扫描向你发送ICMP的机器。他们伪造源地址,其中之一是你的IP地址。他们实际上伪造了许多不同的源地址使受害者无法确定谁是攻击者。如果你在短时间内收到大量来自同一地址的这种包,很有可能是上述情况。检查UDP源端口,它总在变化的话,很可能是Scenario。 

“陈旧DNS”:客户端会向服务器发送DNS请求,这将花很长时间解析。当你的DNS服务器回应的时候,客户端可能已经忘记你并关闭了用于接受你回应的UDP端口。如果发现UDP端口值是53,大概就发生了这种情况。这是怎么发生的?服务器可能在解析一个递归请求,但是它自己的包丢失了,所以它只能超时然后再试。当回到客户时,客户认为超时了。许多客户程序(尤其是Windows中的程序)自己做DNS解析。即它们自己建立SOCKET进行DNS解析。如果它们把要求交给操作系统,操作系统就会一直把端口开在那里。 

“多重DNS回应”:另一种情况是客户收到对于一个请求的多重回应。收到一个回应,端口就关闭了,后序的回应无法达到。此外,一个Sun机器与同一个以太网中的多个NICs连接时,将为两个NICs分配相同的MAC地址,这样Sun机器每桢会收到两个拷贝,并发送多重回复。还有,一个编写的很糟糕的客户端程序(特别是那些吹嘘是多线程DNS解析但实际上线程不安全的程序)有时发送多重请求,收到第一个回应后关闭了Socket。但是,这也可能是DNS欺骗,攻击者既发送请求由发送回应,企图使解析缓存崩溃。 

“NetBIOS解析”: 
如果Windows机器接收到ICMP包,看看UDP目标端口是否是137。如果是,那就是windows机器企图执行gethostbyaddr()函数,它将将会同时使用DNS和NetBIOS解析IP地址。DNS请求被发送到某处的DNS服务器,但NetBIOS直接发往目标机器。如果目标机器不支持NetBIOS,目标机器将发送ICMP unreachable。 

“Traceroute”:大多数Traceroute程序(Windows中的Tracert.exe除外)向关闭的端口发送UDP包。这引起一系列的背靠背的ICMP Port Unreachable包发回来。因此你看到防火墙显示这样ICMP包,可能是防火墙后面的人在运行Traceroute。你也会看到TTL增加。 


3) Type = 3, Code = 4 (Fragmentation Needed and Don‘t Fragment was Set) 

这是由于路由器打算发送标记有(DF, 不允许片断)的IP报文引起的。为什么?IP和TCP都将报文分成片断。TCP在管理片断方面比IP有效得多。因此,饯堆趋向于找到“Path MTU”(路由最大传输单元)。在这个过程将发送这种ICMP包。 

假设ALICE和BOB交谈。他们在同一个以太网上(max frame size = 1500 bytes),但是中间有连接限制最大IP包为600 byte。这意味着所有发送的IP包都要由路由器切割成3个片断。因此在TCP层分割片断将更有效。TCP层将试图找到MTU(最大传输单元)。它将所有包设置DF位(Don‘t Fragment),一旦这种包碰到不能传输如此大的包的路由器时路由器将发回ICMP错误信息。由此,TCP层能确定如何正确分割片断。 

你也许应该允许这些包通过防火墙。否则,当小的包可以通过达到目的地建立连接,而大包会莫名其妙的丢失断线。通常的结果是,人们只能看到Web页仅显示一半。 

路由最大传输单元的发现越来越整合到通讯中。如IPsec需要用到这个功能。 

(三) Type = 4 (Source Quench) 

这种包可能是当网络通讯超过极限时由路由器或目的主机发送的。但是当今的许多系统不生成这些包。原因是现在相信简单包丢失是网络阻塞的最后信号(因为包丢失的原因就是阻塞)。 

现在source quenches的规则是(RFC 1122): 
路由器不许生成它们 
主机可以生成它们 
主机不能随便生成它们 
防火墙应该丢弃它们 

但是,主机遇到Source Quench仍然减慢通讯,因此这被用于DoS。防火墙应该过滤它们。如果怀疑发生DoS,包中的源地址是无意义的,因为IP地址肯定是虚构的。 

已知某些SMTP服务器会发送Source Quench。 

(四) Type = 8 (Echo aka PING) 

这是ping请求包。有很多场合使用它们;它可能意味着某人扫描你机器的恶意企图,但它也可能是正常网络功能的一部分。参见Type = 0 (Echo Response) 

很多网络管理扫描器会生成特定的ping包。包括ISS扫描器,WhatsUp监视器等。这在扫描器的有效载荷中可见。许多防火墙并不记录这些,因此你需要一些嗅探器捕捉它们或使用入侵检测系统(IDS)标记它们。 

记住,阻挡ping进入并不意味着Hacker不能扫描你的网络。有许多方法可以代替。例如,TCP ACK扫描越来越流行。它们通常能穿透防火墙而引起目标系统不正常的反应。 

发送到广播地址(如x.x.x.0或x.x.x.255)的ping可能在你的网络中用于smurf放大。 

(五) Type = 11 (Time Exceeded In Transit) 

这一般不会是Hacker或Cracker的攻击 

1) Type = 11, Code = 0 (TTL Exceeded In Transit) 

这可能有许多事情引起。如果有人从你的站点traceroute到Internet,你会看到许多来自路由器的TTL增加的包。这就是traceroute的工作原理:强迫路由器生成TTL增加的信息来发现路由器。 

防火墙管理员看到这种情况的原因是Internet上发生路由循环。路由器Flapping(持续变换路由器)是一个常见的问题,常会导致循环。这意味着当一个IP包朝目的地前进时,这个包被一个路由器错误引导至一个它曾经通过的路由器。如果路由器在包经过的时候把TTL域减一,这个包只好循环运动。实际上当TTL值为0时它被丢弃。 

造成这种情况的另一个原因是距离。许多机器(Windows)的默认TTL值是127或更低。路由器也常常会把TTL值减去大于1的值,以便反应诸如电话拨号或跨洋连接的慢速连接。因此,可能由于初始TTL值太小,而使站点无法到达。此外,一些Hacker/Cracker也会使用这种办法使站点无法到达。 

2) Type = 11, Code = 1 (Fragment Reassembly Time Exceeded) 
当发送分割成片断的IP报文时,发送者并不接收所有片断。通常,大多数TCP/IP通讯甚至不分割片断。你看到这种情况必定是采用了分割片断而且你和目的地之间有阻塞。 

(六) Type = 12 (Parameter Problem) 
这可能意味着一种进攻。有许多足印技术会生成这种包。

相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 电视盒子怎么看百度云迅雷9怎么关闭右侧 迅迅雷99.99下载不完怎么网易云音乐怎么上传歌

最新文章 2022支付宝万能福扫福微信迎新春状态怎么设 微信小老虎头像怎么设置 微信ID后面设置小老抖音压岁钱卡怎么获得2022 抖音压岁钱获取方微博隐私保护怎么设置 微博隐私保护功能完善今日头条2022年集卡活动开启时间 今日头条2

人气排行 智学网怎么登录 智学网怎么查分数 智学网统教你怎么写电子邮箱格式?以163和QQ邮箱为例腾讯大王卡用了后悔怎么办 腾讯大王卡值得办缺少或丢失xinput1_3.dll解决方法,xinput1应用程序无法正常启动0xc000007b解决方法快播关闭怎么办?快播不能用了怎么看片将pdf文件转换为word文件的最简单方法如何破解QQ空间密码和权限