guides/user/RPC-client.md
0 → 100644
## Version 0.4.2 | ||
The RPC client command line interface is similar to the | ||
[[Command line user interface | Command line user interface]]. | ||
The differences between the two are: | ||
* The `--server` option -- The URL of the RPC Dispatcher server to connect to in | ||
the form of `host:port` | ||
* Support for Grid/distribution option. | ||
* Support for SSL peer verification for Dispatch server. | ||
``` | ||
Arachni - Web Application Security Scanner Framework v0.4.2 | ||
Author: Tasos "Zapotek" Laskos <[email protected]> | ||
(With the support of the community and the Arachni Team.) | ||
Website: http://arachni-scanner.com | ||
Documentation: http://arachni-scanner.com/wiki | ||
Usage: arachni_rpc --server host:port [options] url | ||
Supported options: | ||
General ---------------------- | ||
-h | ||
--help Output this. | ||
--version Show version information and exit. | ||
-v Be verbose. | ||
--debug Show what is happening internally. | ||
(You should give it a shot sometime ;) ) | ||
--only-positives Echo positive results *only*. | ||
--http-req-limit=<integer> Concurrent HTTP requests limit. | ||
(Default: 20) | ||
(Be careful not to kill your server.) | ||
(*NOTE*: If your scan seems unresponsive try lowering the limit.) | ||
--http-timeout=<integer> HTTP request timeout in milliseconds. | ||
--cookie-jar=<filepath> Netscape HTTP cookie file, use curl to create it. | ||
--cookie-string='<name>=<value>; <name2>=<value2>' | ||
Cookies, as a string, to be sent to the web application. | ||
--user-agent=<string> Specify user agent. | ||
--custom-header='<name>=<value>' | ||
Specify custom headers to be included in the HTTP requests. | ||
(Can be used multiple times.) | ||
--authed-by=<string> Who authorized the scan, include name and e-mail address. | ||
(It'll make it easier on the sys-admins during log reviews.) | ||
(Will be appended to the user-agent string.) | ||
--login-check-url=<url> A URL used to verify that the scanner is still logged in to the web application. | ||
(Requires 'login-check-pattern'.) | ||
--login-check-pattern=<regexp> | ||
A pattern used against the body of the 'login-check-url' to verify that the scanner is still logged in to the web application. | ||
(Requires 'login-check-url'.) | ||
Profiles ----------------------- | ||
--save-profile=<filepath> Save the current run profile/options to <filepath>. | ||
--load-profile=<filepath> Load a run profile from <filepath>. | ||
(Can be used multiple times.) | ||
(You can complement it with more options, except for: | ||
* --modules | ||
* --redundant) | ||
--show-profile Will output the running profile as CLI arguments. | ||
Crawler ----------------------- | ||
-e <regexp> | ||
--exclude=<regexp> Exclude urls matching <regexp>. | ||
(Can be used multiple times.) | ||
--exclude-page=<regexp> Exclude pages whose content matches <regexp>. | ||
(Can be used multiple times.) | ||
-i <regexp> | ||
--include=<regexp> Include *only* urls matching <regex>. | ||
(Can be used multiple times.) | ||
--redundant=<regexp>:<limit> | ||
Limit crawl on redundant pages like galleries or catalogs. | ||
(URLs matching <regexp> will be crawled <limit> amount of times.) | ||
(Can be used multiple times.) | ||
--auto-redundant=<limit> Only follow <limit> amount of URLs with identical query parameter names. | ||
(Default: inf) | ||
(Will default to 10 if no value has been specified.) | ||
-f | ||
--follow-subdomains Follow links to subdomains. | ||
(Default: off) | ||
--depth=<integer> Directory depth limit. | ||
(Default: inf) | ||
(How deep Arachni should go into the site structure.) | ||
--link-count=<integer> How many links to follow. | ||
(Default: inf) | ||
--redirect-limit=<integer> How many redirects to follow. | ||
(Default: 20) | ||
--extend-paths=<filepath> Add the paths in <file> to the ones discovered by the crawler. | ||
(Can be used multiple times.) | ||
--interceptor.callict-paths=<filepath> Use the paths in <file> instead of crawling. | ||
(Can be used multiple times.) | ||
--https-only Forces the system to only follow HTTPS URLs. | ||
Auditor ------------------------ | ||
-g | ||
--audit-links Audit links. | ||
-p | ||
--audit-forms Audit forms. | ||
-c | ||
--audit-cookies Audit cookies. | ||
--exclude-cookie=<name> Cookie to exclude from the audit by name. | ||
(Can be used multiple times.) | ||
--exclude-vector=<name> Input vector (parameter) not to audit by name. | ||
(Can be used multiple times.) | ||
--audit-headers Audit HTTP headers. | ||
(*NOTE*: Header audits use brute force. | ||
Almost all valid HTTP request headers will be audited | ||
even if there's no indication that the web app uses them.) | ||
(*WARNING*: Enabling this option will result in increased requests, | ||
maybe by an order of magnitude.) | ||
Coverage ----------------------- | ||
--audit-cookies-extensively Submit all links and forms of the page along with the cookie permutations. | ||
(*WARNING*: This will severely increase the scan-time.) | ||
--fuzz-methods Audit links, forms and cookies using both GET and POST requests. | ||
(*WARNING*: This will severely increase the scan-time.) | ||
--exclude-binaries Exclude non text-based pages from the audit. | ||
(Binary content can confuse recon modules that perform pattern matching.) | ||
Modules ------------------------ | ||
--lsmod=<regexp> List available modules based on the provided regular expression. | ||
(If no regexp is provided all modules will be listed.) | ||
(Can be used multiple times.) | ||
-m <modname,modname..> | ||
--modules=<modname,modname..> | ||
Comma separated list of modules to load. | ||
(Modules are referenced by their filename without the '.rb' extension, use '--lsmod' to list all. | ||
Use '*' as a module name to deploy all modules or as a wildcard, like so: | ||
xss* to load all xss modules | ||
sqli* to load all sql injection modules | ||
etc. | ||
You can exclude modules by prefixing their name with a minus sign: | ||
--modules=*,-backup_files,-xss | ||
The above will load all modules except for the 'backup_files' and 'xss' modules. | ||
Or mix and match: | ||
-xss* to unload all xss modules.) | ||
Reports ------------------------ | ||
--lsrep=<regexp> List available reports based on the provided regular expression. | ||
(If no regexp is provided all reports will be listed.) | ||
(Can be used multiple times.) | ||
--repload=<filepath> Load audit results from an '.afr' report file. | ||
(Allows you to create new reports from finished scans.) | ||
--report='<report>:<optname>=<val>,<optname2>=<val2>,...' | ||
<report>: the name of the report as displayed by '--lsrep' | ||
(Reports are referenced by their filename without the '.rb' extension, use '--lsrep' to list all.) | ||
(Default: stdout) | ||
(Can be used multiple times.) | ||
Plugins ------------------------ | ||
--lsplug=<regexp> List available plugins based on the provided regular expression. | ||
(If no regexp is provided all plugins will be listed.) | ||
(Can be used multiple times.) | ||
--plugin='<plugin>:<optname>=<val>,<optname2>=<val2>,...' | ||
<plugin>: the name of the plugin as displayed by '--lsplug' | ||
(Plugins are referenced by their filename without the '.rb' extension, use '--lsplug' to list all.) | ||
(Can be used multiple times.) | ||
Proxy -------------------------- | ||
--proxy=<server:port> Proxy address to use. | ||
--proxy-auth=<user:passwd> Proxy authentication credentials. | ||
--proxy-type=<type> Proxy type; can be http, http_1_0, socks4, socks5, socks4a | ||
(Default: http) | ||
Distribution ----------------- | ||
--server=<address:port> Dispatcher server to use. | ||
(Used to provide scanner Instances.) | ||
--slaves=<integer> How many slaves to spawn for a high-performance distributed scan. | ||
(Slaves will all be from the same Dispatcher machine.) | ||
(*WARNING*: This feature is experimental.) | ||
--grid Tell the scanner to use the Grid for a High-Performance scan. | ||
(Slaves will all be from the Dispatchers running | ||
on machines with unique bandwidth pipe.) | ||
(*WARNING*: This feature is experimental.) | ||
SSL -------------------------- | ||
(Do *not* use encrypted keys!) | ||
--ssl-pkey=<file> Location of the SSL private key (.pem) | ||
(Used to verify the the client to the servers.) | ||
--ssl-cert=<file> Location of the SSL certificate (.pem) | ||
(Used to verify the the client to the servers.) | ||
--ssl-ca=<file> Location of the CA certificate (.pem) | ||
(Used to verify the servers to the client.) | ||
``` |