metasploit wiki——如何开始写一个exp
简介
开发exp背后真正的功夫跟选择的编程语言没有什么关系,而是要我们精确理解在调试时程序是如何处理一个用户输入,并利用它获得控制权的。
关键词就是“调试”。
你的逆向技术就是真正的功夫。但是,如果你的目的不是仅仅弹一个计算器,而是想要武器化,要能获得一些东西,并且想要在现实中有用,那我们需要一个开发框架,这也就是metasploit的由来。它是免费开源的,并且在世界各地都有贡献者。所以,当我们写一个metasploit的exp的时候,我们不用担心任何依赖问题,或者版本错误问题,或者担心在渗透测试时没有足够的payload可选。metasploit只需要你关注正在编写的exp上。
模块编写前的计划
不像编写一个POC那样,当我们编写一个metasploit模块时,我们需要考虑用户在真实环境中是如何使用的。隐密性通常是一个非常重要的事情。我们的exp能够在不生成文件的情况下执行代码吗?输入能不能看起来更随机一些从而不那么容易检测吗?是不是要加入混淆技术?exp程序有没有生成不必要的流量?它能不能在不使系统崩溃的情况下更加稳定一些呢?等等。
还要注意尽可能的对exp可利用的环境需求更加精准。