首先,我想避免对语言进行激烈的战争。 可供选择的语言是Perl,Python和Ruby。 我想提一下我对所有这些都很满意,但问题是我不能只关注一个。

例如,如果我看到一个很酷的Perl模块,我必须尝试一下。 如果我看到一个不错的Python应用程序,我必须知道它是如何制作的。 如果我看到一个Ruby DSL或一些Ruby巫毒,我会迷上Ruby一段时间。

现在我是一名Java开发人员,但计划在不久的将来接受CEH。 我的问题是:对于工具编写和漏洞利用开发,您认为哪种语言最合适?

再一次,我不想引起火焰战争或任何麻烦,我只是想要知道他们正在做什么的脚本编写者的诚实意见。

还有一件事:也许你们中的一些人会问“为什么选择一种语言?”。 要回答这个问题:我想只选择一种语言,以便掌握它。

===============>>#1 票数:27 已采纳

你可能想要Ruby,因为它是Metasploit的本地语言,它是事实上标准的开源渗透测试框架。 Ruby会给你:

  • Metasploit的框架,操作码和shellcode数据库
  • Metasploit用于原始802.11工作的Ruby lorcon绑定。
  • Metasploit针对802.11客户端重定向的KARMA绑定。
  • Libcurl和net / http用于Web工具编写。
  • EventMachine用于Web代理和模糊测试工作(或RFuzz,它扩展了着名的Mongrel网络服务器)。
  • 用于生成shellcode的Metasm
  • 扭曲 x86反汇编。
  • BinData用于二进制文件格式模糊测试。

第二位是Python。 Python中提供的测试库比Ruby中更多(但不足以抵消Metasploit)。 商业工具也倾向于支持Python - 如果你是Immunity CANVAS或CORE Impact客户,你需要Python。 Python为您提供:

  • 扭曲网络访问。
  • PaiMei用于程序跟踪和可编程调试。
  • CANVAS和Impact支持。
  • Dornseif的 firewire库用于远程调试。
  • 准备与WinDbg集成以进行远程Windows内核调试(在Ruby中仍然没有很好的答案用于内核调试,这就是我偶尔使用Python的原因)。
  • Peach Fuzzer和Sully用于模糊测试。
  • 用于Web渗透测试的SpikeProxy(也称为OWASP Pantera )。

不出所料,很多网络工作都使用Java工具。 事实上的标准web pentest工具是Burp Suite,它是一个Java swing应用程序。 Ruby和Python都有Java变种,您可以使用这些变体来访问这样的工具。 此外,Ruby和Python都提供:

  • 与libpcap直接集成以进行原始数据包工作。
  • 用于加密的OpenSSL绑定。
  • IDA Pro扩展程序。
  • 用于API访问的成熟(或至少是合理的)C外部函数接口。
  • 用于UI工作的WxWindows,以及用于Web UI的不错的Web堆栈。

任何一种语言都不会出错,但是对于主流的pentest工作,Metasploit可能会摒弃所有Python的优势,而目前,对于x86逆转工作,Python的高级调试接口可以完全消除所有Ruby的好处。

另外:它是2008年。它们不是“脚本语言”。 他们是编程语言。 ;)

===============>>#2 票数:8

[免责声明:我主要是一名Perl程序员,可能会影响我的判断力。 但是,我不是一个特别的部落,我认为在这个特殊问题上,我的观点是相当客观的。

Perl被设计为无缝融入Unix环境,这就是为什么它对具有主要OO背景的人(特别是OOP的Java学校)感到如此陌生。 因此,它在任何类型的Unixoid OS的机器上都得到了极大的广泛安装,并且其中编写了许多供应商系统实用程序。 同样出于同样的原因,既没有安装Python也没有安装Ruby的服务器仍然可能有Perl,再次使得熟悉它很重要。 因此,如果你的CEH活动包括在Unix上的大量活动,你必须对Perl有一定的熟悉程度,你也可以专注于它。

也就是说,这主要是一个偏好问题。 区分语言并不多; 他们的表现力实际上是相同的。 有些东西在其中一种语言中更容易一些,有些在另一种语言中更容易一些。

在库方面,我不知道Ruby和Python如何相互比较 - 我知道Perl让它们有一定的优势。 然后,有时(特别是当您正在寻找满足常见需求的库时),唯一的影响就是您会被选择所淹没。 如果你只是想在某些特定领域做一些事情,这些领域已被Python或Ruby的库所覆盖,那么CPAN上其他东西的大量并不一定是优势。 然而,在利基领域,它很重要,你永远不会知道你最终会有什么不可预见的需求(错误,根据定义)。

对于命令行中的单线程使用,Python是一种非首发。

在交互式解释器环境方面,Perl ......嗯......你可以使用不太好的调试器,或者你可以从CPAN安装一个,但是Perl本身并没有提供好的调试器。

所以我认为Perl确实对你的需求有一个非常小的优势,但仅仅是。 如果你选择Ruby,你可能根本不会变得更糟。 Python可能会给你带来更多的不便,但它也不是一个糟糕的选择。

===============>>#3 票数:4

我可以为这三个人辩论:-)

Perl拥有所有CPAN - 为您提供快速整合功能的巨大优势。 它还具有良好的灵活测试基础架构,这意味着您可以在同一框架中插入许多不同的自动测试样式(包括其他语言的测试)。

Ruby是一种值得学习的可爱语言 - 并且缺少Perl 5中的一些语言。如果你正在进行基于Web的测试,它还有一个watir库 - 这是非常有用的(参见http://wtr.rubyforge.org/

Python - 很好的语言和(虽然这不是我个人的偏好)一些人发现它的结构更容易掌握。

他们中的任何一个(以及许多其他人)都是一门很好的语言。

而不是看语言 - 我会看你的工作环境。 如果你有其他人在做类似的东西,那么学习东西总是比较容易。 如果你当前的开发/测试人员已经集中在上面的一个 - 我会去那。 如果没有,请选择对您当前的工作环境最适用/最有用的一个。 与您的团队其他成员聊天,看看他们的想法。

===============>>#4 票数:3

这取决于实现,如果它将被分发,我将使用Java,因为你知道,因为它的可移植性。 如果它仅供内部使用,或将用于半控制环境,那么请选择您最舒适的维护,以及最好的长期前景。

现在回答这个问题,我会选择Perl,但我是一个Linux家伙,所以我可能会有点偏见。

===============>>#5 票数:3

如果您计划使用Metasploit进行笔测试和利用开发,我建议使用ruby,如前所述Metasploit是用ruby编写的,任何您可能希望做的漏洞/模块开发都需要ruby。

如果您将使用Immunity CANVAS进行笔测试,那么出于同样的原因我会推荐Python,因为CANVAS是用python编写的。 另外,像Peach和Sulley这样的模糊测试框架也是用Python编写的。

我不推荐使用Perl,因为你会发现与Perl中的笔测试/模糊测试/漏洞/ ...相关的工具/脚本/框架非常少。

正如您的问题是“工具编写和利用开发”,如果您选择Metasploit或python,如果您选择CANVAS,我会推荐Ruby。

希望有帮助:)

===============>>#6 票数:2

作为CEH,首先学习CEH材料。 这将使您了解用于安装各种攻击的各种工具和平台。 一旦你很好地理解了你的目标,就要研究已经可用的工具和平台的功能(前面提到的metasploit框架是非常彻底和健壮的)。 如何扩展它们以满足您的需求? 一旦你知道,你可以比较语言的功能。

我还建议您查看BackTrack发行版中提供的工具。

===============>>#7 票数:1

如果你对CEH感兴趣,我会看一下Gray Hat Python 它显示了一些非常有趣和相关的东西。

话虽如此,任何语言都应该没问题。

===============>>#8 票数:1

所有这些都应该足够了。 除非您需要一些只提供一种语言的图书馆,否则我会让个人偏好指导我。

===============>>#9 票数:1

如果您正在寻找可以与Java一起使用的脚本语言,您可能需要查看Groovy。 它具有Perl的灵活性和强大功能(闭包,内置正则表达式,每个角落都有关联数组),但您可以从中访问Java代码,因此您可以访问大量的库,特别是系统的其余部分。重新发展。

===============>>#10 票数:1

metasploit是一个很好的渗透测试框架。 它主要是用Ruby编写的,所以如果你很熟悉这种语言,也许你可以在那里搞定。 但是,要使用 metasploit,您根本不需要知道任何语言。

===============>>#11 票数:0

我和tqbf在一起。 我使用过Python和Ruby。 目前我正在使用JRuby。 它具有Ruby的所有功能,可以访问Java库,所以如果有一些东西你绝对需要一个低级语言来解决,你可以用高级语言来实现。 到目前为止,我还不需要真正使用太多的Java,因为Ruby已经能够做我作为API测试人员所需的一切。

===============>>#12 票数:0

那么,你在考虑什么样的漏洞? 如果你想写一些需要低级东西(ptrace,原始套接字等)的东西,那么你需要学习C.但是可以使用Perl和Python。 真正的问题是哪一个更适合你的风格?

至于工具制造,Perl具有良好的字符串处理能力,更接近系统,有很好的支持,但恕我直言,这是非常令人困惑的。 我更喜欢Python:它是一个干净,易于使用,易于学习的语言,具有良好的支持(完整的语言/ lib参考,第三方库等)。 它(严格恕我直言)很酷。

  ask by Vhaerun translate from so

未解决问题?本站智能推荐:

1回复

HTTP ::笔测试任务的代理

有人可以提供一些想法,如何将HTTP :: Proxy模块与其他代理(例如paros和burp代理)进行比较,以及是否有人在工作期间使用它,尤其是如果笔测试社区将其用于实际工作
1回复

我需要掌握Python的哪一部分来进行渗透测试和安全性[关闭]

很难说出这里的要求。 这个问题是模棱两可的,模糊的,不完整的,过于广泛的或修辞性的,不能以目前的形式合理地回答。 如需帮助澄清此问题以便可以重新打开, 请访
2回复

Web笔测试建议-工具和外部承包商建议[关闭]

我不确定这是否适合SO,但是我不确定,我还是继续。 我一直在研究当前项目的笔测试工具,并且找到了很多工具,但最终,认真对待并寻求专业从事此类工作的专业组织或个人并没有摆脱困境。 寻找工具的原因仅仅是为了让我能够在开始整个测笔测试周期之前摘下那些低落的果实。 这也有望使该过程更便宜,
12回复

哪种脚本语言更适合嵌入多线程C / C ++应用程序[关闭]

考虑以下要求: 必须在Windows上受支持。 最好也适用于其他平台。 必须支持多线程。 我的意思是引擎可以在多个线程中并行工作。 可读性很重要。 许可证必须与闭源项目兼容。 我喜欢Python的可读性。 我对Python的经验也比其他脚本语言更多
12回复

解析XML - 适合工作的正确脚本语言/包?

我知道任何语言都能解析XML; 我真的只是在寻找你可能在自己的经历中遇到的优点或缺点。 Perl将是我的标准去这里,但我愿意接受建议。 谢谢! 更新:我最终使用XML :: Simple做了一个很好的工作,但如果你计划使用它,我有一条建议 - 首先研究forcearray选项。
2回复

PHP安全漏洞的渗透测试[关闭]

我正在做有关“识别和测试网站中的安全漏洞”的本科研究论文。 最初,我认为我将按照我在方法中所指定的那样手动进行测试,即我只会测试一些选定的漏洞,例如SQL注入,跨站点脚本,错误报告,会话劫持和输入验证。 但是,当我继续研究时,发现所有文章和教程都建议使用软件。 我的朋友管理的网站很少,
3回复

红队,渗透测试和蓝队之间的区别[关闭]

如果公司包括以下所有团队作为“内部实体”:1)红色团队2)渗透测试团队3)蓝色团队 它们之间有什么区别? 我在理解Red和Pen Test之间的差异时遇到了一些困难! 哪个团队拥有更大的范围和更高的权威?
3回复

.NET Web应用程序的安全漏洞测试工具? [关闭]

我打算检查我的网站,以防止所有常见的安全漏洞,如跨站点脚本,sql注入等。有人可以告诉我,是否有任何自动化工具,我可以运行我的.net网络应用程序,并发现存在所有安全漏洞。 我试过CAt.net,但它无法支持大型应用程序。 我看到了abt owsap但是它也不是自动化的。 我正在寻找可以告
4回复

渗透测试与其他安全测试

我不知道渗透测试和其他形式的安全测试之间的区别。 那个地区有经验的人可以告诉我不同​​之处吗? 我真的很感激。 另外,是否有任何模拟DoS的测试? 我不知道如何防御它。
2回复

网络安全测试

根据您的经验,您在站点漏洞方面发现,工作或遇到了什么? 您采取了哪些措施来缓解这些问题? 这可能包括XSS(跨站点脚本),SQL注入攻击,普通旧DDOS或网站客户的网络钓鱼尝试。 就在昨天,我偶然发现了用于审核网站的各种Firefox工具及其各种漏洞的可能性。 希望扩大我在这个领