• Wenn du hier im Forum ein neues Thema erstellst, sind schon Punkte aufgeführt die du ausfüllen musst. Das dient im Allgemeinen dazu die notwendigen Informationen direkt mit der Frage bereitzustellen.
    Da in letzter Zeit immer wieder gerne das Formular gelöscht wurde und erst nach 3 Seiten Nachfragen die benötigten Infos für eine Hilfe kommen, werde ich nun jede Fragestellung die nicht einmal annähernd das Formular benutzt, sofort in den Sondermüll schicken.
    Füllt einfach die abgefragte Daten aus und alle können euch viel schneller helfen.

passwort

DRaver

Bekanntes Mitglied
Registriert
30. Juli 2013
Beiträge
1.400
Punkte
138
Eine Frage zur Sicherheit. Kann man ein User pw aus der Datenbank auslesen bei xf ? Wie ist das bei vb?
 
Also wenn man DB Zugang hat kann man an jeden Account ran oder nicht? Du kannst ja einen Account nehmen von dem du das Passwort kennst und dann einfach denn Hash in Ziel Account ersetzen (das ging zumindest mal). Aber ich weiß nicht wie einfach es ist aus dem mit Bcrypt erstellten Hash (seit XF 1.2) das Passwort zu errechnen, wenn es überhaupt möglich ist.
 
genau das ist die Frage, die ich mir gestellt habe.
 
Lege einen neuen User an, gib ihm das Passwort "password" und gib den Hash dieses Passworts in Google ein.
Bei md5 geht es :D
 
Also der Hintergrund ist, das ich einmal wissen möchte, was zu tun wäre im schlimmsten anzunehmenden fall, die xf Dateien und die Datenbank gelangen in fremde Hände. Was wäre dann für die Angreifer alles möglich und was wäre von der Seite des attackierten alles zu tun. Also praktisch, das man da eine Notfallprozedur in der Hand hat für den Fall der Fälle.
 
Denke mal System neu aufsetzen , oder eher die Sicherheitslücken schließen , und allen ein neues Passwort vergeben ? evt über ein sql Befehl ? weiß ja nicht ob das geht . ich glaube schlimmer wird es eher wenn jemand deine komplette Datenbank und Files hat , dann kann er ja die Passwörter , wenn er acp Zugang hat , für jeden Nutzer ändern und hat somit zu allen Zugang.
 
Hallo,


standardmässig müssen die Datenbanken bzw. Tabellen in den Datenbanken explizit freigegeben werden. Darum sollte man auch (wenn man selbst Root-Zugriff hat) XenForo nicht mit dem Benutzer root in MySQL laufen lassen.

Standardmässig erstellt man eine Datenbank

create database xfo;

und weist die Berechtigung an der Datenbank einem Benutzer zu, der in MySQL mit dieser Zuweisung erstellt wird:

grant all privileges on xfo.* to 'xfosystem'@'localhost' identified by 'kennwort';

Wichtig ist, dass "localhost" verwendet wird, denn dadurch kann der Benutzer xfosystem nur dann zugreifen, wenn seine Anforderungen vom lokalen System kommen. Ein Zugriff dieses Benutzers z.B. über das Internet ist NICHT möglich. Anders sieht es aus, wenn man 'xfosystem'@'%' eingegeben hat, dann ist der Fernzugriff möglich.

use xfo;
show grants;


sollte die Berechtigungen zeigen.

Solange MySQL keine Sicherheitslücke enthält, die einen externen Zugriff möglich macht, bist Du mit dieser Einstellung auf der sicheren Seite. Standardmässig ist MySQL so eingerichtet, dass Zugriffe aus dem Internet nicht möglich sind. Ich habe etliche Kämpfe gehabt, um eine private Datenbank auf dem Server, auf dem XenForo läuft, für mich über das Internet nutzbar zu machen.

Soviel zum Thema MySQL und Datenklau.


Erforderlich ist m.E. auf jeden Fall eine tägliche Sicherung, sowie das Versenden der Sicherung oder ein Abziehen auf einen dritten Rechner.

Neben dem /var/www sichere ich die Konfigurationsdateien von MySQL und dem Email-Client, sowie einen MySQL-Dump der XenForo-Datenbank. Das Ganze in ein kleines Archiv gepackt, wird es von einem Programm von meinem PC aus jeden Tag "abgeholt". Damit hast Du die wichtigsten Schritte getan.

Ansonsten stellt sich die Frage, ob Du einen eigenen Server mit Root-Rechten hast, oder ob Du Webspace gemietet hast. Wenn Du Root-Rechte hast, dann solltest Du jemand an das System lassen, der Ahnung hat, damit er es auf Schwachstellen prüft. FTP ist eine, und BIND9 ebenso. Wenn man SSH-Zugriff hat, ist WinSCP sicher eine bessere Lösung als ein FTP-Client. Aber hier kommen wir wieder in ein Gebiet von Glaubensfragen, dem ich doch lieber ausweichen möchte.
 
Wichtig ist, dass "localhost" verwendet wird, denn dadurch kann der Benutzer xfosystem nur dann zugreifen, wenn seine Anforderungen vom lokalen System kommen. Ein Zugriff dieses Benutzers z.B. über das Internet ist NICHT möglich. Anders sieht es aus, wenn man 'xfosystem'@'%' eingegeben hat, dann ist der Fernzugriff möglich.

Magst du den Part noch mal genauer erklären?

Du kannst den User wie du schon richtig schreibst für den externen Zugriff freigeben aber das wird doch verhindert, durch die Einstellung in der my.cnf, die keinen externen Zugriff zulässt oder habe ich das falsch verstanden?
 
Erforderlich ist m.E. auf jeden Fall eine tägliche Sicherung, sowie das Versenden der Sicherung oder ein Abziehen auf einen dritten Rechner.
Neben dem /var/www sichere ich die Konfigurationsdateien von MySQL und dem Email-Client, sowie einen MySQL-Dump der XenForo-Datenbank. Das Ganze in ein kleines Archiv gepackt, wird es von einem Programm von meinem PC aus jeden Tag "abgeholt". Damit hast Du die wichtigsten Schritte getan.
dürfte ich dich fragen wie du dies machst ? ich hab ein v-server und mache meine backups immer selbst , so was würde mir meine arbeit ja sehr erleichtern
 
Hallo,

@Lemminator:

ich verwende zwei Scripte, das eine sichert die Forenstruktur:

Code:
##!/bin/bash
date=`date +%F`
zip -9 -r -x backup-201*.zip @ backup-$date /var/www/*
zip -d backup-$date.zip /var/www/BackUpData/*
zip -9 -r backup-$date /etc/aliases /etc/hostname /etc/mailname
zip -9 -r backup-$date /etc/exim4/*
zip -9 -r backup-$date /etc/resolv.conf
zip -9 -r backup-$date /etc/bind/named.conf.local
mv backup-$date.zip /var/www/BackUpData

Das Problem hier ist, dass die Daten aus BackUpData jedesmal mit ins Archiv wandern, was die Archivgrösse jedesmal verdoppelt, daher nehme ich die mittels zip -d raus. Wenn jemand meint, dass ich etwas wichtiges vergessen habe, dann bitte ich um Ergänzung, was sonst noch mit reinsollte.

Über die my.cnf habe ich das Passwort für den Dump vorgegeben, man kann es aber auch mit in das Script aufnehmen:

Code:
##!/bin/bash
date=`date +%F`
mysqldump xfo > /root/xfo_$date.sql
zip -9 xfo_$date xfo_$date.sql
mv xfo_$date.zip /var/www/BackUpData

Die Bereinigung mache ich dann so einmal die Woche manuell.


@DRaver:

Du hast recht, es gibt verschiedene Einstellungen, die greifen. Dazu gehört beispielsweise die bind_address= in der my.cnf, über die auch gesteuert werden kann, welche Rechner Zugriff bekommen und welche nicht. Da man das nicht immer zwingend selbst im Griff hat, greift die zweite Richtlinie, und das ist die GRANT Anweisung, mit der man den Zugriff auf die Daten freigibt bzw. einschränkt.

Die Kombination von bind_address=127.0.0.1 verhindert, dass ein GRANT für 'user'@'%' zum Tragen kommt. Ändert man dann später aber die bind_address, ist das Scheunentor offen.
 
Ich habe mal Mike gefragt, was denn wäre, wenn eine Datenbank geklaut würde.
Könnte man daraus die Passwörter der User auslesen.

Hier seine Antwort:
Well the passwords are there, but they're one-way hashed. If your DB has been compromised, you need to assume the passwords have too.

Was so viel bedeutet wie, man kann davon ausgehen, das die Passwörter zu haben sind.
Leider ist das etwas schwammig ausgedrückt von ihm, denn er sagt nicht wie.
 
Ja, die werden wenn ich mich nicht irre doppelt gesalted und mit md5 verschlüsselt. Ein ähnlicher Algorithmus wie beim vB3 damals.
MD5 kann man rausrechnen, aber die salts machen es schwerer. Unmöglich ist es nicht.
 
Rainbow tables gibt es massenhaft
 
Die funktionieren aber doch nur bei einfach verschlüsselten MD5, oder?

PS: Und mit jedem Test wachsen sie. ;)
 
Stimmt. Mein Fehler ;)
 
Wenn ich das richtig verstanden habe wird kein MD5 eingesetzt, sondern Bcrypt, zumindest seit Version 1.2.
Was aber klar ist Wenn jemand zugriff auf die Datenbank und das Dateisystem hat, findet er ziemlich sicher den Key mit dem gesalted wird und kann, wenn er zugriff auf ein XenForo hat ein neues Passwort mit dem gleichen Key erstellen und das dann bei jedem User in die DB laden, damit wäre er mit einem selbst gewählten Passwort drin (Gäbe auch evtl. andere Möglichkeiten)
 
Ich hab mir das grad mal angesehen.

Nein, ganz so einfach ist es nicht. Aber unmöglich ist es auch nicht.

Auf jeden Fall haben die sich viel Mühe damit gegeben, das Passwort ordentlich zu verschlüsseln.

Vor 10 Jahren hat man das noch dreits im Klartext gespeichert. :D
 
Ich hab das mal auf nem XAMPP ausprobiert ;). Es geht, ich hab einfach das wo das Passwort drin war von einem in den anderen User Kopiert und es hat geklappt.
 
In meinem Scenario ist es aber so, dass auf einem Server eingebrochen wurde und Schadsoftware installiert wurde.
Ich denke das ist die häufigste Verwendung, für einen gekaperten Server.
Auf den Server befindet sich jetzt ein XF und die Datenbank.
Ob die Hacker sich das XF überhaupt anschauen oder nicht oder sich das kopiert haben, kann keiner sagen.

Nachdem alles aufgeflogen ist, sperrt man den Server und setzt einen neuen auf.
Also die Hacker hätten keinen Zugriff mehr drauf.

Jetzt hatte ich mich gefragt, wenn die sich die Datenbank angeschaut haben, wäre es möglich die PW´s auszulesen um sich dann mit den Daten im Forum anzumelden um z.B. Spam zu posten oder einen Moderator oder Admin zu übernehmen.

Was denken die Experten hier? Wäre das mit vertretbaren Aufwand möglich?
Mikes Antwort interpretiere ich als: Theoretisch ja
 
Theoretisch: Ja
Praktisch: Lohnt nicht

@netrix mit welcher Version denn? Wenn ich zwei User im Backend anlege mit dem selben PW, habe ich zwei unterschiedliche Hashes in der Datenbank.
 
Zurück
Oben