Was ist SASL? (Simple Authentication and Security Layer)

Bei dem Simple Authentication and Security Layer, kurz SASL, handelt es sich um ein Framework, dass zur Authentifizierung verschiedener Dienstleitungen im Netzwerk verwendet wird. Definiert wurde SASL im Oktober 1997 im RFC 2222. Später im Juni 2006 wurde das RFC durch das RFC 4422 ersetzt.

SASL bietet dem Anwendungsprotokoll, wie zum Beispiel HTTP, eine RFC-standardisierte Schnittstelle zur Aushandlung der Kommunikationsparameter. Meistens wird eine Authentifizierungsmethode mit dem Clientsystem ausgehandelt. Möglich ist auch, dass der Server mit dem Client zuerst ein verschlüsseltes Transportprotokoll, wie beispielsweise TLS, ausgehandelt und schlußendlich darauf wechselt. Bei der SASL Implementierung einigen sich Client und Server auf ein Authentifizierungsverfahren, dass anschließend von der Applikation transparent benutzt werden kann. Dadurch wird die Entwicklung von sicheren Applikationsprotokollen vereinfacht. Der Softwareentwickler muss nur eine bestehende SASL-Implementierung verwenden, anstatt das komplette Verfahren zur Authentifizierung und Datenverschlüsselung selbst zu programmieren.

Aktuell wird SASL unter anderem bei SMTP, IMAP, POP3, LDAP und XMPP verwendet. Dabei werden mehrere SASL Authentifizierungsmechanismen unterstützt. Diese Verfahren sind bei der IANA aufgelistet. Bekannt sind folgende Verfahren:

  • PLAIN, alle Daten werden unverschlüsselt im Klartext ausgetauscht (oft wird mit TLS der nötige Sicherheitsmechanismus bereitgestellt)
  • GSSAPI, hierbei handelt es sich ebenso um ein Framework, wie SASL. GSSAPI bietet beispielsweise auch Kerberos v5 an.
  • CRAM-MD5 (Challenge-Response Authentication Mechanism, Message Digest 5), verhindert die Übertragung des Passworts im Klartext. Bei CRAM-MD5 handelt es sich um ein Authentifizierungsverfahren nach dem Challenge-Response-Prinzip. Das Verfahren arbeitet auf Basis des MD5-HMAC-Algorithmus.
  • DIGEST-MD5 Das Verfahren ist ähnlich zu CRAM-MD5, jedoch mit der zusätzlichen Möglichkeit, wie Parameter zur Integritätssicherung der Nachrichten auszuhandeln.
  • OTP (One-Time-Pad), bietet eine Passwortverifizierung mit Einmalpasswörtern. Das Password hat nur einmal eine Gültigkeit, anschließend verfällt es.
  • ANONYMOUS, der Benutzer kann den Dienst ohne Authentifizierung verwenden. Es wird unter Umständen nach einem Kennwort verlangt, allerdings sind alle Eingaben gültig.
  • EXTERNAL, die Authentifizierung erfolgt in diesem Fall außerhalb von SASL, also mittels eines anderen Dienstes.

Weiterführende Artikel:

  1. Installation von SASL mit Verwendung im Apache 2 unter Ubuntu 11.04
  2. Benutzeranmeldung mit SASL als “shell-less” Benutzer mit einem geschützten Webbereich beim Apache 2 Server unter Ubuntu 11.04

Interessante RFCs zum Thema:

  1. RFC 4422 „Simple Authentication and Security Layer (SASL)“, June 2006
  2. RFC 2222 „Simple Authentication and Security Layer (SASL)“, October 1997
  3. RFC 2444 „The One-Time-Password SASL Mechanism“, October 1998
  4. RFC 4752 „The Kerberos V5 („GSSAPI“) Simple Authentication and Security Layer (SASL) Mechanism“, November 2006

Benutzeranmeldung mit SASL als „shell-less“ Benutzer mit einem geschützten Webbereich beim Apache 2 Server unter Ubuntu 11.04

Bevor dieses kleine HOWTo funktioniert, sollte das vorherige durchgearbeitet werden. Hier wird die Installation und Inbetriebnahme der SASL Dienste beschrieben:

Installation von SASL mit Verwendung im Apache 2 unter Ubuntu 11.04

Als erstes wird ein neuer Benutzer angelegt. In diesem Abschnitt wollen wir über SASL einen Systembenutzer authentifizieren, der zwar am System ein Konto hat, aber sich nicht über SSH am System anmelden kann. Dazu dienst die Pseudoshell /bin/false. Diese Shell gibt immer „fehlgeschlagen“ an den Anmeldedienst zurück. Der Benutzer kann sich somit nicht am System anmelden. Über bleibt die Anmeldung via SASL am System. Also zuerstmal den Benutzer in das System einpflegen. Unser neuer Benutzer für den Test heißt stardust.

root@antilight:~# adduser --no-create-home --shell /bin/false stardust
Lege Benutzer »stardust« an ...
Lege neue Gruppe »stardust« (1001) an ...
Lege neuen Benutzer »stardust« (1001) mit Gruppe »stardust« an ...
Erstelle Home-Verzeichnis »/home/stardust« nicht.
Geben Sie ein neues UNIX-Passwort ein:
Geben Sie das neue UNIX-Passwort erneut ein:
passwd: password updated successfully
Changing the user information for stardust
Enter the new value, or press ENTER for the default
Full Name []: Stardust
Room Number []: 23
Work Phone []: 42
Home Phone []: 64
Other []: 13
Sind diese Informationen korrekt? [J/n] j

Zack und fertig. Nun prüfen wir, ob auch alles korrekt durchgeführt wurde. Das lassen wir grep erledigen, weil wir nur kurz schauen wollen, ob auch die richtige Shell dem Benutzer zugeordnet worden ist. Schließlich kann ein fehlendes Argument, oben das hinter –shell, schnell dazu führen, dass doch der User sich anmelden kann. Kontrolle ist immer gut.

root@antilight:~# egrep "^(stardust|neurodump):" /etc/passwd
neurodump:x:1000:1000:neurodump,,,:/home/neurodump:/bin/bash
stardust:x:1001:1001:Stardust,23,42,64,13:/home/stardust:/bin/false

Fein, wir sehen das neurodump sich anmelden kann und stardust nicht. So solls sein. Jetzt müssen wir nur den benutzer auch in der httpd.conf Datei hinzufügen. Dort schaut der Apache nach, welche Benutzer was wo dürfen und so weiter.

root@antilight:~# pico /etc/apache2/httpd.conf

Geändert werden muss die Zeile. „Require user neurodump“ in „Require user neurodump stardust„. Wahlweise kann die Zeile auch in diese geändert werden:

Require valid-user

Nun speichern. Damit die Änderungen aktiv werden, muss der Apache Dienst seine Config neu laden. Das erledigt folgender Befehl.

root@antilight:/var/www/protected# service apache2 reload
* Reloading web server config apache2 [ OK ]
root@antilight:/var/www/protected#

Jetzt sollte der neue Benutzer stardust nur noch zur Gruppe sasl gehören, damit alles mit den Rechten glatt geht. Das erledigt dieser Befehl.

root@antilight:/var/www/protected# adduser stardust sasl
Füge Benutzer »stardust« der Gruppe »sasl« hinzu ...
Adding user stardust to group sasl
Fertig.

Nun sollte die Anmeldung klappen. Sollte nach dem Reboot der saslauthd nicht hochkommen, weil etwas mit den init-Skripten nicht 100%ig stimmt, den kurz manuell starten. Optional:

root@antilight:/var/www/protected# service saslauthd start
* Starting SASL Authentication Daemon saslauthd [ OK ]
root@antilight:/var/www/protected#

Installation von SASL mit Verwendung im Apache 2 unter Ubuntu 11.04

Bevor mit diesem HOWTO begonnen werden kann, muss der Apache2 Server unter Ubuntu installiert sein. Die „it works.“ Seite muss entsprechend erscheinen, sollte man den Server ansprechen. Auf dem Testrechner wurde der Apache zusammen mit phpmyadmin und einem MySQL Server installiert. Entsprechend dazu wurden auch alle PHP5 Pakete soweit installiert, wie benötigt wurden. Mit dem Tool tasksel lässt sich unter ubuntu schnell ein Webserver aufsetzen.

Ist alles soweit vorbereitet kann es losgehen. Installiert werden soll SASL. Dazu soll der Apache2 Webserver so konfiguriert werden, dass ein Unterverzeichnis auf dem Webserver statt mit .htaccess mit SASL und einem Systembenutzer geschützt werden kann. Gut, los gehts.

root@antilight:~# apt-get install sasl2-bin

Damit wird der SASL Dienst auf dem System installiert. Bevor Apache mit SASL arbeiten kann, muss der Demon erst korrekt arbeiten. Dann wird Apache mit dem richtigen SASL Modul bestückt und konfiguriert.

root@antilight:~# adduser neurodump sasl

Damit der Beispielbenutzer neurodump mit sasl sich am Apache authentifizieren kann, muss dieser auch in der von dem Packet angelegten Gruppe sein. Der obige Befehl erledigt das.

root@antilight:~# su neurodump

Nun wird zu diesem Benutzer gewechselt. Es wird geprüft, ob der Benutzer sich korrekt in der Gruppe befindet. Der Befehl groups zeigt alle Gruppen an, wo der Benutzer neurodump Mitglied ist.

neurodump@antilight:/root$ groups
neurodump@antilight:/root$ exit

Mit exit geht es wieder zum Superuser zurück. Jetzt soll dem SASL Demon, also dem Dienst, Leben eingehaucht werden. Das Paket ist erstmal nur installiert, macht aber noch nichts. Dazu verwendet der Benutzer den Editor seiner Wahl und editiert die Datei unten in der Befehlszeile.

root@antilight:~# pico /etc/default/saslauthd

In dieser Datei wird das Parameter START=no auf START=yes geändert. Auf diese Weise ist nun dem SASL Demonen klar, dass er „aufleben“ soll.

Jetzt wird der Dienst mit dem Blitz des root zum Leben berufen. Der Befehl service startet, stoppt und so weiter Dienste unter Ubuntu.

root@antilight:~# service saslauthd start

Nun laut rufen: „It’s alive, it’s alive!!!“ (erst ab 4 Liter Club Mate) Jetzt ist genau der richtige Zeitpunkt den Demonen zu testen. Die Authentifzierung wird mit dem folgenden Befehl getestet.

root@antilight:~# testsaslauthd -u neurodump -p netzchef

Das Passwort des Benutzers wird hier in Klartext übergeben und landet damit unverschlüsselt im history file. Und auch auf dem Bildschirm für neugierige Nasen. Steht success oder Erfolg auf dem Bildschirm, so funktioniert der Demon SASL und kann richtig authentifizieren.

root@antilight:~# clear
root@antilight:~# history -c

Das Löschen der History und das Löschen der Zeilen auf dem Bildschirm gehört hoffe ich danach auch zum Standard. Am besten vielleicht vorher das Kennwort des Benutzers einfach mit passwd ändern.

Jetzt wird das Apache SASL Modul installiert. Damit wird der Apache in die Lage versetzt mit dem SASL Demon zu reden. Ohne das Modul gehts nichts.

root@antilight:~# apt-get install libapache2-mod-authn-sasl

Ist das Modul fertig installiert, muss das Modul noch im Apache aktiviert werden. Dazu ist folgender Befehl notwendig.

root@antilight:~# a2enmod authn_sasl

Damit alle Dienste auch korrekt aufeinander zugreifen können und auch nichts mit den Dateirechten vor die Wand läuft, muss der Apache Benutzer www-data ebenso wie der Benutzer neurodump in der Gruppe sasl sein. Das macht folgender Befehl.

root@antilight:~# adduser www-data sasl

Nun ist fast alles soweit fertig und der Apache Dienst kann neu gestartet werden. Das wird so erledigt.

root@antilight:~# service apache2 restart

Nun geht es an das Einrichten der geschützten Webseite. Dazu wird in das Verzeichnis des Webservers HTML Bereich gewechselt. Dort wird beispielhaft das Verzeichnis protected eingerichtet. In das Verzeichnis kommt eine leere HTML Testdatei, die nur dafür sorgt, dass beim ersten Test der Server keinen 404 wirft.

root@antilight:~# cd /var
root@antilight:/var# cd www
root@antilight:/var/www# mkdir protected
root@antilight:/var/www# cd protected
root@antilight:/var/www/protected# su neurodump
neurodump@antilight:/var/www/protected$ touch empty.html
neurodump@antilight:/var/www/protected$ exit

Damit der Webserver weiß, was er schützen soll und vor allem wie, muss dazu eine Konfiguration in die httpd.conf eingetragen werden. Dazu wird die Datei mit einem Editor aufgerufen.

root@antilight:/var/www# pico /etc/apache2/httpd.conf

Folgendes wird eingefügt:

<Directory /var/www/protected>
AuthType Basic
AuthName „Restricted“
AuthBasicProvider sasl
AuthBasicAuthoritative On
AuthSaslPwcheckMethod saslauthd
Require user neurodump
</Directory>

Nun wird die Config des Apache 2 neu geladen. Der Server weiß nun um die Änderungen und schützt das Verzeichnis. Der folgende Befehl erledigt das.

root@antilight:/var/www# service apache2 reload

Das wars schon. Jetzt sollte das Unterverzeichnis mit http://ipadresse/protected/empty.html aufrufbar sein. Der Browser sollte jetzt brav nach Benutzer und Kennwort fragen. Viel Spaß beim Ausprobieren!

Weiterführend: Benutzeranmeldung mit SASL als “shell-less” Benutzer mit einem geschützten Webbereich beim Apache 2 Server unter Ubuntu 11.04
_____________________________________________
Fassung mit fast allen Systemausgaben.
Logge dich bei deinem System mit z.B. SSH ein.

login as: root
root@10.23.32.64's password:
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-10-generic x86_64)

* Documentation: https://help.ubuntu.com/

Last login: Mon Aug 22 19:36:39 2011
root@antilight:~#

Installation des SASL Packetes unter Ubuntu 11.04. Mit apt-get ist das fix erledigt.

root@antilight:~# apt-get install sasl2-bin
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
db4.8-util
Die folgenden NEUEN Pakete werden installiert:
db4.8-util sasl2-bin
0 aktualisiert, 2 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 259 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 954 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren [J/n]? J
Hole:1 http://de.archive.ubuntu.com/ubuntu/ natty/main db4.8-util amd64 4.8.30-5ubuntu2 [137 kB]
Hole:2 http://de.archive.ubuntu.com/ubuntu/ natty/main sasl2-bin amd64 2.1.23.dfsg1-5ubuntu3 [122 kB]
Es wurden 259 kB in 1 s geholt (142 kB/s)
Vorkonfiguration der Pakete ...
Vormals abgewähltes Paket db4.8-util wird gewählt.
(Lese Datenbank ... 362761 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von db4.8-util (aus .../db4.8-util_4.8.30-5ubuntu2_amd64.deb) ...
Vormals abgewähltes Paket sasl2-bin wird gewählt.
Entpacken von sasl2-bin (aus .../sasl2-bin_2.1.23.dfsg1-5ubuntu3_amd64.deb) ...
Trigger für man-db werden verarbeitet ...
Trigger für ureadahead werden verarbeitet ...
ureadahead will be reprofiled on next reboot
db4.8-util (4.8.30-5ubuntu2) wird eingerichtet ...
sasl2-bin (2.1.23.dfsg1-5ubuntu3) wird eingerichtet ...
update-rc.d: warning: saslauthd stop runlevel arguments (0 1 6) do not match LSB Default-Stop values (1)
* To enable saslauthd, edit /etc/default/saslauthd and set START=yes
root@antilight:~#

Den zu verwendenden Benutzer für die Apache SASL Anmeldung in die SASL Gruppe heben.

root@antilight:~# adduser neurodump sasl
Füge Benutzer »neurodump« der Gruppe »sasl« hinzu ...
Adding user neurodump to group sasl
Fertig.
root@antilight:~#

Wechsel zu dem Benutzer. Prüfe ob der Benutzer wirklich auch in der Gruppe sasl ist.

root@antilight:~# su neurodump
neurodump@antilight:/root$ groups
neurodump adm dialout cdrom sasl plugdev lpadmin admin sambashare
neurodump@antilight:/root$ exit

Editierte die Datei /etc/default/saslauthd und stelle START=no auf START=yes.

root@antilight:~# pico /etc/default/saslauthd

Starte nun den SASL Dienst.

root@antilight:~# service saslauthd start
* Starting SASL Authentication Daemon saslauthd [ OK ]
root@antilight:~#

Prüfe ob die Authentifizierung des Benutzers, hier neurodump mit SASL funktioniert.

root@antilight:~# testsaslauthd -u neurodump -p netzchef
0: OK "Success."
root@antilight:~#

Lasse dein Kennwort, hier netzchef, besser nicht sichtbar auf dem Bildschirm und lösche es auch umbedingt aus deiner BASH History.

root@antilight:~# clear
root@antilight:~# history -c

Wenn soweit alles okay ist, bringe nun dem Apache sein SASL Modul bei. Dazu muss das Paket dazu installiert werden. Das erledigt wieder apt-get für uns. Mit den folgenden Befehlen gehts weiter.

root@antilight:~# apt-get install libapache2-mod-authn-sasl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut
Statusinformationen werden eingelesen... Fertig
Die folgenden NEUEN Pakete werden installiert:
libapache2-mod-authn-sasl
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es müssen 7.580 B an Archiven heruntergeladen werden.
Nach dieser Operation werden 81,9 kB Plattenplatz zusätzlich benutzt.
Hole:1 http://de.archive.ubuntu.com/ubuntu/ natty/universe libapache2-mod-authn-sasl amd64 1.1-1 [7.580 B]
Es wurden 7.580 B in 0 s geholt (25,0 kB/s)
Vormals abgewähltes Paket libapache2-mod-authn-sasl wird gewählt.
(Lese Datenbank ... 362817 Dateien und Verzeichnisse sind derzeit installiert.)
Entpacken von libapache2-mod-authn-sasl (aus .../libapache2-mod-authn-sasl_1.1-1_amd64.deb) ...
libapache2-mod-authn-sasl (1.1-1) wird eingerichtet ...
root@antilight:~#

Nun reicht die Installation des Paketes nicht aus. Das Paket muss im Apache Webserver auch noch korrekt aktiviert werden. Der folgende Befehl erledigt das.

root@antilight:~# a2enmod authn_sasl
Enabling module authn_sasl.
Run '/etc/init.d/apache2 restart' to activate new configuration!
root@antilight:~#

Damit auch alles mit den Rechten funktioniert, müssen diese noch kurz angepasst werden. Dazu muss der Apache Benutzer www-data auch in der Gruppe sasl sein.

root@antilight:~# adduser www-data sasl
Füge Benutzer »www-data« der Gruppe »sasl« hinzu ...
Adding user www-data to group sasl
Fertig.
root@antilight:~#

Nun muss der Apache 2 Server neu gestartet werden.

root@antilight:~# service apache2 restart
* Restarting web server apache2 ... waiting [ OK ]
root@antilight:~#

Nun wurde der Server neu gestartet. Jetzt beginnt das Einrichten der geschützten Seite. Dazu gehts in das Webverzeichnis des Apache Servers.

root@antilight:~# cd /var
root@antilight:/var# cd www
root@antilight:/var/www# ls
index.html

Nun wird ein Unterverzeichnis protected angelegt. Dort wird die geschützte Seite abgelegt werden. Mit touch wird nun eine leere HTML Datei angelegt, die nichts beinhaltet. Auf diese Weise wirft der Apache beim ersten Test keine 404 Meldung. Ersetze vielleicht die leere HTML Datei durch eine kleine „It works….“ Seite.

root@antilight:/var/www# mkdir protected
root@antilight:/var/www# ls -l
insgesamt 8
-rw-r--r-- 1 root root 177 2011-08-14 18:27 index.html
drwxr-xr-x 2 root root 4096 2011-08-22 20:10 protected
root@antilight:/var/www# cd protected
root@antilight:/var/www/protected# exit
neurodump@antilight:/var/www/protected$ touch empty.html
neurodump@antilight:/var/www/protected$ ls -l
insgesamt 0
-rw-r--r-- 1 neurodump neurodump 0 2011-08-22 20:14 empty.html
neurodump@antilight:/var/www/protected$ pwd
/var/www/protected
neurodump@antilight:/var/www/protected$

Bevor der erste Test gestartet werden kann, muss der Server noch wissen, was er nun mit dem Verzeichnis machen soll. Dazu muss in der httpd.conf etwas hinzugefügt werden.

neurodump@antilight:/var/www/protected$ exit
root@antilight:/var/www# pico /etc/apache2/httpd.conf

In Datei einfügen:

<Directory /var/www/protected>
AuthType Basic
AuthName „Restricted“
AuthBasicProvider sasl
AuthBasicAuthoritative On
AuthSaslPwcheckMethod saslauthd
Require user neurodump
</Directory>

root@antilight:/var/www# service apache2 reload
* Reloading web server config apache2 [ OK ]
root@antilight:/var/www#

Nach dem Reload der Config sollte eine Anmeldung am Apache Server mit dem Systembenutzer funktionieren. Das Kennwort wird hierbei unverschlüsselt übertragen.

Hier gehts weiter: Benutzeranmeldung mit SASL als “shell-less” Benutzer mit einem geschützten Webbereich beim Apache 2 Server unter Ubuntu 11.04

Netzwerkdaten mit tshark aufzeichnen

Hat der Benutzer seine Netzwerkbrücke geschaltet, so können die Daten, die über die Bridge fließen mitgeschrieben werden. Dazu ist das Programm tshark hervorragend geeignet. Das Paket heißt genauso, nämlich tshark, welches ggf. nachinstalliert werden muss. Installieren des Paketes einfach mit apt-get.

# apt-get install tshark

Nun sollte tshark bereit stehen. Das Programm hat viele Fähigkeiten, ein Blick in die Manpage lohnt sich. Gut, nun zu dem Aufzeichnen der Netzwerkdaten. Wurde die Bridge so aufgebaut, wie es im letzten Artikel beschrieben wurde, so lautet die Brücke br0.

# tshark -q -n -b filesize:25000 -w /meinpfad/bezeichner.pcap -i br0 &

So, Enter gedrückt und los gehts. tshark unter root zu betreiben ist gefährlich. Wie jede andere Software hat tshark hier und da möglicherweise einen Fehler. So ist es einem Angreifer möglich, der weiß, dass mit tshark aufgezeichnet wird, Code in diesen Prozess zu injizieren. Da dieser nun mal in unserem Beispiel mit root läuft, hat derjenige dann vollen Zugriff auf das gesamte System. Also: Konfiguriere einen User und definiere vorher korrekt alle Rechte und starte tshark mit so wenig Rechten, wie nötig.

Was wurde oben mit den ganzen Parametern alles mitgereicht? -q definiert den Quiet-Mode. Tshark werkelt, aber redet nicht sonderlich viel mit dem Benutzer. Das Parameter -n deaktiviert die Namensauflösung via DNS. Die Hostnamen erscheinen nun als IP Adressen. Wir wollen hören und mitschneiden, später kann geschaut werden, welcher Hostname zu welcher IP gehört. Mit dem Parameter -b filesize:xxxxx wird angegeben, wie groß die Datei werden darf, bis tshark eine neue anlegt. Sehr nützlich, da viele Analysetools nicht umbedingt Gigabytes einlesen mag. Der Wert wird in KB angegeben. 25 MB also 25000 ist ein schöner Wert. -w gibt den Zielpfad der Dateien an. Der Bezeichner wird als Präfix später genutzt. -i gibt das Interface an, hier wählen wir die Bridge br0.

Viel Spaß! 🙂

Netzwerkbridge mit der GRML-BOX erzeugen

Eine Ethernet-Bridge ist mit GRML schnell erzeugt. Der Benutzer konfiguriert dazu die Ethernet Schnellstellen und anschließend die Bridge. Danach werden die Interfaces der Bridge zugeordnet. Das wars auch schon. 🙂

# ifconfig eth0 -arp promisc 0.0.0.0 up
# ifconfig eth1 -arp promisc 0.0.0.0 up
# brctl addbr br0
# brctl addif br0 eth0
# brctl addif br0 eth1
# ifconfig br0 -arp promisc 0.0.0.0 up

Das Programm „brctl“ steckt im Paket bridge-utils. Das muss ggf. nachinstalliert werden. Das ifconfig-Parameter „-arp promisc“ schaltet die IP-Adressauflösung per ARP Protokoll ab. Damit werden die Ethernet-Schnittstellen dazu ermächtigt Datenpakete anzunehmen, die nicht direkt für die MAC Adresse der Karte adressiert worden sind.

Als Quelle für das Sniffing-Tool, welches dann geschaltet wird, dient dann das Bridge-Device br0. Eine Firewall sollte man zur Untersuchung des Datenverkehrs erstmal auf dem Interface abschalten.

GRML verwendet den dhclient, um sich via DHCP eine IP Adresse zu ziehen. In der „GRML-Box“ ist dies standardmäßig aktiviert. Dieser Dienst sollte vorher mit kill bzw. killall abgeschossen werden, damit es nicht zu Verbindungsabrissen kommt.

Um die GRML Box per SSH bedienen zu können, kann ein weiteres Ethernet Interface angesteckt werden. Das kann mit ifconfig entsprechend manuell konfiguriert werden.

Im ersten Test scheint die „GRML-Box“ 100 Mbit problemlos verarbeiten zu können, ohne dabei überlastet zu erscheinen.

Alcatel OnmiStack / OnmiSwitch einrichten und konfigurieren

Selten habe ich es mit Alcatel Switches zu tun. Aktuell Freude mit der Baureihe OmniStack 4024. Konfiguriert werden VLANs und der 802.1q Trunk. Doch wie? Diese Frage scheint sich im Internet hier und da mal einer zu stellen. Gefunden habe ich in den Foren und allerlei Hilfeseiten, wie so oft, wirklich nichts brauchbares.

So habe ich mal auf der Herstellerseite gesucht und fand die Handbücher. Und die sind mal so richtig informativ. Im Prinzip steht dort so alles drin, was man zu dem Gerät wissen will. Hier ist der Link zum Download als 7z Archiv.

Alcatel OnmiStack, OmniSwitch und OmniAccess Manuals Handbücher

Viel Spaß beim Netzwerken.

Tastaturlayout umstellen unter Ubuntu

Warum auch immer sowas öfters passiert…. Trotz der Auswahl einer deutschen Tastatur ist nach einer Ubuntu Server Installation das Layout der Tastatur US. Abhilfe schafft das Paket console-data.

# apt-get install console-data

Wenn das Paket noch nicht installiert wird, kann der Benutzer nun sein Wunschlayout wählen, in meinem Fall qwertz und german. Poff. Schon ist alles gut. Sollte das Paket bereits installiert so gibt es Abhilfe mit:

# dpkg-reconfigure console-data

Viel Spaß!

Neue kleine Hacking-Box

Erstanden wurde ein kleiner Thin Client von Neoware. Es handelt sich um das Modell CA22. Der stromsparende kleine Neoware CA22 Thin Client ist ab Werk mit einem NeoLinux 3.x ausgestattet. Der kleine Rechner ist nur 29,5 cm breit und 5cm hoch. Im Prinzip ist das Gerät ein kleiner Nettop-PC, der ideal für kleine Büros, Wohnzimmermusikclients, Hack-Boxen und allerlei Kleinigkeiten ist, wie ein TelefonieServer geeignet ist. Der Neoware CA22 Thin Client ist mit einer Netzwerkkarte ausgestattet und kann über PXE booten. Auf diese Weise ist es möglich eine schöne Schulungsumgebung, beispielsweise unter Linux, fernzustarten, die schnell für die Lernenden verfügbar gemacht werden kann.

Hersteller: Neoware
Modellnr: CA22
Farbe: grau mit Logo als Aufschrift
Abmessungen (Breite x Tiefe x Höhe): 29,5 cm x 24 cm x 5,5 cm
Gewicht: ca. 2,8 kg
Prozessor: VIA C7 1GHz
Flashspeicher: 128 MB Flash (Maximal 512MB)
Arbeitsspeicher: 256 MB DDR2 SDRAM DIMM 200pin / 1 GB (maximal)
Grafik: Matrox EpicA TC2 mit 64MB RAM
Sound: AC´97 Audio Controller – intern
Netzwerk: 10/100MBit – intern

Schittstellen des Gerätes:
4 x USB 2.0 – USB Typ A, 4-polig (2x vorne, 2x hinten)
2 x Serielport – RS-232 – D-Sub als DB-9, 9-poliger COM Anschluss
1 x Parallelport – IEEE 1284 (EPP/ECP) – D-Sub als DB-25, LPT-Port
1 x Tastatur als PS2 – Mini-DIN, 6-polig
1 x Maus als PS2 – Mini-DIN, 6-polig
1 x Display-Videoport – VGA – HD D-Sub als HD-15
1 x Display-Videoport – DVI-D
1 x Audio – line-Out als Mini-Phone Stereo 3.5 mm Klinke
1 x Mikrofon – Eingang als Mini-Phone Stereo 3.5 mm Klinke
1 x Netzwerk – Ethernet 10Base-T/100Base-TX – RJ-45

Erweiterungen:
1 x Prozessor – Sockel 370
1 x Speicher – S0-DIMM 200-PIN

Netzteil: extern – 230V – 50-60 Hz
Verbrauch: ca. 50 W

Software: NeoLinux 3.x vorinstalliert

Soweit so gut. Die Box kann perfekt mit Backtrack und GRML betrieben werden. Wie es weiter geht kommt im nächsten Eintrag. 🙂

Verwendung von urlsnarf in Netzwerken

Urlsnarf ist in der Lage aus Datenströmen, die beispielsweise durch WLAN-Sniffing erfasst werden, die eingegebenen URLs zu untersuchen. Dabei werden aufgerufene URL und Browser in ein Logfile ausgegeben, falls keine Datei angegeben wird, so speichert das Tool alle Ausgaben nicht ab, sondern gibt diese auf der Console aus. Hier ist, als Beispiel, ein simpler Aufruf dargestellt. Wird kein Netzwerkinterface angegeben, so nimmt urlsnarf eines an, das wäre das erste Interface des Systems. Aufgerufen wurde in unserem Beispiel der Textbrowser lynx. Anschließend wurde Google aufgerufen.

neurodump@antilight:~# urlsnarf
urlsnarf: listening on eth0 [tcp port 80 or port 8080 or port 3128]
antilight.starnet.423 - - [29/Jul/2011:13:53:03 +0200] "GET http://changelogs.ubuntu.com/meta-release HTTP/1.1" - - "-" "Python-urllib/2.7"
antilight.starnet.423 - - [29/Jul/2011:13:53:10 +0200] "GET http://lynx.isc.org/ HTTP/1.0" - - "-" "Lynx/2.8.8dev.7 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.8.6"
antilight.starnet.423 - - [29/Jul/2011:13:53:24 +0200] "GET http://google.de/ HTTP/1.0" - - "-" "Lynx/2.8.8dev.7 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.8.6"
antilight.starnet.423 - - [29/Jul/2011:13:53:27 +0200] "GET http://www.google.de/ HTTP/1.0" - - "-" "Lynx/2.8.8dev.7 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/2.8.6"
^C
neurodump@antilight:~#

Unter Ubuntu lässt sich urlsnarf leicht installieren. Details stehen in der Manpage. Nützlich ist urlsnarf zum Prüfen, was wer auf dem Netzwerk so tut. Die meisten Aufrufe sind meist typischen Surfen, also HTTP. Werden Parameter mit der URL übertragen, so lässt sich das hier ebenfalls betrachten. Diese Daten können wiederum mit sed, awk und grep entsprechend so geformt werden, dass der Benutzer einen Trigger auf bestimmte URLs legen könnte, um schließlich eine Meldung per Mail zu senden, sollte etwas bemerkt werden. Wozu könnte das Nütze sein?

Stelle man sich ein größeres Netzwerk vor. Viele Maschinen lassen sich per Webinterface administrieren. Das wird nur nicht jeden Tag gemacht. Zum Beispiel der DSL Router, einige Switche und was nicht alles, lässt sich leicht über HTTP konfigurieren. Finden Zugriffe, sei es ein Versuch oder ein Erfolg, auf diese Geräte zu Zeiten statt, wo kein Wartungsfenster bestand oder man simpel nicht daheim gewesen ist, so liegt doch der Gedanke nahe, dass etwas nicht stimmt. Mit diesem Tool bringt man etwas Licht ins Dunkel, weil wer alles so auf dem LAN herumgeistert, dass weiß man selbst meistens nicht.

ZIP Archive knacken unter Linux

ZIP Archive verwenden keinen besonders sicheren Verschlüsselungsalgorithmus. Aus diesem Grund stehen die Chancen gut, dass der Besitzer des Archives auch ohne Kennwort wieder an seinen Daten kommt. Liegt das Passwort eines ZIP Archives nicht vor, so kann sich der Benutzer, mit einem kleinen Hilfsmittel, Abhilfe schaffen. fcrackzip ist ein ZIP-datei Knacker, der die dort verhältnismäßig trivale Verschlüsselung bricht. Dieses Tool wurde von Marc Lehmann entwickelt. Eine Liste all seiner Projekte gibt es hier.

Hier der Sourcecode und das Windows-Binary zum herunterladen:
fcrackzip (tar/gz): fcrackzip-1.0.tar
fcrackzip w32: fcrackzip-bin-win32-0.3

Installiert werden kann fcrackzip unter Linux folgendermaßen:

neurodump@antilight:~/$ sudo aptitude install fcrackzip

Jawohl, es ist meist keine Kompilierung nötig, da das Produkt in Ubuntu in den Softwarearchiven bereits vorhanden ist.

Und nun kurz zur Verwendung:

neurodump@antilight:~/$ fcrackzip -v -b -p aaaa -u mein.pdf.zip
found file 'mein.pdf', (size cp/uc 249962/299435, flags 9, chk a2f3)
checking pw bWk1

PASSWORD FOUND!!!!: pw == poff
neurodump@antilight:~/$

Beim Aufruf wird mit dem Parameter -b ein Brute-Force Angriff veranlasst. Damit die Software weiß wo sie beginnen soll, wird eine Zeichenkette eingegeben. Dies geschieht mit dem Parametern -p aaaa. Damit ist das Startpasswort zum Beispiel aaaa anschließend aaab. Mit dem Verbose Mode, also das Parameter -v ist die Software etwas geschwätziger. -u veranlasst das Programm alle ungültigen Passwörter durch unzip aussortieren zu lassen, das reduziert die Anzahl der False Positives. Im Prinzip handelt es sich hiermit also um ein klassisches Durchprobieren, bis das Passwort gefunden worden ist. Je nach Rechner dauert das etwas.