下面将向你解释你在防火墙的记录(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/assignments/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/~triemer/network/docservs.html
特定的协议与端口。
5.http://www.chebucto.ns.ca/~rakerman/trojan-port-table.html
描述了许多端口。
6.http://www.tlsecurity.com/trojanh.html
tlsecurity的trojan端口列表。与其它人的收藏不同,作者检验了其中的所有端口。
7.http://www.simovits.com/nyheter9902.html
trojan horse 探测。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:49 #1
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 二、通常对于防火墙的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连接。有一种产品叫做“res global dispatch”,它与dns的这一端口连接以确定最近的路由。
harvest/squid cache将从3130端口发送udp echo:“如果将cache的source_ping 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 最常见的攻击者用于寻找打开“an ckers 利用这些服务器作为传送warez (私有程序) 和pr0n(故意拼错词而避免被搜索引擎分类)的节点。
22 ssh pcanywhere建立tcp和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点。如果配置成特定的模式,许多使用r saref库的版本有不少漏洞。(建议在其它端口运行ssh)
还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会扫描整个域的ssh主机。你 有时会被使用这一程序的人无意中扫描到。
udp(而不是tcp)与另一端的5632端口相连意味着存在搜索pcanywhere的扫描。5632(十六进制的0x1 600)位交换后是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查询的回复。hack er常使用这种方法穿透防火墙。
67和68 bootp和dhcp udp上的bootp/dhcp:通过dsl和cable-modem的防火墙常会看见大量发送到广播地址255.255.25 5.255的数据。这些机器在向dhcp服务器请求一个地址分配。hacker常进入它们分配一个地址把自己作为局部路由器而发 起大量的“中间人”(man-in-middle)攻击。客户端向68端口(bootps)广播请求配置,服务器向67端口(b ootpc)广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的ip地址。
69 tftp(udp) 许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常错误配置而从系统提供任何文件,如密码文件。它 们也可用于向系统写入文件。
79 finger hacker用于获得用户信息,查询*作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器finger扫描。
98 linuxc 这个程序提供linux boxen的简单管理。通过整合的http服务器在98端口提供基于web界面的服务。它已发现有许多安全问题。一些版本set uid root,信任局域网,在/tmp下建立internet可访问的文件,lang环境变量有缓冲区溢出。此外因为它包含整合的服 务器,许多典型的http漏洞可能存在(缓冲区溢出,历遍目录等)
109 pop2 并不象pop3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上pop3的漏洞在pop2中同样存在。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:50 #2
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 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服务将转向提供服务的特定端口测试漏洞。
记住一定要记录线路中的daem ids, 或sniffer,你可以发现入侵者正使用什么程序访问以便发现到底发生了什么。
113 ident auth 这是一个许多机器上运行的协议,用于鉴别tcp连接的用户。使用标准的这种服务可以获得许多机器的信息(会被hacker利用) 。但是它可作为许多服务的记录器,尤其是ftp, pop, imap, smtp和irc等服务。通常如果有许多客户通过防火墙访问这些服务,你将会看到许多这个端口的连接请求。记住,如果你阻断这个 端口客户端会感觉到在防火墙另一边与e-mail服务器的缓慢连接。许多防火墙支持在tcp连接的阻断过程中发回rst,着将回 停止这一缓慢的连接。
119 nntp news 新闻组传输协议,承载usenet通讯。当你链接到诸如:[url]news://comp.security.firewalls/.[/url] 的地址时通常使用这个端口。这个端口的连接企图通常是人们在寻找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蠕虫(admw0 rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已被感染的用户。当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有所增加(mou ntd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪个端口,需要在端口111做portmap查询), 只是linux默认为635端口,就象nfs通常运行于2049端口。
1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个端口连接网络,它们请求*作系统为它们分配“下一个闲 置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配端口1024。为了验证这一 点,你可以重启机器,打开telnet,再打开一个窗口运行“natstat -a”,你将会看到telnet被分配1024端口。请求的程序越多,动态端口也越多。*作系统分配的端口将逐渐变大。再来一遍 ,当你浏览web页时用“netstat”查看,每个web页需要一个新端口。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:50 #3
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 三、我发现一种对于同一系列端口的扫描来自于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受害者的机器在哪里。因此,hac ker/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, seven
30100 netsphere
31789 hack‘a‘tack
31337 backorifice, and many others
50505 sockets de troie
更多信息查看:[url]http://www.commodon.com/threat/threat-ports.htm[/url]
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”的人写的,他的站点是[url]http://subseven.slak.org/[/url]。
sub-7可能使用以下端口:
1243 老版本缺省连接端口
2772 抓屏端口
2773 键盘记录端口
6711 ???
6776 我并不清楚这个端口是干什么用的,但是它被作为一些版本的后面 (即不用密码也能连接)。
7215 "matrix" chat程序
27374 v2.0缺省端口
54283 spy端口
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:50 #4
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 五、来自低端口的dns包
q:我看见许多来自1024端口以下的dns请求。这些服务是“保留”的吗?他们不是应该使用1024-65535端口吗?
a:他们来自于nat防火墙后面的机器。nat并不需要保留端口。(ryan russell >[url]http://www.sybase.com/[/url])
q:我的防火墙丢弃了许多源端口低于1024的包,所以dns查询失败。
a:不要用这种方式过滤。许多防火墙有类似的规则,但这是一种误导。因为hacker/cracker能伪造任何端口。
q:这些nat防火墙工作不正常吗?
a:理论上不是,但实际上会导致失败。正确的方式是在任何情况下完全保证dns通讯。(尤其在那些“代理”dns并强迫dn s通过53端口的情况下)
q:我以为dns查询应该使用1024端口以上的随机端口?
a:实际上,一般dns客户将使用非保留端口。但是有许多程序使用53端口。在任何情况下,nat都会完全不同,因为它改变 了所有socket(ip+port combo)
六、一旦我拨号连接到isp后,我的个人防火墙就开始警告“有人在探测你的xxxx端口”。
这种情况很常见。因为你使用isp分配给你的ip,而在你使用之前刚有人使用。你看到的是上一个用户的“残留”信息。
常见的例子是聊天程序。如果有人刚刚挂断,刚才和他聊天的人会继续试图连接。一些程序的“超时”设置很长。如powwow或 icq。
另一个例子是多人在线游戏。你会看到来自游戏提供者的通讯(如mplayer),或其它不知名的游戏服务器。这些游戏通常基 于udp,因此无法建立连接。但为了获得较好的用户感觉,他们对于建立连接又很“执着”。以下是一些游戏的端口:
7777 unreal, klingon h 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端口,而其客户端使用更高的随机端口。这就是说你会看到你会看到从400 0端口到高端随机端口的udp包。换句话说,不要试图查询端口列表找到随机高端端口的用途。重要的是源端口。
sub-7也有类似问题。它使用不同的tcp连接用于不同的服务。如果受害者的机器下线,它会持续企图连接受害者机器的端口 ,特别是6776端口。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:51 #5
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 version 0.4.1, june 20, 2000
[url]http://www.robertgraham.com/pubs/firewall-seen.html[/url]
copyright 1998-2000 by robert graham (mailto:firewall-seen1@robertgraham.com.
all rights reserved. this document may be reproduced (whole or in part) for n purposes. all reproducti must c this copyright notice and must not be altered,
except by permission of the author.
(接上篇)
七、irc服务器在探测我
最流行的聊天方式之一是irc。这种聊天程序的特点之一就是它能告诉你正在和你聊天的人的ip地址。聊天室的问题之一是:人 们匿名登陆并四处闲逛,往往会遭遇跑题的评论、粗鲁的话语、被打断谈话、被服务器“冲洗”或被其它客户踢下线。
因此,服务器端和客户端都默认禁止在聊天室内使用匿名登陆。特别需要指出的是,当有人进入聊天室时要检查他们是否通过其它代 理服务器连接。最常见的这种扫描是socks。假设你来的那个地方支持socks,那么你完全有可能有一台完全独立的机器,你试 图通过明处的代理服务器隐藏你在暗处的真实身份。undernet’s关于这方面的策略可参考 [url]http://help.undernet.org/proxyscan.[/url]
同时,crackers/hackers会试图扫描人们的机器以确定他们是否运行某种服务,可被他们用做跳板。同样,通过检 查socks,攻击者希望发现某人打开了socks,例如一个家庭的个人用户socks实现共享连接,但将其错误设置成inte rnet上所有用户都能通过它。
八、什么是“重定向”端口
一种常见的技术是把一个端口重定向到另一个地址。例如默认的http端口是80,许多人把他们重定向到令一个端口,如8080 ( 这样,如果你打算访问本文就得写成[url]http://www.robertgraham.com:8080/pubs/firewall-seen.html[/url] )
实现重定向是为了让端口更难被发现,从而使hacker更难攻击。因为hacker不能对一个公认的默认端口进行攻击而必须 进行端口扫描。
大多数端口重定向与原端口有相似之处。因此,大多数http端口由80变化而来:81,88,8000,8080,8888 。同样pop的端口原来在110,也常被重定向到1100。
也有不少情况是选取统计上有特别意义的数,象1234,23456,34567等。许多人有其它原因选择奇怪的数,42,6 9,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会接受一个连接,复制其内容,并退出。加上这个参数后,它可 以持续运行以侦听多个连接。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:51 #6
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 二.icmp
tcp和udp能承载数据,但icmp仅包含控制信息。因此,icmp信息不能真正用于入侵其它机器。hacker们使用i cmp通常是为了扫描网络,发动dos攻击,重定向网络交通。(这个观点似乎不正确,可参考shotgun关于木马的文章,译者 注)
一些防火墙将icmp类型错误标记成端口。要记住,icmp不象tcp或udp有端口,但它确实含有两个域:类型(type )和代码(code)。而且这些域的作用和端口也完全不同,也许正因为有两个域所以防火墙常错误地标记了他们。更多关于icmp 的知识请参考infosec lexicon entry on icmp。
关于icmp类型/代码的含义的官方说明请参阅[url]http://www.isi.edu/in-notes/iana/assignments/icmp-parameters[/url]。该文献描述官方含义,而本文描述hacker的企图,详见下文。
类型 代码 名称 含义
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可能通过重定向你的默认的路由器dos攻击你的win9x 或solaris。邻近的hacker也可以发动man-in-the-middle的攻击
10 * time exceeded in transit 因为超时包未达到目的地
0 ttl exceeded 因为路由循环或由于运行traceroute,路由器将包丢弃
1 fragment reassembly timeout 由于没有收到所有片断,主机将包丢弃
11 * parameter problem 发生某种不正常,可能遇到了攻击
(一) type=0 (echo reply)
发送者在回应由你的地址发送的ping,可能是由于以下原因:
有人在ping那个人:防火墙后面有人在ping目标。
自动ping:许多程序为了不同目的使用ping,如测试联系对象是否在线,或测定反应时间。很可能是使用了类似vital sign‘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洪水攻击”。即如果正在和你通讯的主机受到“sy n洪水攻击”,只要你禁止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头
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:52 #7
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 以下是复制的一个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,大概就发生了这种情况。这是怎么发生的?服务器可能在解析 一个递归请求,但是它自己的包丢失了,所以它只能超时然后再试。当回到客户时,客户认为超时了。许多客户程序(尤其是windo ws中的程序)自己做dns解析。即它们自己建立socket进行dns解析。如果它们把要求交给*作系统,*作系统就会一直把 端口开在那里。
“多重dns回应”:另一种情况是客户收到对于一个请求的多重回应。收到一个回应,端口就关闭了,后序的回应无法达到。此外 ,一个sun机器与同一个以太网中的多个nics连接时,将为两个nics分配相同的mac地址,这样sun机器每桢会收到两个 拷贝,并发送多重回复。还有,一个编写的很糟糕的客户端程序(特别是那些吹嘘是多线程dns解析但实际上线程不安全的程序)有时 发送多重请求,收到第一个回应后关闭了socket。但是,这也可能是dns欺骗,攻击者既发送请求由发送回应,企图使解析缓存 崩溃。
“netbios解析”:如果windows机器接收到icmp包,看看udp目标端口是否是137。如果是,那就是win dows机器企图执行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 d 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位(d fragment),一旦这种包碰到不能传输如此大的包的路由器时路由器将发回icmp错误信息。由此,tcp层能确定如何正确 分割片断。
你也许应该允许这些包通过防火墙。否则,当小的包可以通过达到目的地建立连接,而大包会莫名其妙的丢失断线。通常的结果是, 人们只能看到web页仅显示一半。
路由最大传输单元的发现越来越整合到通讯中。如ipsec需要用到这个功能。
(三) type = 4 (source quench)
这种包可能是当网络通讯超过极限时由路由器或目的主机发送的。但是当今的许多系统不生成这些包。原因是现在相信简单包丢失是 网络阻塞的最后信号(因为包丢失的原因就是阻塞)。
现在source quenches的规则是(rfc 1122):
路由器不许生成它们
主机可以生成它们
主机不能随便生成它们
防火墙应该丢弃它们
但是,主机遇到source quench仍然减慢通讯,因此这被用于dos。防火墙应该过滤它们。如果怀疑发生dos,包中的源地址是无意义的,因为ip地 址肯定是虚构的。
已知某些smtp服务器会发送source quench。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:52 #8
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 四) type = 8 (echo aka ping)
这是ping请求包。有很多场合使用它们;它可能意味着某人扫描你机器的恶意企图,但它也可能是正常网络功能的一部分。参见 type = 0 (echo resp
很多网络管理扫描器会生成特定的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值太小,而使站点无法到达。此外,一些hac ker/cracker也会使用这种办法使站点无法到达。
2) type = 11, code = 1 (fragment reassembly time exceeded)
当发送分割成片断的ip报文时,发送者并不接收所有片断。通常,大多数tcp/ip通讯甚至不分割片断。你看到这种情况必定 是采用了分割片断而且你和目的地之间有阻塞。
(六) type = 12 (parameter problem)
这可能意味着一种进攻。有许多足印技术会生成这种包。
现在个人防火墙开始流行起来,很多网友一旦看到报警就以为受到某种攻击,其实大多数情况并非如此。
下面将向你解释你在防火墙的记录(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/assignments/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/~triemer/network/docservs.html
特定的协议与端口。
5.http://www.chebucto.ns.ca/~rakerman/trojan-port-table.html
描述了许多端口。
6.http://www.tlsecurity.com/trojanh.html
tlsecurity的trojan端口列表。与其它人的收藏不同,作者检验了其中的所有端口。
7.http://www.simovits.com/nyheter9902.html
trojan horse 探测。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:49 #1
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 二、通常对于防火墙的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连接。有一种产品叫做“res global dispatch”,它与dns的这一端口连接以确定最近的路由。
harvest/squid cache将从3130端口发送udp echo:“如果将cache的source_ping 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 最常见的攻击者用于寻找打开“an ckers 利用这些服务器作为传送warez (私有程序) 和pr0n(故意拼错词而避免被搜索引擎分类)的节点。
22 ssh pcanywhere建立tcp和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点。如果配置成特定的模式,许多使用r saref库的版本有不少漏洞。(建议在其它端口运行ssh)
还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会扫描整个域的ssh主机。你 有时会被使用这一程序的人无意中扫描到。
udp(而不是tcp)与另一端的5632端口相连意味着存在搜索pcanywhere的扫描。5632(十六进制的0x1 600)位交换后是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查询的回复。hack er常使用这种方法穿透防火墙。
67和68 bootp和dhcp udp上的bootp/dhcp:通过dsl和cable-modem的防火墙常会看见大量发送到广播地址255.255.25 5.255的数据。这些机器在向dhcp服务器请求一个地址分配。hacker常进入它们分配一个地址把自己作为局部路由器而发 起大量的“中间人”(man-in-middle)攻击。客户端向68端口(bootps)广播请求配置,服务器向67端口(b ootpc)广播回应请求。这种回应使用广播是因为客户端还不知道可以发送的ip地址。
69 tftp(udp) 许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常错误配置而从系统提供任何文件,如密码文件。它 们也可用于向系统写入文件。
79 finger hacker用于获得用户信息,查询*作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器finger扫描。
98 linuxc 这个程序提供linux boxen的简单管理。通过整合的http服务器在98端口提供基于web界面的服务。它已发现有许多安全问题。一些版本set uid root,信任局域网,在/tmp下建立internet可访问的文件,lang环境变量有缓冲区溢出。此外因为它包含整合的服 务器,许多典型的http漏洞可能存在(缓冲区溢出,历遍目录等)
109 pop2 并不象pop3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上pop3的漏洞在pop2中同样存在。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:50 #2
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 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服务将转向提供服务的特定端口测试漏洞。
记住一定要记录线路中的daem ids, 或sniffer,你可以发现入侵者正使用什么程序访问以便发现到底发生了什么。
113 ident auth 这是一个许多机器上运行的协议,用于鉴别tcp连接的用户。使用标准的这种服务可以获得许多机器的信息(会被hacker利用) 。但是它可作为许多服务的记录器,尤其是ftp, pop, imap, smtp和irc等服务。通常如果有许多客户通过防火墙访问这些服务,你将会看到许多这个端口的连接请求。记住,如果你阻断这个 端口客户端会感觉到在防火墙另一边与e-mail服务器的缓慢连接。许多防火墙支持在tcp连接的阻断过程中发回rst,着将回 停止这一缓慢的连接。
119 nntp news 新闻组传输协议,承载usenet通讯。当你链接到诸如:[url]news://comp.security.firewalls/.[/url] 的地址时通常使用这个端口。这个端口的连接企图通常是人们在寻找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蠕虫(admw0 rm)会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已被感染的用户。当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有所增加(mou ntd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪个端口,需要在端口111做portmap查询), 只是linux默认为635端口,就象nfs通常运行于2049端口。
1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个端口连接网络,它们请求*作系统为它们分配“下一个闲 置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配端口1024。为了验证这一 点,你可以重启机器,打开telnet,再打开一个窗口运行“natstat -a”,你将会看到telnet被分配1024端口。请求的程序越多,动态端口也越多。*作系统分配的端口将逐渐变大。再来一遍 ,当你浏览web页时用“netstat”查看,每个web页需要一个新端口。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:50 #3
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 三、我发现一种对于同一系列端口的扫描来自于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受害者的机器在哪里。因此,hac ker/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, seven
30100 netsphere
31789 hack‘a‘tack
31337 backorifice, and many others
50505 sockets de troie
更多信息查看:[url]http://www.commodon.com/threat/threat-ports.htm[/url]
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”的人写的,他的站点是[url]http://subseven.slak.org/[/url]。
sub-7可能使用以下端口:
1243 老版本缺省连接端口
2772 抓屏端口
2773 键盘记录端口
6711 ???
6776 我并不清楚这个端口是干什么用的,但是它被作为一些版本的后面 (即不用密码也能连接)。
7215 "matrix" chat程序
27374 v2.0缺省端口
54283 spy端口
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:50 #4
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 五、来自低端口的dns包
q:我看见许多来自1024端口以下的dns请求。这些服务是“保留”的吗?他们不是应该使用1024-65535端口吗?
a:他们来自于nat防火墙后面的机器。nat并不需要保留端口。(ryan russell >[url]http://www.sybase.com/[/url])
q:我的防火墙丢弃了许多源端口低于1024的包,所以dns查询失败。
a:不要用这种方式过滤。许多防火墙有类似的规则,但这是一种误导。因为hacker/cracker能伪造任何端口。
q:这些nat防火墙工作不正常吗?
a:理论上不是,但实际上会导致失败。正确的方式是在任何情况下完全保证dns通讯。(尤其在那些“代理”dns并强迫dn s通过53端口的情况下)
q:我以为dns查询应该使用1024端口以上的随机端口?
a:实际上,一般dns客户将使用非保留端口。但是有许多程序使用53端口。在任何情况下,nat都会完全不同,因为它改变 了所有socket(ip+port combo)
六、一旦我拨号连接到isp后,我的个人防火墙就开始警告“有人在探测你的xxxx端口”。
这种情况很常见。因为你使用isp分配给你的ip,而在你使用之前刚有人使用。你看到的是上一个用户的“残留”信息。
常见的例子是聊天程序。如果有人刚刚挂断,刚才和他聊天的人会继续试图连接。一些程序的“超时”设置很长。如powwow或 icq。
另一个例子是多人在线游戏。你会看到来自游戏提供者的通讯(如mplayer),或其它不知名的游戏服务器。这些游戏通常基 于udp,因此无法建立连接。但为了获得较好的用户感觉,他们对于建立连接又很“执着”。以下是一些游戏的端口:
7777 unreal, klingon h 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端口,而其客户端使用更高的随机端口。这就是说你会看到你会看到从400 0端口到高端随机端口的udp包。换句话说,不要试图查询端口列表找到随机高端端口的用途。重要的是源端口。
sub-7也有类似问题。它使用不同的tcp连接用于不同的服务。如果受害者的机器下线,它会持续企图连接受害者机器的端口 ,特别是6776端口。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:51 #5
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 version 0.4.1, june 20, 2000
[url]http://www.robertgraham.com/pubs/firewall-seen.html[/url]
copyright 1998-2000 by robert graham (mailto:firewall-seen1@robertgraham.com.
all rights reserved. this document may be reproduced (whole or in part) for n purposes. all reproducti must c this copyright notice and must not be altered,
except by permission of the author.
(接上篇)
七、irc服务器在探测我
最流行的聊天方式之一是irc。这种聊天程序的特点之一就是它能告诉你正在和你聊天的人的ip地址。聊天室的问题之一是:人 们匿名登陆并四处闲逛,往往会遭遇跑题的评论、粗鲁的话语、被打断谈话、被服务器“冲洗”或被其它客户踢下线。
因此,服务器端和客户端都默认禁止在聊天室内使用匿名登陆。特别需要指出的是,当有人进入聊天室时要检查他们是否通过其它代 理服务器连接。最常见的这种扫描是socks。假设你来的那个地方支持socks,那么你完全有可能有一台完全独立的机器,你试 图通过明处的代理服务器隐藏你在暗处的真实身份。undernet’s关于这方面的策略可参考 [url]http://help.undernet.org/proxyscan.[/url]
同时,crackers/hackers会试图扫描人们的机器以确定他们是否运行某种服务,可被他们用做跳板。同样,通过检 查socks,攻击者希望发现某人打开了socks,例如一个家庭的个人用户socks实现共享连接,但将其错误设置成inte rnet上所有用户都能通过它。
八、什么是“重定向”端口
一种常见的技术是把一个端口重定向到另一个地址。例如默认的http端口是80,许多人把他们重定向到令一个端口,如8080 ( 这样,如果你打算访问本文就得写成[url]http://www.robertgraham.com:8080/pubs/firewall-seen.html[/url] )
实现重定向是为了让端口更难被发现,从而使hacker更难攻击。因为hacker不能对一个公认的默认端口进行攻击而必须 进行端口扫描。
大多数端口重定向与原端口有相似之处。因此,大多数http端口由80变化而来:81,88,8000,8080,8888 。同样pop的端口原来在110,也常被重定向到1100。
也有不少情况是选取统计上有特别意义的数,象1234,23456,34567等。许多人有其它原因选择奇怪的数,42,6 9,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会接受一个连接,复制其内容,并退出。加上这个参数后,它可 以持续运行以侦听多个连接。
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:51 #6
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 二.icmp
tcp和udp能承载数据,但icmp仅包含控制信息。因此,icmp信息不能真正用于入侵其它机器。hacker们使用i cmp通常是为了扫描网络,发动dos攻击,重定向网络交通。(这个观点似乎不正确,可参考shotgun关于木马的文章,译者 注)
一些防火墙将icmp类型错误标记成端口。要记住,icmp不象tcp或udp有端口,但它确实含有两个域:类型(type )和代码(code)。而且这些域的作用和端口也完全不同,也许正因为有两个域所以防火墙常错误地标记了他们。更多关于icmp 的知识请参考infosec lexicon entry on icmp。
关于icmp类型/代码的含义的官方说明请参阅[url]http://www.isi.edu/in-notes/iana/assignments/icmp-parameters[/url]。该文献描述官方含义,而本文描述hacker的企图,详见下文。
类型 代码 名称 含义
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可能通过重定向你的默认的路由器dos攻击你的win9x 或solaris。邻近的hacker也可以发动man-in-the-middle的攻击
10 * time exceeded in transit 因为超时包未达到目的地
0 ttl exceeded 因为路由循环或由于运行traceroute,路由器将包丢弃
1 fragment reassembly timeout 由于没有收到所有片断,主机将包丢弃
11 * parameter problem 发生某种不正常,可能遇到了攻击
(一) type=0 (echo reply)
发送者在回应由你的地址发送的ping,可能是由于以下原因:
有人在ping那个人:防火墙后面有人在ping目标。
自动ping:许多程序为了不同目的使用ping,如测试联系对象是否在线,或测定反应时间。很可能是使用了类似vital sign‘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洪水攻击”。即如果正在和你通讯的主机受到“sy n洪水攻击”,只要你禁止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头
今天的学习是为了将来~ 如果今天再不努力,就没时间努力~ 多看书没坏处~一遍看不明白,看两遍;两遍看不明白。再看第三遍~ 谁叫我是苯鸟。我要努力~~大家多监督~~
2004-12-23 12:52 #7
sunflower
论坛管理员
管理员
uid 6375
精华 3
积分 15635
帖子 1487
菊花元 15605 元
威望 20 点
阅读权限 102
注册 2001-9-8
来自 北京海淀
状态 离线 以下是复制的一个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,大概就发生了这种情况。这是怎么发生的?服务器可能在解析 一个递归请求,但是它自己的包丢失了,所以它只能超时然后再试。当回到客户时,客户认为超时了。许多客户程序(尤其是windo ws中的程序)自己做dns解析。即它们自己建立socket进行dns解析。如果它们把要求交给*作系统,*作系统就会一直把 端口开在那里。
“多重dns回应”:另一种情况是客户收到对于一个请求的多重回应。收到一个回应,端口就关闭了,后序的回应无法达到。此外 ,一个sun机器与同一个以太网中的多个nics连接时,将为两个nics分配相同的mac地址,这样sun机器每桢会收到两个 拷贝,并发送多重回复。还有,一个编写的很糟糕的客户端程序(特别是那些吹嘘是多线程dns解析但实际上线程不安全的程序)有时 发送多重请求,收到第一个回应后关闭了socket。但是,这也可能是dns欺骗,攻击者既发送请求由发送回应,企图使解析缓存 崩溃。
“netbios解析”:如果windows机器接收到icmp包,看看udp目标端口是否是137。如果是,那就是win dows机器企图执行gethostbyaddr()函数,它将将会同时使用dns和netbios解析ip地址。dns请求被 发送到某处的dns服务器,但netbios直接发往目标机器。如果目标机器不支持netbios,目标机器将发送icmp unreachable。
“traceroute”:大多数traceroute程序(windows中的tracert.exe除外)向关闭的端口 发送udp包。这引起一系列的背靠背的icmp port unreachable包发回来。因此你看到防火墙显示这样icmp包,可能是防火墙后面