Zurück

OpenVPN Passwort auslesen

18.08.2013 16:39 von Samuel

OpenVPN ist ein Programm zum Aufbau eines Virtuellen Privaten Netzwerkes (VPN) über eine verschlüsselte TLS-Verbindung.

So beschreibt es Wikipedia. OpenVPN ist ein sehr beliebtes Programm. Jedoch hat es leider keine Funktion um Passwörter für die Verbindungen verschlüsselt zu speichern. Darum ist es relativ einfach an das Passwort des VPNs zu gelangen.

 

Laut dieser Anleitung, ist es möglich den Benutzer und Passwort für die Verbindung zu speichern. Ich habe bisher auch noch keine andere Möglichkeit gefunden. Das Problem hierbei ist, dass das Passwort unverschlüsselt auf der Festplatte abgespeichert wird. Dadurch wird es einem möglichen Angreifer sehr einfach gemacht das Passwort aufzulesen.

 

In der Anleitung wird es so beschrieben:

Dazu muss man nur die gewünschte *.ovpn Datei im config – Verzeichnis der OpenVPN Installation C:\Program Files\OpenVPN\config editieren (Adminrechte nicht vergessen) und muss die Zeile auth-user-pass (soweit vorhanden) durch auth-user-pass password.txt ersetzen. Nun benötigt man im selben Verzeichnis noch die besagte Datei passwort.txt und schreibt in die erste Zeile den Usernamen und in die zweite das Passwort. Fertig.

Um nun das Passwort auszulesen, brauchen wir nur den OpenVPN-Config Pfad und eine beliebige *.ovpn Datei. In dieser Datei muss man die Zeile welche mit “auth-user-pass” beginnt, auslesen. Der Config-Pfad von OpenVPN wird in der Registry unter “HKLM\Software\OpenVPN” als “config_dir” abgespeichert.

Mit dieser Delphi Funktion holen wir den Pfad:

function ReadKeyToString(hRoot:HKEY; sKey:string; sSubKey:string):string;
var
  hOpen: HKEY;
  sBuff: array[0..255] of char;
  dSize: integer;
begin
  if (RegOpenKeyEx(hRoot, PChar(sKey), 0, KEY_QUERY_VALUE or KEY_WOW64_64KEY, hOpen) = ERROR_SUCCESS) then begin
    dSize := SizeOf(sBuff);
    RegQueryValueEx(hOpen, PChar(sSubKey), nil, nil, @sBuff, @dSize);
    Result := sBuff
  end;

  RegCloseKey(hOpen);
end;

 

Ein Aufruf der Funktion sieht so aus:

function getOpenVPNPath() : string;
var
  strPath: string;
begin
  strPath := ReadKeyToString(HKEY_LOCAL_MACHINE, 'SOFTWARE\OpenVPN', 'config_dir');
  Result := strPath;
end;

Weitere Funktionen wie das auslesen der richtigen Zeile mit dem gespeicherten Passwort, sind im Archiv vorhanden.

Am Ende sieht das Ganze dann so aus.

Zurück

Einen Kommentar schreiben

Kommentar von Atreltmutthurf um 09.08.2018

Pression arterielle est comment dur votre sang pousse contre les parois de vos arteres lorsque votre coeur essence pompe le sang. Arteres sont les tubes qui transportent perseverent b gerer offre sang loin de votre coeur. Chaque culture votre coeur bat, il pompe le sang a tous egards vos arteres a la reste de votre corps.
https://www.cialispascherfr24.com/prix-du-cialis-20mg/

Kommentar von AImmertdieribe um 24.09.2018

Compression est comment robuste votre sang pousse contre les parois de vos arteres lorsque votre coeur determination pompe le sang. Arteres sont les tubes qui transportent perseverent b gerer offre sang loin de votre coeur. Chaque culture votre determination bat, il pompe le sang par vos arteres a la prendre facilement de votre corps.
https://www.cialispascherfr24.com/cialis-generique-maroc/