登录后查才能浏览下载更多咨询,有问题联系QQ:3283999
您需要 登录 才可以下载或查看,没有账号?入住遨海湾
×
0 通常用于分析操作系统。这一方法能够工作是因为在一些系统中“0”是无效端口,当你试图使用一种通常的闭合端口 * Z7 h4 ], T2 p7 Z0 q
连接它时将产生不同的结果。一种典型的扫描:使用IP地址为0.0.0.0,设置ACK位并在以太网层广播。
3 N9 a. E* m% ~, X) {, H1 tcpmux 这显示有人在寻找SGI Irix机器。Irix是实现tcpmux的主要提供者,缺省情况下tcpmux在这种系统中被打开。
/ P+ p8 C, p5 l' yIris机器在发布时含有几个缺省的无密码的帐户,如lp, guest, uucp, nuucp, demos, tutor, diag, EZsetup, OutOfBox,
5 o0 V. {" Z4 q3 R: X$ _" x! U和4Dgifts。许多管理员安装后忘记删除这些帐户。因此Hacker们在Internet上搜索tcpmux并利用这些帐户。
; h; e! M0 A+ c0 s 7 Echo 你能看到许多人们搜索Fraggle放大器时,发送到x.x.x.0和x.x.x.255的信息。
# G$ m' y \# w, Y8 U 常见的一种DoS攻击是echo循环(echo-loop),攻击者伪造从一个机器发送到另一个机器的UDP数据包,而两个机器分别以 - i2 A3 O$ J) F; ?
它们最快的方式回应这些数据包。(参见Chargen) 0 ?! f# i4 W M8 V$ M
另一种东西是由DoubleClick在词端口建立的TCP连接。有一种产品叫做“Resonate Global Dispatch”,它与DNS的这一端
( l: d. a" r' d7 {( r" B口连接以确定最近的路由。
4 A$ P F2 {4 |' y4 |' j Harvest/squid cache将从3130端口发送UDP echo:“如果将cache的source_ping on选项打开,它将对原始主机的UDP echo
% K& ?0 N1 h: ^8 u" t2 e# y- K* c; J8 d端口回应一个HIT reply。”这将会产生许多这类数据包。 , k7 @0 a+ U( N7 X: N' Z: {
11 sysstat 这是一种UNIX服务,它会列出机器上所有正在运行的进程以及是什么启动了这些进程。这为入侵者提供了许多信 + r" z$ d2 P0 B9 T% C$ ~
息而威胁机器的安全,如暴露已知某些弱点或帐户的程序。这与UNIX系统中“ps”命令的结果相似 9 n' o; G7 q$ I4 a6 D# Q
再说一遍:ICMP没有端口,ICMP port 11通常是ICMP type=11
- Z4 V) G3 D; d2 [+ T8 I! M$ O4 A 19 chargen 这是一种仅仅发送字符的服务。UDP版本将会在收到UDP包后回应含有垃圾字符的包。TCP连接时,会发送含有垃
$ {- K" k0 d* y, a7 d! [5 k圾字符的数据流知道连接关闭。Hacker利用IP欺骗可以发动DoS攻击。伪造两个chargen服务器之间的UDP包。由于服务器企 # Q: C' K# `* Q2 O; i
图回应两个服务器之间的无限的往返数据通讯一个chargen和echo将导致服务器过载。同样fraggle DoS攻击向目标地址的这 0 a( v0 ~6 t4 C( l, c0 F, |. S7 [! ]
个端口广播一个带有伪造受害者IP的数据包,受害者为了回应这些数据而过载。
4 k \* S0 A8 z$ n* t" d 21 ftp 最常见的攻击者用于寻找打开“anonymous”的ftp服务器的方法。这些服务器带有可读写的目录。Hackers或Crackers
; v2 u$ V% z6 F" w7 k8 P利用这些服务器作为传送warez (私有程序) 和pr0n(故意拼错词而避免被搜索引擎分类)的节点。
" Y8 a* S- M1 ` H/ U& D0 c 22 ssh PcAnywhere建立TCP和这一端口的连接可能是为了寻找ssh。这一服务有许多弱点。如果配置成特定的模式,许多使用
6 L* J0 A, a& E& Q! A7 ]RSAREF库的版本有不少漏洞。(建议在其它端口运行ssh) , e0 j0 W" _. m+ C
还应该注意的是ssh工具包带有一个称为make-ssh-known-hosts的程序。它会扫描整个域的ssh主机。你有时会被使用这一程
D# B: A* q2 |( F" A序的人无意中扫描到。 1 g/ H7 r1 [: b& }
UDP(而不是TCP)与另一端的5632端口相连意味着存在搜索pcAnywhere的扫描。5632(十六进制的0x1600)位交换后是0x0016 / ^1 t8 I- a3 J. t8 ^# `2 { l0 ^
(使进制的22)。
9 }: o6 F; A5 o/ J 23 Telnet 入侵者在搜索远程登陆UNIX的服务。大多数情况下入侵者扫描这一端口是为了找到机器运行的操作系统。此外使 0 Q5 ^( J: R( v$ K$ }) o
用其它技术,入侵者会找到密码。 4 H+ G7 ~1 z% ^8 [$ T/ _4 k }
25 smtp 攻击者(spammer)寻找SMTP服务器是为了传递他们的spam。入侵者的帐户总被关闭,他们需要拨号连接到高带宽 5 v7 _) m3 k- `; W
的e-mail服务器上,将简单的信息传递到不同的地址。SMTP服务器(尤其是sendmail)是进入系统的最常用方法之一,因为
. z: G) l/ a% ^0 k, c4 F+ D2 d它们必须完整的暴露于Internet且邮件的路由是复杂的(暴露+复杂=弱点)。 , p* R1 w# ~* D. C
53 DNS Hacker或crackers可能是试图进行区域传递(TCP),欺骗DNS(UDP)或隐藏其它通讯。因此防火墙常常过滤或记录 6 @, v3 N8 h' t1 u( d4 ^, {3 Q
53端口。
5 ]; D* c6 _+ f. H 需要注意的是你常会看到53端口做为UDP源端口。不稳定的防火墙通常允许这种通讯并假设这是对DNS查询的回复。Hacker常
6 @( a7 n3 `; B0 Q F使用这种方法穿透防火墙。 f# G) N* ]. |+ m
67和68 Bootp和DHCP UDP上的Bootp/DHCP:通过DSL和cable-modem的防火墙常会看见大量发送到广播地址255.255.255.255的 8 Z3 s1 R. e$ B& N. ^
数据。这些机器在向DHCP服务器请求一个地址分配。Hacker常进入它们分配一个地址把自己作为局部路由器而发起大量的 2 {' c3 Z4 Z4 {) Q1 u3 _& M
“中间人”(man-in-middle)攻击。客户端向68端口(bootps)广播请求配置,服务器向67端口(bootpc)广播回应请求。 ; ?/ J' Z9 b+ q8 |3 ~/ W2 |
这种回应使用广播是因为客户端还不知道可以发送的IP地址。 ; a1 P0 ]( | f- C
69 TFTP(UDP) 许多服务器与bootp一起提供这项服务,便于从系统下载启动代码。但是它们常常错误配置而从系统 E$ P. b: K4 J
提供任何文件,如密码文件。它们也可用于向系统写入文件。
& m0 x! i. Z# ]- A; W6 `9 Q 79 finger Hacker用于获得用户信息,查询操作系统,探测已知的缓冲区溢出错误,回应从自己机器到其它机器finger扫描。 : y% S* w! ^9 L8 B7 F( Z; X
98 linuxconf 这个程序提供linux boxen的简单管理。通过整合的HTTP服务器在98端口提供基于Web界面的服务。它已发现有 0 z3 h1 I) p3 `7 Q! [, F
许多安全问题。一些版本setuid root,信任局域网,在/tmp下建立Internet可访问的文件,LANG环境变量有缓冲区溢出。此 ( M( G) H8 ~' l5 B7 S
外因为它包含整合的服务器,许多典型的HTTP漏洞可能存在(缓冲区溢出,历遍目录等)
5 N. V' l4 Y# e8 c6 s 109 POP2 并不象POP3那样有名,但许多服务器同时提供两种服务(向后兼容)。在同一个服务器上POP3的漏洞在POP2中同样
- f! C& ]. i1 }1 \* a3 C存在。
0 {3 g1 H+ u1 A! @ 110 POP3 用于客户端访问服务器端的邮件服务。POP3服务有许多公认的弱点。关于用户名和密码交换缓冲区溢出的弱点至少
5 p( Z Q* o0 H" J有20个(这意味着Hacker可以在真正登陆前进入系统)。成功登陆后还有其它缓冲区溢出错误。
1 a2 b. S+ X6 A; ` 111 sunrpc portmap rpcbind Sun RPC PortMapper/RPCBIND。访问portmapper是扫描系统查看允许哪些RPC服务的最早的一步。 - d% b& p& M( N. \7 @/ l: k
常见RPC服务有:rpc.mountd, NFS, rpc.statd, rpc.csmd, rpc.ttybd, amd等。入侵者发现了允许的RPC服务将转向提供服务 7 i2 U, V+ `/ g8 y7 G+ M
的特定端口测试漏洞。 1 E8 e+ M, }2 _7 f! a
记住一定要记录线路中的daemon, IDS, 或sniffer,你可以发现入侵者正使用什么程序访问以便发现到底发生了什么。
% L7 A$ V! A, a, g& F 113 Ident auth 这是一个许多机器上运行的协议,用于鉴别TCP连接的用户。使用标准的这种服务可以获得许多机器的信息
& O( [: U6 y. i# A(会被Hacker利用)。但是它可作为许多服务的记录器,尤其是FTP, POP, IMAP, SMTP和IRC等服务。通常如果有许多客户通
3 ^' L4 e4 O4 F( x4 K1 B" J过防火墙访问这些服务,你将会看到许多这个端口的连接请求。记住,如果你阻断这个端口客户端会感觉到在防火墙另一边与 8 F1 b( S& Y8 c3 {/ U
e-mail服务器的缓慢连接。许多防火墙支持在TCP连接的阻断过程中发回RST,着将回停止这一缓慢的连接。
( k/ y' V- ]+ }0 F+ O 119 NNTP news 新闻组传输协议,承载USENET通讯。当你链接到诸如:news://comp.security.firewalls/. 的地址
4 B+ _) m+ F% ~; b" b/ i$ u4 A7 S& h! Z时通常使用这个端口。这个端口的连接企图通常是人们在寻找USENET服务器。多数ISP限制只有他们的客户才能访问他们的新闻 / @ {8 o& V2 `
组服务器。打开新闻组服务器将允许发/读任何人的帖子,访问被限制的新闻组服务器,匿名发帖或发送spam。
6 n$ @2 b/ v- ~# U, R 135 oc-serv MS RPC end-point mapper Microsoft在这个端口运行DCE RPC end-point mapper为它的DCOM服务。这与UNIX 111 # R: r& [: P: u: c5 Y
端口的功能很相似。使用DCOM和/或RPC的服务利用机器上的end-point mapper注册它们的位置。远端客户连接到机器时,它们查
& {) r: ?; ~ ^ m9 v, h! q1 q3 v询end-point mapper找到服务的位置。同样Hacker扫描机器的这个端口是为了找到诸如:这个机器上运行Exchange Server吗?
# B6 v% s P+ _. o是什么版本?
% l4 Y* I; K# j- c) V8 v 这个端口除了被用来查询服务(如使用epdump)还可以被用于直接攻击。有一些DoS攻击直接针对这个端口。
1 e% B8 K6 d1 ~3 C# V. M 137 NetBIOS name service nbtstat (UDP) 这是防火墙管理员最常见的信息,请仔细阅读文章后面的NetBIOS一节 . |# ~ v. m0 t7 I: ? ]7 Y
139 NetBIOS
% ?; |, w) A9 ?+ N! c8 ~7 l3 r! @File and Print Sharing 通过这个端口进入的连接试图获得NetBIOS/SMB服务。这个协议被用于Windows“文件和打印机共享”
% v0 F/ N H- R. E# J9 Q和SAMBA。在Internet上共享自己的硬盘是可能是最常见的问题。 5 ?' W+ T6 k: L4 p
大量针对这一端口始于1999,后来逐渐变少。2000年又有回升。一些VBS(IE5 VisualBasic Scripting)开始将它们自己拷贝到
+ E# Z# q; ~) ]& w7 U; M. G这个端口,试图在这个端口繁殖。 $ o0 K/ A+ i2 W. Z5 P9 I
143 IMAP 和上面POP3的安全问题一样,许多IMAP服务器有缓冲区溢出漏洞运行登陆过程中进入。记住:一种Linux蠕虫(admw0rm) : v( J% w) C" P- k% C. U- b+ C
会通过这个端口繁殖,因此许多这个端口的扫描来自不知情的已被感染的用户。当RadHat在他们的Linux发布版本中默认允许IMAP
; Y" L G# T3 s& o后,这些漏洞变得流行起来。Morris蠕虫以后这还是第一次广泛传播的蠕虫。 & @, h1 u7 m. x0 ]
这一端口还被用于IMAP2,但并不流行。 % l/ C: D' [5 {* ?" [' f% ]1 [) d
已有一些报道发现有些0到143端口的攻击源于脚本。 3 X! b( {! B# n
161 SNMP(UDP) 入侵者常探测的端口。SNMP允许远程管理设备。所有配置和运行信息都储存在数据库中,通过SNMP客获得
0 p! z- C$ N) s0 _这些信息。许多管理员错误配置将它们暴露于Internet。Crackers将试图使用缺省的密码“public”“private”访问系统。他 / @; ~" G) P3 d0 `, W. g Q: z& Z
们可能会试验所有可能的组合。
. `0 R0 H+ A5 C8 Z SNMP包可能会被错误的指向你的网络。Windows机器常会因为错误配置将HP JetDirect remote management软件使用SNMP。 @/ J* }* o \& U/ V$ Y2 o
HP OBJECT IDENTIFIER将收到SNMP包。新版的Win98使用SNMP解析域名,你会看见这种包在子网内广播(cable modem, DSL) : N4 W6 o" K6 \& o g) s' `
查询sysName和其它信息。
+ }5 c% y. [' T# L8 s 162 SNMP trap 可能是由于错误配置 1 W: ^0 u8 b* m! d
177 xdmcp 许多Hacker通过它访问X-Windows控制台, 它同时需要打开6000端口。
& Z4 Y4 Z4 @+ t" W& N. d: `' R 513 rwho 可能是从使用cable modem或DSL登陆到的子网中的UNIX机器发出的广播。这些人为Hacker进入他们的系统提供了很
0 A$ k+ I& W4 }# m有趣的信息。 9 f" `, _- } h) b/ D2 @" g) Y
553 CORBA , i' M1 p" [/ _# ^8 Q9 [
IIOP (UDP) 如果你使用cable modem或DSL VLAN,你将会看到这个端口的广播。CORBA是一种面向对象的RPC(remote procedure
! B& ]' x9 B3 [1 Tcall)系统。Hacker会利用这些信息进入系统。
$ w8 ~$ j* S4 |& i( U( T 600 Pcserver backdoor 请查看1524端口 ! _7 f7 U [0 {8 V; ?
一些玩script的孩子认为他们通过修改ingreslock和pcserver文件已经完全攻破了系统-- Alan J. Rosenthal.
5 f h* U0 \) g 635 mountd Linux的mountd Bug。这是人们扫描的一个流行的Bug。大多数对这个端口的扫描是基于UDP的,但基于TCP的
8 i# E6 |3 N. Q. K/ [) U' Pmountd有所增加(mountd同时运行于两个端口)。记住,mountd可运行于任何端口(到底在哪个端口,需要在端口111做
/ l4 {$ I1 Z' x% M' q4 R" E, {portmap查询),只是Linux默认为635端口,就象NFS通常运行于2049端口。 ; E" Q! P# _% A- Z% @
1024 许多人问这个端口是干什么的。它是动态端口的开始。许多程序并不在乎用哪个端口连接网络,它们请求操作系统为 8 x1 q$ D4 f9 j3 S* I# R# m
它们分配“下一个闲置端口”。基于这一点分配从端口1024开始。这意味着第一个向系统请求分配动态端口的程序将被分配 9 [% O; B+ U+ G. T$ x
端口1024。为了验证这一点,你可以重启机器,打开Telnet,再打开一个窗口运行“natstat -a”,你将会看到Telnet被分 - [# T& I7 Z' r9 P
配1024端口。请求的程序越多,动态端口也越多。操作系统分配的端口将逐渐变大。再来一遍,当你浏览Web页时用“netstat”
K4 J) ?; m& d$ j% L& o, z8 Y查看,每个Web页需要一个新端口。
- L. X. R8 q' Y. @$ s 1025 参见1024
* j; q" X/ m) L( [ 1026 参见1024
& z2 Y. o" u* N# K. Y- h 1080 SOCKS * w! t' P" a, D' X \2 J$ e
这一协议以管道方式穿过防火墙,允许防火墙后面的许多人通过一个IP地址访问Internet。理论上它应该只允许内部的 : L5 T; m' _: o" Y0 u* w7 _
通信向外达到Internet。但是由于错误的配置,它会允许Hacker/Cracker的位于防火墙外部的攻击穿过防火墙。或者简 - B7 {% H9 k. b. C N# k* C A
单地回应位于Internet上的计算机,从而掩饰他们对你的直接攻击。WinGate是一种常见的Windows个人防火墙,常会发
6 e2 b) o0 V+ N" s" a生上述的错误配置。在加入IRC聊天室时常会看到这种情况。
& F/ u" J3 D/ B/ @5 L 1114 SQL 4 M/ C! E. a- R% @ f" A
系统本身很少扫描这个端口,但常常是sscan脚本的一部分。
5 A4 r- Z2 P6 F 1243 Sub-7木马(TCP)
" M3 U* F) e' a" D+ R( h& U) y# D参见Subseven部分。 3 b$ b( x1 k3 b' R# a# X4 ~- e
1524 ingreslock后门
X9 l+ V# J0 C" q7 O许多攻击脚本将安装一个后门Shell于这个端口(尤其是那些针对Sun系统中Sendmail和RPC服务漏洞的脚本,如statd,
4 {4 \& ?( V) g+ _% n; sttdbserver和cmsd)。如果你刚刚安装了你的防火墙就看到在这个端口上的连接企图,很可能是上述原因。你可以试试
- F/ x1 j: H6 I9 xTelnet到你的机器上的这个端口,看看它是否会给你一个Shell。连接到600/pcserver也存在这个问题。 3 K' p) v8 |9 ^# }% W
2049 NFS
4 }: Z" s0 N8 \, N& }$ |: qNFS程序常运行于这个端口。通常需要访问portmapper查询这个服务运行于哪个端口,但是大部分情况是安装后NFS运行于 ! _" Y @4 J, a; O) a9 Q
这个端口,Hacker/Cracker因而可以闭开portmapper直接测试这个端口。
; k6 y* i1 a5 u/ E 3128 squid ) b9 ?; ^2 S' @# a/ }' I* s
这是Squid HTTP代理服务器的默认端口。攻击者扫描这个端口是为了搜寻一个代理服务器而匿名访问Internet。你也会看
; v: A2 T4 i8 [$ L0 u" b到搜索其它代理服务器的端口:8000/8001/8080/8888。扫描这一端口的另一原因是:用户正在进入聊天室。其它用户 # j! x9 a9 ]: w, T% b
(或服务器本身)也会检验这个端口以确定用户的机器是否支持代理。请查看5.3节。
) N9 j" }+ m0 H4 Q 5632 pcAnywere ) C7 y: z. s* y5 ^# v$ G# L
你会看到很多这个端口的扫描,这依赖于你所在的位置。当用户打开pcAnywere时,它会自动扫描局域网C类网以寻找可能
- z- Z& X" J; T3 z- G$ X) d得代理(译者:指agent而不是proxy)。Hacker/cracker也会寻找开放这种服务的机器,所以应该查看这种扫描的源地址。 & b* i& M# |0 z
一些搜寻pcAnywere的扫描常包含端口22的UDP数据包。参见拨号扫描。 * L1 ^& Q4 h4 K
6776 Sub-7 artifact
3 z7 e$ j% x( d; _% b) Z这个端口是从Sub-7主端口分离出来的用于传送数据的端口。例如当控制者通过电话线控制另一台机器,而被控机器挂断
# U+ @7 K( y. l9 ~6 Q- X+ N& x. [- \时你将会看到这种情况。因此当另一人以此IP拨入时,他们将会看到持续的,在这个端口的连接企图。(译者:即看到
" h) l4 e: q' R2 E3 u防火墙报告这一端口的连接企图时,并不表示你已被Sub-7控制。) # O7 L( S: d# e" c# S5 v7 f
6970 RealAudio
' E$ E( \, P! J8 F KRealAudio客户将从服务器的6970-7170的UDP端口接收音频数据流。这是由TCP7070端口外向控制连接设置的。 / Z0 @5 `; ~3 T8 V: O# d! M3 q' F0 z4 h
13223 PowWow
6 O A' w% h9 kPowWow 是Tribal Voice的聊天程序。它允许用户在此端口打开私人聊天的连接。这一程序对于建立连接非常具有“进攻性”。 0 P) a! L5 y1 H( C
它会“驻扎”在这一TCP端口等待回应。这造成类似心跳间隔的连接企图。如果你是一个拨号用户,从另一个聊天者手中 4 ~0 [1 ?+ t+ d* S+ O5 Y
“继承”了IP地址这种情况就会发生:好象很多不同的人在测试这一端口。这一协议使用“OPNG”作为其连接企图的前四 1 ~8 c. K8 W, T, F
个字节。
0 Y: n. C) k' r 17027 Conducent
- ` K0 W- J$ O2 z6 }" N9 v这是一个外向连接。这是由于公司内部有人安装了带有Conducent \"adbot\" 的共享软件。Conducent \"adbot\"是为共享软件 ) V( z) B% f4 A2 W {
显示广告服务的。使用这种服务的一种流行的软件是Pkware。有人试验:阻断这一外向连接不会有任何问题,但是封掉IP / ^2 K4 Q- X& M# T
地址本身将会导致adbots持续在每秒内试图连接多次而导致连接过载:机器会不断试图解析DNS名—ads.conducent.com,
# [/ h4 ^& F% f2 B B即IP地址216.33.210.40 ;216.33.199.77 ;216.33.199.80 ;216.33.199.81;216.33.210.41。(译者:不知NetAnts使
; s* y/ G$ i! |2 U用的Radiate是否也有这种现象)
. ?2 s, @4 B6 M: G3 u$ A5 k 27374 Sub-7木马(TCP) ; g/ Y; ^% K d0 p4 S
参见Subseven部分。 . I; N3 D1 m* m+ o6 I8 T/ ~( N
30100 NetSphere木马(TCP) . v; v0 [& W/ r: D$ e1 X7 Q% i- F
通常这一端口的扫描是为了寻找中了NetSphere木马。
& u4 |: y% A9 }# b 31337 Back Orifice “elite” 7 h+ s6 R' [. P
Hacker中31337读做“elite”/ei’li:t/(译者:法语,译为中坚力量,精华。即3=E, 1=L, 7=T)。因此许多后门程序运 6 ~5 a* @* _* K/ y5 c
行于这一端口。其中最有名的是Back Orifice。曾经一段时间内这是Internet上最常见的扫描。现在它的流行越来越少, 1 @: z8 [' k- \" q; o; ]
其它的木马程序越来越流行。 6 a& ~" \+ v3 K* K
31789 Hack-a-tack
" b, T! |" l6 t& {( S# d# K+ I' M这一端口的UDP通讯通常是由于\"Hack-a-tack\"远程访问木马(RAT, Remote Access Trojan)。这种木马包含内置的31790 # a- T! U# s6 I! J: Q
端口扫描器,因此任何31789端口到317890端口的连接意味着已经有这种入侵。(31789端口是控制连接,317890端口是文 9 i+ l- C$ j% `% ]& t! F: \- B
件传输连接) 9 n' F( g3 Z( s1 o8 X. Z' X
32770~32900 RPC服务
" m u: Y& U! BSun Solaris的RPC服务在这一范围内。详细的说:早期版本的Solaris(2.5.1之前)将portmapper置于这一范围内,即使 4 o1 l* J! x' l- y8 b
低端口被防火墙封闭仍然允许Hacker/cracker访问这一端口。扫描这一范围内的端口不是为了寻找portmapper,就是为了
7 }/ z$ n( B2 F0 X# t寻找可被攻击的已知的RPC服务。 J0 [7 h- _1 x" v |( c1 h8 a
33434~33600 traceroute 3 m3 P0 W# z& _' L* H
如果你看到这一端口范围内的UDP数据包(且只在此范围之内)则可能是由于traceroute。参见traceroute部分。
+ W/ E% g, a& ` y6 Z- u; z7 w 41508 Inoculan
9 m* o1 S/ J4 i1 J0 Z5 A" x早期版本的Inoculan会在子网内产生大量的UDP通讯用于识别彼此 |