Arachni geht in Richtung Veralterung und probiere seinen Nachfolger der nächsten Generation Ecsypno Codename SCNR aus!
| Version | 1.6.1.3 |
|---|---|
| Homepage | http://arachni-scanner.com |
| Blog | http://arachni-scanner.com/blog |
| Github | http://github.com/arachni/arachni |
| Dokumentation | https://github.com/arachni/arachni/wiki |
| Codedokumentation | http://rubydoc.info/github/arachni/arachni |
| Unterstützung | http://support.arachni-scanner.com |
| Autor | Tasos Laskos (@Zap0tek) |
| @Arachniscanner | |
| Copyright | 2010-2022 ECSYPNO |
| Lizenz | Arachni Public Source Lizenz v1.0 - (siehe Lizenzdatei) |
Arachni ist ein Merkmal, modularer Ruby-Framework mit hohem Leistungsbereich, das dazu beigetragen hat, dass Penetrationstester und Administratoren die Sicherheit von Webanwendungen bewerten.
Es ist intelligent, trainiert sich selbst durch Überwachung und Lernen aus dem Verhalten der Webanwendung während des Scanprozesses und kann eine Metaanalyse unter Verwendung einer Reihe von Faktoren durchführen, um die Vertrauenswürdigkeit der Ergebnisse korrekt zu bewerten und falsch-positive Positiven intelligent zu identifizieren (oder zu vermeiden).
Im Gegensatz zu anderen Scannern berücksichtigt es die dynamische Natur von Webanwendungen, kann Änderungen erkennen, die verursacht werden, während sie durch die Pfade der zyklomatischen Komplexität einer Webanwendung fahren, und kann sich entsprechend anpassen. Auf diese Weise können Angriffs-/Input-Vektoren, die ansonsten von Nicht-Menschen nicht nachweisbar wären, nahtlos behandelt werden.
Aufgrund der integrierten Browserumgebung kann es außerdem auch clientseitige Code prüfen und inspizieren sowie hoch komplizierte Webanwendungen unterstützen, die Technologien wie JavaScript, HTML5, DOM-Manipulation und AJAX stark nutzen.
Schließlich ist es vielseitig genug, um viele Anwendungsfälle zu decken, die von einem einfachen Befehlszeilen-Scanner-Dienstprogramm bis hin zu einem globalen Hochleistungsraster von Scannern bis zu einer Ruby-Bibliothek reichen, die Überprüfungen zu ermöglichen, bis hin zu einer Multi-Scan-Webkollaborationsplattform.
HINWEIS : Trotz der Tatsache, dass Arachni hauptsächlich auf die Sicherheit von Webanwendungen abzielt, kann es leicht zum allgemeinen Abkratzen, Datenmingern usw. verwendet werden.
Überprüfen Sie die Entwickler von Check , report und plugin -Entwicklern, um ihre Komponenten einfach und schnell zu erstellen und mit der minimalen Menge an Einschränkungen zu versehen, die ihnen auferlegt werden, während sie die erforderliche Infrastruktur zur Erreichung ihrer Ziele zur Verfügung stellen.
Darüber hinaus werden sie ermutigt, die Ruby -Sprache unter einem einheitlichen Rahmen, der ihre Produktivität steigert, voll auszunutzen, ohne sie zu unterdrücken oder ihre Aufgaben zu erschweren.
Darüber hinaus kann das gleiche Framework als jede andere Ruby -Bibliothek verwendet werden und zur Entwicklung brandneuer Scanner führen oder Ihnen bei der Erstellung von hochgewohnten Scan-/Audit -Szenarien und/oder Script -Scans helfen.
Obwohl einige Teile des Rahmens ziemlich komplex sind, müssen Sie sie niemals direkt umgehen. Aus der Sicht eines Benutzers oder des Komponentenentwicklers erscheint alles einfach und unkompliziert und bietet während der Leistung, Leistung und Flexibilität.
Von dem einfachen Befehlszeilen-Dienstprogramm-Scanner bis zur intuitiven und benutzerfreundlichen Weboberfläche und der Kollaborationsplattform folgt Arachni dem Prinzip der geringsten Überraschung und bietet Ihnen viel Feedback und Anleitung.
Arachni wurde entwickelt, um Sicherheitsprobleme in Webanwendungen automatisch zu erkennen. Alles, was es erwartet, ist die URL der Zielwebsite und nach einer Weile werden Sie ihre Erkenntnisse vorstellen.
autologin , login_script oder proxy Plugins durchgeführt wurde).Arachni umfasst eine integrierte, reale Browserumgebung, um moderne Webanwendungen ausreichend zu verdecken, die Technologien wie HTML5, JavaScript, DOM Manipulation, Ajax usw. verwenden.
Zusätzlich zur Überwachung der Vanilla -Dom- und JavaScript -Umgebungen werden die Browser von Arachni auch in beliebte Frameworks einbezogen, um die protokollierten Daten zu erleichtern, um zu verdauen:
Im Wesentlichen verwandelt dies Arachni in einen DOM- und JavaScript -Debugger, sodass es DOM -Ereignisse und JavaScript -Daten und Ausführungsströme überwachen kann. Infolgedessen kann das System nicht nur DOM-basierte Probleme auslösen und identifizieren, sondern sie wird sie auch mit vielen Informationen über den Status der Seite zu diesem Zeitpunkt begleiten.
Relevante Informationen umfassen:
DOMWindow ).decodeURIComponent() ).Im Wesentlichen haben Sie Zugriff auf ungefähr die gleichen Informationen wie Ihr bevorzugter Debugger (zum Beispiel Firebug), als hätten Sie einen Breakpoint für die richtige Zeit für die Identifizierung eines Problems festgelegt.
Der Browser-Cluster koordiniert die Browseranalyse von Ressourcen und ermöglicht es dem System, Vorgänge auszuführen, die normalerweise in hohem Maße zeitaufwändig sind.
Konfigurationsoptionen umfassen:
Das System kann aufgrund seiner integrierten Browserumgebung eine hervorragende Abdeckung für moderne Webanwendungen bieten. Dies ermöglicht es ihm, mit komplexen Anwendungen zu interagieren, die den clientseitigen Code (wie JavaScript) genauso genutzt werden, genau wie ein Mensch.
Darüber hinaus weiß es auch, welcher Browserstatus die Anwendung programmiert wurde, um sie zu handhaben, und kann sie programmatisch auslösen, um eine vollständige Reihe möglicher Szenarien zu bereiten.
Durch die Überprüfung aller möglichen Seiten und deren Zustände (bei Verwendung des clientseitigen Code) kann Arachni die folgenden Elemente und deren Eingaben extrahieren und prüfen:
<form> gehören, sondern stattdessen über JS -Code zugeordnet sind.<input> Elemente mit zugehörigen DOM -Ereignissen.http://example.com/#/?param=val¶m2=val2http://example.com/#/param/val/param2/val2Arachni ist so konzipiert, dass sie in Ihren Workflow passen und sich problemlos in Ihre vorhandene Infrastruktur integrieren lassen.
Abhängig von der Steuerung, die Sie über den Prozess benötigen, können Sie entweder den REST -Service oder das benutzerdefinierte RPC -Protokoll auswählen.
Beide Ansätze ermöglichen es Ihnen:
MessagePack -Serialisierung für Leistung, Effizienz und einfache Integration mit Drittanbietersystemen.<form> gehören, sondern stattdessen über JS -Code zugeordnet sind.<input> Elemente mit zugehörigen DOM -Ereignissen.GET und POST -HTTP -Methoden prüfen.Arachni ist ein hochmodulares System, das mehrere Komponenten verschiedener Typen verwendet, um seine Aufgaben auszuführen.
Zusätzlich zum Aktivieren oder Deaktivieren der gebündelten Komponenten, um das Verhalten und die Merkmale des Systems nach Bedarf anzupassen, kann die Funktionalität über die Zugabe von benutzerdefinierten Komponenten erweitert werden, um fast allen Bedürfnissen zu entsprechen.
Um die verfügbare Bandbreite effizient zu nutzen, führt Arachni eine rudimentäre Plattform-Fingerabdruck durch und passt den Prüfprozess an die serverseitigen Technologien an, indem nur anwendbare Nutzlasten verwendet werden.
Derzeit können die folgenden Plattformen identifiziert werden:
Der Benutzer hat auch die Möglichkeit, zusätzliche Plattformen (wie ein DB -Server) anzugeben, um das System so effizient wie möglich zu unterstützen. Alternativ kann das Fingerabdruck insgesamt deaktiviert werden.
Schließlich wird Arachni immer vorsichtig sein und alle verfügbaren Nutzlasten senden, wenn es nicht bestimmte Plattformen identifiziert.
Überprüfungen sind Systemkomponenten, die Sicherheitsüberprüfungen und Protokollprobleme durchführen.
Active Checks engagieren die Webanwendung über ihre Eingaben.
sql_injection ) - Fehlerbasierte Erkennung.sql_injection_differential ).sql_injection_timing ).no_sql_injection ) - Fehlerbasierte Sicherheitsanfälligkeitserkennung.no_sql_injection_differential ).csrf ).code_injection ).code_injection_timing ).ldap_injection ).path_traversal ).file_inclusion ).response_splitting ).os_cmd_injection ).os_cmd_injection_timing ).rfi ).unvalidated_redirect ).unvalidated_redirect_dom ).xpath_injection ).xss ).xss_path ).xss_event ).xss_tag ).xss_script_context ).xss_dom ).xss_dom_script_context ).source_code_disclosure )xxe ).Passive Überprüfungen suchen nach der Existenz von Dateien, Ordnern und Signaturen.
allowed_methods ).backup_files ).backup_directories )common_admin_interfaces ).common_directories ).common_files ).http_put ).unencrypted_password_form ).webdav ).xst ).credit_card ).cvs_svn_users ).private_ip ).backdoors ).htaccess_limit ).interesting_responses ).html_objects ).emails ).ssn ).directory_listing ).mixed_resource ).insecure_cookies ).http_only_cookies ).password_autocomplete ).origin_spoof_access_restriction_bypass )form_upload )localstart_asp )cookie_set_for_parent_domain )Strict-Transport-Security für HTTPS-Websites ( hsts ).X-Frame-Options -Header ( x_frame_options ).insecure_cors_policy ).insecure_cross_domain_policy_access )insecure_cross_domain_policy_headers )insecure_client_access_policy ) html ).xml ).text ).json )marshal )yaml )afr )Plugins verleihen dem System modular zusätzliche Funktionen. Auf diese Weise bleibt der Kern schlank und erleichtert es jedem, willkürliche Funktionen hinzuzufügen.
proxy )-Analysiert Anfragen und Antworten zwischen der Web-App und dem Browser, das bei AJAX-Audits unterstützt, anmelden und/oder den Umfang des Audits einschränken.autologin ).login_script ).http_dicattack ).form_dicattack ).cookie_collector ) - Verfolgt von Cookies und erstellt gleichzeitig eine Zeitleiste mit Änderungen.waf_detector ) - stellt eine Grundlinie für normales Verhalten fest und verwendet die RDIFF -Analyse, um festzustellen, ob böswillige Eingaben Verhaltensänderungen verursachen.beep_notify ) - Beeps beim Abschluss des Scans.email_notify ) - Sendet eine Benachrichtigung (und optional einen Bericht) über SMTP am Ende des Scans.vector_feed ) - liest in Vektordaten, aus denen sie Elemente erstellt, die geprüft werden sollen. Kann verwendet werden, um sehr spezielle/enge Audits pro Vektor/Elementbasis durchzuführen. Nützlich für Einheitentests oder andere Dinge.script ) - Lädt und führt ein externes Ruby -Skript unter dem Geltungsbereich eines Plugins aus und führt zum Debuggen und allgemeinem Hackery aus.uncommon_headers ) - Protokolle ungewöhnliche Header.content_types )-Protokolliert Inhaltstypen von Serverantworten, die bei der Identifizierung interessanter (möglicherweise durchgesickerter) Dateien helfen.vector_collector ) - Sammelt Informationen zu allen zu sehenen Eingabempfehlern, die sich innerhalb des Scan -Bereichs befinden.headers_collector ) - Sammelt Antwortheader basierend auf festgelegten Kriterien.exec ) - Ruft externe ausführbare Ausführungsfähigkeiten in verschiedenen Scan -Phasen auf.metrics ) - erfasst Metriken über mehrere Aspekte des Scans und der Webanwendung.restrict_to_dom_state ).webhook_notify ) - sendet eine Webhook -Nutzlast über HTTP am Ende des Scans.rate_limiter ) - Zinsgrenzen HTTP -Anforderungen.page_dump ) - Dumps Seitendaten auf die Festplatte als Yaml. Standard -Plugins werden für jeden Scan ausgeführt und werden unter /plugins/defaults/ platziert.
autothrottle ) - Passt den HTTP -Durchsatz dynamisch während des Scans für die maximale Bandbreitenauslastung an.healthmap ) - Erzeugt Sitemap, die die Gesundheit der einzelnen Krabbungs-/Audited -URL zeigt Plugins unter /plugins/defaults/meta/ Analyse der Scan -Ergebnisse durchführen, um die Vertrauenswürdigkeit zu bestimmen oder einfach Kontextinformationen oder allgemeine Erkenntnisse hinzuzufügen.
timing_attacks ) - gibt eine Mitteilung für Probleme, die durch Timing -Angriffe aufgedeckt wurden, wenn die betroffenen geprüften Seiten zunächst ungewöhnlich hohe Reaktionszeiten zurückgegeben haben. Es weist auch die Gefahr von DOS-Angriffen gegen Seiten auf, die eine Hochleistungsverarbeitung durchführen.discovery ) - führt die Erkennung von Anomalie zu Themen durch, die von Discovery Checks und Warnungen vor der Möglichkeit falscher Positives gegebenenfalls zutreffend sind.uniformity ) - Berichte Eingänge, die auf einer Reihe von Seiten einheitlich anfällig sind, die auf das Fehlen eines zentralen Punktes der Eingabeeinstellung hinweisen.Der Trainer ermöglicht es Arachni, aus dem Scan zu lernen, das er ausführt und dieses Wissen für die Dauer des Audits im laufenden Fliegen einbezieht.
Überprüfungen können den Rahmen individuell erzwingen, aus den HTTP -Antworten zu lernen, die sie auslösen werden.
Dies ist jedoch normalerweise nicht erforderlich, da Arachni bewusst ist, welche Anfragen eher neue Elemente aufdecken oder Vektoren angreifen und sich entsprechend anpassen werden.
Dennoch kann dies ein unschätzbarer Vorteil für Fuzzer -Checks sein.
Sie können rake spec ausführen, um alle Spezifikationen auszuführen, oder Sie können sie mit Folgendem selektiv ausführen:
rake spec:core # for the core libraries
rake spec:checks # for the checks
rake spec:plugins # for the plugins
rake spec:reports # for the reports
rake spec:path_extractors # for the path extractors
Bitte seien Sie gewarnt , die Kernspezifikationen erfordern ein Tier einer Maschine, da die Gitter-/Mehrinstanz-Merkmale des Systems getestet werden müssen.
HINWEIS : Die Überprüfungsspezifikationen dauern aufgrund der Timing-Angriffs-Tests viele Stunden.
Senden Sie Fehler mit GitHub -Problemen und erhalten Sie Unterstützung über das Support -Portal.
(Bevor Sie mit Arbeit beginnen, lesen Sie bitte die Anweisungen für die Arbeit mit dem Quellcode.)
Wir nehmen gerne Hilfe von anderen Code-Monkeys an. Dies sind die Schritte, die Sie ausführen müssen, um Code beizutragen:
git checkout -b <feature-name> experimental ).rake spec:core für die Kernlibs oder rake spec für alles).Arachni Public Source Lizenz v1.0 - Weitere Informationen finden Sie in der Lizenzdatei .