网站公告列表

  没有公告

加入收藏
设为首页
在线投稿

您现在的位置: IT知识网 >> IT知识 >> 维修维护 >> 其它外设维护维修 >> 文章正文

 

  自由组合:Linux下攻击软件精华荟萃 (1)           

自由组合:Linux下攻击软件精华荟萃 (1)
作者:佚名 文章来源:不详 点击数: 更新时间:2006-12-6 0:51:02
    自由组合:Linux下攻击软件精华荟萃 (1)
    自由组合:Linux下攻击软件精华荟萃 (1)    现在,大量的网络服务器开始使用Linux操作系统,Linux服务器的安全性也开始受到关注。对Linux服务器攻击的定义是:攻击是一种旨在妨碍、损害、削弱、破坏Linux服务器安全的未授权行为,攻击的范围可以从服务拒绝直至完全危害和破坏Linux服务器。对Linux服务器攻击有许多种类,从攻击深度的角度说明,我们可以把攻击分为四级:服务拒绝攻击(DoS)、本地用户获取了非授权的文件的读写权限、远程用户获得特权文件的读写权限、远程用户获得根权限。下面,我们将选取一些有针对性的经典工具,一一加以说明。
    
    1、溢出:从开源代码开始
    
    Linux系统中最常见的缺陷就是缓冲区溢出,缓冲区以前可能被定义为“包含相同数据类型的实例的一个连续计算机内存块”。极其常见的缓冲区种类是简单的字符数组,溢出就是数据被添加到分配给该缓冲区的内存块之外。由此,我们可以看到,作为开源系统,Linux系统中的代码检查就显得十分重要。对于攻击者和管理员来说,谁首先重视它,就在一定程度上取得了主动权。
    
    (1)SPIKE
    SPIKE是immunitysec公司的Dave Aitel写的一个黑盒进行安全测试的工具。SPIKE提供了各种各样的构造函数。例如s_binary可以构造二进制数据,s_string可以构造字符串,s_unistring可以构造UNICODE字符串等。SPIKE的另一个优势是Dave Aitel的Fuzz理论,它可以构造一些特殊的数字或者字符串作为程序的输入,检查程序是否能够处理这些异常数据。此外,SPIKE里边提供了常见的协议支持,例如SUN RPC和MS RPC。
    
    (2)Lint
    
    Lint能够检查的部分错误列表:可能的空指针;在释放内存之后使用了该指针;赋值次序问题;拼写错误等。通常,一个C/C++的编译器假设程序是正确的,而Lint恰恰相反,因此,它优于编译器执行的一般性检查。Lint还可以贯穿多个文件来执行它的错误检查和代码分析,这是编译器做不到的。比较流行的Lint 程序有:PC-lint是一个由Gimpel Software提供的支持C/C++的商用程序;Splint (原来的 LCLint) 是一个GNU免费授权的 Lint程序,但是只支持C不支持C++。
    
    运行 Lint时,和正常的编译器一样,只要把直接加入的makefile 中就可以了。通过配置选项、代码注释等方法可以控制和校准Lint的输出。例如,这里有一个返回NULL指针的函数,Splint可以通过下面的注释 /*@null@*/ 来识别:
    
    
    /*@null@*/ void *test(void)
    {
    // a function that returns NULL!
    return NULL;
    }
    
    这样做有两个目的:防止Splint为这个返回Null指针的函数告警;保证Splint 检查任何调用该函数的代码中使用该函数的返回指针是有效的。
    
    (3)Flawfinder
    
    Flawfinder 是一款用Python编写的c、c++程序安全审核工具,可以检查潜在的安全风险。它通过搜索检测文件源代码从而得到潜在的安全漏洞,支持检测数据库,以HTML格式生成报告。
    
    2、嗅探器:Linux上的“狗鼻子”
    
    Sniffer是一种常用的收集有用数据方法,它几乎能得到任何以太网上的传送的数据包。这些数据可以是用户的帐号和密码,可以是一些商用机密数据等等。这些嗅探器很容易被入侵者完成入侵以后种植在受害者服务器当中,有的只是简单的用来捕捉用户名和密码,有的则非常强大可记录所有的网络数据流。Linux操作系统下有很多这样的优秀工具,下面,我们来具体看看。
    
    (1)tcpdump
    
    这是一个专业的网络管理工具,而且这个工具也留下了不少网络攻击故事。它能把匹配规则的数据包的包头显示出来,使用TCPDump去查找网络问题或者去监视网络上的状况.。tcpdump的安装十分简单,一般由两种安装方式。一种是以rpm包的形式来进行安装。另外一种是以源程序的形式安装。以rpm包的形式安装是最简单的安装方法,通过rpm命令可以直接安装。以超级用户登录后,使用命令:#rpm -ivh tcpdump.rpm,就可以顺利安装了。
    
    Tcpdump采用命令行的方式使用,它的命令格式为:
    
    
    
    tcpdump [-adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]
              [ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]
             [ -T 类型 ] [ -w 文件名 ] [表达式 ]
    
    
    其中,“-a”表示将网络地址和广播地址转变成名字;“-d”表示将匹配信息包的代码以人们能够理解的汇编格式给出;“-e”表示在输出行打印出数据链路层的头部信息;“-c”表示在收到指定的包的数目后,tcpdump就会停止;“-F”表示从指定的文件中读取表达式,忽略其它的表达式;“-i”表示指定监听的网络接口;“-r”表示从指定的文件中读取包(这些包一般通过-w选项产生);“-w”表示直接将包写入文件中,并不分析和打印出来;“-T”表示将监听到的包直接解释为指定的类型的报文,常见的类型有远程过程调用和snmp简单网络管理协议。
    
    tcpdump的表达式是一个正则表达式,tcpdump利用它作为过滤报文的条件,如果一个报文满足表达式的条件,则这个报文将会被捕获。如果没有给出任何条件,网络上所有的信息包将会被截获。在表达式中一般如下几种类型的关键字,一种是关于类型的关键字,主要包括host、net、port等。第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src等,这些关键字指明了传输的方向。第三种是协议的关键字,主要包括fddi,ip ,arp,rarp,tcp,udp等类型。除了这三种类型的关键字之外,其他重要的关键字如下:gateway、broadcast、less、greater,还有三种逻辑运算“或、非、与”,这些关键字可以形成强大的组合条件来满足人们的需要。例如,想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
    #tcpdump host 210.27.48.1
    
    想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
    #tcpdump ip host 210.27.48.1 and ! 210.27.48.2
    
    如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
    #tcpdump tcp port 23 host 210.27.48.1
    
    下面我们介绍几种典型的tcpdump命令的输出信息。比如,使用如下命令:
    #tcpdump --e host ice
    
    其中,ice 是一台装有linux的主机,她的MAC地址是2E:19:24:28:AF:1A。H219是一台装有SOLARIC的SUN工作站,它的MAC地址是8:0:20:79:5B:46;上一条命令的输出结果如下所示:
    
    21:50:12.847509 eth0 < 8:0:20:79:5b:46 2E:19:24:28:AF:1A ip 60: h219.33357 > ice.telnet 0:0(0) ack 22535 win 8760 (DF)
    
    分析:21:50:12是显示的时间,847509是ID号,eth0 <表示从网络接口eth0 接受该数据包,eth0 >表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它表明是从源地址H219发来的数据包。2E:19:24:28:AF:1A是主机ICE的MAC地址,表示该数据包的目的地址是ICE . ip 是表明该数据包是IP数据包,60 是数据包的长度, h219.33357 > ice.telnet 表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535 表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.
    再比如,使用命令:
    
    #tcpdump arp
    
    到的输出结果是:
    
    22:32:42.802509 eth0 > arp who-has route tell ice (2E:19:24:28:AF:1A)
    22:32:42.802902 eth0 < arp reply route is-at 0:90:27:12:10:66 (2E:19:24:28:AF:1A)
    
    分析: 22:32:42是时间戳, 802509是ID号, eth0 >表明从主机发出该数据包, arp表明是ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 2E:19:24:28:AF:1A是主机ICE的MAC地址。此外,这个软件还可以分析UDP等数据包等,结合LINUX环境熟练使用后,我们就可以充分发挥它的威力。
    
    
    
    
    
  

文章录入:wuyongjian    责任编辑:wuyongjian 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最 新 热 门
    相 关 文 章
    处理主路由组失效问题
    自由组合:Linux下攻击软
    自由保卫战:内网安全技
    自由连锁加盟 签定合同必
    什么是自由软件
    利用导入注册表自由冲浪
    如何突破网关的种种限制
    让网吧线路可以自由切换
    存取自由:巧把Gmail邮箱
    不用数据库的多用户文件
     
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    Copyright© ITZS.NET All Rights Reserved
    QQ:272895858   ICP备案编号:吉ICP备07000044号
    IT知识网 站长:博浪