Capture webpages to image

iptables -A INPUT -p tcp –destination-port 60000 -j DROP
masscan 192.168.0.0/24 –rate 10 -p80 –banners -oL result.list –source-port 60000

Optional: masscan -iL target.list –rate 10 -p80 –banners -oL result.list –source-port 60000

cat result.list | cut -d \ -f 4 | sort | uniq | grep -v „^#“> list.ip.raw

python3 -m pip install selenium

cat capture-website-to-image.py
import sys
from selenium import webdriver

url = sys.argv[1]

print(„capturing {}“.format(url))

chromeOptions = webdriver.ChromeOptions()
chromeOptions.add_argument(„–no-sandbox“)
chromeOptions.add_argument(„–disable-setuid-sandbox“)
chromeOptions.add_argument(„–remote-debugging-port=9222“)
chromeOptions.add_argument(„–disable-gpu“)
chromeOptions.add_argument(„start-maximized“)
chromeOptions.add_argument(„disable-infobars“)
chromeOptions.add_argument(„–headless“)

DRIVER = „chromedriver“
driver = webdriver.Chrome(DRIVER, options=chromeOptions)
driver.get(„https://{}“.format(url))
screenshot = driver.save_screenshot(„pic{}.png“.format(url))
driver.quit()

print(„finished {}“.format(url))

cat wrapper-capture-website.bash
#!/bin/bash
for elem in $(cat list.ip); do
echo „starting capture „$elem
python3 capture-website-to-image.py $elem
done

bash wrapper-capture-website.bash

PRTG Skript for Monitoring Ntfs Errors in Windows Eventlog

$hostname = „hostname.domainname.tld“
$threshold = 0
$days = 2
$username = „DOMAIN\administrator“

$password = „p4ssw0rd“
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force

$credentials= New-Object System.Management.Automation.PSCredential ($username, $secpasswd)

$ErrorCount = Get-WinEvent -ComputerName $hostname -ProviderName „Microsoft-Windows-Ntfs“ -Credential $credentials | Where-Object LevelDisplayName -eq
„Fehler“ | Where-Object TimeCreated -gt $((Get-Date) – (New-TimeSpan -Day $days)) | Measure-Object | Select-Object -expand Count

if ($ErrorCount -eq $threshold) {
  Write-Host „${ErrorCount}:$Errorcount event(s) for Ntfs errors on $hostname in the last $days days – OK“
}
else {
  Write-Host „${ErrorCount}:$Errorcount event(s) for Ntfs errors on $hostname in the last $days days – CRIT“
}

Ethereum Daten zur Wallet abrufen

Wie im vorherigen Artikel für die Crypto-Währung Bitcoin beschrieben, kann man sich auch die Daten einer offline Ethereum-Wallet anzeigen lassen.

Dazu nutzt man z.B. die Webseite etherscan.io. Dort kann man ebenfalls in die Suchleiste die Wallet-ID eingeben und erhält die weiteren Daten zur Wallet:

Auch kann sich auf dieser Seite die im Wallet gespeicherten Token z.B. ERC-20 Tokens anschauen:

Als nächstes werden Käufe und Transaktionen von Bitcoin und weiteren Währung in den nächsten Artikeln beschrieben.

Bitcoin bzw. Crypto Know-How

Zum Jahreswechsel bin ich sehr dem Hype der Crypto-Währungen verfallen. Aktiv habe ich die Entwicklung verfolgt und auch leider zu aus heutiger Sicht ungünstigen Zeitpunkten investiert.

Da sich der Markt zur Zeit ja eher im „Stillstand“ bewegt ist meine Aufmerksamkeit in den letzten Wochen/Monaten etwas zurück gegangen.

HODL!

Um jedoch das damals erlangte Wissen nicht zu vergessen, dokumentiere ich einiges hier in meinem Blog. Primär damit andere und ich jederzeit als Referenz darauf zugreifen könne.

Ich fange ganz einfach an, Daten einer bestehenden Paper-Wallet abzurufen. Dazu kann man sich der Webseite blockchain.info bedienen. Dort kann man einfach eine Wallet-Adresse in die Suchleiste eingeben und erhält die weiteren Information zu dieser Wallet:

In weiteren Adressen werde ich weitere Informationen zu Transaktionen und weiteren Crypto-Währungen dokumentieren.

Elasticsearch Downgrade von Version 6.x zu Version 5.x

elasticsearch deinstallieren

dpkg -r --force-all elasticsearch

sources.list anpassen – Es dürfen keine Repositories der Version 6.x angegeben werden:

cat /etc/apt/sources.list
deb https://artifacts.elastic.co/packages/5.x/apt stable main

Elasticsearch Version 5.x installieren

apt-get update
apt-get install --reinstall elasticsearch

Zur Sicherheit noch mal beide Pakete zammad und elasticsearch reinstallieren

apt-get install --reinstall elasticsearch zammad

Den Zammad Index neu builden

zammad run rake searchindex:rebuild

Ubuntu 18.04 LTS installieren

ACHTUNG: Bitte die ISO-Datei mit dem traditionellem Installer downloaden.
http://cdimage.ubuntu.com/releases/18.04/release/ubuntu-18.04-server-amd64.iso

In der neuen Version ist keine Möglichkeit vorhanden ein LVM einzurichten.

sudo passwd

vi /etc/ssh/sshd_config

PermitRootLogin yes

/etc/init.d/ssh restart

vi /etc/netplan/01-netcfg.yaml

# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
ens160:
dhcp4: no
addresses: [192.168.0.11/24]
gateway4: 192.168.0.1
nameservers:
addresses: [192.168.0.3,145.253.2.11]

netplan apply

Zammad in Ubuntu 18.04 Server

ACHTUNG: Bitte elasticsearch in Version 5.x verwenden! Version 6.x wird derzeit nicht unterstützt!

sysctl -w vm.max_map_count=262144

wget -qO – https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add –

echo „deb https://artifacts.elastic.co/packages/5.x/apt stable main“ >> /etc/apt/sources.list

apt-get update

apt install openjdk-8-jre-headless

apt install elasticsearch

/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment

wget -qO- https://dl.packager.io/srv/zammad/zammad/key | sudo apt-key add –

wget -O /etc/apt/sources.list.d/zammad.list \
https://dl.packager.io/srv/zammad/zammad/develop/installer/ubuntu/18.04.repo

apt-get update

apt-get install zammad

Elementanzahl in SMB Share

Es soll ein Check auf Filecount implementiert werden. Auf dem abzufragenden Server kann jedoch kein check_mk Agent installiert werden. Es kann jedoch mit User / Passwort / Domain auf einen UNC-Pfad zugegriffen werden. Um die Dateianzahl darüber zu ermittelt habe ich das kleine check_smb_count.sh Plugin geschrieben (/opt/omd/versions/default/lib/nagios/plugins/check_smb_count.sh):

#!/bin/bash 
# 
# Check count of lines for smbclient 
# 
# smbclient //host/share SecretPassword  -U Username -W Domainname -c ls | wc -l 
# Domain=[DOMAIN] OS=[Windows 7 Professional 7601 Service Pack 1] Server=[Windows 7 Professional 6.1] 
# 18 
# 
# (c) 2018 Steffen Berg 
#  
server="host" 
share="share1" 
user="user1" 
password="secret" 
domain="WORKGROUP" 
critical="20" 
subdir="/subdir1/subdir2/*"  

elemcountraw=`smbclient //$server/$share $password -U $user -W $domain -c "ls $subdir" 2> /dev/null | wc -l` 

elemcount=$(($elemcountraw - 4))  

if [ "$elemcount" -lt "$critical" ] then   
echo "0 SMB-ElementCount - OK SMB-ElementCount $elemcount/$critical OK"
  exit 0 
else   echo "2 SMB-ElementCount - CRITICAL SMB-ElementCount $elemcount/$critical CRIT"
  exit 2 
fi

Einbindung über /omd/sites/<site>/etc/check_mk/conf.d/legacy.mk

# Definition of the Nagios command for SMB extra_nagios_conf += r""" define command {   command_name check_smb_count   command_line /opt/omd/versions/default/lib/nagios/plugins/check_smb_count.sh } """  # Create service definition legacy_checks += [   (( "check_smb_count", "ElementCountSMB", True), [ "host" ] ), ]

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