Vor einiger Zeit habe ich darüber geschrieben , aber etwas dürftig und chaotisch. Anschließend habe ich beschlossen, die Liste der Tools im Testbericht zu erweitern, den Artikel zu strukturieren und Kritik zu berücksichtigen (vielen Dank für Ratschläge) und schickte es an einen Wettbewerb auf SecLab (und veröffentlichte es). , aber aus offensichtlichen Gründen hat sie niemand gesehen). Der Wettbewerb ist vorbei, die Ergebnisse stehen fest und ich kann ihn (den Artikel) guten Gewissens auf Habré veröffentlichen.
Kostenlose Pentester-Tools für Webanwendungen
In diesem Artikel werde ich über die beliebtesten Tools zum Pentesting (Penetrationstests) von Webanwendungen mit der „Black-Box“-Strategie sprechen.
Dazu schauen wir uns Dienstprogramme an, die bei dieser Art von Tests hilfreich sind. Betrachten Sie die folgenden Produktkategorien:
- Netzwerkscanner
- Scanner für Web-Skript-Verletzungen
- Ausbeutung
- Automatisierung von Injektionen
- Debugger (Sniffer, lokale Proxys usw.)
Einige Produkte haben einen universellen „Charakter“, daher werde ich sie in die Kategorie einordnen, in der sie einen habenоbesseres Ergebnis (subjektive Meinung).
Netzwerkscanner.
Die Hauptaufgabe besteht darin, verfügbare Netzwerkdienste zu ermitteln, ihre Versionen zu installieren, das Betriebssystem zu bestimmen usw.
Nmap
ist ein kostenloses Open-Source-Dienstprogramm zur Netzwerkanalyse und Systemsicherheitsprüfung. Gewalttätige Gegner der Konsole können Zenmap verwenden, eine GUI für Nmap.
Dabei handelt es sich nicht nur um einen „intelligenten“ Scanner, sondern um ein ernsthaft erweiterbares Tool (eines der „ungewöhnlichen Features“ ist das Vorhandensein eines Skripts zum Überprüfen eines Knotens auf das Vorhandensein eines Wurms)." (erwähnt ). Typisches Anwendungsbeispiel:
nmap -A -T4 localhost
-A zur Erkennung der Betriebssystemversion, zum Scannen und Nachverfolgen von Skripten
-T4 Zeitsteuerungseinstellung (mehr ist 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
Hierbei handelt es sich um eine Reihe von Optionen aus dem Profil „Langsamer umfassender Scan“ in Zenmap. Die Fertigstellung nimmt recht viel Zeit in Anspruch, liefert aber letztendlich detailliertere Informationen, die über das Zielsystem herausgefunden werden können. , wenn Sie sich entscheiden, tiefer zu gehen, empfehle ich Ihnen auch, den Artikel zu übersetzen .
Nmap wurde von Fachzeitschriften und Organisationen wie [Name der Organisation/Organisation] als „Sicherheitsprodukt des Jahres“ ausgezeichnet. Linux Zeitschrift, Infowelt, LinuxQuestions.Org und Codetalker Digest.
Ein interessanter Punkt: Nmap ist in den Filmen „The Matrix Reloaded“, „Stirb langsam 4“, „Das Bourne Ultimatum“, „Hottabych“ und zu sehen .
IP-Tools
- eine Art Satz verschiedener Netzwerkdienstprogramme mit einer grafischen Benutzeroberfläche, die „speziell“ für Windows-Benutzer ist.
Port-Scanner, gemeinsame Ressourcen (gemeinsame Drucker/Ordner), WhoIs/Finger/Lookup, Telnet-Client und vieles mehr. Einfach ein praktisches, schnelles und funktionelles Werkzeug.
Es macht keinen besonderen Sinn, andere Produkte in Betracht zu ziehen, da es in diesem Bereich viele Dienstprogramme gibt und alle über ähnliche Funktionsprinzipien und Funktionen verfügen. Dennoch bleibt nmap das am häufigsten verwendete.
Scanner für Web-Skript-Verletzungen
Es wird versucht, beliebte Schwachstellen (SQL-Inj, XSS, LFI/RFI usw.) oder Fehler (nicht gelöschte temporäre Dateien, Verzeichnisindizierung usw.) zu finden.
Acunetix Web-Sicherheitslücken-Scanner
— Aus dem Link können Sie ersehen, dass es sich um einen XSS-Scanner handelt, aber das stimmt nicht ganz. Die hier verfügbare kostenlose Version bietet einiges an Funktionalität. Normalerweise verspürt die Person, die diesen Scanner zum ersten Mal ausführt und zum ersten Mal einen Bericht über ihre Ressource erhält, einen leichten Schock, und wenn Sie dies tun, werden Sie verstehen, warum. Dies ist ein sehr leistungsfähiges Produkt zur Analyse aller Arten von Schwachstellen auf einer Website und funktioniert nicht nur mit den üblichen PHP-Websites, sondern auch in anderen Sprachen (obwohl der Unterschied in der Sprache kein Indikator ist). Es macht keinen besonderen Sinn, die Anweisungen zu beschreiben, da der Scanner lediglich die Aktionen des Benutzers „aufnimmt“. Etwas Ähnliches wie „next, next, next, ready“ in einer typischen Softwareinstallation.
Niemand
Dies ist ein Open-Source-Webcrawler (GPL). Eliminiert routinemäßige manuelle Arbeiten. Durchsucht die Zielseite nach nicht gelöschten Skripten (einige test.php, index_.php usw.), Datenbankverwaltungstools (/phpmyadmin/, /pma und dergleichen) usw., d. h. überprüft die Ressource auf die häufigsten Fehler in der Regel durch menschliche Faktoren verursacht.
Wenn es außerdem ein beliebtes Skript findet, prüft es es auf veröffentlichte Exploits (die sich in der Datenbank befinden).
Meldet verfügbare „unerwünschte“ Methoden wie PUT und TRACE
Und so weiter. Es ist sehr praktisch, wenn Sie als Auditor arbeiten und täglich Websites analysieren.
Von den Minuspunkten möchte ich den hohen Prozentsatz an Fehlalarmen hervorheben. Wenn Ihre Site beispielsweise immer den Hauptfehler anstelle eines 404-Fehlers ausgibt (wenn dieser auftreten sollte), sagt der Scanner, dass Ihre Site alle Skripte und alle Schwachstellen aus ihrer Datenbank enthält. In der Praxis kommt das nicht so oft vor, aber tatsächlich hängt viel von der Struktur Ihrer Website ab.
Klassische Verwendung:
./nikto.pl -host localhost
Wenn Sie auf der Site autorisiert werden müssen, können Sie in der Datei nikto.conf ein Cookie setzen, die Variable STATIC-COOKIE.
Wikto
- Nikto unter WindowsWikto bietet einige zusätzliche Funktionen, wie beispielsweise Fuzzy-Logik zur Fehlerprüfung, die Nutzung von GHDB, das Abrufen von Ressourcenlinks und -ordnern sowie die Echtzeitüberwachung von HTTP-Anfragen und -Antworten. Wikto ist in C# geschrieben und benötigt das .NET Framework.
skipfish
- Web-Schwachstellenscanner von (bekannt als lcamtuf). Geschrieben in C, plattformübergreifend (Win erfordert Cygwin). Rekursiv (und zwar sehr lange, etwa 20 bis 40 Stunden, obwohl es bei mir zuletzt 96 Stunden funktionierte) durchsucht es die gesamte Website und findet alle möglichen Sicherheitslücken. Es erzeugt auch viel Verkehr (mehrere GB eingehend/ausgehend). Aber alle Mittel sind gut, besonders wenn Sie Zeit und Ressourcen haben.
Typische Verwendung:
./skipfish -o /home/reports www.example.com
Im Ordner „Berichte“ befindet sich ein Bericht im HTML-Format. .
w3af 
— Web Application Attack and Audit Framework, Open-Source-Scanner für Web-Schwachstellen. Es verfügt über eine grafische Benutzeroberfläche, aber Sie können von der Konsole aus arbeiten. Genauer gesagt handelt es sich um ein Framework mit .
Über seine Vorteile können wir lange reden, es ist besser, es auszuprobieren :]
Die typische Arbeit damit beschränkt sich darauf, ein Profil auszuwählen, ein Ziel anzugeben und es tatsächlich zu starten.
Mantra-Sicherheits-Framework
ist ein Traum, der wahr geworden ist. Eine Sammlung kostenloser und offener Informationssicherheitstools, die in einen Webbrowser integriert sind.
Sehr nützlich beim Testen von Webanwendungen in allen Phasen.
Die Nutzung beschränkt sich auf die Installation und den Start des Browsers.
Tatsächlich gibt es in dieser Kategorie viele Dienstprogramme und es ist ziemlich schwierig, eine bestimmte Liste daraus auszuwählen. Meistens bestimmt jeder Pentester selbst, welche Tools er benötigt.
Ausbeutung
Zur automatisierten und komfortableren Ausnutzung von Schwachstellen werden Exploits in Software und Skripte geschrieben, denen lediglich Parameter übergeben werden müssen, um die Sicherheitslücke auszunutzen. Und es gibt Produkte, die die manuelle Suche nach Exploits überflüssig machen und diese sogar spontan anwenden. Diese Kategorie wird nun besprochen.
Metasploit-Framework 
- eine Art Monster in unserem Geschäft. Er kann so viel, dass die Anleitung mehrere Artikel umfasst. Wir werden uns die automatische Ausnutzung (nmap + metasploit) ansehen. Das Fazit lautet: Nmap analysiert den von uns benötigten Port, installiert den Dienst und Metasploit versucht, basierend auf der Dienstklasse (FTP, SSH usw.) Exploits darauf anzuwenden. Anstelle einer Textanleitung werde ich ein Video einfügen, das zum Thema Autopwn sehr beliebt ist

Oder wir können einfach den Betrieb des benötigten Exploits automatisieren. Z.B:
msf > use auxiliary/admin/cisco/vpn_3000_ftp_bypass
msf auxiliary(vpn_3000_ftp_bypass) > set RHOST [TARGET IP]
msf auxiliary(vpn_3000_ftp_bypass) > run
Tatsächlich sind die Fähigkeiten dieses Frameworks sehr umfangreich. Wenn Sie sich also dazu entschließen, tiefer zu gehen, gehen Sie zu
Armitage
— OVA der Cyberpunk-Genre-GUI für Metasploit. Visualisiert das Ziel, empfiehlt Exploits und stellt erweiterte Funktionen des Frameworks bereit. Im Allgemeinen für diejenigen, die möchten, dass alles schön und eindrucksvoll aussieht.
Screencast:

Tenable Nessus®
- kann viele Dinge tun, aber eine der Fähigkeiten, die wir von ihm benötigen, ist die Bestimmung, welche Dienste Exploits haben. Kostenlose Version des Produkts „Nur für Zuhause“
Использование:
- Heruntergeladen (für Ihr System), installiert, registriert (der Schlüssel wird an Ihre E-Mail gesendet).
- Server gestartet, Benutzer zum Nessus Server Manager hinzugefügt (Schaltfläche „Benutzer verwalten“)
- Wir gehen zur Adresse
https://localhost:8834/
und holen Sie sich den Flash-Client im Browser
- Scans -> Hinzufügen -> Füllen Sie die Felder aus (indem Sie das für uns geeignete Scanprofil auswählen) und klicken Sie auf Scannen
Nach einiger Zeit wird der Scanbericht auf der Registerkarte „Berichte“ angezeigt
Um die praktische Anfälligkeit von Diensten für Exploits zu überprüfen, können Sie das oben beschriebene Metasploit Framework verwenden oder versuchen, einen Exploit zu finden (z. B. auf , , usw.) und verwenden Sie es manuell dagegen sein System
IMHO: zu sperrig. Ich habe ihn zu einem der führenden Unternehmen in dieser Richtung der Softwarebranche gemacht.
Automatisierung von Injektionen
Viele der Web-App-Sec-Scanner suchen nach Injektionen, sind aber immer noch nur allgemeine Scanner. Und es gibt Dienstprogramme, die sich speziell mit der Suche und Nutzung von Injektionen befassen. Wir werden jetzt darüber sprechen.
sqlmap
– Open-Source-Dienstprogramm zum Suchen und Ausnutzen von SQL-Injections. Unterstützt Datenbankserver wie: MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, SQLite, Firebird, Sybase, SAP MaxDB.
Die typische Verwendung läuft auf die folgende Zeile hinaus:
python sqlmap.py -u "http://example.com/index.php?action=news&id=1"
Es gibt genügend Handbücher, auch auf Russisch. Die Software erleichtert die Arbeit eines Pentesters in diesem Bereich erheblich.
Ich füge eine offizielle Videodemonstration hinzu:

bsqlbf-v2
– ein Perl-Skript, ein Brute Forcer für „blinde“ SQL-Injektionen. Es funktioniert sowohl mit ganzzahligen Werten in der URL als auch mit Zeichenfolgenwerten.
Unterstützte Datenbank:
- MS-SQL
- MySQL
- PostgreSQL
- Oracle
Anwendungsbeispiel:
./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 — Verknüpfung mit Parametern
-blind du — Parameter für die Injektion (standardmäßig wird der letzte aus der Adressleiste übernommen)
-sql „Tabellenname aus imformation_schema.tables auswählen, Limit 1 Offset 0“ — unsere willkürliche Anfrage an die Datenbank
-Datenbank 1 — Datenbankserver: MSSQL
-Typ 1 – Art des Angriffs, „blinde“ Injektion, basierend auf True- und Error-Antworten (z. B. Syntaxfehler).
Debugger
Diese Tools werden hauptsächlich von Entwicklern verwendet, wenn sie Probleme mit den Ergebnissen der Ausführung ihres Codes haben. Aber diese Richtung ist auch für Pentests nützlich, wenn wir die benötigten Daten im Handumdrehen ersetzen, analysieren können, was als Reaktion auf unsere Eingabeparameter kommt (z. B. beim Fuzzing) usw.
Burp Suite
– eine Reihe von Dienstprogrammen, die bei Penetrationstests helfen. Es steht im Internet auf Russisch von Raz0r (allerdings für 2008).
Die kostenlose Version beinhaltet:
- Burp Proxy ist ein lokaler Proxy, der es Ihnen ermöglicht, bereits generierte Anfragen vom Browser zu ändern
- Burp Spider – Spinne, sucht nach vorhandenen Dateien und Verzeichnissen
- Burp Repeater – manuelles Senden von HTTP-Anfragen
- Burp Sequencer – Analyse von Zufallswerten in Formularen
- Burp Decoder ist ein Standard-Encoder-Decoder (HTML, Base64, Hex usw.), von dem es Tausende gibt und der schnell in jeder Sprache geschrieben werden kann
- Burp Comparer – String-Vergleichskomponente
Im Prinzip löst dieses Paket nahezu alle Probleme in diesem Bereich.
Fiedler
— Fiddler ist ein Debugging-Proxy, der den gesamten HTTP(S)-Verkehr protokolliert. Ermöglicht Ihnen, diesen Datenverkehr zu untersuchen, Haltepunkte festzulegen und mit ein- oder ausgehenden Daten zu „spielen“.
Es gibt auch , Monster und andere, die Wahl liegt beim Benutzer.
Fazit
Natürlich hat jeder Pentester sein eigenes Arsenal und seine eigenen Dienstprogramme, da es einfach viele davon gibt. Ich habe versucht, einige der bequemsten und beliebtesten aufzulisten. Damit sich aber jeder mit anderen Dienstprogrammen in dieser Richtung vertraut machen kann, werde ich unten Links bereitstellen.
Verschiedene Top-/Listen von Scannern und Dienstprogrammen
- .
Verteilungen Linux, die bereits eine Reihe verschiedener Hilfsprogramme für Penetrationstests enthalten
upd: auf Russisch vom Team „Hack4Sec“ (hinzugefügt )
PS Wir können über XSpider nicht schweigen. Beteiligt sich nicht an der Rezension, obwohl es sich um Shareware handelt (ich habe es herausgefunden, als ich den Artikel an SecLab gesendet habe, eigentlich aus diesem Grund (kein Wissen und Fehlen der neuesten Version 7.8) und habe es nicht in den Artikel aufgenommen). Und theoretisch war eine Rezension davon geplant (ich habe dafür schwierige Tests vorbereitet), aber ich weiß nicht, ob die Welt es sehen wird.
PPS Einiges Material aus dem Artikel wird für den vorgesehenen Zweck in einem kommenden Bericht unter verwendet 2012 im QA-Bereich, der hier nicht erwähnte Tools enthält (natürlich kostenlos), sowie den Algorithmus, in welcher Reihenfolge was verwendet werden soll, welches Ergebnis zu erwarten ist, welche Konfigurationen zu verwenden sind und alle möglichen Tipps und Tricks wann arbeite (ich denke fast jeden Tag an den Bericht, ich werde versuchen, Ihnen das Beste zum Thema Thema zu erzählen)
Zu diesem Artikel gab es übrigens eine Lektion unter Offene InfoSec-Tage (, ), kann Kühe ausrauben Schau mal .
Source: habr.com
