找回密码
 注册
搜索
热搜: 回贴
微赢网络技术论坛 门户 安全攻防 查看内容

一次入侵检测系统的初级测试随笔

2009-12-14 01:07| 发布者: admin| 查看: 27| 评论: 0|原作者: 玄霄

作者:南野邪羽
是一次LIDS初级测试后的笔记,因部分内容有所删减,内容有点混乱,不足的地方请批评指正。

本次LIDS的测试,主要做了三个方面检测:DoS、Dictionary attack和TCP/IP snoop;应该说,取得最好效果的,也是最成功的还是TCP/IP snoop。其实TCP/IP偷窃就是被动通道的听取和信息包拦截,关于此类介绍,请参考sniffer嗅探技术。这种入侵方式不象DoS,那么明目张胆。snoop具有很强的隐蔽性,基本原理是利用网络的接口获取数据报文,工作在网络的最底层。作为一名网络安全员,正确使用sniffer技术可以查找网络的漏洞和性能,并分析网络流量。但是,一旦sniffer被应用为snoop,那么,其对信息的安全性带来了被动性和巨大的威胁。

snoop其实就是捕获真实的网络报文,数据在网络上传输时,一般不数据自己的报文是不会予以理睬的,但是如果某个工作站在的网络接口设置为杂收模式,那样的话他就可以接收网络上所有的报文。而snoop就是把sniffer的特点利用来入侵,在入侵基点上放置嗅探器。比如这次的测试中,外网入侵者通过服务器,往内网的工作站发送木马并放置嗅探器,然后内网策应者将嗅探器接在网络的某个点上,以此来欺骗服务器。

LIDS的设计意图和构想:改变文件系统在内核里的安全系统调用,严格控制每个访问;隐蔽PID的路径名入口并且把一些必要的modules加入到内核中,禁止任何用户插入modules,包括root(当然系统启动时是可以的),也就是现在比较流行的内核封装技术。

其实IDS做的并不是很完善,在做DoS和Dictionary attack测试时还有所作为,IDS只是简单的做了/usr/bin和/sbin目录的文件保护,/log只可增,禁止任何人挂载和卸载文件系统。内核只做了基本的inode鉴定和dentry结合,保护了/etc/password。具体LIDS配置如下:
lidsadm -Z
lidsadm -A -r /usr/bin
lidsadm -A -r /bin
lidsadm -A -r /usr/sbin
lidsadm -A -r /sbin
lidsadm -A -r /usr/X11R6/bin
lidsadm -A -r /etc/rc.d
lidsadm -A -r /etc/sysconfig
安装LIDS和修改内核就不作为本文的内容了,只是在修改过程中,内核patch有点不同,需要做细微修改。配置了LIDS,那么还需要修改系统启动文件,这样能使LIDS作用于内核中。配置脚本如下:
/sbin/lidsadm -I -- -CAP_SYS_MODULE -CAP_SYS_RAWIO -CAP_SYS_ADMIN
-CAP_SYS_PTRACE -CAP_NET_ADMIN -CAP_LINUX_IMMUTABLE
INIT_CHILDREN_LOCK
具体LIDS配置,此前的随笔中有详细介绍。通过基本的配置可以看出,实际对于嗅探snoop之前,我就可以估计到LIDS的作用不会太大,因为基于网络协议的报文分析,并没有在此次测试中做严格控制,很容易钻空子。

关于sniffer:

现在很流行的以太网协议,将所有的数据包都发往了所有的主机,这就使得内网用户的主机处于监听模式,那么无论数据包发到任何目标地址,都要被接收。当然,不在同一网段,也就是不经过该网络接口数据包,自然就无法监听。所以,本次测试的模拟环境为外网渗透,内网策应。在整个嗅探过程中,一直让sniffer在后台运行,修改PS程序和时间,让管理员难以发现sniffer并认为它是和其他系统程序同时安装的,欺骗效果非常好。

嗅探工具:通用平台工具——TCPDUMP,sniffit;
测试过程:——入侵端
在网络中的入侵主机和服务器,运行了sniffer(evil)另一台是192.168.0.1(host)
首先检查sniffer是否能运行,#sniffit-d-p43-t192.168.0.1,并且开另一个窗口:$telnethost43,这时候看到sniffer将我telnet到host43号端口echo服务的包捕获了。
然后进一步截获host上的用户密码#sniffit-p43-t192.168.0.1
这时候,使用脚本来执行。编写一个script的文件
selectfromhost192.168.0.1
selecttohost192.168.0.255
selectbothport21
然后执行:sniffit-cscript
这时监听从192.168.0.X网段的数据包,端口为FTP
而后安装插件tod(touchofdeath),它可以轻易地切断一个TCP连接,原理是向一个TCP连接中的一台主机发送一个断开连接的IP包,这个IP包的RST位置1,就达到目的了。安装后ln-stodsniffit_key8,将这程序与F8键连接起来,在窗口中将光标指到需要断线的机器上按下F8键。此时,为了达到隐蔽攻击的目的,外网入侵者利用内网开放的tunnel进入网络,然后利用外网的伪IP,进行进一步嗅探。
查看从192.168.0.1发给192.168.0.11(内网入侵主机)的ICMP数据,并且将其显示到控制台上:
sniffit -P ICMP -t 192.168.0.1 -d LOG
此时发生了错误信息,并且尝试用TOD切断网络连接,也未果,看来管理员动手了。于是,外网主机起用双网卡,把其中一块设置为杂乱模式,IP地址设为0.0.0.0,另一块处于正常的模式设置为正确的地址,然后和内网主机进行映射,替换ifconfig命令,这样重新连接后,又可以正常的获取信息了。

服务器端:
在整个嗅探过程中,网络带宽并未出现任何反常,LIDS记录下了sniffer的日志,这些明显加重了负荷,警告信息也就被管理员发现,看来LIDS起到了作用。对于linux,“ifconfig -a”会显示所有网络接口信息和是否在混杂模式。起初的确起到了效果,发现并识别了sniffer。然而入侵者替换了ifconfig命令后,并且使用双网卡配置,检测的命令因为只在sniffer与内核存在链接时有效,而在缺省的情况下,sniffer是没有与内核链接的。因此,这次的初级检测,没有成功。入侵者通过外网的tunnel在内网嗅探信息,伪装了IP和混杂模式后,管理员就很难发现sniffer的存在,这时候,snoop就开始了。

其实LIDS的配置,更多的是倾向于文件保护和内核封装,由于TCP/IP snoop并未动用文件系统,也并未与内核连接,致使LIDS作用发挥不是很好,然而snoop的应用可以通过被动窃听,操纵和登记信息,把文件送达,也会从目标系统上所有可通过的通道找到可通过的致命要害。寻找联机和密码的结合点,认出申请合法的通道。通过信息包拦截在目标系统约束一个活跃的听者程序以拦截和更改所有的或特别的信息的地址。信息可被改送到非法系统阅读,然后不加改变地送回给入侵者。这样,LIDS形同虚设一般。

后话:
因为整个测试过程为初级测试,没有使用交换机,其实交换机是很有效的使sniffer失效的设备。交换机在第三层根据数据包目标地址进行转发,而不太采取集线器的广播方式,从理论上讲,通过交换设备对网络进行分段后,sniffer是无法透过边界而窥探另一边的数据包。(PS:在后面的测试中,在边界设备不转发广播包的情况下,使用了spoofer诱骗边界设备将自己的广播包传入网段后,还是可以在一个共享设备端使用sniffer的,而实际上就是听到了边界的另一边,因为使用了ip和MAC欺骗)

会话加密也是后期的一个测试内容,主要是想办法使得嗅探器不认识嗅探到的数据。这种方法的优点是明显的:即使攻击者嗅探到了数据,这些数据对他也是没有用的。比如后期测试的S/key技术。他和其它一次性口令技术一样,使窃听帐号信息失去意义。S/key的原理是远程主机已得到一个口令(这个口令不会在不安全的网络中传输),当用户连接时会获得一个challenge信息,将这个信息和口令经过某个算法运算,产生正确的response信息(如果通讯双方口令正确的话)。这种验证方式无需在网络中传输口令,而且相同的challange/response也不会出现两次。但是它是所有帐号信息都存放在一台主机中,如果该主机被入侵,则会危及整个网络安全。当然,也可以使用SSH,这是后期测试的内容了。
转载请说明出处:itbbs.pconline.com.cn

最新评论

QQ|小黑屋|最新主题|手机版|微赢网络技术论坛 ( 苏ICP备08020429号 )

GMT+8, 2024-9-30 09:32 , Processed in 0.133341 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

返回顶部