首页 | 安全文章 | 安全工具 | Exploits | 本站原创 | 关于我们 | 网站地图 | 安全论坛
  当前位置:主页>安全文章>文章资料>网络安全>文章内容
必须掌握的安全技能:编译exploit代码
来源:www.vfocus.net 作者:vfocus 发布时间:2006-04-03  

必须掌握的安全技能:编译exploit代码

当网络安全捍卫者需要编译exploit代码时,这已经不是第一次了。每天发现针对Windows和Linux超过十多个的新exploit对我们来讲也不是罕见的,不幸的是,你不能够始终信任exploit的作者或者安全技术文章。

首先,许多exploits并不是广告。它们要么根本不起作用,要么仅在特定的时候起作用,要么仅在一个很小范围的机器中运行。你测试的exploit代码越多,你所能明白的指令真相也就越多。

其次,许多网络包含的防御措施弥补了exploit的攻击向量。比如说,如果有一个exploit能够在Windows XP SP2被利用,如果你的电脑包含基于硬件的防缓冲区溢出芯片(比如说NX),这个exploit可能就不能被利用了,或者它的影响能够降低到最小程度。也许你的机器包含防病毒扫描工具、IPSes、或者基于主机的防火墙,能够有效的阻止攻击。当不知何时漏洞的补丁发布了,它真的就可以修复这个漏洞吗?在你经过试验之前你是不能够知道的。

最后,测试exploit代码能够给你好的示例,能够让你的小组成员和管理者相信你的电脑在安全防护上有多成功。

一些exploits是以编译过的形式发布的:它们仅仅是以可执行文件形式运行,你不得不手工编译或者使用一种脚本语言来运行它。在这种情况下,要做的一件事情就是找到exploit代码。如果你订阅了若干安全邮件列表,也许在你的收件箱中就有一封电子邮件能够链接到某个exploit代码。

我最喜爱的一个exploit代码邮件列表是FrSIRT,但是最近它们关闭了它们站点上的公开漏洞利用代码部分。现在要想参与只能通过付费这一种方式了。

还有其它一些安全邮件列表仍旧公开exploit代码,包括“Full Disclosure”(全面披露)公共安全邮件列表以及Dave Aitel的 Dailydave。

Packet Storm也是一个好的站点,尽管通过搜索经常返回太多的信息并且需要进行一些数据挖掘。Metasploit也始终提供exploit和shell代码资源,但它不像其它一些站点那样全面。

如果上面所说的对你都没用,那就使用你最喜欢使用的搜索引擎然后键入适当的关键字。通常你会找到这个exploit作者本人的e-mail地址,然后从那里可以找到通向代码的链接。大多数时间作者的web站点上都会有关于这个exploit的更多细节、exploit代码更新以及许多其它你以前都没有听说过的相关的信息。

大多数浏览器exploit代码是以JavaScript、VBScript、Perl或者Python脚本语言的形式出现的。把这些脚本语言拷贝到基于ASCII的文本编辑器(比如KWrite、记事本等等),然后把它们保存为.HTM或者.HTML文件,然后使用你的浏览器打开它。

非浏览器脚本层exploits在浏览器之外运行,它需要带一个或者多个语法参数的本地脚本引擎才能运行。例如,也许需要像下面这样运行这个exploit代码:

perl –w exploit.pl –n –w –h 10.1.1.1 –i

打开这个脚本文件然后研究一下位于最顶端注释的运行时指令。研究代码也能够让你保证在这里面没有潜伏秘密的木马代码和恶意代码。我曾经就看到过除了窃取当前用户密码文件和发送到远程IP地址之外别的什么都不做的exploit代码。如果你不能够在运行之前充分分析这份代码,那么就在一个虚拟的环境中运行它,或者根本就不要去运行它。

其它类型的exploits必须编译成可执行文件才能够测试它。一些恶意代码能够被几乎任何相关语言的编译器编译,但是其它的都必须通过特定的编译器才能够创建(这一般都会在代码开始的注释中说明)。比方说,C+程序通常可以使用任何C+编译器编译成可执行文件。在Linux环境中,我通常使用 GNU的C编译器-gcc,键入像这样的命令就可以:

gcc –o OutPutFileName InPutName.c

参数-o后面的文本指出了要输出的可执行文件的名字。

有时候,一个编译器需要附加的支持文件和库文件才能正常工作。Exploit代码作者或者代码的注释中通常会对此进行说明,如果不这样做,编译的时候就会出现错误。

其它的exploit代码程序需要特定的编译器才能进行编译,通常作者会说明的。大多数情况下,作者使用公共的编译器,比如Borland公司或者微软公司的。

如果你不会编译代码,那就下载预编译的exploit代码。这样就不需要亲自研究源代码,也不需要自己动手编译它。然而,如果它包含其它恶意命令或者bugs,你永远都不会知道。Exploit代码作者通常会稍微禁止一下他们的exploit代码,不让它们很容易就可以运行。通过在最终用户一边的研究工作,他们认为专家需求的增加能够减少对黑客的崇拜。




 
[推荐] [评论(0条)] [返回顶部] [打印本页] [关闭窗口]  
匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
 §最新评论:
  热点文章
·一句话木马
·samcrypt.lib简介
·教你轻松查看QQ空间加密后的好友
·web sniffer 在线嗅探/online ht
·SPIKE与Peach Fuzzer相关知识
·asp,php,aspx一句话集合
·Cisco PIX525 配置备忘
·用Iptables+Fedora做ADSL 路由器
·检查 Web 应用安全的几款开源免
·Md5(base64)加密与解密实战
·NT下动态切换进程分析笔记
·风险评估中的渗透测试
  相关文章
·通用弱点评价体系(CVSS)简介
·J2EE工程实现中常见安全问题解决
·杂谈PHP4内核Hacking
·MS05-055漏洞分析
·从后台得到webshell技巧大汇总
·openrowset/opendatasource的其
·NAT在NDIS中间层驱动中的实现
·PHP漏洞中的战争
·NAT在NDIS中间层驱动中的实现
·从漏洞及攻击分析到NIDS规则设计
·也谈跨站脚本攻击与防御
·ASP安全配置不完全手册
  推荐广告
CopyRight © 2002-2022 VFocuS.Net All Rights Reserved