<p>您可能需要Ruby,因为它是Metasploit的本地语言,而Metasploit实际上是标准的开源渗透测试框架。鲁比会给你:</p>
<ul>
<li><a href="http://www.metasploit.com/" rel="noreferrer">Metasploit's</a>框架、操作码和外壳码数据库</li>
<li>原始802.11的Metasploit <a href="http://rubyforge.org/projects/ruby-lorcon/" rel="noreferrer">Ruby lorcon</a>绑定可以工作。</li>
<li>Metasploit的KARMA绑定用于802.11客户端重定向。</li>
<li><a href="http://curl.haxx.se/libcurl/ruby/" rel="noreferrer">Libcurl</a>和用于web工具编写的net/http。</li>
<li><a href="http://rubyforge.org/projects/eventmachine" rel="noreferrer">EventMachine</a>用于web代理和模糊工作(或RFuzz,它扩展了著名的Mongrel web服务器)。</li>
<li><a href="http://metasm.cr0.org/" rel="noreferrer">Metasm</a>用于生成外壳代码。</li>
<li><a href="http://www.ragestorm.net/distorm/" rel="noreferrer">Distorm</a>用于x86反汇编。</li>
<li><a href="http://blogfranz.blogspot.com/2008/01/bindata-for-ruby-fuzzers.html" rel="noreferrer">BinData</a>用于二进制文件格式模糊化。</li>
</ul>
<p>排名第二的是Python。Python中有比Ruby中更多的潜在库可用(但不足以抵消Metasploit)。商业工具也倾向于支持Python——如果您是一个免疫画布或核心影响客户,那么您需要Python。Python给你:</p>
<ul>
<li><a href="http://twistedmatrix.com/trac/" rel="noreferrer">Twisted</a>用于网络访问。</li>
<li><a href="http://www.openrce.org/downloads/details/208/PaiMei" rel="noreferrer">PaiMei</a>用于程序跟踪和可编程调试。</li>
<li>帆布和冲击支撑。</li>
<li><a href="http://www.matasano.com/log/695/windows-remote-memory-access-though-firewire/" rel="noreferrer">Dornseif's</a>用于远程调试的firewire库。</li>
<li><a href="http://pydbgeng.sourceforge.net/" rel="noreferrer">Ready integration with WinDbg</a>用于远程Windows内核调试(Ruby中仍然没有很好的内核调试答案,这就是为什么我仍然偶尔使用Python的原因)。</li>
<li><a href="http://peachfuzzer.com/" rel="noreferrer">Peach Fuzzer</a>和Sully。</li>
<li>用于web渗透测试的SpikeProxy(也是<a href="http://www.owasp.org/index.php/Category:OWASP_Pantera_Web_Assessment_Studio_Project" rel="noreferrer">OWASP Pantera</a>)。</li>
</ul>
<p>毫不奇怪,许多web工作都使用Java工具。事实上,标准的web pentest工具是Burp Suite,它是一个Java swing应用程序。Ruby和Python都有Java变体,可以用来访问类似的工具。此外,Ruby和Python都提供:</p>
<ul>
<li>与libpcap直接集成,用于原始数据包工作。</li>
<li>用于加密的OpenSSL绑定。</li>
<li>IDA Pro扩展。</li>
<li>用于API访问的成熟(或至少合理)C外部函数接口。</li>
<li>WxWindows用于UI工作,而体面的web堆栈用于web UI。</li>
</ul>
<p>这两种语言都不会出错,不过对于主流的pentest工作,Metasploit可能会忽略Python的所有优点,而目前,对于x86反向工作,Python优越的调试接口会忽略Ruby的所有优点。</p>
<p>还有:2008年。它们不是“脚本语言”。他们是编程语言。;)</p>