Kleines Expect-Script für alte Cisco Switches un err-disabled

Expect-Script

#!/usr/bin/expect

set host [lindex $argv 0]

spawn telnet $host
expect „Password:“
send „YourPassword\n“
log_file ./err-status-$host.log

send „term len 0\n“
send „show int status err-disabled\n“
expect „end\r“
send „\n“
send „exit\n“
log_file

Bash-Wrapper

cat check-state.sh
/usr/bin/expect ./check-state.expect 1.2.3.4
sleep 2
/usr/bin/expect ./check-state.expect 1.2.3.5
sleep 2

SFTP Skript mit Bash

#!/bin/bash
#
# Encryption and SFTP Script 
# (c) 2017 Steffen Berg
#
# Es wird eine Verschluesselungssoftware benoetigt.
# Diese muss unter /$path/bin liegen.
#
# Es wird die Software sshpass benoetigt.
# Diese muss im Path vorhanden sein, sodass sie ueberall aufgerufen werden kann.
# Hierbei sollte mit einem credentials-File gearbeitet werden.
# Owner muss root sein und Rechte muessen 600 sein.
#
# Fuer das optionale Mounten muss ein entsprechender fstab-Eintrag vorhanden sein.
# Am besten hier auch mit credentials-File arbeiten.
# Owner auch root und Rechte auch 600.
#
# Ein sftp Client muss im Pfad stehen und von ueberall aufrufbar sein.
# Funktion mit Standard-SFTP-Client eines Ubuntu System getestet.
#Some Vars
lasttry=$(date)
path="/homedir"
work="$path/work"
encrypted="$path/encrypted"
srcserver="fileserver"
srcdir="quellverzeichnis"
filelist=`ls -1 /$srcserver/$srcdir/muster*.txt`
keyfile="$path/bin/encryptionkey"
binenc="$path/bin/encryption-binary"
credfile="/etc/sshpass.cred"
sftpserver="server oder ip"
username="sftp user name"
done="done"
logfile="encryption-history.log"
remotestatefile="remotestate.stat"
# Letzten Zeitstempel des Skriptaufrufes speichern
echo "------------------------------------- Start -----------------------------------------" >> $path/$logfile
echo "$lasttry Starting sftp Skript" >> $path/$logfile
  „SFTP Skript mit Bash“ weiterlesen

Ubuntu Linux 16.04 LTS Server iSCSI Target (Server) Installation – Low Cost SAN Storage

Ubuntu Linux 16.04 LTS Server iSCSI Target (Server) Installation – Low Cost SAN Storage

Per PuTTY am Server anmelden (Siehe auch Grundinstallation für vorherige Details).

Zwischenablage34.jpg

Als root anmelden.

Zwischenablage35.jpg

Dann mit apt-get die Software „targetcli“ installieren.

apt-get install targetcli

Und ein Verzeichnis /storage für die Ablage der Storage-Files anlegen.

„Ubuntu Linux 16.04 LTS Server iSCSI Target (Server) Installation – Low Cost SAN Storage“ weiterlesen

Nagios Plugin Eventlog Windows mit bash und winexe

Mit Linux und winexe remote Befehle auf Windows Maschinen ausführen

Aus dem Opsi-Paket habe ich das Programm winexe genutzt, um z.B. Dienste neu zu starten.

Quelle für SuSE für winexe

http://software.opensuse.org/package/winexe

Hier ein kleines Beispiel mit dem der opsi-Client Dienst gestartet wird

nagios:~ # winexe -U WINDOMAIN/Username%’Password‘ //host.domain.tld ‚cmd /C net start opsiclientd‘

Anmerkung
Falls es beim Aufruf von winexe zu Fehlern dieser Art kommt, und man den smbd Dienst nicht braucht, kann man die smb.conf verschieben, oder die Parameter darin auskommentiert. winexe scheint die smb.conf auszulesen und unbekannte Parameter als Fehler auszugeben. Die Funktion ist unabhängig von den Fehlern aber gegeben.

Unknown parameter encountered: „passdb backend“
Ignoring unknown parameter „passdb backend“
Unknown parameter encountered: „printing“
Ignoring unknown parameter „printing“
Unknown parameter encountered: „printcap name“
Ignoring unknown parameter „printcap name“
Unknown parameter encountered: „printcap cache time“
Ignoring unknown parameter „printcap cache time“
Unknown parameter encountered: „cups options“
Ignoring unknown parameter „cups options“
Unknown parameter encountered: „map to guest“
Ignoring unknown parameter „map to guest“
Unknown parameter encountered: „logon path“
Ignoring unknown parameter „logon path“

Falls auf smb verzichtet werden kann als Befehle in

/etc/samba/smb.conf

auskommentieren.

Per Powershell das Windows Eventlog auslesen

Ein Beispiel, um aus dem Log „System“ den ersten neuesten Eintrag von der Quelle „NETLOGON“ auszulesen

Get-EventLog -logname System -newest 1 -source „NETLOGON“

Powershellskript c:\eventlog5719.ps1

Der Einfachheit halber habe ich ein kleines PS-Skript erstellt, um die Befehle per winexe einfacher ausführen zu können:

Get-EventLog -logname System -newest 1 -source „NETLOGON“ 2>&1> $null
echo $?

„Nagios Plugin Eventlog Windows mit bash und winexe“ weiterlesen

Sichere Passwörter und /bin/false als Shell!

Durch einen ungeschickten useradd-Befehl gepaart mit Passwort == Username, wurde mal ein Server schnell kompromittiert. Dem useradd-Befehl wurde dann auch nicht per „-s /bin/false“ keine Shell zugewiesen, sondern es wurde „/bin/sh“ per Default gesetzt. So fand jemand sehr schnell die Einstiegsluke.

In Unterverzeichnissen von /tmp wurden einige Exploit-Skripts und eine IRC-Bot-Software installiert. Unter anderem beinhaltete die Softwaresammlung auch den Bot Eggdrop.

Nachdem ich den Angreifer ausgesperrt hatte, konnte ich in der Shell-History das Vorgehen einsehen.

Sowas darf nicht passieren!

Hier die Shell-History (die IP-Adressen und Hostnamen sind geändert):

„Sichere Passwörter und /bin/false als Shell!“ weiterlesen

IP Adresse mit iptables blockieren

Mir fiel auf, dass von einer IP-Adresse sehr viele Passwortanfragen kamen, da die /var/log/auth.log Datei sehr groß wurde.

Als schnelle Lösung habe ich die IP-Adresse mit iptables blockiert.

Mit folgendem iptables-Befehl kann der Traffic einer IP-Adresse (Bsp. 1.2.3.4) komplett geblockt werden.

iptables -A INPUT -s 1.2.3.4 -j DROP

Netstat sortieren nach Foreign Portnummer

Dieser Befehl war sehr praktisch, als ein Serial-To-Ethernet Umsetzer von Perle (IOLAN STS-16) ausgetauscht werden musste. Diese Geräte werden z.B. dafür genutzt, um Laboranalygeräte an die EDV anzuschließen. Die einzelnen seriellen Leitungen werden von dem Umsetzer auf tcp-Socket 10001-100016 gemappt.

Nach dem Austausch konnte ich durch den Befehl schön beobachten, wie die einzelnen Treiber des Laborservers sich mit den Sockets verbunden hatten.

Befehl
linux$ netstat -apn | grep 110.27 | sort -t \: +2

Ausgabe
(Es konnten nicht alle Prozesse identifiziert werden; Informationen über
nicht-eigene Processe werden nicht angezeigt; Root kann sie anzeigen.)
tcp 0 0 192.168.110.35:57494 192.168.110.27:10002 VERBUNDEN 539/process-name
tcp 0 0 192.168.110.35:37240 192.168.110.27:10003 VERBUNDEN 787/process-name
tcp 0 0 192.168.110.35:36276 192.168.110.27:10004 VERBUNDEN 1031/process-name
tcp 0 0 192.168.110.35:47603 192.168.110.27:10007 VERBUNDEN 801/process-name
tcp 0 0 192.168.110.35:49051 192.168.110.27:10008 VERBUNDEN 1033/process-name
tcp 0 0 192.168.110.35:51300 192.168.110.27:10009 VERBUNDEN 1202/process-name
tcp 0 0 192.168.110.35:53143 192.168.110.27:10010 VERBUNDEN 1029/process-name
tcp 0 0 192.168.110.35:54758 192.168.110.27:10012 VERBUNDEN 927/process-name
tcp 0 0 192.168.110.35:37393 192.168.110.27:10015 VERBUNDEN 526/process-name
tcp 0 0 192.168.110.35:55052 192.168.110.27:10016 VERBUNDEN 1027/process-name

Default Login Perle IOLAN STS-16
User: iolan oder system oder su
Passwort: iolan oder system oder iolan123