Arachni - Web Application Security Scanner Framework

Version 0.4.0.2
Homepage http://arachni-scanner.com
Blog http://trainofthought.segfault.gr/category/projects/arachni/
Github page http://github.com/zapotek/arachni
Documentation http://github.com/Zapotek/arachni/wiki
Code Documentation http://zapotek.github.com/arachni/
Google Group http://groups.google.com/group/arachni
Author Tasos Laskos
Twitter @Zap0tek
Copyright 2010-2012 Tasos Laskos
License GNU General Public License v2

Arachni logo

Synopsis

Arachni is a feature-full, modular, high-performance Ruby framework aimed towards helping penetration testers and administrators evaluate the security of web applications.

Arachni is smart, it trains itself by learning from the HTTP responses it receives during the audit process and is able to perform meta-analysis using a number of factors in order to correctly assess the trustworthiness of results and intelligently identify false-positives.

Unlike other scanners, it takes into account the dynamic nature of web applications, can detect changes caused while travelling
through the paths of a web application's cyclomatic complexity and is able to adjust itself accordingly.
This way attack/input vectors that would otherwise be undetectable by non-humans are seamlessly handled by Arachni.

Moreover, Arachni yields great performance due to its asynchronous HTTP model (courtesy of Typhoeus) -- especially when combined with a High Performance Grid setup which allows you to combine the resources of multiple nodes for lightning fast scans.
Thus, you'll only be limited by the responsiveness of the server under audit.

Finally, it is versatile enough to cover a great deal of use cases, ranging from a simple command line scanner utility, to a global high performance grid of scanners, to a Ruby library allowing for scripted audits.

Note: Despite the fact that Arachni is mostly targeted towards web application security, it can easily be used for general purpose scraping, data-mining, etc with the addition of custom modules.

Arachni offers:

A stable, efficient, high-performance framework

Module, report and plugin writers are allowed to easily and quickly create and deploy their components with the minimum amount of restrictions imposed upon them, while provided with the necessary infrastructure to accomplish their goals.
Furthermore, they are encouraged to take full advantage of the Ruby language under a unified framework that will increase their productivity without stifling them or complicating their tasks.

Simplicity

Although some parts of the Framework are fairly complex you will never have to deal them directly.
From a user's or a component developer's point of view everything appears simple and straight-forward all the while providing power, performance and flexibility.

Feature List

General

Website Crawler

HTML Parser

Can extract and analyze:

The analyzer can graciously handle badly written HTML code due to a combination of regular expression analysis and the Nokogiri HTML parser.

Module Management

Report Management

Plug-in Management

Trainer subsystem

The Trainer is what enables Arachni to learn from the scan it performs and incorporate that knowledge, on the fly, for the duration of the audit.

Modules have the ability to individually force the Framework to learn from the HTTP responses they are going to induce.
However, this is usually not required since Arachni is aware of which requests are more likely to uncover new elements or attack vectors and will adapt itself accordingly.

Still, this can be an invaluable asset to Fuzzer modules.

Installation

CDE packages for Linux

Arachni is released as CDE packages for your convinience.
CDE packages are self contained and thus alleviate the need for Ruby and other dependencies to be installed or root access.
You can download the latest CDE package from the download page and escape the dependency hell.
If you decide to go the CDE route you can skip the rest, you're done.

Cygwin packages for Windows

Arachni does not yet run natively on Windows systems, however until that day comes you can download a pre-configured Cygwin environment containing Arachni and its dependencies. All you need to do is download the latest self-extracting archive, select a directory for it, open it up and then execute the Cygwin batch file. You will then be presented with a Bash shell, after that you'll be able to use Arachni as if you were on a Linux system.

Gem

To install the Gem or work with the source code you'll also need the following system libraries:

sudo apt-get install libxml2-dev libxslt1-dev libcurl4-openssl-dev libsqlite3-dev

You will also need to have Ruby 1.9.2 (or later) installed including the dev package/headers.
The prefered ways to accomplish this is by either using RVM or by downloading and compiling the source code for Ruby manually.

To install Arachni:

gem install arachni

Source

If you want to clone the repository and work with the source code then you'll need to run the following to install all gem dependencies and Arachni:

git clone git://github.com/Zapotek/arachni.git
cd arachni
rake install

Usage

Command line interface

WebUI

Starting a Dispatcher

Configuration of extras

The extras directory holds components that are considered too specialised, dangerous or in some way unsuitable for utilising without explicit user interaction.
This directory was mainly added to distribute modules which can be helpful but should not be put in the default modules directory to prevent them from being automatically loaded.

Should you want to use these extra components simply move them from the extras folder to their appropriate system directories.

Supported platforms

Arachni should work on all *nix and POSIX compliant platforms with Ruby and the aforementioned requirements.

Windows users can download the pre-configured Cygwin package, see the installation instructions.

Bug reports/Feature requests

Please send your feedback using Github's issue system at http://github.com/zapotek/arachni/issues.

License

Arachni is licensed under the GNU General Public License v2.
See the LICENSE file for more information.

Disclaimer

Arachni is free software and you are allowed to use it as you see fit.
However, I can't be held responsible for your actions or for any damage caused by the use of this software.

Arachni banner