Im Kurztest: Sshpass 1.06, XSV 0.12.2, Pynagsystemd 1.1.1, Pdsh 2.33, Prebackup 1.1.1, Web Shell Search 2017-01-06
Sshpass 1.06
SSH-Passwörter automatisch übergeben
Quelle: https://sourceforge.net/projects/sshpass
Lizenz: GPLv2
Alternativen: SSH
Wer SSH in Skripten einsetzt und die passwortlose Authentifizierung benötigt, nutzt in der Regel das Public-Key-Verfahren. Ist es nicht möglich, den öffentlichen Schlüssel auf dem entfernten Server zu hinterlegen, dann kann sich Sshpass um die Kennwörter kümmern. Das Tool ist als Wrapper für SSH gedacht, arbeitet aber auch mit anderen Programmen zusammen.
Anwender geben beim Aufruf ihren Login-Namen und die Adresse der Gegenstelle sowie einen dort auszuführenden Befehl an. Das Tool schaut in der Standardausgabe nach der Zeichenkette »assword:« und reicht das vorher definierte Kennwort an SSH weiter.
Es gibt mehrere Möglichkeiten, es festzulegen. Anwender schreiben es entweder im Klartext hinter den Parameter »-p« oder geben hinter »-f« eine Datei an, die das Kennwort in der ersten Zeile enthält. Alternativ setzen sie die Umgebungsvariable »SSHPASS« und geben sie per »-p$SSHPASS« im Aufruf an. Der Schalter »-v« bewirkt, dass Sshpass ausführliche Meldungen auf die Konsole schreibt.
Die Entwickler weisen darauf hin, dass keine der drei Methoden das Passwort hundertprozentig schützt. Wer allerdings das Public-Key-Verfahren nicht nutzen kann, findet hier eine praktische Alternative zur passwortlosen Authentifizierung in Skripten.
XSV 0.12.2
CSV-Dateien in der Shell verarbeiten
Quelle: https://github.com/BurntSushi/xsv
Lizenz: MIT
Alternativen: Csvdb
Die meisten Nutzer greifen zum Pager oder Lieblings-Texteditor, um CSV-Dateien zu betrachten oder zu verändern. XSV empfiehlt sich für Shell-Fans. Das Tool zeigt CSV-Dateien an, wertet sie aus und verarbeitet sie weiter.
In der Voreinstellung erwartet XSV das Komma als Feldtrenner. Hinter »-d« können Anwender aber ein anderes Zeichen definieren. Das Kommando »count« stellt fest, wie viele Zeilen die CSV-Datei enthält. Optional ignoriert das Tool die Kopfzeilen. Der Befehl »stats« erstellt statistische Auswertungen und präsentiert für jede Spalte den Datentyp sowie die minimale und maximale Länge der Einträge. Weitere Werte, etwa die Kardinalität oder den Median, ermittelt das Tool nur, wenn es die CSV-Datei komplett im Arbeitsspeicher halten kann.
Um eine tabellarische Ausgabe zu erhalten, rufen Nutzer »xsv table« auf. Wer die Datensätze lieber als Block sieht, verwendet stattdessen das Kommando »flatten«. Einzelne Bereiche präsentiert »slice«, »search« durchsucht die Datei. Darüber hinaus bietet XSV Funktionen wie »cat«, »join« und »split«, um Dateien zu kombinieren oder aufzuteilen.
Die Tester bemängeln lediglich, dass eine Manpage mit Beispielen fehlt. Diese finden Anwender immerhin auf der Projektseite, und »xsv -h« zeigt verfügbare Befehle auf der Shell an.
Pynagsystemd 1.1.1
Systemd-Monitoring
Quelle: https://github.com/kbytesys/pynagsystemd
Lizenz: GPLv2
Alternativen: Systemctl, Systemd Manager
Das Python-Skript Pynagsystemd prüft, ob alle von Systemd gestarteten Dienste laufen. Das Tool arbeitet mit Python 2.x und Python 3.x zusammen und benötigt das Modul »nagiosplugin« (Version 1.2 oder neuer), das die jeweiligen Klassen für »check« und »metric« bereitstellt. Obwohl Pynagsystemd für den Einsatz mit Nagios gedacht ist, kommt das Skript auch mit anderen Monitoringlösungen wie Icinga 2 oder Check_Mk zurecht, da Textausgabe und Rückgabewerte gängigen Standards entsprechen.
Ohne Parameter aufgerufen überprüft das Tool alle per Systemd gestarteten Dienste. Im Hintergrund greift es auf »systemctl« zurück. Es nutzt die Parameter »–failed« und »–no-legend«, um fehlerhafte Dienste zu suchen und eine kurze Rückmeldung auszugeben. Erscheint die Nachricht »SYSTEMD OK«, dann ist alles in Ordnung. Andernfalls schreibt Pynagsystemd »SYSTEMD CRITICAL« nach Stdout und listet fehlgeschlagene Units auf. Einzelne Dienste definieren Nutzer hinter »-s«. Das Skript ruft dann das »systemctl«-Kommando »is-active« auf.
Das kleine Python-Skript erledigt genau das, was es verspricht: Es fragt Systemd nach dem Status einzelner oder aller Dienste und reicht die Antworten an Monitoringlösungen wie Nagios, Icinga 2 und Check_Mk weiter.
Pdsh 2.33
Befehle parallel ausführen
Quelle: https://github.com/chaos/pdsh
Lizenz: GPLv2
Alternativen: Parallel SSH, Cluster SSH
Systemverwalter, die mit vielen Servern jonglieren, führen häufig die gleichen Befehle auf allen Rechnern aus. Mehr Übersicht und weniger Tipperei verspricht Pdsh, das ein Kommando gleichzeitig auf mehreren Servern ausführt. Das Tool unterstützt verschiedene Remote-Shell-Lösungen. Nach dem Kompilieren stehen »exec« und »rsh« bereit; wer die SSH-Unterstützung wünscht, gibt »–with-ssh« beim Kompilieren an.
Anwender geben hinter »pdsh -w« eine Liste von Hostnamen oder IP-Adressen an, auf denen sie gleichzeitig arbeiten möchten. Mit »-l« bestimmen sie den Login-Namen, der auf allen Systemen gleich lauten muss. Die Passwörter dürfen sich voneinander unterscheiden, denn Pdsh fragt diese nacheinander ab. Benutzer geben über »-R ssh« an, das die Verbindung per SSH laufen soll. Für einen zügigen Verbindungsaufbau empfehlen sich passwortlose SSH-Schlüssel.
Am Prompt »pdsh>« tippen Anwender ihre Befehle ein. Ausgaben landen ebenfalls in der Pdsh-Shell, wobei vor jeder Zeile der Hostname steht. In der Voreinstellung wartet das Tool so lange, bis auf jedem Rechner der Befehl vollständig abgearbeitet ist. Wer ein Zeitlimit festlegen möchte, kann dies hinter »-u« tun.
Die Manpage listet noch weitere Parameter und Funktionen auf, die in den einzelnen Verbindungsmodi bereitstehen. Außerdem zeigt die Anleitung, wie Benutzer mit Umgebungsvariablen die Standardverbindungsart sowie SSH-Parameter vorgeben können.
Pdsh ist eine echte Arbeitserleichterung. Dank variabler Thread- und Timeout-Einstellungen eignet sich das Tool auch für den automatisierten Einsatz in Wartungsskripten.
Prebackup 1.1.1
Daten fürs Backup organisieren
Quelle: https://github.com/malessandrini/prebackup
Lizenz: GPLv3
Alternativen: keine
Dieses kleine Tool will Anwendern dabei helfen, Verzeichnisse und Dateien fürs Backup vorzubereiten. Das eigentliche Sichern übernehmen dann weitere Programme. In der einfachen Qt-5-basierten Oberfläche erzeugen Benutzer so genannte Snapshots der zu sichernden Daten. Sie können beliebig viele Verzeichnisse erfassen; Prebackup berücksichtigt automatisch die enthaltenen Unterverzeichnisse, berechnet das Datenvolumen und zeigt die Größe des Snapshots an. Über das Menü »Compare« erreichen Anwender eine Funktion zum Vergleichen von zwei Snapshots.
Findet Prebackup eine Datei namens ».nobackup« in einem Verzeichnis, dann nimmt es dieses und alle darunterliegenden Verzeichnisse von der Datensicherung aus. Derartige Files legen Anwender von Hand im Dateimanager oder auf der Kommandozeile an – in Prebackup ist das Feature nicht implementiert. Für jeden Snapshot können Anwender nur ein einziges Exclude-Tag definieren. Wer mehrere Tags setzen möchte, muss mit weiteren Snapshots arbeiten.
Die Snapshots landen als SQlite-Dateien im Verzeichnis »~/.config/prebackup«. Benutzer unterscheiden sie anhand ihrer Zeitstempel. Im selben Ordner liegt auch die Prebackup-Konfigurationsdatei.
Die Idee, Backups in einem grafischen Tool vorzubereiten, besticht. Allerdings ist der Funktionsumfang noch nicht überzeugend und es bleiben viele Wünsche offen. Die Tester bemängeln etwa, dass sie nur ganze Verzeichnisse und nicht einzelne Dateien vom Snapshot ausschließen können – bei Prebackup ist noch viel Luft nach oben.
Web Shell Search 2017-01-06
Malware in PHP-Skripten finden
Quelle: https://webshellsearch.sourceforge.io
Lizenz: MIT
Alternativen: PHP Malware Finder, PHP Scanner
Täglich schleusen Angreifer PHP-Schadcode in mehrere Tausend Websites ein und versuchen über Hintertüren Kontrolle über den Server zu erlangen. Web Shell Search hilft Administratoren dabei, Malware zu finden. Das Python-Skript ist nach dem Entpacken sofort einsatzbereit; Abhängigkeiten zu weiteren Python-Modulen bestehen nicht. Web Shell Search arbeitet mit Python 2.x und 3.x zusammen.
Viel zu konfigurieren gibt es nicht. Nutzer können die farbige Aufbereitung der Ausgabe unterdrücken oder die ausführlichen Informationen zu den überprüften Dateien deaktivieren. Seine Ergebnisse schreibt das Tool nach Stdout, wenn Anwender nicht über »-o« eine Ausgabedatei festlegen. Beim Start ist das zu analysierende Dokumentenverzeichnis auf dem Webserver anzugeben. Web Shell Search erfordert lokalen Zugriff.
Das Quellarchiv enthält Referenzdatenbanken mit schädlichen PHP-Funktionen und bekannten -Shells. Im ersten Arbeitsschritt sucht das Tool nach PHP-Shells, im zweiten nach verdächtigen und kritischen Funktionen in PHP-Dateien. Danach schaut es, ob in PHP-Skripten externe Tools aufgerufen werden, zum Schluss kontaktiert Web Shell Search https://shellray.com und https://virustotal.com, um schadhafte Funktionen oder Hintertüren aufzudecken.
Web Shell Search brauchte im Test zirka 10 Sekunden für 300 MByte Code. Das Tool ist ohne aufwändige Konfiguration sofort einsatzbereit und dank der Zusammenarbeit mit Onlinequellen stets aktuell.











