venerasf/Venera

GitHub: venerasf/Venera

一款基于 Go 语言构建、通过 Lua 脚本实现模块化扩展的漏洞利用与安全测试框架。

Stars: 64 | Forks: 5

Venera Framework

Venera 是一款用于自动化针对多种协议的自定义测试和攻击的工具。它基于 Lua 脚本语言构建了一个脚本引擎,使得可以为各种检查和漏洞利用创建模块。该框架是 Lua 脚本的管理器和解释器,提供了用于创建强大工具的函数和库,这些工具可集成到单元测试、漏洞扫描和漏洞利用阶段使用的服务中。用户可以创建自己的模块或使用社区制作的脚本,该工具可适应各种需求场景。 请参阅文档 [venera.farinap5.com](https://venera.farinap5.com/) ## ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/2eb6542c82105723.png) ### 下载并运行 不包含二进制文件,需要安装 Go 环境。 ``` make install-go-apt ``` ``` git clone git@github.com:farinap5/Venera.git cd Venera make run ``` ### 帮助菜单 ``` GENERIC COMMAND DESCRIPTION --------------- ----------- help Show help menu. Type `help `. bash Spawns a shell import Import a (edited) script export Export a script (to edit) globals Show global variables vpm Venera package manager exit Exits the prompt search Searches a script use Load a script SCRIPT COMMAND DESCRIPTION -------------- ----------- set Set value for a variable run Run a script/module back Exit module/script options Show variables of script/module lua Run Lua code in running script info Info/metadata about script/module reload Reloads the current script/module ``` 使用 help 命令来描述每个命令并提供示例。 ``` [vnr]>> help search SEARCHING: `search` list scripts. `search match ` list matching patterns. `search match:path ` list path matching. `search match:description ` list description matching. `search tag ` list matching tags. ``` 界面简单示例: ![](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/f7f5f508fa105723.png) ## 模块是如何工作的? 模块是一个 Lua 脚本,可根据您的需要创建一个或多个目标来执行您想要的例程。 已完成的模块允许测试人员针对特定的已知漏洞进行测试,或对远程/本地目标执行通用验证。 **请参阅以下示例:** https://github.com/farinap5/Venera/tree/main/scripts/test。 模块有一些必要的表,如 `METADATA` 和 `VARS`,它们从 `Init()` 加载,然后是 `Main()` 函数作为自定义函数的入口点。 ### 表 `METADATA` `METADATA` 包含有关脚本的信息,以便 Venera 可以在其脚本库中识别此模块,所有字段都需要正确配置。 - `AUTHOR` 是一个字符串列表,包括创建脚本的人员或参与该漏洞利用研究的人员。 - `VERSION` 模块/脚本版本。 - `TAGS` 定义脚本及其用途的一些标签。可以根据标签搜索和执行脚本。 - `INFO` 脚本的描述,可以是漏洞利用的缺陷、测试类型、建议的缓解措施,由创建者决定。 ``` METADATA = { AUTHOR = {"Author1 "}, VERSION = "0.1", TAGS = {"example","http","scanner"}, INFO = [[HTTP requests with lua-go]] } ``` ### 表 `VARS` `VARS` 表加载脚本的变量,这些变量用作其操作的参数。 ``` VARS = { URL = {VALUE="http://example.com", NEEDED="yes", DESCRIPT="URL"}, METHOD = {VALUE="GET", NEEDED="yes", DESCRIPT="METHOD"} } ``` 当变量在 `VARS` 表中设置后,用户可以使用 `options` 命令列出这些变量,然后使用 `set` 命令为变量配置值: ``` (scripts/test/http.lua)>> options VARIABLE DEFAULT NEEDED DESCRIPTION -------- ------- ------ ----------- URL http://example.com yes URL METHOD GET yes METHOD ``` 如前所述,用户也可以使用 `set` 命令编辑这些变量: ``` (scripts/test/http.lua)>> set URL http://google.com [OK] URL <- http://google.com ``` ### 函数 `Init()` 当您运行 `use ` 时,`Init()` 函数会自动执行,从而加载元数据和变量。您可以在函数中放置其他内容,以便在首次交互时加载。 ``` function Init() Meta(METADATA) -- Load metadata LoadVars(VARS) -- Load variables end ``` ### 函数 `Main()` `Main()` 函数是自定义脚本的入口点。当用户输入 `run` 时会调用它。 ``` function Main() local request = http.request(VARS.METHOD.VALUE, VARS.URL.VALUE) local result, err = client:do_request(request) PrintSuccsln(result.code) PrintSuccsln(result.body) end ``` ## 内置函数 您可以在脚本中调用这些函数,无需任何要求。这些函数用 Go 编写,可以从 Lua 脚本中调用。 `PrintSuccs( str )` 打印成功消息。 `PrintErr( str )` 打印错误消息。 `PrintInfo( str )` 打印信息消息。 `PrintSuccsln( str )` 打印带换行符的成功消息。 `PrintErrln( str )` 打印带换行符的错误消息。 `PrintInfoln( str )` 打印带换行符的信息消息。 `Print( str )` 打印字符串。 `Println( str )` 打印带换行符的字符串。 `RandomString( length=int , "a-zA-Z0-9" ) -> str` 生成随机字符串。 `Input( str ) -> str` 提示用户输入。 `Open( str ) -> str` 读取本地文件。 `Call( path=str )` 调用另一个脚本/模块。调用者脚本的 `ARGS` 会被被调用的脚本继承。
标签:EVTX分析, Lua脚本, rizin, 协议测试, 多语言支持, 安全测试框架, 开源安全工具, 攻击框架, 日志审计, 模块化框架, 渗透工具, 漏洞利用框架, 网络安全, 逆向工程平台, 隐私保护