项目起源
主要在于自己的强迫症。
在做渗透测试或者漏洞验证工作,以及平时玩靶机的时候收集了大量的POC/EXP的脚本,包括在Github上fork了各路大神写的脚本,导致本地文件夹和Github仓库混乱,找起来不是很方便。正好看到了@zhzyker的exphub项目,于是借着这个机会把POC/EXP脚本规整一下,做一个界面化的工具出来,就有了PocLibrary项目。
UI搭建
很久很久之前用C#做过GUI的开发,长时间没用C#,现在已经忘的差不多了。只能去了解一下Python的GUI开发。
Python下的开发GUI的库大体上有PyQt,wxPython和Tkinter。由于这次的界面设计的也比较简单,3种框架差别不大。刚好wxPython有一个类似C# MFC的工具wxFormBuilder,于是最终选择了wxPython框架开发GUI界面。
首先设计一个选择POC/EXP模块的主界面:
然后再设计一个显示某个POC/EXP脚本信息的子界面:
考虑到错误处理,于是再创建一个错误信息告警界面:
这时wxFormBuilder会帮我们自动生成好界面的代码:
可以看到有很多种语言的版本,我们选择Python版的。
功能实现
界面搭好之后就是按照界面上的预想功能去实现。在主界面上有一个下拉的List,可以选择POC/EXP模块。
图中展示了1.0版本中的模块,目前总共有14个模块,具体参见项目主页。
选好模块之后,点击确定Button会触发Bind的事件,根据提交的模块的值去定制显示信息的子界面。在子界面中继续选择想要查看的POC/EXP脚本,点击确定Button显示POC/EXP信息、POC/EXP脚本的用法以及对应的漏洞信息。
并提供了Copy功能复制POC/EXP脚本内容,但是目前有些脚本因为Bug无法复制,只能手动复制。
没有做自动执行的功能,主要是考虑到POC/EXP都是从各个地方收集而来,执行的命令包括执行时需要的环境都不一样,很难做到统一,所以目前就仅仅实现了简单的Copy供用户复制出来自行配环境运行。
总结
更多信息见项目主页。