Command Line Interface
Zirkul Agent was initially designed as a command line tool for security automation, you can simply run zirkul from terminal for starting the interactive command line interface:
zirkul

You can also get more information related to parameters with:
zirkul --help

The command line interface support commands, options and plugins created for making a cross-platform terminal loaded with helpful cyber security functionalities available in OSX, Linux and Windows.
Commands
Commands are used for running built-in functionalities and configuring system options:
echo "Hello world!"
See all the commands available sending the question" ? " character:

Plugins
Plugins are the main functionality of the Agent allowing the tool to integrate with almost any tool either from command line or trough REST APIs. Plugins are made as Python scripts making it very easy to create and extend.
Example, loading ZAP plugin:
load zap
There are different types of plugins for "functions", "exploits" or "integrations":
Functions: Processing and/or returning values without interacting with external tools. Example: ` echo date ` will return the current date in text format.
Exploits: Testing known vulnerabilities (CVEs) receiving parameters and returning if the execution was successful or not. Example: ` load ms15-034 `
Integrations: These plugins are used for interacting with external tools such as command line tools or remote services through Web APIs. Example: Running scans and returning results from tools such as ZAP, Burp Suite, nmap, sqlmap, Metasploit, etc.
Options
Options are used for configuring parameters sent to plugins, usually separated by colon ' : '
Example:
load zap
url: "https://evil.com" # The option is 'url', note ':' is required.
External Variables
Zirkul Agent can get external variables either from command line arguments or environment variables as follows.
Command line argument "--variables"
With the argument ' --variables ' you can send as many as the terminal allows, example:
zirkul --variables "var_name=123 another_var='Text with spaces'"
Every variable must be separated by spaces, any value including spaces must be enclosed with single quotes.
Environment variables
Environment variables are defined at system level in your computer, usually can be set with the command:
export MY_VAR="This is the value"
From Zirkul Agent, you can get the environment's variable value with the env function:
echo env("MY_VAR")
=> This is the value
See more information in the command reference.
Last updated