
Hoch konfigurierbares Skript für Wörterbuch-/Spray-Angriffe gegen Online-Webanwendungen.
Das Klyda-Projekt wurde entwickelt, um schnelle Angriffe auf Basis von Anmeldedaten gegen Online-Webanwendungen zu unterstützen.
Klyda unterstützt den Einsatz von einfachen Password-Sprays bis hin zu großen, multithreaded Wörterbuchangriffen.
Klyda ist ein neues Projekt und ich suche nach Beiträgen. Jede Hilfe wird sehr geschätzt.
Klyda bietet eine einfache, leicht zu merkende Bedienung; dennoch bietet es Konfigurierbarkeit für Ihre Bedürfnisse:
1) Klonen Sie das Git-Repo auf Ihren Rechner, git clone https://github.com/Xeonrx/Klyda
2) Wechseln Sie in das Klyda-Verzeichnis, cd Klyda
3) Installieren Sie die notwendigen Module mit Pip, pip install requests beautifulsoup4 colorama numpy
4) Zeigen Sie die Klyda-Hilfe zur Nutzung an, python3 klyda.py -h
Klyda wurde hauptsächlich für Linux entwickelt, sollte aber auf jedem Rechner funktionieren, der Python ausführen kann.
Was Klyda zum Funktionieren benötigt, sind nur vier einfache Abhängigkeiten: URL zum Angriff, Benutzername(n), Passwort/Passwörter und FormData.
Sie können die URL über das --url-Flag angeben. Es sollte ungefähr so aussehen: --url http://127.0.0.1
Denken Sie daran, niemals einen Angriff auf eine Webseite zu starten, für die Sie keine entsprechende Genehmigung haben.
Benutzernamen sind das Hauptziel dieser Wörterbuchangriffe. Es könnte eine ganze Reihe von Benutzernamen sein, einige bestimmte oder vielleicht nur einer. Das liegt ganz bei Ihnen, wenn Sie das Skript verwenden. Sie können Benutzernamen auf verschiedene Arten angeben...
1) Geben Sie sie manuell an, -u Admin User123 Guest
2) Geben Sie eine Datei an, oder mehrere zum Kombinieren, -U users.txt extra.txt
3) Geben Sie sowohl eine Datei als auch manuelle Eingabe an, -U users.txt -u Johnson924
Passwörter sind der schwierige Teil dieser Angriffe. Sie kennen sie nicht, daher gibt es Wörterbuch- und Brute-Force-Angriffe. Wie bei den Benutzernamen können Sie von nur einem Passwort bis zu beliebig vielen angeben. Sie können Passwörter auf verschiedene Arten angeben...
1) Geben Sie sie manuell an, -p password 1234 letmein
2) Geben Sie eine Datei an, oder mehrere zum Kombinieren, -P passwords.txt extra.txt
3) Geben Sie sowohl eine Datei als auch manuelle Eingabe an, -P passwords.txt -p redklyda24
FormData ist die Art, wie Sie die Anfrage gestalten, damit die Zielwebsite sie aufnehmen und die gegebenen Informationen verarbeiten kann. Normalerweise müssen Sie einen Benutzernamen-Wert, einen Passwort-Wert und manchmal einen zusätzlichen Wert angeben. Sie können die FormData, die Ihr Ziel verwendet, im Netzwerk-Tab der Entwicklertools Ihres Browsers einsehen. Für Klyda verwenden Sie das -d-Flag.
Sie müssen Platzhalter verwenden, damit Klyda weiß, wo es den Benutzernamen und das Passwort einfügen soll, wenn es seine Anfragen weiterleitet. Es könnte ungefähr so aussehen...
-d username:xuser password:xpass Login:Login
xuser ist der Platzhalter zum Einfügen der Benutzernamen und xpass ist der Platzhalter zum Einfügen der Passwörter. Stellen Sie sicher, dass Sie diese kennen, sonst kann Klyda nicht funktionieren.
Formatieren Sie die FormData als (key):(value)
Damit Klyda weiß, ob ein erfolgreicher Treffer erzielt wurde oder nicht, müssen Sie ihm Daten zum Durchsuchen geben. Klyda verwendet übergebene Blacklists von fehlgeschlagenen Anmeldeversuchen, um den Unterschied zwischen einer fehlgeschlagenen oder einer erfolgreichen Anfrage zu erkennen. Sie können drei verschiedene Datentypen auf die Blacklist setzen...
1) Strings, --bstr "Login failed"
2) Statuscodes, --bcde 404
3) Inhaltlänge, --blen 11
Sie können für jede Blacklist beliebig viele Daten angeben. Wenn keines der angegebenen Daten in der Antwort gefunden wird, gibt Klyda einen 'Treffer' aus und meldet einen erfolgreichen Anmeldeversuch. Andernfalls, wenn Daten der Blacklists gefunden werden, markiert Klyda es als erfolglosen Anmeldeversuch. Da Sie die Daten zur Auswertung angeben, sind Fehlalarme nicht offensichtlich.
Wenn Sie keine Daten zum Blacklisten angeben, wird jede Anfrage von Klyda als Treffer markiert!
Standardmäßig verwendet Klyda nur einen einzelnen Thread; Sie können jedoch mehr angeben, indem Sie das -t-Flag verwenden. Dies kann hilfreich sein, um Ihre Arbeit zu beschleunigen.
Jedoch können Anmeldedatenangriffe sehr laut im Netzwerk sein; daher werden sie leicht erkannt. Ein Zielkonto könnte aufgrund zu vieler Anmeldeversuche einfach gesperrt werden. Dies erzeugt einen DoS-Angriff, verhindert aber, dass Sie die Anmeldedaten des Benutzers erhalten, was das Ziel von Klyda ist.
Um diese Angriffe etwas leiser zu machen, können Sie das --rate-Flag verwenden. Damit können Sie Ihre Threads auf eine bestimmte Anzahl von Anfragen pro Minute begrenzen.
Es wird so formatiert: --rate (# of requests) (minutes)
Zum Beispiel sendet --rate 5 1 nur 5 Anfragen pro Minute. Denken Sie daran, dies gilt pro Thread. Wenn Sie 2 Threads hätten, würden 10 Anfragen pro Minute gesendet.
Testen Sie Klyda mit der Damn Vulnerable Web App (DVWA) oder Mutillidae.
python3 klyda.py --url http://127.0.0.1/dvwa/login.php -u user guest admin -p 1234 password admin -d username:xuser password:xpass Login:Login --bstr "Login failed"
python3 klyda.py --url http://127.0.0.1/mutillidae/index.php?page=login.php -u root -P passwords.txt -d username:xuser password:xpass login-php-submit-button:Login --bstr "Authentication Error"
Wie bereits erwähnt, ist Klyda noch in Arbeit. Für die Zukunft plane ich, mehr Funktionalität hinzuzufügen und den Code für ein saubereres Erscheinungsbild zu reformatieren.
Meine oberste Priorität ist es, Proxy-Funktionalität hinzuzufügen, und ich arbeite derzeit daran.