古老的finger服务---详细讲解

  • A+
所属分类:安全闲碎

古老的finger服务---详细讲解

在这篇文档里我将介绍finger服务的基本知识与运行原理。用大量篇幅详细演示了finger命令的使用,并对其返回信息进行了解释。还有修改用户finger信息的方法。最后,讲述了finger的安全隐患(可被黑客利用,获取系统大量有用信息),及其处理方法。有意思的是,文章中还穿插了一些关于finger服务的小故事。

 

--------------------------------------------------------------------------------

什么是finger服务
 finger服务就是finger服务器提供一项查询本地或远程主机用户公开信息的服务。在RFC1288里,它的名字是用户信息查找程序。 在早期的UNIX系统上,很多学生,研究人员利用finger服务来公开自己的某些特定信息,以便进行交流。比如有些研究人员用其公开自己的课题研究情况,有些老师公开一些课程时间安排。还有的主机播报球赛的情况,有的发布一些当前地震活动的信息。不过,finger服务更多的用处的是公开某人的特定信息。
 某些返回信息如下:
 用户登陆名
真实姓名
办公地点
家庭电话
办公室电话
用户主目录
所使用的shell
计划
 说明:以上返回信息只是finger服务器返回信息的某些,还有其他未给出。finger服务器返回给你的信息根据不同系统而异。
[email protected][email protected]
以下示例中,远程主机都为卡内基--梅隆大学计算机学院的finger服务器。
 
--------------------------------------------------------------------------------

有关finger的历史  finger命令最早出现在BSD3.0。后来很多unix版本都移植了这个程序,我所使用的fedora core3也有finger的客户端。不过fc3默认情况下是关闭远程finger服务的。现在,很多主机已经关闭这项服务(安全性原因,下面会提到)。不过,在美国的有些大学里还提供这项古老的服务。
coke服务器的故事 在七十年代中期,卡内基-梅窿大学计算机系安装了一台可口可乐机,后来这个系扩大,从这个机房分出一些程序员到不同楼层的办公室。他们常常走了很远,来到那台机器旁才发现没有可口可乐。或者同样糟糕,他们发现在机器中有可口可乐,但时间不够,还是热的。 他们的解决办法是:在机器中安装开关,以判断可得到多少瓶碳酸饮料,并跟踪还需多长时间每瓶饮料才冷却。为了让人们远距离检查这台机器,设立了一个专用Finger服务器。当你Finger一个专用的用户标识(coke),它将显示这台coke机器容量的状态。
--------------------------------------------------------------------------------

说明
 不过现在它们的coke服务器我已经finger不到了。也许是他们换了我不知道的服务器,或者是已经关闭了这项服务。不过可以给你提供一个做finger实验的finger服务器,在下面会见到。

--------------------------------------------------------------------------------

finger服务基本原理
 finger基于传输控制协议,用TCP端口79。本地主机打开一个远程主机在Finger端口的连接。远程主机的RUIP(远程用户信息程序)变成有效来处理请求。本地主机发送给RUIP一行基于Finger查询说明的请求,然后等待RUIP响应。RUIP接收处理这个请求,返回应答,然后发起连接的关闭。本地主机接收到应答和关闭信号,然后执行本地端的关闭。
 说明
此原理引自RFC1288原文。简单点说,finger服务就是一套客户机/服务器系统。服务器提供用户信息,客户机进行查询。

--------------------------------------------------------------------------------


详细演示finger的使用
 使用finger服务只需要知道远程主机名,用户登陆名或者用户的真实姓名。其基本格式为:finger  示例1
不带选项的finger命令
[[email protected] ~]# finger @cs.cmu.edu
Login  Name        TTY         Idle    When      Where
root  Super-User   pts/2       13d  Wed 10:53  venera.fac.cs.cmu.edu
 讲解
 第一列Login是用户登陆名,在此为root。
第二列Name是用户真实姓名,在此为Super-User。
第三列TTY是终端名,在此为pts/2。
第四列Idle显示用户在此终端上的活动时间。如果记录是空白,则表示那个人正在使用自己的终端。否则,你将看见终端空闲了多长时间。在此是空闲了13天。
第五列When显示用户登陆的日期和时间,在此为星期三的10点53分。
第六列Where显示用户是如何登录的。如果此项为空白,则表示这个人正在使用直接连接到主机的终端。否则这个人通过给定名字的计算机或终端服务器连接主机。在此为通过主机venera.fac.cs.cmu.edu。 示例2
 带-l参数的finger命令
[[email protected] ~]# finger -l @cs.cmu.edu
Login name: root                        In real life: Super-User
Directory: /                            Shell: /sbin/sh
On since May 10 10:53:14 on pts/2 from venera.fac.cs.cmu.edu
13 days Idle Time
No unread mail
No Plan.
 讲解
 带-l参数的finger命令返回的是比较详细的信息。在这里,多出了用户主目录,用户shell,用户是否有未读邮件,用户计划等项目。 示例3

 以下这个示例,有比较多的内容,可以仔细看看。可以看到一个中国人Hu Ning在他的计划里画上了一直狐狸(这只狐狸很可能就是他)。

[[email protected] ~]# finger [email protected]

Search limit exceeded, first 10 entries displayed using fuzzy name match
No entries found for exact uid match
No entries found for exact name match
Login: hhfu                             Name: Hui Hua Fu
Directory: /afs/cs.cmu.edu/user/hhfu
Mail is forwarded to [email protected]
No Plan
Login: dwilson                          Name: Dan Wilson
                                              Daniel H Wilson
Directory: /afs/cs.cmu.edu/user/dwilson
Mail is forwarded to [email protected]
Plan:
Second year graduate student, Robotics Institute / CALD
Advisor:        Chris Atkeson

Web Page:       http://www.cs.cmu.edu/~dwilson/

Office:         NSH A525
                (412) 268-5909

Home:           (412) 363-7462
Cell:           (412) 478-2421
Login: ninghu                           Name: Ning Hu
Directory: /afs/cs.cmu.edu/user/ninghu
Mail is forwarded to [email protected]
Plan:
     .% ^"b           e$$        Ning Hu        Ph.D. Student
     F $$e L        d$$"'F       --------------------------------------
    .% $$$r L     J$$P  4%       Computer Science Department
    4 .$$$$ ^r ..J$$P   $        Carnegie Mellon University
    J 4$$$$  ^*$$$$$$e.d         5000 Forbes Ave
    P 3$$$F $$ $$$$$$$$$e.       Pittsburgh, PA 15213
    * ^$$$z$$$$$$$$$$$$$$.b
    d   J$$$$$$$$$$$$$$$$$'      Email:         [email protected]
   J$F ^"$$$$$P""**$$$L  $ F
  4$$   -$$$$$e."  $$$$zdFd      Phone:         (412)268-1557(O)
  $$$    $$$$$$$$$$$$$$.$.%                     (412)243-6285(H)
 4$$$"  4$P*$$$$$$$$$$$$.*
 $$$%      $$$$$$$$$$$$$$c"      Home Page:     www.cs.cmu.edu/~ninghu
 $$%         ""  ^*$$$$J$$b^.
 $%           4$$$b. " *$$* F :::::::::: ::::::::  :::    ::: :::   :::
 %                  ^$ee**"" :+:       :+:    :+: :+:    :+: :+:   :+:
4                    F      +:+       +:+    +:+  +:+  +:+   +:+ +:+
 L                 .d      :#::+::#  +#+    +:+   +#++:+     +#++:
 '*"             d$       +#+       +#+    +#+  +#+  +#+     +#+
    " .r$$%P%[email protected]$"        #+#       #+#    #+# #+#    #+#    #+#
                        ###        ########  ###    ###    ###
Login: yihchun                          Name: Yih-Chun Hu
Directory: /afs/cs.cmu.edu/user/yihchun
Mail is forwarded to [email protected]
Plan:
I hope to graduate from CMU's Ph.D. program in Computer Science... eventually.

Office: 4114 Wean Hall, (412) 268-3075
Lab:    3418 Wean Hall, (412) 268-6972
Fax:    (412) 268-5576
Home:   (412) 688-0661
Web:    http://www.cs.cmu.edu/~yihchun/
Snail:  Yih-Chun Hu
        Department of Computer Science
        5000 Forbes Avenue
        Carnegie Mellon University
        Pittsburgh, PA 15213

Travel:
Login: jennylo                          Name: Hiu Yu Lo
Directory: /afs/cs.cmu.edu/user/jennylo
No Plan
Login: janiceb                          Name: Janice H. Brochetti
Directory: /afs/cs.cmu.edu/user/janiceb
Mail is forwarded to [email protected]
No Plan
Login: changbo                          Name: Changbo Hu
Directory: /afs/cs.cmu.edu/user/changbo
Mail is forwarded to [email protected]
No Plan
Login: hzhang                           Name: Hui Zhang
Directory: /afs/cs.cmu.edu/user/hzhang
Mail is forwarded to [email protected]
Plan:
Professor

School of Computer Science  Office:       7126 Wean Hall
Carnegie Mellon University  Number:       (412)268-8945
5000 Forbes Ave             Email:        [email protected]
Pittsburgh, PA 15213-3891   URL: http://www.cs.cmu.edu/~hzhang


Administrative Associate: Kathy McNiff

        Phone:  (412) 268-5099
        Fax:    (412) 268-6714
        Email:  [email protected]

 

 

Login: hou                              Name: Lily Hou
Directory: /afs/cs.cmu.edu/user/hou
Mail is forwarded to [email protected]
Plan:

Login: hyu                              Name: Hua Yu
Directory: /afs/cs.cmu.edu/user/hyu
Mail is forwarded to [email protected]
Project:Remodel the wheel
Plan:
Hua Yu (thesis mode, reloaded)

Office:
2602B Newell Simon Hall      (412) 268-5479
Language Technology Institute (LTI a.k.a. CMT)

Fax: (412) 268-6298

Delivery:
4502 Newell Simon Hall (LTI)
Carnegie Mellon Univ., 5000 Forbes Ave.
Pittsburgh, PA 15213

Home:
Apt.301, 5628 Hempstead St.  (412) 422-2762
Pittsburgh, PA 15217

[email protected]   http://www.cs.cmu.edu/~hyu


"Be who you are and say what you feel because the people who mind
don't matter and the people who matter don't mind." - Dr. Seuss


"I contend, that the Negro is the creative voice of America, is creative
America, and it was a happy day ... when the first unhappy slave landed
on its shores."  - Duke Ellington
--------------------------------------------------------------------------------
 finger命令使用方法 finger finger [options]users 显示有关一个或多个用户的数据,包括每个用户目录下文件.plan和.project所列出的信息。可以把每个用户指定为一个登陆名(完全匹配)或指定为姓或名(显示所有匹配名字的信息)。网络环境中可识别参数的形式为[email protected]或@host。 选项 -s 显示短格式,包括登录名,真实名字,终端名,写状态,空闲时间,办公地点和办公室电话。 -l 强制采用长格式(默认),显示由-s选项所包含的所有信息,以及主目录,家庭电话,登录shell,邮件状态,.plan,.project和.forward。 -p 在显示中省略.plan和.project文件中的内容。 -m 禁止对用户“真实”名字的匹配。 说明 不指定finger的选项如果提供用户名的话,默认设为-l输出风格,否则为-s风格。注意在两种格式中,如果信息不足,都有一些域可能丢失,如果没有指定参数finger会为当前登录的每个用户打印一个条目。finger可以用来查看远程机器上的用户信息,格式是指定user为[email protected]或@host。前者的默认输出为-l风格,后者的默认输出为-s风格。-l是唯一的向远地机器传递的选项。
--------------------------------------------------------------------------------
 如何改变finger信息内容

 可以使用chfn命令修改finger的内容。看以下示例: [

[email protected] ~]# chfn zhangzijian

Changing finger information for zhangzijian.
Name [zhangzijian]: laojian
Office [11229]: China
Office Phone [13888888888]:
Home Phone [13888888888]:

Finger information changed.
 讲解:不带选项的chfn命令进入了交互模式。在每个项目里,不输入任何内容会保持原值。
--------------------------------------------------------------------------------
使用-o选项
 [[email protected] ~]# chfn -o 13800138000 zhangzijian
Changing finger information for zhangzijian.
Finger information changed.
讲解:在这里,我指定中国移动的充值电话为我的办公室电话。


chfn命令使用方法

chfn [options][username]


当用户被验证后,可以修改存放在/etc/passwd中并被显示的信息。如果没有options 选项,那么chfn进入交互模式并提示可进行修改。为了得到一空白区域,输入关键字none。只有特权用户才可以为另一个用户改变信息,对于普通用户,在修改之前,chfn提示用户输入密码。


选项


-f,--full-name

指定新的全名。


-h,--home-phone


指定新的家庭电话号码。


-o,--office


指定新的办公室号。


-p,--office-phone


指定新的办公室电话号码。


-u,--help


显示帮助信息并退出。


-v,--version


显示版本信息并退出。安全性 最流行的finger应用是美国加州大学Berkeley分校开发的。但是,BSD版本提供很少选项针对特定站点安全政策的详细Finger RUIP(远程用户信息程序)或者保护用户以免受到危险数据的攻击。而且,它存在许多用户和管理员需要注意的安全隐患,特别因为协议的目的是返回系统用户信息,最有可能发生问题的部分。 某些Unix系统自带的fingerd实现上存在安全问题,远程攻击者可能通过利用此漏洞得到系统用户相关信息。以数字为用户名提交一个请求,远程攻击者可能获取系统上的某些帐号名。比如:finger [email protected] 。 比如在以上卡内基--梅隆大学的示例中,可以获得cs.cmu.edu这台主机的管理员所使用的shell信息,以及他什么时候活动在这台主机上。这样就为不法者提供了很多关于主机的信息。在下面的例子里,著名的morris蠕虫,在1988年,导致占互联网1/10的约6000台unix主机崩溃,损失为1500万美圆。 回顾历史[Robert tappan morris的网络蠕虫用到了finger daemon。finger daemon允许从远端主机发送至多512比特作为Finger请求。然而,finger却有缓存溢出的漏洞,这是因为缺少正确的边界检查。被finger的主机将任何超过512比特的东西解释成在本地执行的指令,无论finger daemon的权限是什么。]

对策

如果有可能,就关闭掉finger的远程服务,可以保留本地服务。如果想禁止本地服务,可以直接删除掉finger命令。

关闭远程服务(linux下)

可以在inetd.d/xinetd.d中设置fingerd的启动脚本,把disable项设置为yes即可。

关闭远程服务(solaris下)

打开/etc/inetd.conf文件,找到如下行:
finger  stream  tcp   nowait  nobody /usr/sbin/in.fingerd    in.fingerd


在该行的开始处增加#号来将其注释
#finger  stream  tcp     nowait  nobody  /usr/sbin/in.fingerd    in.fingerd
   
3. 重新启动inetd
# ps -ef|grep inetd
root   167     1  0   Oct 07 ?   0:07 /usr/sbin/inetd -s -t

# kill -HUP 167 (上面的例子中,167是inetd的pid) 如果还想保留finger服务,那么就要经常注意服务器版本的更新。并且要把尝试连接该服务器的ip地址记录到日志里。



转自:

learningstuff的博客



本文始发于微信公众号(LemonSec):古老的finger服务---详细讲解

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: