arachni 0.3 → 0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/ACKNOWLEDGMENTS.md +1 -1
- data/CHANGELOG.md +146 -0
- data/CONTRIBUTORS.md +1 -0
- data/HACKING.md +3 -3
- data/README.md +81 -49
- data/Rakefile +11 -14
- data/bin/arachni +4 -8
- data/bin/arachni_rpc +17 -0
- data/bin/arachni_rpcd +18 -0
- data/bin/arachni_rpcd_monitor +18 -0
- data/bin/arachni_web +25 -48
- data/bin/arachni_web_autostart +3 -3
- data/conf/README.webui.yaml.txt +7 -21
- data/external/metasploit/plugins/arachni.rb +0 -7
- data/extras/modules/recon/raft_dirs.rb +108 -0
- data/extras/modules/recon/raft_dirs/raft-large-directories.txt +62290 -0
- data/extras/modules/recon/raft_files.rb +110 -0
- data/extras/modules/recon/raft_files/raft-large-files.txt +37037 -0
- data/extras/modules/recon/svn_digger_dirs.rb +108 -0
- data/extras/modules/recon/svn_digger_dirs/Licence.txt +674 -0
- data/extras/modules/recon/svn_digger_dirs/ReadMe-Arachni.txt +4 -0
- data/extras/modules/recon/svn_digger_dirs/ReadMe.txt +6 -0
- data/extras/modules/recon/svn_digger_dirs/all-dirs.txt +5960 -0
- data/extras/modules/recon/svn_digger_files.rb +114 -0
- data/extras/modules/recon/svn_digger_files/Licence.txt +674 -0
- data/extras/modules/recon/svn_digger_files/ReadMe-Arachni.txt +4 -0
- data/extras/modules/recon/svn_digger_files/ReadMe.txt +6 -0
- data/extras/modules/recon/svn_digger_files/all-extensionless.txt +25419 -0
- data/extras/modules/recon/svn_digger_files/all.txt +43135 -0
- data/lib/arachni.rb +2 -7
- data/lib/{audit_store.rb → arachni/audit_store.rb} +68 -60
- data/lib/{component_manager.rb → arachni/component_manager.rb} +8 -8
- data/lib/{component_options.rb → arachni/component_options.rb} +34 -4
- data/lib/{crypto → arachni/crypto}/rsa_aes_cbc.rb +1 -2
- data/lib/arachni/database.rb +4 -0
- data/lib/arachni/database/base.rb +125 -0
- data/lib/arachni/database/hash.rb +384 -0
- data/lib/arachni/database/queue.rb +93 -0
- data/lib/{exceptions.rb → arachni/exceptions.rb} +1 -1
- data/lib/arachni/framework.rb +899 -0
- data/lib/{http.rb → arachni/http.rb} +63 -166
- data/lib/{issue.rb → arachni/issue.rb} +46 -17
- data/lib/{mixins → arachni/mixins}/observable.rb +1 -1
- data/lib/arachni/mixins/progress_bar.rb +81 -0
- data/lib/arachni/mixins/terminal.rb +106 -0
- data/lib/{module.rb → arachni/module.rb} +0 -0
- data/lib/{module → arachni/module}/auditor.rb +250 -86
- data/lib/{module → arachni/module}/base.rb +8 -18
- data/lib/{module → arachni/module}/element_db.rb +10 -2
- data/lib/{module → arachni/module}/key_filler.rb +1 -1
- data/lib/arachni/module/manager.rb +145 -0
- data/lib/{module → arachni/module}/output.rb +6 -1
- data/lib/{module → arachni/module}/trainer.rb +48 -52
- data/lib/{module → arachni/module}/utilities.rb +66 -15
- data/lib/{nokogiri → arachni/nokogiri}/xml/node.rb +0 -0
- data/lib/arachni/options.rb +986 -0
- data/lib/{parser.rb → arachni/parser.rb} +0 -0
- data/lib/{parser → arachni/parser}/auditable.rb +111 -32
- data/lib/{parser → arachni/parser}/elements.rb +28 -20
- data/lib/{parser → arachni/parser}/page.rb +20 -3
- data/lib/{parser → arachni/parser}/parser.rb +100 -63
- data/lib/{plugin.rb → arachni/plugin.rb} +0 -0
- data/lib/{plugin → arachni/plugin}/base.rb +43 -6
- data/lib/{plugin → arachni/plugin}/manager.rb +40 -13
- data/lib/{report.rb → arachni/report.rb} +0 -0
- data/lib/{report → arachni/report}/base.rb +43 -2
- data/lib/{report → arachni/report}/manager.rb +7 -18
- data/lib/arachni/rpc/client/base.rb +42 -0
- data/lib/{rpc/xml → arachni/rpc}/client/dispatcher.rb +12 -13
- data/lib/arachni/rpc/client/instance.rb +62 -0
- data/lib/arachni/rpc/server/base.rb +51 -0
- data/lib/arachni/rpc/server/dispatcher.rb +438 -0
- data/lib/arachni/rpc/server/framework.rb +1163 -0
- data/lib/arachni/rpc/server/instance.rb +184 -0
- data/lib/{rpc/xml → arachni/rpc}/server/module/manager.rb +8 -5
- data/lib/arachni/rpc/server/node.rb +267 -0
- data/lib/{rpc/xml → arachni/rpc}/server/options.rb +6 -35
- data/lib/{rpc/xml → arachni/rpc}/server/output.rb +29 -3
- data/lib/{rpc/xml → arachni/rpc}/server/plugin/manager.rb +5 -6
- data/lib/{ruby.rb → arachni/ruby.rb} +1 -2
- data/lib/arachni/ruby/array.rb +31 -0
- data/lib/{ruby → arachni/ruby}/object.rb +1 -1
- data/lib/{ruby → arachni/ruby}/string.rb +1 -1
- data/lib/{spider.rb → arachni/spider.rb} +83 -110
- data/lib/arachni/typhoeus/hydra.rb +7 -0
- data/lib/{typhoeus → arachni/typhoeus}/request.rb +11 -9
- data/lib/{typhoeus → arachni/typhoeus}/response.rb +4 -0
- data/lib/{ui → arachni/ui}/cli/cli.rb +154 -84
- data/lib/{ui → arachni/ui}/cli/output.rb +57 -19
- data/lib/{ui/xmlrpc → arachni/ui/rpc}/dispatcher_monitor.rb +11 -10
- data/lib/{ui/xmlrpc/xmlrpc.rb → arachni/ui/rpc/rpc.rb} +102 -158
- data/lib/{ui → arachni/ui}/web/addon_manager.rb +23 -3
- data/lib/arachni/ui/web/addons/autodeploy.rb +207 -0
- data/lib/{ui → arachni/ui}/web/addons/autodeploy/lib/manager.rb +142 -35
- data/lib/arachni/ui/web/addons/autodeploy/views/index.erb +291 -0
- data/lib/{ui → arachni/ui}/web/addons/sample.rb +1 -1
- data/lib/{ui → arachni/ui}/web/addons/sample/views/index.erb +0 -0
- data/lib/{ui → arachni/ui}/web/addons/scheduler.rb +30 -22
- data/lib/{ui → arachni/ui}/web/addons/scheduler/views/index.erb +56 -22
- data/lib/{ui → arachni/ui}/web/addons/scheduler/views/options.erb +0 -0
- data/lib/arachni/ui/web/dispatcher_manager.rb +274 -0
- data/lib/arachni/ui/web/instance_manager.rb +69 -0
- data/lib/{ui → arachni/ui}/web/log.rb +1 -1
- data/lib/arachni/ui/web/output_stream.rb +54 -0
- data/lib/{ui → arachni/ui}/web/report_manager.rb +48 -54
- data/lib/{ui → arachni/ui}/web/scheduler.rb +42 -47
- data/lib/arachni/ui/web/server.rb +1197 -0
- data/lib/{ui → arachni/ui}/web/server/db/placeholder +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/banner.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/bodybg-small.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/bodybg.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/pbar-ani.gif +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-bg_flat_75_ffffff_40x100.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-bg_glass_55_fbf9ee_1x400.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-bg_glass_75_dadada_1x400.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-bg_glass_75_e6e6e6_1x400.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-bg_glass_95_fef1ec_1x400.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-bg_highlight-soft_75_cccccc_1x100.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-icons_222222_256x240.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-icons_2e83ff_256x240.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-icons_454545_256x240.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-icons_888888_256x240.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/css/smoothness/jquery-ui-1.8.9.custom.css +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/favicon.ico +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/footer.jpg +0 -0
- data/lib/{ui/web/server/public/icons/error.png → arachni/ui/web/server/public/icons/bad.png} +0 -0
- data/lib/arachni/ui/web/server/public/icons/error.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/icons/info.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/icons/ok.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/icons/status.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/js/jquery-1.4.4.min.js +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/js/jquery-ui-1.8.9.custom.min.js +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/js/jquery-ui-timepicker.js +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/logo.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/nav-left.jpg +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/nav-right.jpg +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/nav-selected-left.jpg +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/nav-selected-right.jpg +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/plugins/sample/style.css +0 -0
- data/lib/{ui/web/server/tmp → arachni/ui/web/server/public/reports}/placeholder +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/sidebar-bottom.jpg +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/sidebar-h4.jpg +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/sidebar-top.jpg +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/spider.png +0 -0
- data/lib/{ui → arachni/ui}/web/server/public/style.css +3 -2
- data/lib/arachni/ui/web/server/tmp/placeholder +0 -0
- data/lib/{ui → arachni/ui}/web/server/views/addon.erb +0 -0
- data/lib/{ui → arachni/ui}/web/server/views/addons.erb +0 -0
- data/lib/{ui → arachni/ui}/web/server/views/dispatcher_error.erb +0 -0
- data/lib/arachni/ui/web/server/views/dispatchers.erb +175 -0
- data/lib/arachni/ui/web/server/views/dispatchers_edit.erb +71 -0
- data/lib/arachni/ui/web/server/views/error.erb +22 -0
- data/lib/{ui → arachni/ui}/web/server/views/flash.erb +2 -2
- data/lib/arachni/ui/web/server/views/home.erb +60 -0
- data/lib/{ui → arachni/ui}/web/server/views/instance.erb +55 -75
- data/lib/arachni/ui/web/server/views/js/home.erb +32 -0
- data/lib/{ui → arachni/ui}/web/server/views/layout.erb +2 -2
- data/lib/{ui → arachni/ui}/web/server/views/log.erb +0 -0
- data/lib/arachni/ui/web/server/views/module.erb +30 -0
- data/lib/{ui → arachni/ui}/web/server/views/modules.erb +2 -22
- data/lib/{ui → arachni/ui}/web/server/views/options.erb +0 -0
- data/lib/{ui → arachni/ui}/web/server/views/output_results.erb +4 -4
- data/lib/{ui → arachni/ui}/web/server/views/plugins.erb +23 -12
- data/lib/{ui → arachni/ui}/web/server/views/report_formats.erb +1 -1
- data/lib/{ui → arachni/ui}/web/server/views/reports.erb +1 -1
- data/lib/{ui → arachni/ui}/web/server/views/settings.erb +59 -16
- data/lib/{ui → arachni/ui}/web/server/views/welcome.erb +3 -1
- data/lib/{ui → arachni/ui}/web/utilities.rb +8 -3
- data/lib/arachni/version.rb +16 -0
- data/modules/audit/code_injection.rb +11 -20
- data/modules/audit/code_injection_timing.rb +2 -6
- data/modules/audit/csrf.rb +8 -16
- data/modules/audit/ldapi.rb +5 -11
- data/modules/audit/os_cmd_injection.rb +5 -9
- data/modules/audit/os_cmd_injection_timing.rb +4 -8
- data/modules/audit/path_traversal.rb +7 -13
- data/modules/audit/response_splitting.rb +8 -21
- data/modules/audit/rfi.rb +6 -46
- data/modules/audit/sqli.rb +5 -11
- data/modules/audit/sqli/regexp_ids.txt +0 -6
- data/modules/audit/sqli_blind_rdiff.rb +5 -10
- data/modules/audit/sqli_blind_timing.rb +4 -9
- data/modules/audit/trainer.rb +6 -12
- data/modules/audit/unvalidated_redirect.rb +6 -17
- data/modules/audit/xpath.rb +5 -12
- data/modules/audit/xss.rb +37 -23
- data/modules/audit/xss_event.rb +5 -10
- data/modules/audit/xss_path.rb +47 -41
- data/modules/audit/xss_script_tag.rb +5 -10
- data/modules/audit/xss_tag.rb +5 -10
- data/modules/audit/xss_uri.rb +17 -89
- data/modules/recon/allowed_methods.rb +6 -15
- data/modules/recon/backdoors.rb +12 -52
- data/modules/recon/backup_files.rb +25 -88
- data/modules/recon/common_directories.rb +8 -54
- data/modules/recon/common_files.rb +7 -58
- data/modules/recon/directory_listing.rb +6 -15
- data/modules/recon/grep/captcha.rb +1 -1
- data/modules/recon/grep/credit_card.rb +62 -27
- data/modules/recon/grep/cvs_svn_users.rb +1 -1
- data/modules/recon/grep/emails.rb +1 -1
- data/modules/recon/grep/html_objects.rb +1 -1
- data/modules/recon/grep/private_ip.rb +1 -1
- data/modules/recon/grep/ssn.rb +9 -9
- data/modules/recon/htaccess_limit.rb +6 -14
- data/modules/recon/http_put.rb +7 -15
- data/modules/recon/interesting_responses.rb +7 -13
- data/modules/recon/mixed_resource.rb +100 -0
- data/modules/recon/unencrypted_password_forms.rb +8 -20
- data/modules/recon/webdav.rb +6 -16
- data/modules/recon/xst.rb +7 -13
- data/path_extractors/anchors.rb +1 -1
- data/path_extractors/forms.rb +1 -1
- data/path_extractors/frames.rb +1 -1
- data/path_extractors/generic.rb +47 -3
- data/path_extractors/links.rb +1 -1
- data/path_extractors/meta_refresh.rb +1 -1
- data/path_extractors/scripts.rb +3 -4
- data/path_extractors/sitemap.rb +1 -1
- data/plugins/autologin.rb +9 -18
- data/plugins/beep_notify.rb +51 -0
- data/plugins/cookie_collector.rb +12 -12
- data/plugins/defaults/autothrottle.rb +86 -0
- data/plugins/{content_types.rb → defaults/content_types.rb} +25 -19
- data/plugins/{healthmap.rb → defaults/healthmap.rb} +30 -18
- data/plugins/defaults/metamodules/remedies/discovery.rb +164 -0
- data/plugins/defaults/metamodules/remedies/manual_verification.rb +65 -0
- data/{metamodules/timeout_notice.rb → plugins/defaults/metamodules/remedies/timing_attacks.rb} +26 -22
- data/{metamodules → plugins/defaults/metamodules}/uniformity.rb +15 -14
- data/plugins/{profiler.rb → defaults/profiler.rb} +19 -30
- data/plugins/defaults/resolver.rb +55 -0
- data/plugins/email_notify.rb +108 -0
- data/plugins/form_dicattack.rb +8 -16
- data/plugins/http_dicattack.rb +4 -12
- data/plugins/libnotify.rb +86 -0
- data/plugins/proxy.rb +8 -17
- data/plugins/proxy/server.rb +3 -3
- data/plugins/rescan.rb +60 -0
- data/plugins/waf_detector.rb +5 -16
- data/profiles/full.afp +3 -30
- data/reports/afr.rb +2 -5
- data/reports/ap.rb +3 -1
- data/reports/html.rb +210 -68
- data/reports/html/default.erb +72 -1014
- data/reports/html/default/configuration.erb +126 -0
- data/reports/html/default/css/jquery-ui.css +570 -0
- data/reports/html/default/css/jquery.jqplot.min.css +1 -0
- data/reports/html/default/css/main.css +391 -0
- data/reports/html/default/issue.erb +189 -0
- data/reports/html/default/issues.erb +65 -0
- data/reports/html/default/js/charts.js +146 -0
- data/reports/html/default/js/helpers.js +95 -0
- data/reports/html/default/js/init.js +73 -0
- data/reports/html/default/js/lib/jqplot.barRenderer.min.js +57 -0
- data/reports/html/default/js/lib/jqplot.categoryAxisRenderer.min.js +57 -0
- data/reports/html/default/js/lib/jqplot.cursor.min.js +57 -0
- data/reports/html/default/js/lib/jqplot.pieRenderer.min.js +57 -0
- data/reports/html/default/js/lib/jqplot.pointLabels.min.js +57 -0
- data/reports/html/default/js/lib/jquery-ui.min.js +404 -0
- data/reports/html/default/js/lib/jquery.jqplot.min.js +57 -0
- data/reports/html/default/js/lib/jquery.min.js +167 -0
- data/reports/html/default/plugins.erb +22 -0
- data/reports/html/default/search.erb +8 -0
- data/reports/html/default/sitemap.erb +15 -0
- data/reports/html/default/summary.erb +68 -0
- data/reports/html/default/summary_issue.erb +19 -0
- data/reports/json.rb +51 -0
- data/reports/marshal.rb +49 -0
- data/reports/metareport.rb +4 -6
- data/reports/metareport/arachni_metareport.rb +1 -1
- data/reports/plugin_formatters/html/autologin.rb +30 -41
- data/reports/plugin_formatters/html/content_types.rb +1 -10
- data/reports/plugin_formatters/html/cookie_collector.rb +36 -44
- data/reports/plugin_formatters/html/discovery.rb +50 -0
- data/reports/plugin_formatters/html/form_dicattack.rb +24 -32
- data/reports/plugin_formatters/html/healthmap.rb +45 -54
- data/reports/plugin_formatters/html/http_dicattack.rb +24 -32
- data/reports/plugin_formatters/html/profiler.rb +17 -48
- data/reports/plugin_formatters/html/profiler/template.erb +6 -99
- data/reports/plugin_formatters/html/resolver.rb +63 -0
- data/reports/plugin_formatters/html/{metaformatters/timeout_notice.rb → timing_attacks.rb} +7 -19
- data/reports/plugin_formatters/html/{metaformatters/uniformity.rb → uniformity.rb} +5 -17
- data/reports/plugin_formatters/html/waf_detector.rb +24 -32
- data/reports/plugin_formatters/stdout/autologin.rb +30 -35
- data/reports/plugin_formatters/stdout/content_types.rb +41 -46
- data/reports/plugin_formatters/stdout/cookie_collector.rb +33 -38
- data/reports/plugin_formatters/stdout/discovery.rb +47 -0
- data/reports/plugin_formatters/stdout/form_dicattack.rb +27 -32
- data/reports/plugin_formatters/stdout/healthmap.rb +47 -51
- data/reports/plugin_formatters/stdout/http_dicattack.rb +27 -32
- data/reports/plugin_formatters/stdout/metamodules.rb +48 -55
- data/reports/plugin_formatters/stdout/profiler.rb +60 -65
- data/reports/plugin_formatters/stdout/resolver.rb +45 -0
- data/reports/plugin_formatters/stdout/{metaformatters/timeout_notice.rb → timing_attacks.rb} +6 -14
- data/reports/plugin_formatters/stdout/{metaformatters/uniformity.rb → uniformity.rb} +6 -14
- data/reports/plugin_formatters/stdout/waf_detector.rb +23 -28
- data/reports/plugin_formatters/xml/autologin.rb +36 -41
- data/reports/plugin_formatters/xml/content_types.rb +47 -52
- data/reports/plugin_formatters/xml/cookie_collector.rb +39 -44
- data/reports/plugin_formatters/xml/discovery.rb +54 -0
- data/reports/plugin_formatters/xml/form_dicattack.rb +22 -27
- data/reports/plugin_formatters/xml/healthmap.rb +53 -58
- data/reports/plugin_formatters/xml/http_dicattack.rb +22 -27
- data/reports/plugin_formatters/xml/profiler.rb +61 -77
- data/reports/plugin_formatters/xml/resolver.rb +53 -0
- data/reports/plugin_formatters/xml/{metaformatters/timeout_notice.rb → timing_attacks.rb} +3 -15
- data/reports/plugin_formatters/xml/{metaformatters/uniformity.rb → uniformity.rb} +4 -14
- data/reports/plugin_formatters/xml/waf_detector.rb +23 -28
- data/reports/stdout.rb +1 -1
- data/reports/txt.rb +2 -5
- data/reports/xml.rb +2 -5
- data/reports/xml/buffer.rb +6 -2
- data/reports/yaml.rb +49 -0
- metadata +419 -278
- data/bin/arachni_xmlrpc +0 -21
- data/bin/arachni_xmlrpcd +0 -82
- data/bin/arachni_xmlrpcd_monitor +0 -74
- data/getoptslong.rb +0 -242
- data/lib/anemone.rb +0 -2
- data/lib/framework.rb +0 -673
- data/lib/module/manager.rb +0 -111
- data/lib/options.rb +0 -547
- data/lib/rpc/xml/client/base.rb +0 -76
- data/lib/rpc/xml/client/instance.rb +0 -88
- data/lib/rpc/xml/server/base.rb +0 -112
- data/lib/rpc/xml/server/dispatcher.rb +0 -386
- data/lib/rpc/xml/server/framework.rb +0 -206
- data/lib/rpc/xml/server/instance.rb +0 -191
- data/lib/ruby/xmlrpc/server.rb +0 -27
- data/lib/ui/web/addons/autodeploy.rb +0 -172
- data/lib/ui/web/addons/autodeploy/views/index.erb +0 -124
- data/lib/ui/web/dispatcher_manager.rb +0 -165
- data/lib/ui/web/instance_manager.rb +0 -87
- data/lib/ui/web/output_stream.rb +0 -94
- data/lib/ui/web/server.rb +0 -925
- data/lib/ui/web/server/public/reports/placeholder +0 -1
- data/lib/ui/web/server/views/dispatchers.erb +0 -100
- data/lib/ui/web/server/views/dispatchers_edit.erb +0 -42
- data/lib/ui/web/server/views/error.erb +0 -1
- data/lib/ui/web/server/views/home.erb +0 -25
- data/metamodules/autothrottle.rb +0 -74
- data/plugins/metamodules.rb +0 -118
- data/profiles/comprehensive.afp +0 -74
- data/reports/plugin_formatters/html/metamodules.rb +0 -93
- data/reports/plugin_formatters/xml/metamodules.rb +0 -91
data/ACKNOWLEDGMENTS.md
CHANGED
|
@@ -10,5 +10,5 @@ I’d like to thank:
|
|
|
10
10
|
|
|
11
11
|
for allowing me to test Arachni against their websites during the early stages of development.
|
|
12
12
|
|
|
13
|
-
All the people on [GitHub](http://github.com/Zapotek/arachni/issues)
|
|
13
|
+
All the people on [GitHub](http://github.com/Zapotek/arachni/issues)
|
|
14
14
|
that have submitted bugs and given constructive feedback.
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,152 @@
|
|
|
1
1
|
|
|
2
2
|
# ChangeLog
|
|
3
3
|
|
|
4
|
+
## Version 0.4 _(January 7, 2012)_
|
|
5
|
+
- RPC Infrastructure (**New**)
|
|
6
|
+
- Dispatcher
|
|
7
|
+
- Dispatchers can now be connected to form a High Performance Grid and share scan workloads.
|
|
8
|
+
- Users can now specify a range of ports to be used for spawned Instances. [Issue #76]
|
|
9
|
+
- Now checks for signal availability before using <em>trap()</em>. (**New**) [Issue #71]
|
|
10
|
+
- Now uses Windows compliant filenames for the logs. (**New**) [Issue #70]
|
|
11
|
+
- Ruby's XMLRPC libraries have been replaced by <a href="https://github.com/Arachni/arachni-rpc">Arachni-RPC</a>,
|
|
12
|
+
a light-weight and high-performance custom client/server RPC implementation.
|
|
13
|
+
- Added <em>extras</em> directory holding components that are considered too specialised, dangerous or in some way unsuitable for
|
|
14
|
+
utilising without explicit user interaction. (**New**)
|
|
15
|
+
- Modules
|
|
16
|
+
- Recon
|
|
17
|
+
- SVN Digger dirs -- Finds directories, based on wordlists created from open source repositories (Herman Stevens)
|
|
18
|
+
- SVN Digger files -- Finds files, based on wordlists created from open source repositories (Herman Stevens)
|
|
19
|
+
- RAFT dirs (Herman Stevens)
|
|
20
|
+
- RAFT files (Herman Stevens)
|
|
21
|
+
- Framework
|
|
22
|
+
- <em>stats()</em>
|
|
23
|
+
- Fixed bug that caused the <em>current_page</em> to not be refreshed during timing attacks.
|
|
24
|
+
- Fixed bug that caused a less than 100% progress at the end of scans. [Issue #86]
|
|
25
|
+
- If the crawler is limited by link-count it will be taken under consideration.
|
|
26
|
+
- Significantly reduced memory footprint by re-scheduling the consumption of Trainer generated pages.
|
|
27
|
+
- User Interfaces
|
|
28
|
+
- WebUI
|
|
29
|
+
- Sinatra
|
|
30
|
+
- Updated to use the light-weight and high-performance <a href="http://code.macournoyer.com/thin/">Thin</a> server.
|
|
31
|
+
- Added <a href="https://github.com/raggi/async_sinatra">async_sinatra</a> to allow for asynchronous responses. (**New**)
|
|
32
|
+
- Added support for HTTP Basic Auth (**New**)
|
|
33
|
+
- Updated screens to provide access to HPG (High Performance Grid) features:
|
|
34
|
+
- Home
|
|
35
|
+
- Added option to enable HPG mode on a per scan basis (**New**)
|
|
36
|
+
- Dispatchers
|
|
37
|
+
- Added node information (Nickname, Pipe ID, Weight, Cost). (**New**)
|
|
38
|
+
- Added neighbour inspection per dispatcher. (**New**)
|
|
39
|
+
- Added log inspection per dispatcher. (**New**)
|
|
40
|
+
- Improved accuracy of instance statuses.
|
|
41
|
+
- Added percentages for memory and CPU usage per instance. (**New**)
|
|
42
|
+
- Instance (scan management)
|
|
43
|
+
- Provides an average of all stats of scanner instances. (**New**)
|
|
44
|
+
- Added per instance progress bars. (**New**)
|
|
45
|
+
- Added per instance statuses. (**New**)
|
|
46
|
+
- Added est. remaining time. (**New**)
|
|
47
|
+
- Settings
|
|
48
|
+
- Added proxy settings. [Issue #74] (**New**)
|
|
49
|
+
- Added settings for restrict and extend paths options. (**New**)
|
|
50
|
+
- Fixed small typo in "Settings" screen. [Issue #62]
|
|
51
|
+
- Reports -- AFR report is now served straight-up to avoid corruption. [Issue #55]
|
|
52
|
+
- Add-ons -- Updated to use the new async libraries.
|
|
53
|
+
- Added help buttons. (**New**)
|
|
54
|
+
- CLI
|
|
55
|
+
- Improved interrupt handler:
|
|
56
|
+
- It now exits in a cleaner fashion and is more obedient.
|
|
57
|
+
- Added est. remaining time. (**New**)
|
|
58
|
+
- Added progressbar. (**New**)
|
|
59
|
+
- HTTP client
|
|
60
|
+
- Added support for including custom headers. [Issue #90] (**New**)
|
|
61
|
+
- Refactored in order for all methods to use <em>request()</em>.
|
|
62
|
+
- Bug-fixed cookie preservation.
|
|
63
|
+
- Spider
|
|
64
|
+
- spider-first option removed and set to true by default.
|
|
65
|
+
- Added "--depth" parameter. (**New**)
|
|
66
|
+
- Fixed incorrect implementation of the inclusion filters.
|
|
67
|
+
- Now follows "Location" headers directly and bypasses the trainer.
|
|
68
|
+
- Added support for extending the crawl scope with a file that contains newline separated URLs. (**New**) [Issue #67]
|
|
69
|
+
- Added support for restricting the crawl scope with a file that contains newline separated URLs. (**New**)
|
|
70
|
+
- Made more resilient against malformed/non-standard URLs. [Issue #57]
|
|
71
|
+
- Parser
|
|
72
|
+
- Encoded URLs with fragments right after the host caused URI.parse to fail. [Issue #66]
|
|
73
|
+
- Auditable elements
|
|
74
|
+
- If there are 2 or more password fields in a form an extra variation is added with
|
|
75
|
+
the same inputs for all passwords in case it's a 'please repeat your password' thing. (**New**) [Issue #59]
|
|
76
|
+
- Plugins
|
|
77
|
+
- API -- Added <code>distributable?()</code> and <code>merge()</code> class methods which declare
|
|
78
|
+
if a plug-in can be distributed to all instances when running in Grid mode and merge an array of its own results respectively.
|
|
79
|
+
- Distributable plug-ins:
|
|
80
|
+
- Content-Types
|
|
81
|
+
- Cookie collector
|
|
82
|
+
- Healthmap
|
|
83
|
+
- Profiler
|
|
84
|
+
- AutoThrottle
|
|
85
|
+
- Profiler -- Removed response time logging and moved it to <em>defaults</em>.
|
|
86
|
+
- Proxy -- Fixed bug which caused some headers not to be forwarded. [Issue #64]
|
|
87
|
+
- Discovery (accompanied by appropriate report formatters). (**New**) [Issue #81]
|
|
88
|
+
- Performs anomaly detection on issues logged by discovery modules and warns of the possibility of false positives where applicable.
|
|
89
|
+
- Added the 'defaults' subdirectory which contains plug-ins that should be loaded by default.
|
|
90
|
+
- Added: (**New**)
|
|
91
|
+
- ReScan -- It uses the AFR report of a previous scan to extract the sitemap in order to avoid a redundant crawl.
|
|
92
|
+
- BeepNotify -- Beeps when the scan finishes.
|
|
93
|
+
- LibNotify -- Uses the libnotify library to send notifications for each discovered issue and a summary at the end of the scan.
|
|
94
|
+
- EmailNotify -- Sends a notification (and optionally a report) over SMTP at the end of the scan.
|
|
95
|
+
- Manual verification -- Flags issues that require manual verification as untrusted in order to reduce the signal-to-noise ratio.
|
|
96
|
+
- Resolver -- Resolves vulnerable hostnames to IP addresses.
|
|
97
|
+
- Reports
|
|
98
|
+
- HTML report
|
|
99
|
+
- Fixed replay forms to include URL params in the <em>action</em> attribute. [Issue #73]
|
|
100
|
+
- Refactored and broken into erb partials.
|
|
101
|
+
- Organised subsections into tabs. (**New**)
|
|
102
|
+
- HTML responses of logged Issues are now rendered on-demand. [Issue #88]
|
|
103
|
+
- Added graph showing issue trust totals. (**New**)
|
|
104
|
+
- The main issue graph shows trusted and untrusted issues in 2 different series.
|
|
105
|
+
- ALl JavaScript and CSS code is now included in the report for off-line viewing.
|
|
106
|
+
- Removed manual-verification piechart, obsoleted by the trust chart.
|
|
107
|
+
- Replaced Highcharts with jqPlot due to licensing reasons.
|
|
108
|
+
- Removed false-positive reporting -- was causing segfaults on Mac OSX. [Issue #126]
|
|
109
|
+
- Added (**New**)
|
|
110
|
+
- JSON -- Exports the audit results as a JSON serialized Hash.
|
|
111
|
+
- Marshal -- Exports the audit results as a Marshal serialized Hash.
|
|
112
|
+
- YAML -- Exports the audit results as a YAML serialized Hash.
|
|
113
|
+
- Heeded Ruby's warnings (<em>ruby -w</em>).
|
|
114
|
+
- Modules
|
|
115
|
+
- API
|
|
116
|
+
- Auditor
|
|
117
|
+
- Added helper methods for checking the existence of remote files and directories. (**New**)
|
|
118
|
+
- Added helper methods for issue logging. (**New**)
|
|
119
|
+
- Refactored modules replacing duplicate code with the new helper methods.
|
|
120
|
+
- Audit
|
|
121
|
+
- XSS -- Updated to actually inject an element, parse the HTML response and
|
|
122
|
+
look for that element before logging in order to eliminate false positives. [Issue #59]
|
|
123
|
+
- Path traversal -- Fixed broken regular expressions
|
|
124
|
+
- SQL Injection -- Fixed broken regular expressions
|
|
125
|
+
- XSS Path -- Updated to verify the injection using HTML parsing
|
|
126
|
+
- XSS URI -- Made obsolete and will be removed from future releases -- loads and runs XSS Path instead.
|
|
127
|
+
- Recon
|
|
128
|
+
- Added MixedResource detection module (<a href="http://googleonlinesecurity.blogspot.com/2011/06/trying-to-end-mixed-scripting.html">Reference</a>) (**New**) [Issue #56]
|
|
129
|
+
- Meta-Modules
|
|
130
|
+
- Have all been converted to regular plug-ins in order to make distribution across the Grid easier.
|
|
131
|
+
- Dependencies
|
|
132
|
+
- Added
|
|
133
|
+
- Arachni-RPC
|
|
134
|
+
- EventMachine
|
|
135
|
+
- EM Synchrony
|
|
136
|
+
- AsyncSinatra
|
|
137
|
+
- Updated
|
|
138
|
+
- Typhoeus => 0.3.3
|
|
139
|
+
- Sys-proctable => 0.9.1
|
|
140
|
+
- Nokogiri => 1.5.0
|
|
141
|
+
- Sinatra => 1.3.1
|
|
142
|
+
- Datamapper => 1.1.0
|
|
143
|
+
- Json => 1.6.1
|
|
144
|
+
- Datamapper SQLite adapter => 1.1.0
|
|
145
|
+
- Net-SSH => 2.2.1
|
|
146
|
+
- Removed
|
|
147
|
+
- Rack-CSRF
|
|
148
|
+
- JSON (Provided by DataMapper)
|
|
149
|
+
|
|
4
150
|
## Version 0.3 _(July 26, 2011)_
|
|
5
151
|
- HTTP client
|
|
6
152
|
- Fixed race condition in timeout options.
|
data/CONTRIBUTORS.md
CHANGED
|
@@ -7,5 +7,6 @@ These are the people that helped improve Arachni either by submitting code, sugg
|
|
|
7
7
|
- [Brandon Potter](mailto:bpotter8705@gmail.com) for the original "arachni_web_autostart" script
|
|
8
8
|
- [Steve Pinkham](http://github.com/spinkham) for beta testing and patches.
|
|
9
9
|
- [Aung Khant](mailto:aungkhant@yehg.net) for general suggestions.
|
|
10
|
+
- [Herman Stevens](mailto:herman@astyran.com) for contributing recon modules.
|
|
10
11
|
|
|
11
12
|
A big thanks to my buddy [Andreas](mailto:rainmakergr@gmail.com) for the original spider drawing used in the project graphics.
|
data/HACKING.md
CHANGED
|
@@ -90,9 +90,9 @@ power to work with.
|
|
|
90
90
|
|
|
91
91
|
## Creating New Plug-ins
|
|
92
92
|
|
|
93
|
-
Unlike the two previous types of components plug-ins are demi-gods
|
|
94
|
-
Each plug-in is passed the instance of the running framework to do with it what it pleases
|
|
95
|
-
Via the framework they have access to all Arachni subsystems and can alter or extend Arachni's behavior on the fly
|
|
93
|
+
Unlike the two previous types of components plug-ins are demi-gods.<br/>
|
|
94
|
+
Each plug-in is passed the instance of the running framework to do with it what it pleases.<br/>
|
|
95
|
+
Via the framework they have access to all Arachni subsystems and can alter or extend Arachni's behavior on the fly.<br/>
|
|
96
96
|
Plug-ins run in parallel to the framework and are executed right before the scan process starts.
|
|
97
97
|
|
|
98
98
|
## Licensing
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
<table>
|
|
3
3
|
<tr>
|
|
4
4
|
<th>Version</th>
|
|
5
|
-
<td>0.
|
|
5
|
+
<td>0.4</td>
|
|
6
6
|
</tr>
|
|
7
7
|
<tr>
|
|
8
8
|
<th>Homepage</th>
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
</tr>
|
|
30
30
|
<tr>
|
|
31
31
|
<th>Author</th>
|
|
32
|
-
<td><a href="mailto:tasos.laskos@gmail.com">Tasos
|
|
32
|
+
<td><a href="mailto:tasos.laskos@gmail.com">Tasos Laskos</a></td>
|
|
33
33
|
</tr>
|
|
34
34
|
<tr>
|
|
35
35
|
<th>Twitter</th>
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
</tr>
|
|
38
38
|
<tr>
|
|
39
39
|
<th>Copyright</th>
|
|
40
|
-
<td>2010-
|
|
40
|
+
<td>2010-2012 Tasos Laskos</td>
|
|
41
41
|
</tr>
|
|
42
42
|
<tr>
|
|
43
43
|
<th>License</th>
|
|
@@ -47,23 +47,24 @@
|
|
|
47
47
|
|
|
48
48
|

|
|
49
49
|
|
|
50
|
-
Kindly sponsored by: [](http://www.nopsec.com)
|
|
51
|
-
|
|
52
|
-
Help by donating:
|
|
53
|
-
[](http://www.pledgie.com/campaigns/14482)
|
|
54
|
-
|
|
55
50
|
## Synopsis
|
|
56
51
|
|
|
57
52
|
Arachni is a feature-full, modular, high-performance Ruby framework aimed towards helping
|
|
58
53
|
penetration testers and administrators evaluate the security of web applications.
|
|
59
54
|
|
|
60
|
-
Arachni is smart, it trains itself by learning from the HTTP responses it receives during the audit process
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
Arachni is smart, it trains itself by learning from the HTTP responses it receives during the audit process and
|
|
56
|
+
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.
|
|
57
|
+
|
|
58
|
+
Unlike other scanners, it takes into account the dynamic nature of web applications, can detect changes caused while travelling<br/>
|
|
59
|
+
through the paths of a web application's cyclomatic complexity and is able to adjust itself accordingly.<br/>
|
|
63
60
|
This way attack/input vectors that would otherwise be undetectable by non-humans are seamlessly handled by Arachni.
|
|
64
61
|
|
|
65
|
-
|
|
66
|
-
|
|
62
|
+
Moreover, Arachni yields great performance due to its asynchronous HTTP model (courtesy of [Typhoeus](https://github.com/pauldix/typhoeus)) --
|
|
63
|
+
especially when combined with a High Performance Grid setup which allows you to combine the resources of multiple nodes for lightning fast scans.<br/>
|
|
64
|
+
Thus, you'll only be limited by the responsiveness of the server under audit.
|
|
65
|
+
|
|
66
|
+
Finally, it is versatile enough to cover a great deal of use cases,
|
|
67
|
+
ranging from a simple command line scanner utility, to a global high performance grid of scanners, to a Ruby library allowing for scripted audits.
|
|
67
68
|
|
|
68
69
|
**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._
|
|
69
70
|
|
|
@@ -85,7 +86,8 @@ From a user's or a component developer's point of view everything appears simple
|
|
|
85
86
|
|
|
86
87
|
### General
|
|
87
88
|
|
|
88
|
-
- Cookie-jar support
|
|
89
|
+
- Cookie-jar support.
|
|
90
|
+
- Custom header support.
|
|
89
91
|
- SSL support.
|
|
90
92
|
- User Agent spoofing.
|
|
91
93
|
- Proxy support for SOCKS4, SOCKS4A, SOCKS5, HTTP/1.1 and HTTP/1.0.
|
|
@@ -94,16 +96,16 @@ From a user's or a component developer's point of view everything appears simple
|
|
|
94
96
|
- Highlighted command line output.
|
|
95
97
|
- UI abstraction:
|
|
96
98
|
- Command line UI
|
|
97
|
-
- Web UI (Utilizing the Client -
|
|
98
|
-
- XMLRPC Client/Dispatch server
|
|
99
|
-
- Centralised deployment
|
|
100
|
-
- Multiple clients
|
|
101
|
-
- Parallel scans
|
|
102
|
-
- SSL encryption
|
|
103
|
-
- SSL cert based client authentication
|
|
104
|
-
- Remote monitoring
|
|
99
|
+
- Web UI (Utilizing the Client - Dispatcher RPC infrastructure)
|
|
105
100
|
- Pause/resume functionality.
|
|
106
101
|
- High performance asynchronous HTTP requests.
|
|
102
|
+
- Open [RPC](https://github.com/Zapotek/arachni/wiki/RPC-API) Client/Dispatcher Infrastructure
|
|
103
|
+
- Distributed deployment
|
|
104
|
+
- Multiple clients
|
|
105
|
+
- Parallel scans
|
|
106
|
+
- SSL encryption (with peer authentication)
|
|
107
|
+
- Remote monitoring
|
|
108
|
+
- Support for [High Performance Grid](https://github.com/Zapotek/arachni/wiki/RPC-server#wiki-grid) configuration, combining the resources of multiple nodes to perform fast scans.
|
|
107
109
|
|
|
108
110
|
### Website Crawler
|
|
109
111
|
|
|
@@ -114,6 +116,7 @@ From a user's or a component developer's point of view everything appears simple
|
|
|
114
116
|
- Adjustable link count limit.
|
|
115
117
|
- Adjustable redirect limit.
|
|
116
118
|
- Modular path extraction via "Path Extractor" components.
|
|
119
|
+
- Can read paths from multiple user supplied files (to both restrict and extend the scope of the crawl).
|
|
117
120
|
|
|
118
121
|
### HTML Parser
|
|
119
122
|
|
|
@@ -174,6 +177,13 @@ The analyzer can graciously handle badly written HTML code due to a combination
|
|
|
174
177
|
- E-mail address disclosure
|
|
175
178
|
- US Social Security Number disclosure
|
|
176
179
|
- Forceful directory listing
|
|
180
|
+
- Mixed Resource/Scripting
|
|
181
|
+
- Extras
|
|
182
|
+
- SVN Digger dirs
|
|
183
|
+
- SVN Digger files
|
|
184
|
+
- RAFT dirs
|
|
185
|
+
- RAFT files
|
|
186
|
+
|
|
177
187
|
|
|
178
188
|
### Report Management
|
|
179
189
|
|
|
@@ -183,8 +193,11 @@ The analyzer can graciously handle badly written HTML code due to a combination
|
|
|
183
193
|
- HTML (Cheers to [Christos Chiotis](mailto:chris@survivetheinternet.com) for designing the new HTML report template.)
|
|
184
194
|
- XML
|
|
185
195
|
- TXT
|
|
186
|
-
-
|
|
187
|
-
-
|
|
196
|
+
- AFR -- The default Arachni Framework Report format.
|
|
197
|
+
- JSON
|
|
198
|
+
- Marshal
|
|
199
|
+
- YAML
|
|
200
|
+
- Metareport -- Providing Metasploit integration to allow for [automated and assisted exploitation](http://zapotek.github.com/arachni/file.EXPLOITATION.html).
|
|
188
201
|
|
|
189
202
|
### Plug-in Management
|
|
190
203
|
|
|
@@ -192,6 +205,7 @@ The analyzer can graciously handle badly written HTML code due to a combination
|
|
|
192
205
|
- Plug-ins are framework demi-gods, they have direct access to the framework instance.
|
|
193
206
|
- Can be used to add any functionality to Arachni.
|
|
194
207
|
- Currently available plugins:
|
|
208
|
+
- ReScan -- It uses the AFR report of a previous scan to extract the sitemap in order to avoid a redundant crawl.
|
|
195
209
|
- Passive Proxy -- Analyzes requests and responses between the web app and the browser assisting in AJAX audits, logging-in and/or restricting the scope of the audit
|
|
196
210
|
- Form based AutoLogin
|
|
197
211
|
- Dictionary attacker for HTTP Auth
|
|
@@ -201,11 +215,17 @@ The analyzer can graciously handle badly written HTML code due to a combination
|
|
|
201
215
|
- Healthmap -- Generates sitemap showing the health of each crawled/audited URL
|
|
202
216
|
- Content-types -- Logs content-types of server responses aiding in the identification of interesting (possibly leaked) files
|
|
203
217
|
- WAF (Web Application Firewall) Detector -- Establishes a baseline of normal behavior and uses rDiff analysis to determine if malicious inputs cause any behavioral changes
|
|
204
|
-
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
218
|
+
- AutoThrottle -- Dynamically adjusts HTTP throughput during the scan for maximum bandwidth utilization
|
|
219
|
+
- TimingAttacks -- Provides a notice for issues uncovered by timing attacks when the affected audited pages returned unusually high response times to begin with.</br>
|
|
220
|
+
It also points out the danger of DoS attacks against pages that perform heavy-duty processing.
|
|
221
|
+
- Uniformity -- Reports inputs that are uniformly vulnerable across a number of pages hinting to the lack of a central point of input sanitization.
|
|
222
|
+
- Discovery -- Performs anomaly detection on issues logged by discovery modules and warns of the possibility of false positives where applicable.
|
|
223
|
+
- BeepNotify -- Beeps when the scan finishes.
|
|
224
|
+
- LibNotify -- Uses the libnotify library to send notifications for each discovered issue and a summary at the end of the scan.
|
|
225
|
+
- EmailNotify -- Sends a notification (and optionally a report) over SMTP at the end of the scan.
|
|
226
|
+
- Manual verification -- Flags issues that require manual verification as untrusted in order to reduce the signal-to-noise ratio.
|
|
227
|
+
- Resolver -- Resolves vulnerable hostnames to IP addresses.
|
|
228
|
+
|
|
209
229
|
|
|
210
230
|
### Trainer subsystem
|
|
211
231
|
|
|
@@ -216,51 +236,63 @@ However, this is usually not required since Arachni is aware of which requests a
|
|
|
216
236
|
|
|
217
237
|
Still, this can be an invaluable asset to Fuzzer modules.
|
|
218
238
|
|
|
219
|
-
##
|
|
220
|
-
|
|
221
|
-
### [WebUI](https://github.com/Zapotek/arachni/wiki/Web-user-interface)
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
### [Command line interface](https://github.com/Zapotek/arachni/wiki/Command-line-user-interface)
|
|
225
|
-
|
|
226
|
-
## Installation
|
|
239
|
+
## [Installation](https://github.com/Zapotek/arachni/wiki/Installation)
|
|
227
240
|
|
|
228
241
|
### CDE packages for Linux
|
|
229
242
|
|
|
230
|
-
|
|
243
|
+
Arachni is released as [CDE packages](http://stanford.edu/~pgbovine/cde.html) for your convinience.<br/>
|
|
231
244
|
CDE packages are self contained and thus alleviate the need for Ruby and other dependencies to be installed or root access.<br/>
|
|
232
245
|
You can download the latest CDE package from the [download](https://github.com/Zapotek/arachni/downloads) page and escape the dependency hell.<br/>
|
|
233
|
-
If you decide to go the CDE route you can skip the rest, you're done
|
|
234
|
-
|
|
235
|
-
Due to some incompatibility this release does not have a CDE package yet.
|
|
246
|
+
If you decide to go the CDE route you can skip the rest, you're done.
|
|
236
247
|
|
|
237
248
|
### Gem
|
|
238
249
|
|
|
239
250
|
To install the Gem or work with the source code you'll also need the following system libraries:
|
|
240
251
|
|
|
241
|
-
|
|
252
|
+
sudo apt-get install libxml2-dev libxslt1-dev libcurl4-openssl-dev libsqlite3-dev
|
|
242
253
|
|
|
243
|
-
You will also need to have Ruby 1.9.2 installed *including* the dev package/headers.<br/>
|
|
244
|
-
The prefered ways to accomplish this is by either using [RVM](http://rvm.beginrescueend.com/) or by downloading and compiling the source code for [Ruby
|
|
254
|
+
You will also need to have Ruby 1.9.2 (or later) installed *including* the dev package/headers.<br/>
|
|
255
|
+
The prefered ways to accomplish this is by either using [RVM](http://rvm.beginrescueend.com/) or by downloading and compiling the source code for [Ruby](http://www.ruby-lang.org/en/downloads/) manually.
|
|
245
256
|
|
|
246
257
|
|
|
247
258
|
To install Arachni:
|
|
248
259
|
|
|
249
|
-
|
|
260
|
+
gem install arachni
|
|
250
261
|
|
|
251
262
|
### Source
|
|
252
263
|
|
|
253
264
|
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:
|
|
254
265
|
|
|
255
|
-
|
|
266
|
+
git clone git://github.com/Zapotek/arachni.git
|
|
267
|
+
cd arachni
|
|
268
|
+
rake install
|
|
269
|
+
|
|
270
|
+
|
|
271
|
+
### [Windows -- under Cygwin](https://github.com/Zapotek/arachni/wiki/Installation)
|
|
272
|
+
|
|
273
|
+
|
|
274
|
+
## Usage
|
|
275
|
+
|
|
276
|
+
### [Command line interface](https://github.com/Zapotek/arachni/wiki/Command-line-user-interface)
|
|
277
|
+
|
|
278
|
+
### [WebUI](https://github.com/Zapotek/arachni/wiki/Web-user-interface)
|
|
279
|
+
|
|
280
|
+
### [Starting a Dispatcher](https://github.com/Zapotek/arachni/wiki/RPC-server)
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
## Configuration of <em>extras</em>
|
|
284
|
+
|
|
285
|
+
The <em>extras</em> directory holds components that are considered too specialised, dangerous or in some way unsuitable for utilising without explicit user interaction. <br/>
|
|
286
|
+
This directory was mainly added to distribute modules which can be helpful but should not be put in the default <em>modules</em> directory to prevent them from being
|
|
287
|
+
automatically loaded.
|
|
256
288
|
|
|
289
|
+
Should you want to use these extra components simply move them from the <em>extras</em> folder to their appropriate system directories.
|
|
257
290
|
|
|
258
291
|
## Supported platforms
|
|
259
292
|
|
|
260
|
-
Arachni should work on all *nix and POSIX compliant platforms with Ruby
|
|
261
|
-
and the aforementioned requirements.
|
|
293
|
+
Arachni should work on all *nix and POSIX compliant platforms with Ruby and the aforementioned requirements.
|
|
262
294
|
|
|
263
|
-
Windows users
|
|
295
|
+
Windows users can run Arachni in Cygwin by following these [instructions](https://github.com/Zapotek/arachni/wiki/Installation).
|
|
264
296
|
|
|
265
297
|
## Bug reports/Feature requests
|
|
266
298
|
Please send your feedback using Github's issue system at
|
data/Rakefile
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
=begin
|
|
2
2
|
Arachni
|
|
3
|
-
Copyright (c) 2010-
|
|
3
|
+
Copyright (c) 2010-2012 Tasos "Zapotek" Laskos <tasos.laskos@gmail.com>
|
|
4
4
|
|
|
5
5
|
This is free software; you can copy and distribute and modify
|
|
6
6
|
this program under the term of the GPL v2.0 License
|
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|
=end
|
|
10
10
|
|
|
11
|
+
require File.expand_path( File.dirname( __FILE__ ) ) + '/lib/arachni/version'
|
|
12
|
+
|
|
11
13
|
desc "Generate docs"
|
|
12
14
|
|
|
13
15
|
task :docs do
|
|
@@ -54,11 +56,15 @@ desc "Cleaning report and log files."
|
|
|
54
56
|
task :clean do
|
|
55
57
|
|
|
56
58
|
sh "rm *.afr || true"
|
|
59
|
+
sh "rm *.yaml || true"
|
|
60
|
+
sh "rm *.json || true"
|
|
61
|
+
sh "rm *.marshal || true"
|
|
57
62
|
sh "rm *.gem || true"
|
|
58
|
-
sh "rm logs
|
|
59
|
-
sh "rm lib/ui/web/server/db
|
|
60
|
-
sh "rm lib/ui/web/server/db/
|
|
61
|
-
sh "rm lib/ui/web/server/
|
|
63
|
+
sh "rm logs/*.log || true"
|
|
64
|
+
sh "rm lib/arachni/ui/web/server/db/*.* || true"
|
|
65
|
+
sh "rm lib/arachni/ui/web/server/db/welcomed || true"
|
|
66
|
+
sh "rm lib/arachni/ui/web/server/public/reports/*.* || true"
|
|
67
|
+
sh "rm lib/arachni/ui/web/server/tmp/*.* || true"
|
|
62
68
|
end
|
|
63
69
|
|
|
64
70
|
|
|
@@ -67,9 +73,6 @@ end
|
|
|
67
73
|
#
|
|
68
74
|
desc "Build the arachni gem."
|
|
69
75
|
task :build => [ :clean ] do
|
|
70
|
-
|
|
71
|
-
require File.expand_path( File.dirname( __FILE__ ) ) + '/lib/arachni'
|
|
72
|
-
|
|
73
76
|
sh "gem build arachni.gemspec"
|
|
74
77
|
end
|
|
75
78
|
|
|
@@ -79,9 +82,6 @@ end
|
|
|
79
82
|
#
|
|
80
83
|
desc "Build and install the arachni gem."
|
|
81
84
|
task :install => [ :build ] do
|
|
82
|
-
|
|
83
|
-
require File.expand_path( File.dirname( __FILE__ ) ) + '/lib/arachni'
|
|
84
|
-
|
|
85
85
|
sh "gem install arachni-#{Arachni::VERSION}.gem"
|
|
86
86
|
end
|
|
87
87
|
|
|
@@ -91,8 +91,5 @@ end
|
|
|
91
91
|
#
|
|
92
92
|
desc "Push a new version to Gemcutter"
|
|
93
93
|
task :publish => [ :build ] do
|
|
94
|
-
|
|
95
|
-
require File.expand_path( File.dirname( __FILE__ ) ) + '/lib/arachni'
|
|
96
|
-
|
|
97
94
|
sh "gem push arachni-#{Arachni::VERSION}.gem"
|
|
98
95
|
end
|