首先,我想避免语言上的激烈争论。可供选择的语言有 Perl、Python 和 Ruby。我想说的是,我对所有这些都感到满意,但问题是我不能只专注于其中一个。
例如,如果我看到一个很酷的 Perl 模块,我就必须尝试一下。如果我看到一个不错的 Python 应用程序,我必须知道它是如何制作的。如果我看到 Ruby DSL 或某些 Ruby 巫毒,我就会迷上 Ruby 一段时间。
目前我是一名 Java 开发人员,但计划在不久的将来参加 CEH。我的问题是:对于工具编写和漏洞利用开发,您认为哪种语言最合适?
再说一遍,我不想引起口水战或任何麻烦,我只是想要来自知道自己在做什么的编剧的诚实意见。
还有一件事:也许你们中的一些人会问“为什么选择一种语言?”。回答这个问题:我只想选择一种语言,以便尝试掌握它。
您可能需要 Ruby,因为它是 Metasploit 的母语,而 Metasploit 是事实上的标准开源渗透测试框架。 Ruby 将为您提供:
-
梅塔普洛特的 http://www.metasploit.com/框架、操作码和 shellcode 数据库
- 梅塔普洛特的红宝石洛康 http://rubyforge.org/projects/ruby-lorcon/原始 802.11 工作的绑定。
- Metasploit 的 KARMA 绑定用于 802.11 客户端重定向。
-
Libcurl http://curl.haxx.se/libcurl/ruby/和 net/http 用于网络工具编写。
-
事件机器 http://rubyforge.org/projects/eventmachine用于 Web 代理和模糊测试工作(或 RFuzz,它扩展了著名的 Mongrel Web 服务器)。
-
Metasm http://metasm.cr0.org/用于 shellcode 生成。
-
Distorm http://www.ragestorm.net/distorm/用于 x86 反汇编。
-
BinData http://blogfranz.blogspot.com/2008/01/bindata-for-ruby-fuzzers.html用于二进制文件格式模糊测试。
第二名是Python。 Python 中可用的渗透测试库比 Ruby 中更多(但不足以抵消 Metasploit)。商业工具往往也支持 Python——如果您是 Immunity CANVAS 或 CORE Impact 客户,您就会需要 Python。 Python 为您提供:
-
Twisted http://twistedmatrix.com/trac/用于网络访问。
-
PaiMei http://www.openrce.org/downloads/details/208/PaiMei用于程序跟踪和可编程调试。
- CANVAS 和影响力支持。
-
多恩赛夫的 http://www.matasano.com/log/695/windows-remote-memory-access-though-firewire/用于远程调试的火线库。
-
与 WinDbg 集成 http://pydbgeng.sourceforge.net/用于远程 Windows 内核调试(Ruby 中对于内核调试仍然没有好的答案,这就是为什么我仍然偶尔使用 Python)。
-
桃子绒毛器 http://peachfuzzer.com/和 Sully 进行模糊测试。
- SpikeProxy 用于网络渗透测试(另外,OWASP 豹 http://www.owasp.org/index.php/Category:OWASP_Pantera_Web_Assessment_Studio_Project).
毫不奇怪,许多 Web 工作都使用 Java 工具。事实上的标准 Web 渗透测试工具是 Burp Suite,它是一个 Java swing 应用程序。 Ruby 和 Python 都有 Java 变体,您可以使用它们来访问此类工具。此外,Ruby 和 Python 都提供:
- 与 libpcap 直接集成以进行原始数据包工作。
- 用于加密的 OpenSSL 绑定。
- IDA Pro 扩展。
- 用于 API 访问的成熟(或至少合理)的 C 外部函数接口。
- 用于 UI 工作的 WxWindows,以及用于 Web UI 的不错的 Web 堆栈。
使用这两种语言都不会出错,尽管对于主流渗透测试工作,Metasploit 可能会超越 Python 的所有优势,而目前,对于 x86 逆向工作,Python 卓越的调试界面超越了 Ruby 的所有优势。
另外:现在是 2008 年了。它们不是“脚本语言”。它们是编程语言。 ;)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)