Ich habe vor einiger Zeit schon über , aber etwas spärlich und chaotisch geschrieben. Danach entschied ich mich, die Liste der Werkzeuge in der Übersicht zu erweitern, der Artikelstruktur hinzuzufügen, die Kritik zu berücksichtigen (vielen Dank für die Ratschläge) und sie zu einem Wettbewerb bei SekLab einzureichen (und veröffentlicht , aber aus allen verständlichen Gründen hat sie niemand gesehen). Der Wettbewerb ist beendet, die Ergebnisse wurden bekanntgegeben und ich kann sie mit reinem Gewissen (den Artikel) auf Habr veröffentlichen.
Kostenlose Werkzeuge für Pentester von Webanwendungen
In diesem Artikel werde ich über die bekanntesten Werkzeuge zum Pentesting (Penetrationstests) von Webanwendungen nach der Strategie des „Black Box“ berichten.
Dafür werden wir die Hilfsprogramme betrachten, die bei dieser Art von Tests helfen. Wir werden folgende Produktkategorien betrachten:
- Netzwerkscanner
- Scanner für Schwachstellen in Web-Skripten
- Exploitation
- Automatisierung von Injektionen
- Debugger (Sniffer, lokale Proxys usw.)
Einige Produkte haben eine universelle „Natur“, deshalb werde ich sie der Kategorie zuordnen, in der sie dieobesten Ergebnisse erzielen (subjektive Meinung).
Netzwerkscanner.
Die Hauptaufgabe besteht darin, verfügbare Netzwerkdienste zu erkennen, deren Versionen zu bestimmen, das Betriebssystem usw.
Nmap
ist ein kostenloses Open-Source-Tool zur Analyse von Netzwerken und zur Prüfung der Sicherheit von Systemen. Die leidenschaftlichen Gegner der Konsole können Zenmap verwenden, das ist die GUI für Nmap.
Es ist nicht nur ein „intelligenter“ Scanner, sondern ein ernsthaft erweiterbares Werkzeug (von den „ungewöhnlichen Funktionen“ – das Vorhandensein eines Scripts zur Prüfung eines Hosts auf den Wurm "" (wurde erwähnt ). Ein typisches Einsatzbeispiel:
nmap -A -T4 localhost
-A zur Erkennung der Betriebssystemversion, Scannen mit Skripten und Traceroute
-T4 zur Einstellung der Zeitverwaltung (mehr – schneller, von 0 bis 5)
localhost – Zielhost
Etwas härteres?
nmap -sS -sU -T4 -A -v -PE -PP -PS21,22,23,25,80,113,31339 -PA80,113,443,10042 -PO --script all localhost
Das ist eine Auswahl von Optionen aus dem Profil „slow comprehensive scan“ in Zenmap. Es dauert ziemlich lange, liefert aber letztendlich genauere Informationen, die über das Zielsystem erhältlich sind. , falls Sie tiefer eintauchen möchten, sowie ich empfehle die Übersetzung des Artikels .
Nmap wurde von Zeitschriften und Gemeinschaften wie Linux Journal, Info World, LinuxQuestions.Org und Codetalker Digest als „Sicherheitsprodukt des Jahres“ ausgezeichnet.
Ein interessanter Punkt ist, dass Nmap in den Filmen „Die Matrix: Reloaded“, „Stirb langsam 4“, „Das Bourne Ultimatum“, „Hotabych“ und .
IP-Tools
— eine Art Sammlung verschiedener Netzwerkinstrumente, die mit einer GUI geliefert wird und sich an Windows-Nutzer richtet.
Ein Portscanner, der gemeinsame Ressourcen (freigegebene Drucker/Ordner), WhoIs/Finger/Lookup, Telnet-Client und vieles mehr umfasst. Einfach ein praktisches, schnelles, funktionales Werkzeug.
Es macht wenig Sinn, die anderen Produkte zu betrachten, da es viele Tools in diesem Bereich gibt, die alle ein ähnliches Funktionsprinzip haben. Dennoch bleibt nmap das am häufigsten verwendete.
Scanner für Schwachstellen in Web-Skripten
Es wird versucht, beliebte Schwachstellen (SQL-Injection, XSS, LFI/RFI usw.) oder Fehler (nicht gelöschte temporäre Dateien, Verzeichnisindizierung usw.) zu finden.
Acunetix Web Vulnerability Scanner
— laut dem Link handelt es sich um einen XSS-Scanner, aber das ist nicht ganz korrekt. Die kostenlose Version, die über den Link verfügbar ist, bietet eine recht große Funktionalität. Normalerweise ist die Person, die diesen Scanner zum ersten Mal ausführt und zum ersten Mal einen Bericht über ihre Ressource erhält, ein wenig schockiert, und Sie werden verstehen, warum, wenn Sie es tun. Es ist ein sehr mächtiges Produkt zur Analyse aller möglichen Schwachstellen auf der Website und funktioniert nicht nur mit den uns vertrauten PHP-Seiten, sondern auch in anderen Sprachen (auch wenn die Sprachunterschiede nicht entscheidend sind). Es macht wenig Sinn, die Anleitung zu beschreiben, da der Scanner einfach die Aktionen des Benutzers „erfasst“. Etwas Ähnliches wie „Weiter, Weiter, Weiter, Fertig“ in einer typischen Installation irgendeiner Software.
Nikto
ist ein Open Source (GPL) Webscanner. Er befreit von routinemäßigen manuellen Arbeiten. Er sucht auf der Zielseite nach nicht gelöschten Skripten (wie test.php, index_.php usw.), Verwaltungswerkzeugen für Datenbanken (/phpmyadmin/, /pma und ähnliche) usw., das heißt, er überprüft die Ressource auf die häufigsten Fehler, die normalerweise durch menschliche Faktoren entstanden sind.
Außerdem, wenn er ein beliebtes Skript findet, überprüft er es auf vorhandene Exploits (die in der Datenbank gelistet sind).
Er informiert über verfügbare „unerwünschte“ Methoden, wie PUT und TRACE.
Und so weiter. Sehr praktisch, wenn Sie als Auditor arbeiten und jeden Tag Website-Analysen durchführen.
Einen Nachteil möchte ich anmerken: die hohe Rate an Fehlalarmen. Wenn Ihre Website beispielsweise anstelle eines 404-Fehlers (wenn dieser auftreten sollte) ständig die Homepage ausgibt, wird der Scanner sagen, dass auf Ihrer Website alle Skripte und alle Schwachstellen aus seiner Datenbank vorhanden sind. In der Praxis kommt das nicht so häufig vor, aber faktisch hängt viel von der Struktur Ihrer Website ab.
Klassische Verwendung:
.\/nikto.pl -host localhost
Wenn eine Authentifizierung auf der Website erforderlich ist, kann im Datei nikto.conf das Cookie in der Variable STATIC-COOKIE gesetzt werden.
Wikto
— Nikto unter Windows, aber mit einigen Ergänzungen, wie „unscharfer“ Logik zur Fehlerüberprüfung im Code, Verwendung von GHDB, Erhalt von Links und Verzeichnissen der Ressource und Echtzeitüberwachung von HTTP-Anfragen\/Antworten. Wikto ist in C# geschrieben und benötigt das .NET-Framework.
skipfish
— ein Web-Sicherheits-Scanner von (bekannt als lcamtuf). In C geschrieben, plattformübergreifend (für Windows benötigt man Cygwin). Er durchläuft die gesamte Website rekursiv (und sehr lange, etwa 20–40 Stunden, obwohl es zuletzt 96 Stunden zu mir arbeitete) und findet verschiedene Sicherheitslücken. Er erzeugt auch sehr viel Traffic (mehrere GB eingehend\/ausgehend). Aber alle Mittel sind recht, besonders wenn genügend Zeit und Ressourcen vorhanden sind.
Typische Verwendung:
.\/skipfish -o \/home\/reports www.example.com
Im Ordner „reports“ wird ein Bericht im HTML-Format erstellt, .
w3af 
— Web Application Attack and Audit Framework, ein Open-Source-Scanner für Web-Sicherheitslücken. Es hat eine GUI, kann aber auch über die Konsole verwendet werden. Genau genommen ist es ein Framework mit .
Man kann lange über seine Vorteile sprechen, besser man probiert es aus :]
Die typische Arbeit damit besteht darin, ein Profil auszuwählen, das Ziel anzugeben und es einfach zu starten.
Mantra Security Framework
ist ein Traum, der wahr geworden ist. Eine Sammlung kostenloser und offener Sicherheitswerkzeuge, die in den Webbrowser integriert sind.
Sie sind sehr nützlich bei der Prüfung von Webanwendungen in allen Phasen.
Die Verwendung beschränkt sich auf die Installation und den Start des Browsers.
Tatsächlich gibt es in dieser Kategorie sehr viele Tools und es ist ziemlich schwierig, eine spezifische Liste herauszustellen. Meistens bestimmt jeder Pentester selbst die benötigten Werkzeuge.
Exploitation
Für eine automatisierte und benutzerfreundlichere Nutzung von Schwachstellen in Software und Skripten werden Exploits geschrieben, die lediglich Parameter übergeben müssen, um die Sicherheitslücke auszunutzen. Es gibt auch Produkte, die das manuelle Suchen nach Exploits überflüssig machen und diese "on the fly" anwenden. Genau um diese Kategorie wird es jetzt gehen.
Metasploit Framework 
— ein echter Monster in unserem Geschäft. Es kann so viel, dass die Anleitung mehrere Artikel umfassen könnte. Wir werden den automatisierten Exploit (nmap + metasploit) betrachten. Die Idee ist, dass Nmap den benötigten Port analysiert, den Dienst einrichtet und Metasploit versucht, Exploits basierend auf dem Diensttyp (ftp, ssh usw.) anzuwenden. Anstelle einer schriftlichen Anleitung füge ich ein Video ein, das ziemlich populär zum Thema autopwn ist.

Man kann einfach die Arbeit des benötigten Exploits automatisieren. Zum Beispiel:
msf > verwende auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > set RHOST [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > ausführen
Tatsächlich sind die Möglichkeiten dieses Frameworks sehr umfangreich, daher, wenn Sie tiefer einsteigen möchten, klicken Sie auf
Armitage
— eine OVA im Cyberpunk-GUI-Stil für Metasploit. Visualisiert das Ziel, empfiehlt Exploits und bietet erweiterte Möglichkeiten dieses Frameworks. Im Grunde für diejenigen, die es mögen, wenn alles schön und eindrucksvoll aussieht.
Screencast:

Tenable Nessus®
— kann sehr viel, aber wir brauchen nur eine seiner Funktionen – die Bestimmung, für welche Dienste Exploits vorhanden sind. Die kostenlose Version des Produkts ist "home only".
Wenn wir einen Kommentar zu einem Commit schreiben (unabhängig davon, welches Tool wir dabei für die Arbeit mit Git verwenden), können wir den Namen der Aufgaben textuell (ohne Anführungszeichen oder spezielle Symbole wie @) hinzufügen.
- Heruntergeladen (für Ihr System), installiert, registriert (der Schlüssel kommt per E-Mail).
- Server gestartet, Benutzer im Nessus Server Manager hinzugefügt (Schaltfläche Benutzer verwalten)
- Gehen Sie zu der Adresse
https://localhost:8834/
und erhalten Sie den Flash-Client im Browser
- Scans -> Hinzufügen -> Füllen Sie die Felder aus (wählen Sie das passende Scan-Profil) und klicken Sie auf Scannen
Nach einiger Zeit wird der Bericht über den Scan im Reiter Berichte erscheinen.
Um die praktische Verwundbarkeit von Diensten gegenüber Exploits zu überprüfen, kann das oben beschriebene Metasploit Framework verwendet oder versucht werden, einen Exploit zu finden (zum Beispiel auf , , usw.) und ihn manuell gegen Ihr System
IMHO: zu umständlich. Ich habe es als eines der führenden Produkte in diesem Bereich der Softwareindustrie erwähnt.
Automatisierung von Injektionen
Viele Web-App-Sicherheits-Scanner führen die Suche nach Injektionen durch, aber sie sind letzten Endes nur allgemeine Scanner. Es gibt jedoch spezielle Tools, die sich gezielt mit der Suche und Ausnutzung von Injektionen beschäftigen. Darum wird es hier gehen.
sqlmap
— Open-Source-Tool zur Suche und Ausnutzung von SQL-Injektionen. Unterstützt Datenbankserver wie: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Die typische Nutzung beschränkt sich auf die Zeile:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Es gibt genügend Handbücher, auch in russischer Sprache. Die Software erleichtert die Arbeit von Pen-Testern in diesem Bereich erheblich.
Ich füge eine offizielle Video-Demonstration hinzu:

bsqlbf-v2
— Perl-Skript, Brute-Forcer für "blinde" SQL-Injektionen. Funktioniert sowohl mit Ganzzahlen in URLs als auch mit Zeichenfolgen.
Unterstützt Datenbanken:
- MS-SQL
- MySQL
- PostgreSQL
- Oracle
Beispiel für die Verwendung:
.\/bsqlbf-v2-3.pl -url www.somehost.com\/blah.php?u=5 -blind u -sql "select table_name from imformation_schema.tables limit 1 offset 0" -database 1 -type 1
-url — Link mit Parametern
-blind u — Parameter für die Injektion (standardmäßig wird der letzte Parameter aus der URL verwendet)
-sql "select table_name from information_schema.tables limit 1 offset 0" — unsere willkürliche Abfrage an die Datenbank
-database 1 — Datenbankserver: MSSQL
-type 1 — Angriffsart, "blinde" Injektion, basierend auf True- und Error-Antworten (z.B. syntaktische Fehler)
Debugger
Diese Tools werden hauptsächlich von Entwicklern bei Problemen mit der Ausführung ihres Codes verwendet. Aber auch im Pen-Testing sind sie nützlich, da man relevante Daten "on the fly" manipulieren, analysieren kann, was als Antwort auf unsere Eingabeparameter zurückkommt (zum Beispiel beim Fuzzing) usw.
Burp Suite
— eine Sammlung von Tools, die bei Penetrationstests helfen. Es gibt im Netz in russischer Sprache von Raz0r (aus dem Jahr 2008).
Die kostenlose Version umfasst:
- Burp Proxy — lokaler Proxy, der es ermöglicht, bereits formulierte Anfragen vom Browser zu ändern
- Burp Spider — Crawler, der vorhandene Dateien und Verzeichnisse sucht
- Burp Repeater — manuelles Senden von HTTP-Anfragen
- Burp Sequencer — Analyse von Zufallswerten in Formularen
- Burp Decoder — Standard-Coder-Decoders (html, base64, hex usw.), von denen es tausende gibt und die man schnell in einer Programmiersprache schreiben kann
- Burp Comparer — Komponente zum Vergleichen von Strings
Im Grunde löst dieses Paket nahezu alle Aufgaben, die mit diesem Bereich zu tun haben.
Fiddler
Fiddler ist ein Debugging-Proxy, der gesamten HTTP(S)-Traffic protokolliert. Er ermöglicht es, diesen Traffic zu untersuchen, Breakpoints zu setzen und mit eingehenden oder ausgehenden Daten zu "spielen".
Es gibt auch , ein Monster und andere, die Wahl liegt beim Benutzer.
Fazit
Natürlich hat jeder Pentester sein eigenes Arsenal und seine eigene Tool-Sammlung, da es einfach zahlreiche gibt. Ich habe versucht, einige der nützlichsten und beliebtesten aufzulisten. Um sicherzustellen, dass auch Interessierte andere Tools in diesem Bereich kennenlernen können, werde ich unten Links angeben.
Verschiedene Ranglisten / Listen von Scannern und Tools
- .
Linux-Distributionen, die bereits viele verschiedene Tools für Pentesting enthalten
upd: auf Russisch von Team "Hack4Sec" (hinzugefügt )
P.S. XSpider sollte nicht unerwähnt bleiben. Es nimmt nicht an der Bewertung teil, obwohl es bedingt kostenlos ist (ich habe es erfahren, als ich den Artikel an SekLab geschickt habe, eigentlich auch deshalb (wegen fehlender Kenntnisse und der Tatsache, dass ich nicht über die letzte Version 7.8 verfüge) und habe es nicht in den Artikel aufgenommen). Eine Prüfung war eigentlich geplant (ich habe anspruchsvolle Tests dafür vorbereitet), aber ich weiß nicht, ob die Welt es sehen wird.
P.P.S. Einige Materialien aus dem Artikel werden direkt in der bevorstehenden Präsentation auf 2012 in der QA-Sektion verwendet, in der auch hier nicht erwähnte Werkzeuge (kostenlos, natürlich) behandelt werden, sowie der Algorithmus erläutert wird, in welcher Reihenfolge was verwendet werden sollte, welches Ergebnis zu erwarten ist, welche Konfigurationen zu verwenden sind und verschiedene Tipps und Tricks bei der Arbeit (ich denke fast jeden Tag über die Präsentation nach und werde versuchen, alles Beste zu dem Thema zu erzählen)
Übrigens gab es zu diesem Artikel eine Veranstaltung bei den Open InfoSec Days (, ), man kann Karawanen überfallen einen Blick darauf werfen .
Quelle: habr.com
