Kategorien
Forensik Linux security

CD Laufwerke bremsen

Aktuelle versuche ich ein paar vor mehr als 10 Jahren gebrannte CD- und DVD-Rohlinge zu retten. Die Daten lassen sich bei den meisten zu ca. 80% lesen.

Ich habe die beschädigten CDs und DVDs in 4 verschiedenen, je einem im PC- und einem im Laptop eingebauten DVD Laufwerk und einem „billigen“ USB DVD Laufwerk und meinem neu zu diesem Zweck erworbenen Blue-Ray USB-Laufwerk.
Bei allen Laufwerken erhalte ich das gleiche Ergebniss, es fehlen gut verteilt über den gesammten Datenträget einzelne Blöcke.

Den Rettungversuch habe ich unter UBUNTU 13.10 mit „dvdisaster“ durchgeführt und es lassen sich tatsächlich noch ein paar zusätzliche Prozente mit verringerter Laufwerksgeschwindigkeit aus den alten beschädigten CD- und DVD-Rohlingen holen.

Die Geschwindigkeit lässt sich unter Linux mit dem folgenden Befehl recht einfach, in meinem Besipiel auf „4x“, heruntersetzen.:

# hdparm -E 4 /dev/hdc

Leider lassen sich auch mit dieser Methode zwar mehr, aber nur selten wirklich alle Daten retten.

Die Positiven Punkte an dieser Anpassung?

  • Daten die sonst verloren wären lassen sich doch noch lesen
  • Die Einstellung ist beim Reboot wieder weg (oder mit einer Null an stelle der 4)
  • ein einfacher hdparm Befehl
Kategorien
Forensik Linux

Mod-Rewrite Funktionstest

mod_rewrite will manchmal nicht das tun was ich von ihm verlange. Manchmal habe ich auch eine mir unverständliche .htaccess Datei mit mod_rewrite Regeln die ich beim besten willen nicht nachvollziehen kann und auch wieder einfach nicht das tun was die READ.ME oder der Eigentümer der Datei behauptet.

Um in einer solchen Situation feststellen zu können ob das mod_rewrite auf dem Webserver funktionsfähig ist muss ich das irgendwie testen können.

Um einen solchen Test durchzuführen benötige ich drei  Dateien.
Eine .htaccess Datei und zwei HTML Dateien.
Wenn ich dann versuche nach dem Anlegen der Dateien diese aufzurufen.

Meine .htaccess Datei erhält den folgenden Inhalt:

RewriteEngine on
RewriteBase /
RewriteRule ^testing.php$ modrewrite.php

In der ersten Zeile starte ich, so vorghanden, das mod_rewrite, so das die beiden folgenden Zeilen, RewriteBase und RewriteRule, für den Apache eine Bedeutung erhalten. In der Zweiten Zeile lege ich die Basis der Umschreibe Regel fest. In der finalen dritten Zeile der .htaccess-Datei lege ich fest das alle Aufrufe welche die Datei testing.php erreichen sollen anstelle dieser die Datei modrewrite.php erreichen.
Wenn diese Regeln greifen ist es durch diese nicht möglich den Inhalt von „testing.php“ zu erhalten.

Meine beiden PHP Dateien erhalten den folgenden Inhalt:
modrewrite.php

<?php echo "mod_rewrite und PHP ".phpversion()." sind OK"; ?>

testing.php

<?php echo "mod_rewrite ist nicht funktionsfaehig"; ?>

Nach dem Anlegen der Dateien kann im Browser versucht werden die Internetseite http://domain.tld/testing.php auszurufen. Nur wenn im Browser der Text „mod_rewrite und PHP X.Y sind OK“ erscheint funktioniert mod_rewrite. Wenn etwas anderes angezeigt wird, „mod_rewrite ist nicht funktionsfaehig“, „echo „mod_rewrite ist nicht funktionsfaehig“;“ oder sogar „Fehler 500: Internal Server Error“, ist der Webserver nicht entsprechend eingerichtet und mod_rewrite kann leider nicht genutzt werden.

Kategorien
Forensik Linux security

Verzeichnisstruktur mit nur „bestimmten“ Dateien kopieren

Die Verzeichnisse in denen ich meine Bildarchive verwalte wurden mit der Zeit von verschiedenen Archiv Programmen mit unglaublichen mengen an .sqlite und .xml und .txt und ähnlichem aufgefüllt die ich für meine Backups nicht benötige. Die Metadaten werden von den meisten Bildverwaltungen ohnehin zusätzlich in die exif Daten der Bilder geschrieben.

Da ich zum zusammenkopieren meiner „Backup-Zeile“ eine ganze Weile herumprobieren musste habe ich diesen Blogbeitrag verfasst.?

Einzeiler zum kopieren einer Verzeichnisstruktur und aller „.jpg“ Dateien:

rsync -aP --partial --size-only --include "*/" --include "*.jpg" --exclude "*" /media/sdkarte/ /media/Bildarchive2013

rsync – Programm zur Synchronisation von Daten

-a fasst die folgenden Optionen zusammen:

  • -r lässt rsync rekursiv arbeiten
  • -l kopiert symbolische Links
  • -p behält Rechte bei
  • -t behält Zeiten bei,
  • -g behält Gruppenrechte bei
  • -D behält Gerätedateien bei (nur wenn root rsync startet)

-P macht rsync gesprächig und gibt den fortschritt der Syncroisierung aus
–partial unfolständige Dateien beibehalten und fortsetzen
–size-only nur die Dateigröße prüfen
–include mit in der Sicherung durchführen
–exclude nicht mit in der Sicherung zufügen ausser ausrücklich includiert

Die Kamera nimmt die Bilder und auch zusätzliche GPS Informationen in Ordner auf, die dem Jahr-Monat-Tag entspricht. Die GPS und Richtungs Informationen die die Kamera in zusätzlichen Dateien aufnimmt brauche ich nicht im Archive und lasse sie auf diese weise einfach aus.

Kategorien
Forensik IPTables Linux security

Offene Ports anzeigen

Um herauszufinden welcher Dienst auf welchem Port lauscht sind folgende Zeilen sehr hilfreich.

netstat -anp | egrep '(Proto|0.0.0.0|:::)' | grep -v '127.0.0.1'
lsof -i
lsof |grep LISTEN
Kategorien
Forensik Linux security

Md5 checksummen erstellen und vergleichen.

Anlegen der md5 Datei.

Datenträger für Prüfsummenliste mounten , z.B. Diskette:

mount /dev/fd0h1440 /mnt

Liste zu Prüfender Dateien erstellen

find /bin /boot /etc /lib /opt /root /sbin /usr \
-type f > /mnt/md5files.txt

md5sum auf Datenträger kopieren

cp /usr/bin/md5sum /mnt

Prüfsummenliste erstellen

cat < /mnt/floppy/Dateiliste.txt | xargs \
/mnt/md5sum > /mnt/md5list.md5

Datenträger ungemounten

umount /mnt/floppy

Auswerten
Nach Veränderungen an den Dateien fahnden.

Datenträger mit Prüfsummenliste mounten , z.B. Diskette:

mount /dev/fd0h1440 /mnt

mit Prüfsummenliste nach veränderungen suchen

/mnt/floppy/md5sum -c /mnt/md5list.md5 | less

Nach zusätzlichen Dateien suchen.

Liste zu Prüfender Dateien erstellen

find /bin /boot /etc /lib /opt /root /sbin /usr \
-type f > /tmp/files.txt

mit diff unterschiede finden

diff /mnt/floppy/Dateiliste.txt /tmp/Dateiliste2.tmp
Kategorien
Forensik Linux security

Festplatten Netzwerk-Clon

Um eine Exakte Forensische Kopie einer Festplatte zu erstellen nutzen wir die Befehle dd und netcat. Bei beiden handelt es sich um Standard Unix bzw. Linux Werkzeuge welche auf den meisten Systemen zur Verfügung stehen sollten. Sollte das Netzwerk nicht vertrauenswürdig sein oder die Daten vertraulich nutzen wir alternativ cryptcat anstelle von netcat, somit werden die Daten verschlüsselt übertragen.

Zunächst wird netcat auf dem Zielsystem wartend auf Port 2000 lauschend gestartet und, so das die Kommunikation zwischen beiden Systemen sichtbar wird, pipebench zwischengeschaltet.

Pipebench dient nur der Kontrolle ob sich dort noch Daten bewegen, sollten Sie pipebench nutzen wollen jedoch nicht haben, habe ich es hier unter downloads als statische i386 Datei.

netcat -l -p 2000 -w 5 | pipebench > /mnt//image.dd

Fürder hin sollten wir das auslesen der Festplatte auf den Quellsystem Starten und die Daten via netcat an das Zielsystem senden welches bereits auf port 2000 auf die Daten wartet.

dd if=/dev/hdX conv=noerror,sync | pipebench | netcat 192.168.0.1 2000

Anschließend überprüfen wir noch das die Dateigröße der Kopie identisch zu der Größe der Quellsystem Partition ist.

ls -lh /mnt/Forensik/image.dd

Abschließend sollten noch, um sicher zu gehen das es sich bei Original und Kopie um die selben Daten handelt, diese mit md5 oder sha256sum verglichen werden.

sha256sum /dev/hda1
sha256sum /mnt//image.dd

 

Und unter Windows?

Für die Windows-ianer folgt die gleiche Anleitung ein wenig später nach 😉
vorerst nur der Link zu den Tools: http://www.gmgsystemsinc.com/fau/

Kategorien
Forensik Linux security

Login versuche…

Es gibt auf jedem, offen im Internet zu erreichenden Server eine Unzahl von Login Versuchen mit den verscheidensten Benutzernahmen. Diese Bruteforce-Angriffe können einen Server auslasten und, im Schlimmsten Fall wird auch bei größter Vorsicht doch einmal ein Kennwort erraten.

Die SSH-Loginversuche lassen sich unter Linux mit den folgenden Snippets beobachten.:

cat /var/log/auth.log |grep "Failed password for invalid user "|cut -d' ' -f11|sort|uniq
cat /var/log/auth.log |grep "Failed password for invalid user "|cut -d' ' -f11|sort|wc -l

Um diese Bruteforce Passwort-Versuche zu unterbinden bietet es sich an im IPTABLES die Fehlerhaften Logins zu Monitoren und nach einigen Versuchen den Port 22, oder entsprechenden SSH-Port für einige Zeit zu sperren.

Im folgenden Beispiel wird eine Ausnahmeliste erszellt, bei diesen IP-Adressen wird nicht gesperrt, und im Anschluss nach 2 erfolglosen Loginversuchen ein Logeintrag gemacht und der Port 22 für 240 Sekunden gesperrt.

iptables -N SSH_WHITELIST
iptables -A SSH_WHITELIST -s 192.168.0.1 -m recent --remove --name SSH -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -j SSH_WHITELIST
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 240 --hitcount 2 --rttl --name SSH -j ULOG --ulog-prefix SSH_brute_force
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 240 --hitcount 2 --rttl --name SSH -j DROP

 

Kategorien
Forensik Linux Postfix security

Postfix Mail-Queue wichtige Befehle

Die gesamte Mail-Queue löschen:

postsuper -d ALL

Alle Mails der Queue anzeigen:

mailq | less

Die entsprechende queue_id merken/kopieren

postsuper -d ID

Alle Emails von oder zu einer Adresse löschen:

mailq | tail +2 | awk 'BEGIN { RS = "" } / user@loteks\.de$/ { print $1 } ' | tr -d '*!' | postsuper -d -

alle Mails auf „hold“ setzen:

postsuper -h ALL

Eine einzelne Mails auf „hold“ setzen:

 postsuper -h ID

Alle Mails im Status „hold“ ausliefern:

postsuper -H ALL

Eine einzelne Mails ausliefern:

postsuper -H ID

Auslieferung erzwingen:

postqueue -f