本类共有 159 篇文章,今日更新 0

从流光谈口令安全

[ 来源:http://www.91now.com/down/ | 作者: | 时间:2007-5-18 18:09:58 | 浏览: 人次 ]




一、小榕流光使用的简单说明

  要谈流光还真找不着感觉——在小榕的帮助文件里已经把软件的使用方法详尽无比地描述过了(强烈建议使用者使用前将帮助文件多读两遍)——我就说三个方面吧——高手完全可以略过的……

  1、对某FTP主机一次完整的在线安全检测过程

    A、选定主机:右键单击FTP主机选项,从弹出菜单中选择添加——将目标的IP地址填入,如
"210.142.192.13"……

    B、选定用户:右键单击该IP地址,可选添加(将想测试的用户名逐个加入)添加方案(可在方案中编辑希望测试的用户名列表)从列表添加(直接从字典文件中导入)及从SMTP主机导入(导入SMTP主机探测到的用户名),假设你想探测的用户名为quack,便直接在"添加"中填入quack。


    C、选择字典:
     
      a、简单模式探测:在选项菜单条中对字典及简单模式设置做适当修正以适应本次测试要求,当然你也可以在面板上的单词小写、简单后缀等按钮直接选定。

      b、标准模式探测:在"解码字典或方案"中选定某一字典(方案)。


    D、调整设置:检查选项菜单栏中的系统设置、连接选项和探测选项,将本次测试的各种选项调整至最优。

    E、开始探测:在“探测”菜单中选定“简单模式”或“标准模式”,开始此次安全检测。

    F、注意事项:由于流光的系统占用较高,最好不要再开其它应用程序;在在线检测时可能有时会出现假死机现象,这时你可以通过观察MODEM的RD与SD灯来判断程序是否正常运作。

  2、密码字典的选用:在线探测相当耗时,所以一个合适的字典会大大降低你的“检测成本”,流光里的工具菜单栏对生成适合自己使用的字典档是一个相当实用的工具——我个人觉得尤其值得使用的是“方案编辑工具”,它能够在你锁定特定用户检测时发挥较大的作用,具体使用帮助文件中写得非常详细,我就不再多说了——当然流光里附带的XKEY也是一个相当不错的字典生成程序。

  3、流光其实不仅仅是一个在线安全检测工具——而是一个“工具包”,同时具有以下几个辅助功能

    A、探测主机端口
    B、探测主机类型
    C、FINGER
    D、扫描POP3、FTP主机
    E、验证主机用户  

  而其主要功能是对POP3、FTP、HTTP、PROXY主机进行在线密码安全检测。所以——一句话,功能强大,试过便知。

  至于同样原理的在线密码破解软件国内流行的也并不少,如很早以前的emailcrack、wwwhack、网络刺客1以及现在流传很广网络刺客2、Webcrack、Xavior等等,流光在很大程度上集成了这些软件的功能,但这些软件早期的产品也都缺乏IP隐藏或类似功能,而近期的Webcrack以及Xavior则都具备从代理服务器端进行探测的功能,我认为这应该是在线探测的一个方向——安全第一嘛——基于此想法,我对流光在探测中会留下的记录进行试验:

  对一位网管朋友的WINDOWS2000 Beta3 SERVER 英文版进行了一番测试,对其上已知的帐号进行密码强攻,经探测得知其FTP端口是开放的,在未预先通知的情况下对其进行攻击,事后打电话询问其记录情况,在EVENT VIEWER里有如下信息:WARNING:The server was unable to logon the Windows NT account 'houxiourong' due to the following error: Logon failure: unknown user name or bad password. The data is the error code. 而甚至他告诉我,当我的攻击进行到一半时,他的主机上就弹出了The System log file is full.的信息提示框——失败的登陆次数太多以至于其默认为512K的记录文件被撑饱了!

  所以我要奉劝某些心怀叵测的人们——别做坏事……


二、密码设置的基本常识及工具

  1、有关口令的一些统计

    A、数目:在UNIX系统里可以建立多于43,000,000,000,000,000个不同的口令,但如果仅仅组合10种主要语言的字典,加上这些字的反向、大写、简单后缀等一些微小变形,仅能产生不到5,000,000个字……加上一些俚语……也不会超出这个数量级。

    B、国外某机构在对一个无约束环境的用户口令选择的调查中显示,只有1.4%的用户口令中含有控制符。

  2、介绍几个工具

    A、CrackLib 简介及应用举例
     
      by JeffreyDong


      CrackLib 是什么?
      =====================

    CrackLib: A ProActive Password Sanity Library
    By: Alec Muffett
    Address: alecm@crypto.dircon.co.uk

    CrackLib是一个可用于类UNIX系统下的函数库, 一般来说, 通常只使用其中的一个函数.
    :-) 它可以用于编写和passwd有关的程序中, 其基本思想是很简单的, 就是防止用户使
    用过于简单, 容易被猜测出来或容易被一些工具搜索到的密码.

    密码攻击是网络上最为常见的攻击手段. 随着国内计算机用户水平的提高, 有很多人学
    会了使用工具搜索密码的方法, 由于某些原因, 含有被加密密码的文件会被某些用户获
    取; 这时, 过于简单的密码就会成为攻击者的突破口. 网上有很多这方面的报道.(我的
    一个朋友告诉我他曾用一个星期的时间算出了BTA一个管理员的密码. wow! :-P) 通过限
    制用户使用不安全的密码, 可以提高你的系统的安全性.


      CrackLib的特点
      ==================

    CrackLib并不是一个可以直接运行使用的程序, 它是一个函数库, 你可以利用其中的函
    数写自己的程序, 或是加入其它程序中, 用来提高安全性. 比如, 你可以重写passwd,
    使用户在选择密码时受到限制.

    CrackLib使用一个字典, 它查找字典以判断所选用密码是否是不安全的密码, 所以你也可
    以加入其它信息, 使用自己的字典.比如, 加入公司的名称, 实验室墙上的单词等等潜在
    的不安全密码.

    CrackLib的使用非常简单, 它可以被应用于很多地方, 只需加入简单的几行源码, 就可以
    得到非常好的效果.


      CrackLib的安装
      ==================

    CrackLib可以很容易的在Internet上找到, 我现在使用的版本是2.7, 跑在我的i586/RedHat Linux和i386/Slackware Linux上. 如果你无法找到它的话, 赶紧去补一补如何在Internet上查找特定的软件吧, 因为这是一项非常重要的基本功.

    CrackLib好象没有什么文档, 这也是GNU急需加强的地方. 但是它的安装非常简单, 只要按照README文件中所叙述的就可以了.如果你用的distribution中包含了这个包, 那它说不定已经安装在你的机器上了, 如RedHat 5.1等. :-)

    需要注意的是, 不同版本中一些文件所处的目录位置不同, 你要先确定它们所处的位置. 比如, 在RedHat 5.1中, 字典是在/usr/lib/中, 文件名为cracklib_dict.*, 而不是README中所举例的/usr/local/lib/pw_dict.*

      应用举例
      ============

    这里我举一个很简单的例子, 试图用很短的篇幅来说明用法.

    char *FascistCheck(char *pw, char *dictpath);

    这是CrackLib中最常用的函数. pw是用户选择的密码, 你要去验证它是不是不安全的.
    dictpath是字典所在路径, 注意, 要把文件名中"."之前的部分加上.

    以RedHat 5.1为例, 假设你已正确的安装了CrackLib 2.7和FireBird BBS 2.66M. 让我们来看看如何把CrackLib加入BBS中去. :-)

    首先, 改写bbs_src目录下的register.c:

      /* ----------- begin ---------- */
      char *msg;
      /* ----------- end ---------- */

      ......

      while( 1 ) {
      getdata(0,0,"请设定您的密码 (Setup Password): ",passbuf,PASSLEN,NOECHO,YEA) ;
      if( strlen( passbuf ) < 4 || !strcmp( passbuf, newuser.userid ) ) {
      prints("密码太短或与使用者代号相同, 请重新输入\n") ;
      continue;
      }
      /* ----------- begin ---------- */
      if (msg = (char*) FascistCheck(passbuf, CRACKLIBPATH)) {
      printf("请另选密码! (%s)\n",msg);
      continue;
      }
      /* ----------- end ---------- */
      strncpy( newuser.passwd, passbuf, PASSLEN );
      getdata(0,0,"请再输入一次你的密码 (Reconfirm Password): ",passbuf,PASSLEN,NOECHO,YEA);
      if( strncmp( passbuf, newuser.passwd, PASSLEN ) != 0 ) {
      prints("密码输入错误, 请重新输入密码.\n") ;
      continue;
      }
      passbuf[8] = '\0' ;
      strncpy( newuser.passwd, genpasswd( passbuf ), PASSLEN );
      break;
      }

      begin和end注释所夹部分为改动处, 下同.

      接着改写bbs_src目录下的userinfo.c:

      /* ----------- begin ---------- */
      char *msg;
      /* ----------- end ---------- */

      ......

      getdata(i++,0,"请设定新密码: ",buf,PASSLEN,NOECHO,YEA);
      if( buf[0] == '\0' ) {
      prints("\n\n密码设定取消, 继续使用旧密码\n");
      fail++;
      break;
      }
      strncpy(genbuf,buf,PASSLEN) ;
      /* ----------- begin ---------- */
      if (msg = (char*) FascistCheck(buf, CRACKLIBPATH)) {
      printf("\n请另选密码! (%s)\n", msg);
      prints("\n密码设定取消, 继续使用旧密码\n");
      fail++;
      break;
      }
      /* ----------- end ---------- */
      getdata(i++,0,"请重新输入新密码: ",buf,PASSLEN,NOECHO,YEA);
      if(strncmp(buf,genbuf,PASSLEN)) {
      prints("\n\n新密码确认失败, 无法设定新密码。\n");
      fail++;
      break;
      }

      接着在bbs.h中加入:

      #ifndef CRACKLIBPATH
      #define CRACKLIBPATH "/usr/lib/cracklib_dict"
      #endif

      注意这里是字典所处的位置.

      最后改动bbs的Makefile:

      OS_DEF = -DLINUX -DTERMIOS
      CC = gcc
      CFLAGS = -O2
      /* ----------- begin ---------- */
      LIBS = -ltermcap -lbsd -lcrack
      /* ----------- end ---------- */

      然后make, make install就可以了. :-) 很简单, 不是吗?
      注意:本段关于cracklib的说明转载于[网络工作室]

    B、Proactive Checking

      这个程序能在输入口令时进行一系列的口令检查,这会对避免不安全口令出现于你的
      系统有帮助作用。它与一般的shadow和NIS(也就是yellow page)口令系统共同工作。

    C、Shadow

      这个程序取代了原来系统的口令保护机制,它将/etc/passwd文件中的口令信息转移到
      文件/etc/shadow中,还有一些如口令到期机制、允许16字符口令等功能。

    D、Passwd+

      这是一个典型的增强型口令系统。

三、应有的措施及其基本知识

  1、日志文件

    大多数日志文件都是由系统一行接着一行写入的文本文件。比如sulog会记录用户使用su命
    令试图进入系统的情况,在sulog文件尾部附加一条信息,以记录su命令是否被成功使用。

    不同版本的UNIX系统存放日志文件的目录不同,常见目录如下:

    /usr/adm   早期的UNIX系统
    /var/adm   较新版本的UNIX系统
    /var/log   用于Solaris\Linux\BSD等系统中

    在这些目录或其子目录下,你可以找到下列文件

    acct 或 pacct 记录每个用户使用过的命令
    aculog       拨出“猫”的记录
    lastlog     记录用户最后一次成功登陆时间及最后一次失败登陆时间
    loginlog     不良登陆记录
    messages     输出到主控台及由syslog系统服务程序产生的消息
    sulog       su的使用情况
    utmp       记录当前登陆的每个有户
    utmpx       扩展的utmp
    wtmp       记录每一次用户登陆和注销的历史信息及系统开关信息
    wtmpx       扩展wtmp
    vold.log     使用外部介质产生的错误
    xferlog     FTP存取情况

  2、定期运行如crack之类的口令破解程序以检查系统中是否存在弱帐户。

  3、安装如COPS(Computer Oracle and Password System)等系统安全检查软件包,它可以检查系统上的各种文件和软件的配置,以判断系统是否被入侵者攻破,并且能够检查文件的访问权限设置是否正确,以保证系统安全级别的一致性。当然还有普通用户的COPS包,它会针对某个用户的所有文件进行一致性检查,之后向用户发送相应的邮件以提示是否存在安全问题。

>> 相关文章

广告位