我最近毕业了,现在是一名软件开发人员,但在我职业生涯的某个时候,我想过渡到渗透测试。
我知道钢笔测试人员有时会编写自己的工具,但我很想知道他们是否遵循并使用了Design、坚实的原则和目标来编写干净的代码,还是更多地是为了让程序完成它的任务。
发布于 2016-11-07 21:15:50
编写一些代码的pen测试人员和安全工具的开发人员之间有很大的区别。
在笔试期间,您可能需要编写一些自定义代码。例如,如果您发现服务器端模板注入,很可能就不会有现成的漏洞在这种情况下起作用。但是只要一点点编码,你就可以得到一个shell。这些脚本只是完成了工作;设计模式是无关紧要的。
许多安全工具比一次性脚本复杂得多。Metasploit就是一个很好的例子。在Metasploit之前,大多数的开发都像一次笔试脚本一样。该漏洞将针对特定的漏洞并提供特定的有效负载。Metasploit在开发开发中引入了模块化和结构化。特别是,分离了以下概念:利用、有效载荷和编码器。
事实上,现在开发的各种安全工具都考虑到了强大的设计实践,尽管其中很多都是商业工具,例如Nessus、Checkmarx、Burp Suite。
发布于 2016-11-08 07:32:16
对于赋值工作,您可能会使用大量不同的库,我认为这是工作的主要方面。
知道了这一点,组织这些项目、拥有系统上的所有库等等也是一项工作。您创建的每个实用程序都有一个项目/文件夹,这是相当多的工作。
对于赋值实用程序,您不需要太多的设计模式或类似的东西。您可能需要类似于工作流引擎的东西来运行实用程序,就像metasploit一样。
我建议使用现有的工作流引擎之一,并尝试只编写实用程序/插件。这样你就可以在不进入高水位的情况下取得很大成就。
另一点是决定您的编程语言,这样您就可以在大多数时间只使用一种语言。阅读您的问题,这可能是Python,Ruby,C#等等,它们对于脚本的目的都是很好的。
https://security.stackexchange.com/questions/142067
复制相似问题