您的位置:控制工程论坛网论坛 » 工业无线 » 网络入侵的前兆检测

解脱527

解脱527   |   当前状态:离线

总积分:877  2024年可用积分:0

注册时间: 2007-09-03

最后登录时间: 2009-11-12

空间 发短消息加为好友

网络入侵的前兆检测

解脱527  发表于 2007/9/17 9:05:44      1113 查看 2 回复  [上一主题]  [下一主题]

手机阅读

一、对于WWW服务入侵的前兆检测对于网络上开放的服务器来说,WWW服务是最常见的服务之一。基于80端口的入侵也因此是最普遍的。很多sceipt kids就对修改WEB页面非常热衷。WWW服务面对的用户多,流量相对来说都很高,同时WWW服务的漏洞和相应的入侵方法和技巧也非常多,并且也相对容易,很多“黑客”使用的漏洞扫描器就能够扫描80端口的各种漏洞,比如wwwscan 、X-scanner等,甚至也有只针对80端口的漏洞扫描器。Windows系统上提供WWW服务的IIS也一直漏洞不断,成为系统管理员头疼的一部分。虽然80端口入侵和扫描很多,但是80端口的日志记录也非常容易。IIS提供记录功能很强大的日志记录功能。在“Internet 服务管理器”中站点属性可以启用日志记录。默认情况下日志都存放在%WinDir%\System32\LogFiles,按照每天保存在exyymmdd.log文件中。这些都可以进行相应配置,包括日志记录的内容。在配置IIS的时候应该让IIS日志尽量记录得尽量详细,可以帮助进行入侵判断和分析。现在我们要利用这些日志来发现入侵前兆,或者来发现服务器是否被扫描。打开日志文件,我们能够得到类似这样的扫描记录(以Unicode漏洞举例): 2002-03-10 05:42:27 192.168.1.2 - 192.168.1.1 80 HEAD /script/..蜡../..蜡../..蜡../winnt/system32/cmd.exe /c+dir 404 - 2002-03-10 05:42:28 192.168.1.2 - 192.168.1.1 80 GET /script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404 - 需要注意类似这样的内容: /script/..?../..?../..?../winnt/system32/cmd.exe /c+dir 404 如果是正常用户,那么他是不会发出这样的请求的,这些是利用IIS的Unicode漏洞扫描的结果。后面的404表示并没有这样的漏洞。如果出现的是200,那么说明存在Unicode漏洞,也说明它已经被别人扫描到了或者已经被人利用了。不管是404或者200,这些内容出现在日志中,都表示有人在扫描(或者利用)服务器的漏洞,这就是入侵前兆。日志也记录下扫描者的来源:192.168.1.2这个IP地址。再比如这个日志: 2002-03-10 06:17:50 192.168.1.2 - 192.168.1.1 80 HEAD / - 400 - 这是一个使用HEAD请求来扫描WWW服务器软件类型的记录,攻击者能够通过了解WWW使用的软件来选择扫描工具扫描的范围。 IIS通常都能够记录下所有的请求,这里面包含很多正常用户的请求记录,这也让IIS的日志文件变得非常庞大,上十兆或者更大,人工浏览分析就变得不可取。这时可以使用一些日志分析软件,帮助日志分析。或者使用下面这个简单的命令来检查是否有Unicode漏洞的扫描事件存在: find /I "winnt/system32/cmd.exe" C:\log\ex020310.log “find”这个命令就是在文件中搜索字符串的。我们可以根据扫描工具或者漏洞情况建立一个敏感字符串列表,比如“HEAD”、“cmd.exe”(Unicode漏洞)、“.ida”“.idq”(IDA/IDQ远程溢出漏洞)、“.printer”(Printer远程溢出漏洞)等等。二、对于FTP等服务入侵的前兆检测根据前面对于WWW服务入侵前兆的检测,我们可以照样来检测FTP或者其他服务(POP、SMTP等)。以FTP服务来举例,对于FTP服务,通常最初的扫描或者入侵必然是进行帐号的猜解。对于IIS提供的FTP服务,也跟WWW服务一样提供了详尽的日志记录(如果使用其他的FTP服务软件,它们也应该有相应的日志记录)。我们来分析这些日志: 2002-03-10 06:41:19 192.168.21.130 administrator [36]USER administrator 331 2002-03-10 06:41:19 192.168.21.130 - [36]PASS - 530 这表示用户名administrator请求登录,但是登录失败了。当在日志中出现大量的这些登录失败的记录,说明有人企图进行FTP的帐号猜解。这就是从FTP服务来入侵的入侵前兆。分析这些日志的方法也跟前面分析WWW服务的日志方法类似。因为FTP并不能进行帐号的枚举,所以,如果发现有攻击者猜测的用户名正好和你使用的帐号一致,那么就需要修改帐号并加强密码长度。三、系统帐号密码猜解入侵的前兆检测对于Windows 2000服务器来说,一个很大的威胁也来自系统帐号密码的猜解,因为如果配置不佳的服务器允许进行空会话的建立,这样,攻击者能够进行远程的帐号枚举等,然后根据枚举得到的帐号进行密码的猜测。即使服务器拒绝进行空会话的建立,攻击者同样能够进行系统帐号的猜测,因为基本上很多服务器的系统管理员都使用administrator、admin、root等这样的帐号名。那些黑客工具,比如“流光”等,就可以进行这样的密码猜测,通过常用密码或者进行密码穷举来破解系统帐号的密码。要检测通过系统帐号密码猜解的入侵,需要设置服务器安全策略,在审核策略中进行记录,需要审核记录的基本事件包括:审核登录事件、审核帐户登录事件、帐户管理事件。审核这些事件的“成功、失败”,然后我们可以从事件查看器中的安全日志查看这些审核记录。比如:如果我们在安全日志中发现了很多失败审核,就说明有人正在进行系统帐号的猜解。我们查看其中一条的详细内容,可以看到:登录失败: 原因: 用户名未知或密码错误用户名:administrator 域: ALARM 登录类型: 3 登录过程: NtLmSsp 身份验证程序包: MICROSOFT_AUTHENTICATION_PACKAGE_V1_0 工作站名: REFDOM 进行密码猜解的攻击者打算猜测系统帐号administrator的密码,攻击者的来源就是工作站名:REFDOM,这里记录是攻击者的计算机名而不是他的IP地址。当我们发现有人打算进行密码猜解的时候,就需要对相应的配置和策略进行修改。比如:对IP地址进行限制、修改被猜解密码的帐号的帐号名、加强帐号密码的长度等等来应对这样的入侵。四、终端服务入侵的前兆检测 Windows2000 提供终端控制服务(Telminal Service),它是一个基于远程桌面协议(RDP)的工具,方便管理员进行远程控制,是一个非常好的远程控制工具。终端服务使用的界面化控制让管理员使用起来非常轻松而且方便,速度也非常快,这一样也让攻击者一样方便。而且以前终端服务存在输入法漏洞,可以绕过安全检查获得系统权限。对于打开终端服务的服务器来说,很多攻击者喜欢远程连接,看看服务器的样子(即使他们根本没有帐号)。对终端服务进行的入侵一般在系统帐号的猜解之后,攻击者利用猜解得到的帐号进行远程终端连接和登录。在管理工具中打开远程控制服务配置,点击"连接",右击你想配置的RDP服务(比如 RDP-TCP(Microsoft RDP 5.0),选中书签"权限",点击"高级",加入一个Everyone组,代表所有的用户,然后审核他的"连接"、"断开"、"注销"的成功和"登录"的成功和失败,这个审核是记录在安全日志中的,可以从"管理工具"-"日志查看器"中查看。但是这个日志就象前面的系统密码猜解那样,记录的是客户端机器名而不是客户端的IP地址。我们可以做一个简单的批处理bat文件(文件名为TerminalLog.bat),用它来记录客户端的IP,文件内容是: time /t Terminal.log netstat -n -p tcp | find ":3389"Terminal.log start Explorer 终端服务使用的端口是TCP 3389,文件第一行是记录用户登录的时间,并把这个时间记入文件Terminal.log中作为日志的时间字段;第二行是记录用户的IP地址,使用netstat来显示当前网络连接状况的命令,并把含有3389端口的记录到日志文件中去。这样就能够记录下对方建立3389连接的IP地址了。要设置这个程序运行,可以在终端服务配置中,登录脚本设置指定TerminalLOG.bat作为用户登录时需要打开的脚本,这样每个用户登录后都必须执行这个脚本,因为默认的脚本是Explorer(资源管理器),所以在Terminal.bat的最后一行加上了启动Explorer的命令start Explorer,如果不加这一行命令,用户是没有办法进入桌面的。当然,可以把这个脚本写得更加强大,但是请把日志记录文件放置到安全的目录中去。通过Terminal.log文件记录的内容,配合安全日志,我们就能够发现通过终端服务的入侵事件或者前兆了。对于Windows2000服务器来说,上面四种入侵是最常见的,也占入侵Windows2000事件的绝大多数。从上面的分析,我们能够及时地发现这些入侵的前兆,根据这些前兆发现攻击者的攻击出发点,然后采取相应的安全措施,以杜绝攻击者入侵。我们也可以从上面分析认识到,服务器的安全配置中各种日志记录和事件审核的重要性。这些日志文件在被入侵后是攻击者的重要目标,他们会删除和修改记录,以便抹掉他们的入侵足迹。因此,对于各种日志文件,我们更应该好好隐藏并设置权限等保护起来。同时,仅仅记录日志而不经常性地查看和分析,那么所有的工作就等于白做了。现在我们再假设(怎么老是假设呀,烦不烦?)别急呀,我不能为了写这篇文章真的去黑掉一台主机,所以只好假设了,我们假设一台WEB服务器,开放了WWW服务,你是这台服务器的系统管理员,已经小心地配置了IIS,使用W3C扩展的***志格式,并至少记录了时间(Time)、客户端IP(Client IP)、方法(Method)、URI资源(URI Stem)、URI查询(URI Query),协议状态(Protocol Status),我们用最近比较流行的Unicode漏洞来进行分析:打开IE的窗口,在地址栏输入:127.0.0.1/scripts/..%c1% 1c../winnt/system32/cmd.exe?/c+dir 默认的情况下你可以看到目录列表(什么?你已经做过安全配置了,看不到?恢复默认安装,我们要做个实验),让我们来看看IIS的***志都记录了些什么,打开Ex010318.log(Ex代表W3C扩展格式,后面的一串数字代表***志的记录***期):07:42:58 127.0.0.1 GET /scripts/..\../winnt/system32\cmd.exe /c+dir 200上面这行***志表示在格林威治时间07:42:58(就是北京时间23:42:58),有一个家伙(入侵者)从127.0.0.1的IP在你的机器上利用Unicode漏洞(%c1%1c被解码为"\",实际的情况会因为Windows语言版本的不同而有略微的差别)运行了cmd.exe,参数是/c dir,运行结果成功(HTTP 200代表正确返回)。(哇,记录得可真够全的,以后不敢随便乱玩Unicode了)   大多数情况下,IIS的***志会忠实地记录它接收到的任何请求(也有特殊的不被IIS记录的攻击,这个我们以后再讨论),所以,一个优秀的系统管理员应该擅长利用这点来发现入侵的企图,从而保护自己的系统。但是,IIS的***志动辄数十兆、流量大的网站甚至数十G,人工检查几乎没有可能,唯一的选择就是使用***志分析软件,用任何语言编写一个***志分析软件(其实就是文本过滤器)都非常简单,不过考虑到一些实际情况(比如管理员不会写程序,或者服务器上一时找不到***志分析软件),我可以告诉大家一个简单的方法,比方说你想知道有没有人从80端口上试图取得你的Global.asa文件,可以使用以下的CMD命令:find "Global.asa" ex010318.log /i这个命令使用的是NT自带的find.exe工具(所以不怕紧急情况找不着),可以轻松的从文本文件中找到你想过滤的字符串,"Global.asa"是需要查询的字符串,ex010318.log是待过滤的文本文件,/i代表忽略大小写。因为我无意把这篇文章写成微软的Help文档,所以关于这个命令的其他参数以及它的增强版FindStr.exe的用法请去查看Win2000的帮助文件。   无论是基于***志分析软件或者是Find命令,你都可以建立一张敏感字符串列表,包含已有的IIS漏洞(比如"+.htr")以及未来将要出现的漏洞可能会调用的资源(比如Global.asa或者cmd.exe),通过过滤这张不断更新的字符串表,一定可以尽早了解入侵者的行动。 文件访问***志与关键文件保护   除了系统默认的安全审核外,对于关键的文件,我们还要加设文件访问***志,记录对他们的访问。   文件访问有很多的选项:访问、修改、执行、新建、属性更改......一般来说,关注访问和修改就能起到很大的监视作用。   例如,如果我们监视了系统目录的修改、创建,甚至部分重要文件的访问(例如cmd.exenet.exe,system32目录),那么,入侵者就很难安放后门而不引起我们的注意,要注意的是,监视的关键文件和项目不能太多,否则不仅增加系统负担,还会扰乱***常的***志监测工作 (哪个系统管理员有耐心每天看四、五千条垃圾***志?)   关键文件不仅仅指的是系统文件,还包括有可能对系统管理员/其他用户构成危害的任何文件,例如系统管理员的配置、桌面文件等等,这些都是有可能用来窃取系统管理员资料/密码的。
1楼 0 0 回复
总共 , 当前 /