Mittwoch, 7. Dezember 2022

Netzwerkanalyse - ping, traceroute und MTR

Für Netzwerkanalysen gehören "Ping" und "Traceroute" zu den am häufigsten verwendeten Tools. In diesem Beitrag möchte ich kurz auf die Verwendung eingehen und MTR (My traceroute) vorstellen, welches die Funktionen von traceroute und ping zu einem Netzwerk-Diagnose-Werkzeug kombiniert.

ping

Dient zum Prüfen der Erreichbarkeit von anderen Rechnern / Servern oder Geräten (z.B. Drucker) über ein Netzwerk. Durch das "Anpingen" eines Netzwerkteilnehmers, bekommt man in der Regel eine kurze Antwort zurückgeschickt. Es lässt sich somit die "grundsätzliche" Erreichbarkeit feststellen. Hierzu wird das ICMP-Protokoll verwendet. Als grundlegender Netzwerkbefehl ist ping auf allen Betriebssystemen verfügbar und muss nicht installiert werden.


traceroute (tracert)

Hiermit lässt sich der Transportweg von IP-Datenpaketen zwischen dem eigenen Rechner und der Gegenstelle ermitteln. Es wird die Antwortzeit der jeweils durchlaufenen Router gemessen. Es lässt sich so das Routing der Verbindung anzeigen und ggf. einen Auslöser von Verzögerungen herausfinden.

Installation: sudo apt-get install traceroute


MTR (My traceroute)

MTR kombiniert die oben beschriebenen Funktionen von traceroute und ping in einem Werkzeug.

Installation: sudo apt-get install mtr


Sonntag, 4. Dezember 2022

Agile - Wieso geht es ständig ums Feedback? Agiles Schiffe versenken!

In verschiedenen Beiträgen bin ich bereits auf das Thema "Warum eigentlich agil?" bzw. "Agile - "Lifehack" Sammlung Selbstmanagement und Kollaboration" eingegangen. Das Vorgehen ist natürlich in der Softwareentwicklung weit verbreitet, für Teams mit einem anderem beruflichen Kontext benötigt eine Umstellung jedoch viel Zeit.

Agiles Schiffe versenken als Antwort auf die Fragen:

  • Wieso verändert sich ständig unser Ziel? 
  • Wieso muss ich mich selbst organisieren? 
  • Wieso reden wir ständig von Feedback?
 

Softwareentwickler Box UK hat eine Version "Schiffe versenken" entwickelt, bei der man im 1. Durchgang kein direktes Feeback zu möglichen Treffern erhählt. Im 2. Durchgang jedoch nach jedem Schuss eine Rückmeldung (ob Treffer oder nicht) bekommt.

In der anschließenden Statistik sieht man sofort, dass man mit direktem Feeback viel erfolgreicher ist!

Samstag, 3. Dezember 2022

FRITZ!Box - VPN Zugriff mit WireGuard (FritzOS 7.50)

Für viele Fritzbox-Admins bringt das FritzOS-Update auf Version 7.50 endlich die Möglichkeit die schnelle und zugleich komfortable VPN-Technik WireGuard nutzen zu können. Eine Möglichkeit mit Hilfe von IPsec, hatte ich in dem Beitrag "VPN Zugriff mit der Fritz Box" von 2018 beschrieben.

VPN Zugriff per WireGuard einrichten

  1. Die Fritzbox muss anhand einer DynDNS-Domain erreichbar sein, alternativ geht dies auch per MyFritz. Siehe hierzu auch mein Beitrag "VPN Zugriff mit der Fritz Box".
  2. WireGuard muss auf den jeweiligen Geräten installiert werden, siehe auch https://www.wireguard.com/install/.
  3. Jetzt das Fritzbox Menü "Internet/Freigaben/VPN (WireGuard)" öffnen und auf "Verbindung hinzufügen" klicken. Hier kann die vereinfachte Einrichtung übernommen werden. Der eingehende Tunnel sollte einen prägnanten Namen haben wie z.B. Nutzer_Gerät . Jetzt kann die Konfiguration mit "Fertigstellen" abgeschlossen werden.
  4. Jetzt kann man das Fritzbox Webinterface geöffnet lassen, nachdem man sich die Konfiguration heruntergalden hat. Auch hier sollte man dem Dateinamen wieder einen verständlichen Namen geben wie z.B. Sebastian_GooglePixel.conf . Auf dem Smartphone kann man die Konfiguration am Besten per QR-Code vom Webinterface der Fritzbox einlesen. Am PC muss man dafür das Menü "Tunnel aus Datei importieren" anklicken.

Damit ist die Konfiguration abgeschlossen und man kann den Tunnel über das WireGuard-Menü aktivieren.

Sonntag, 13. November 2022

Windows - QR Code generieren (Edge-Browser oder Word-Dokument)

Immer wieder kommt mir die folgende Frage unter "Wir würden gerne einen QR Code generieren, um eine Webseite zu verlinken. Gibt es ein spezielles Programm das genutzt werden kann?" Dies funktioniert mit Hilfe vom Edge-Browser oder auch mit einem Word-Dokument oder mit Python - Generierung von QR-Code Bildern.


Einfach die im Edge-Browser enthaltene Funktion benutzen



Man kann QR-Codes auch direkt in Word erstellen

  • In einem Word-Dokument Strg + F9 drücken
  • Folgendes in die geschweifeten Klammern schreiben:
    • DISPLAYBARCODE https://shemel.de QR \q 3
  • Rechtsklick auf "Feldfunktion ein/aus"


Sonntag, 6. November 2022

OpenStreetMap - Anstatt Google Maps in Android-Apps verwenden

Mit Hilfe der Bibliothek osmdroid können Entwicklern, auf OpenStreetMap-Karten in Android-Apps ähnlich komfortabel zuzugreifen wie auf Google-Maps-Karten. Durch Integration der Bibliothek OSMBonusPack ist sogar Routing und Geocoding möglich. Für den Einsatz auf Webseiten empfehle ich meinen Beitrag "Webseite mit interaktiver Karte ohne Google Maps? Leaflet.js".

Integration von osmdroid und OSMBonusPack

dependencies {
...
    implementation 'org.osmdroid:osmdroid-android:6.1.14'
    implementation 'com.github.MKergall:osmbonuspack:6.9.0'
}

Ein gutes Beispiel Projekt findet sich in der c't 23/2022 S. 138 oder unter https://gitlab.com/andreaslinke/lastlocation/-/tree/main/ .

Freitag, 4. November 2022

Security - Open Source Intelligence (OSINT) Recherchen - Teil II

In meinem Betrag Security - Open Source Intelligence (OSINT) Recherchen bin ich bereits auf einige OSINT-Tools eingegangen, welche zur Aufdeckung von IT-Sec Schwachstellen genutzt werden können. In diesem Beitrag möchte ich auf weitere Beispiele verweisen, welche sich online oder mit Hilfe von Kali Linux einfach nutzen lassen.

DNSRecon - Mit Hilfe diesem Python-Skript lassen sich erste DNS-Informationen sammeln.

dnsrecon -d google.de

Nikto - Schwachstellenscanner, der Webserver auf gefährliche Dateien/CGIs, veraltete Serversoftware und andere Probleme scannt.

nikto -h google.de

w3af - Is ein Web Application Attack und Audit Framework.

Zphisher - Erstellt Fakes von populären Websites

Mitre Att&ck Matrix - Diese Matrix bietet Pentestern ein Framework für zielgerichtete Angriffe.

Nmap - Mit diesem Netzwerkscanner ist es möglich eine grobe Analyse von Netzwerken und möglichen Angriffsszenarien zu erstellen.


Dienstag, 25. Oktober 2022

Cloud - Lokale Webdienste mit Hilfe von ngrok Tunnel sicher ins Netz bringen

Mit Hilfe von Cloud Diensten, wie z.B. ngrok Tunnel lassen sich lokale Webdienste sicher ins Netz bringen. Hierfür genügen bereits drei Zeilen in der Konsole. Dies geschieht ohne öffentliche IP-Adresse, ohne VPN oder offene Ports in Ihrer Firewall.


1. Regestrierung unter https://dashboard.ngrok.com/signup 

Anschließend hat man direkt Zugriff auf sein persönliches Dashboard inkl. einer kurzen Installationsanleitung. 


2. Jetzt nur noch ngrok herunterladen und das Archiv entpacken.

wget --no-check-certificate https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-arm.tgz

tar xfvz ngrok-v3-stable-linux-arm.tgz

Hinweis: Mit Hilfe von getconf LONG_BIT findet man heraus, welche Version von Linux installiert hat (32-Bit oder &4-Bit) ist.

3. ngrok-Agent registrieren

Jetzt muss nur noch der folgende Befehl ausgeführt werden, damit der ngrok-Agent registriert wird. Anschließend kann eine Tunnelverbindung hergestellt werden.

./ngrok config add-authtoken ID

Als nächstes kann mit "./ngrok http 80" eine HTTP-Tunnelweiterleitung am lokalen Port 80 gestartet werden.

Nun kann ich z.B. direkt mit seinem Smartphone auf den Raspberry Pi im lokalen Netz zugreifen! Es war keine Firewallfreischaltung, Portweiterleitung oder DynDNS hierfür notwendig.

Eine weitere alternative wäre z.B. CloudFlare Tunnel https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/install-and-setup oder Siehe auch "GitHub Repository: Awesome Tunneling" .


Sonntag, 23. Oktober 2022

Windows - Bootmodus UEFI oder BIOS mit Hilfe von msinfo32 erkennen

Bei einem laufendem Windows kann man mit Hilfe des Windows-eigenen Programm msinfo32 zuverlässig den Bootmodus (UEFI oder BIOS) erkennen.

Mit Hilfe der Systeminformationen, lässt sich der aktuelle BIOS-Modus ganz einfach erkennen: msinfo32.exe


 Aktueller BIOS-Modus:




Raspberry Pi-hole - Lokale Namen auflösen (Conditional Forwarding)

Möchte man in seinem lokalen Netz den eigenen Server oder auch die AVM FRITZ!Box unter dem eigen Namen erreichen, klappt dies nach der Raspberry Pi-hole - Installation nicht mehr. Es wird nämlich die lokale Namensauflösung übergangen. Dies lässt sich aber mit Hilfe von Conditional Forwarding wieder konfigurieren.

Mit Hilfe von Conditional Forwarding kann man den Filter auffordern, lokale Adressen nicht beim Upstream-DNS-Server zu erfragen.

Hierfür unter "Settings" => "DNS" => "Conditional Forwarding" den folgenden Eintrag (z.B. für eine fritz.box) eintragen:



Donnerstag, 20. Oktober 2022

Agile - Open Practice Library (Softwareentwicklung, Produktentwicklung und Teamkultur)

Die Innovation Labs des Softwareherstellers Red Hat betreiben die Website "Open Practice Library". Hierbei geht es um iterative Vorgehensmodelle zur schnellen Entwicklung digitaler Produkte. Das Team dokumentiert hier verschiedene Praktiken und Prinzipien, welche die Softwareentwicklungsprozesse vorantreiben.


Die Einträge sind anhand der Prinzipien Discovery, Options, Delivery und Foundation organisiert:

Quelle: Red Hat Open Innovation Labs - https://openpracticelibrary.com

Discovery-Praktiken beginnen mit dem aktuellen Ist-Zustand und sollen helfen, wichtige Fragen zu Ergebnissen zu stellen.

Options-Praktiken untersuchen, wie man Erkenntnisse abwägen und möglicherweise die Richtung ändern kann.

Bereitstellungs-Praktiken konzentrieren sich darauf, die Optionen bereitzustellen, für die man sich entschieden hat, und Feedback von den Benutzern und Interessenvertretern einzuholen.

Grundlegende-Praktiken konzentrieren sich auf die Schaffung einer Teamkultur, Umgebungen für die Zusammenarbeit und technische Praktiken.

 

Samstag, 1. Oktober 2022

Windows - 10 / 11 von Home in Pro ändern bzw. upgraden (Fehler 0xc004f050)

Möchte man von Windows 10 / 11 Home auf Windows 10 / 11 Pro umsteigen, geht dies in der Regel ganz einfach mit einem Gültiger Schlüssel. Oft kommt es aber zu dem Fehler 0xc004f050, wenn das Upgrade mit einer "alten" Volllizenz von Windows 7, 8.1 oder Windows 10 durchgeführt wird.


Generischen Key verwenden

Um den Fehler zu vermeiden, sollte man Windows vorab mit dem generischen Key installieren bzw. ändern und anschließend mit dem richtigen Windows 10 / 11 Pro Schlüssel aktivieren.

Windows 10 / 11 Pro generischer Schlüssel: VK7JG-NPHTM-C97JM-9MPGT-3V66T

Wichtig: Die Internetverbindung bzw. WLAN sollte vor dem Tausch mit dem generischen Schlüssel gekappt werden!


Und so geht es

  • "Einstellungen" im Startmenü öffnen, oder "Win+i" drücken
  • "Updates und Sicherheit" bzw. "System" => "Info" anklicken
  • "Aktivierung" bzw. "Product Key und Aktivierung" klicken
  • Jetzt "Product Key ändern" anklicken und im neuen Fenster eingeben.


Hinweis: Man sollte beachten, dass man über diesen Weg nicht von Windows Pro auf Windows Home downgraden kann.


Anschließend die Internetverbindung wiederherstellen und nun den richtigen bzw. eigenen Windows 10 / 11 Pro Schlüssel eingeben und Windows aktivieren.

Mittwoch, 31. August 2022

Foxit PDF Reader - Stempel mit eigenem Namen versehen

Mit Hilfe des Foxit Free PDF Reader & Viewer kann Dokumente mit einem "Stempel" versehen. Leider wird in der Standardeinstellung immer der "Anmeldename" als Namenskürzel anzeigt. Mit Hilfe einer kleinen Einstellung kann man seinen eigenen Namen verwenden.


Die Änderung des Namenskürzel geht über den folgenden Dialog:

  • Menü "Datei" das Untermenü "Einstellungen" wählen.
  • Im folgenden Fenster den Eintrag "Identität" anklicken.
  • Jetzt "Vor- und Nachname" eintragen.


 

Sonntag, 28. August 2022

Markdown - Basic Formatierungsinformationen

Viele Systeme verstehen mittlerweile Markdown, in diesem Beitrag gebe ich eine kleine Einführung für die die weit verbreitete Auszeichnungssprache. Der Vorteil, Texte im Markdown Format (.md) sind einfach zu schreiben und auch im reinen Quelltext sehr gut lesbar.


Mittlerweile verstehen alle möglichen Systeme die Sprache, siehe hierzu auch https://www.markdownguide.org/tools/. Mit Hilfe von Markdown Viewern, kann man diese in fast allen Browsern betrachten. Siehe z.B. https://simov.github.io => Markdown Viewer. 

John Grubers ursprüngliche Markdown-Spezifikation und GitHubs Markdown-Variante sind ein sehr guter Einstieg in das Thema. 

Editor: https://github.com/KDE/ghostwriter

Beispiel:

# ToDo Liste

- Einkaufen im Supermarkt
- [ ] Milch
- [x] Butter
- [ ] Zucker
- ~~Einkaufen beim Metzger~~
- [Blog] Artikel lesen

[Blog]: https://www.shemel.de

# Überschrift

## Unterüberschrift

*kursiv* und **fett**

Link zu einer Webseite [shemel.de](https://www.shemel.de)

> Zitat

>> Unter-Zitat

* Liste
* Liste

1. Eins
2. Zwei

+ Punkt
  1. Unterpunkt

```javascript
alert('Hello World')
```

# Tabelle

| Spalte 1 | Spalte 2 | Spalte 3 |
| -------- | -------- | -------- |
| Zeile    | Zeile    | Zeile    |


Mittwoch, 17. August 2022

FRITZ!Box - Datenverkehr priorisieren QoS (Quality of Service)

Mit Hilfe von QoS (Quality of Service) können Dienste priorisiert werden. Die Datenpakete werden dann bevorzugt weitergegeben, während Pakete anderer Dienste etwas verzögert übermittelt werden. Diese Priorisierung der Datenpakete kann in den Fritz!Box Einstellungen vorgenommen werden.

Die Fritzbox unterscheidet zwischen drei Prioritätsstufen:

  • Echtzeitanwendungen
    • Netzwerkgeräte und -anwendungen in der Kategorie "Echtzeitanwendungen" erhalten immer soviel von der Datenrate der Internetverbindung, wie sie benötigen.
  • Priorisierte Anwendungen
    • Solange die Internetverbindung nicht von Echtzeitanwendungen ausgelastet wird, können Netzwerkgeräte und -anwendungen in der Kategorie "Priorisierte Anwendungen" bis zu 90% der Upload-Datenrate beanspruchen.
  • Hintergrundanwendungen
    • Netzwerkgeräte und -anwendungen in der Kategorie "Hintergrundanwendungen" werden bei ausgelasteter Internetverbindung immer nachrangig behandelt.

Unter "Echtzeitanwendungen" sollte der Homeoffice-Rechner eingetragen werden, damit es zu keinem Ruckeln bei den Videokonferenzen kommt.


Priorisierungsregel für Netzwerkgerät einrichten

  • Klicken Sie in der Benutzeroberfläche der FRITZ!Box auf "Internet".
  • Klicken Sie im Menü "Internet" auf "Filter".
  • Klicken Sie auf die Registerkarte "Priorisierung".
  • Klicken Sie im Abschnitt der Priorisierungs-Kategorie, der Sie das Gerät zuordnen wollen, auf "Neue Regel".
  • Wählen Sie in der Ausklappliste für Netzwerkgeräte das jeweilige Gerät aus.
  • Wählen Sie in der Ausklappliste für Netzwerkanwendungen den Eintrag "Alle" aus.
  • Klicken Sie zum Speichern der Regel auf "OK".

Quelle: https://avm.de/service/wissensdatenbank/dok/FRITZ-Box-7590/228_Internetzugang-fur-wichtige-Netzwerkgerate-und-anwendungen-priorisieren/

Donnerstag, 11. August 2022

Security - Open Source Intelligence (OSINT) Recherchen

In den Beitrag Hacking - Mit Hilfe von Google bin ich bereits auf die Sammlung und Auswertung von öffentlicher Daten eingegangen. In diesem Beitrag möchte ich auch viele weitere Tools verweisen, welche sich IT-Sicherheitsexperten (aber auch Cyber-Kriminelle) zu Nutzen machen.


Webserver-Scan (siehe auch https://sebastianhemel.blogspot.com/2016/01/spion-im-wohnzimmer-offene-webcams.html)  können mit https://www.shodan.io und https://www.binaryedge.io abgefragt werden. Hier werden in der Regel die folgenden Daten gesammelt, Webserver (HTTP/HTTPS über die Ports 80, 8080, 443, 8443), FTP (Port 21), SSH (Port 22), Telnet (Port 23), SNMP (Port 161), SIP (Port 5060) und Real Time Streaming Protocol (RTSP, Port 554).

Schnelle IP-Checks lassen sich mit https://www.abuseipdb.com durchführen.

Eine Darknet Suchmaschine- und Datenarchiv ist https://intelx.io.

Schwachstellen Informationen lassen sich mit Hilfe von https://www.cvedetails.com oder https://vulmon.com abfragen. Siehe auch Hacking - Zed Attack Proxy (ZAP) Sicherheitslücken im Browser- und App-Traffic erkennen.

Domain Informationen können durch https://viewdns.info und https://crt.sh (Certificate Search Tool) abgefragt werden.

Eine Suche nach Transaktionen, Adressen, Blöcken und eingebetteten Textdaten in den Blockchains bietet https://blockchair.com/de und https://www.bitcoinabuse.com an.

Eine Überprüfung von Phishing Seiten ist durch https://openphish.com und https://checkphish.ai möglich.

Montag, 8. August 2022

Lasttest - k6 Open Source load testing tool

Bei einem Lasttest werden bei dem zu testenden System Lasten erzeugt. Hierbei wird das Ziel verfolgt zu sehen, ob die Apllikation oder das System diese Last bewältigen kann. So sollte eine Webseite mehreren Besuchern gleichzeitig in akzeptabler Zeit eine Antwort (response) schicken können.


Einen einfachen Einstieg in Lasttests bietet K6, siehe https://k6.io/open-source/ .

Mit dem folgenden Beispiel werden bis zu 1.000 VUs innerhalb 30 sec erstellt:

import http from 'k6/http';
import { sleep } from 'k6';

export const options = {
  stages: [
    { duration: '10s', target: 50 },
    { duration: '10s', target: 100 },
    { duration: '10s', target: 500 },
    { duration: '30s', target: 1000 },
    { duration: '10s', target: 500 },
    { duration: '15s', target: 0 },
  ],
};

export default function () {
 http.get('http://localhost:8080');
 //sleep(1);
}

Quelle: https://github.com/jamct/php-performance/blob/main/load.js

Viele weitere Beispiele und Tutorials finden sich hier https://k6.io/docs/examples/ .

Mittwoch, 3. August 2022

USB-Sticks und SD-Karten mit F3 auf korrekte Kapazität prüfen

Mit Hilfe von F3 ist es möglich USB-Sticks und andere Flash-Speicher auf Integrität zu testen, um damit herausfinden zu können ob ggf. ein "gefälschtes" Speichermedien mit falschen Größenangaben gekauft wurde. Siehe auch Vorsicht vor gefälschten USB-Sticks und SD-Karten.

Installation

sudo apt-get install f3

Schnelle Kapazitätstests

sudo f3probe --destructive --time-ops /dev/sdb

Siehe auch https://github.com/AltraMayor/f3#examples.

Sonntag, 31. Juli 2022

Windows 11 - DNS-Abfragen über HTTPS (DoH) absichern

DNS over HTTPS (DoH) bzw. Verschlüsselte Namensauflösung im Internet (#DNS over TLS) ist ein Sicherheits-Feature, das die Authentizität des DNS-Servers gewährleistet und die Anfragen an diesen Dienst verschlüsselt überträgt. Microsoft hat den Support für DoH in Windows 11 und Windows 10 integriert. Alternativ ist dies auch mit Hilfe vom Pi-hole möglich. In diesem Beitrag gehe ich kurz auf die Aktivierung der Funktion ein.

DoH-Unterstützung im Web-Browser

Die aktuellen Versionen aller gängigen Browser unterstützen bereits DoH. Siehe hierzu auch Microsoft Edge - Privatsphärenschutz verbessern / Startseite entfernen. Der Browser löst dann die Adressen über seinen eigenen integrierten DNS-Client verschlüsselt auf.

DoH-Unterstützung unter Windows

Unter "Einstellungen" => "Netzwerk und Internet" kann man die Einstellungen von Ethernet oder WLAN bearbeiten. Dabei muss man von "DHCP" auf "Manuell" umstellen und den DNS-Server manuell setzen.
Hier erlaubt Windows jetzt die Auswahl einer Option für die DNS-Verschlüsselung, wenn die Adressen dieser Server in der Liste der bekannten DoH-Server vorhanden sind (Get-DNSClientDohServerAddress).

Siehe auch https://docs.microsoft.com/de-de/windows-server/networking/dns/doh-client-support.


Dienstag, 26. Juli 2022

Microsoft Edge - Privatsphärenschutz verbessern / Startseite entfernen

In diesem Beitrag möchte kurz auf die Möglichkeiten eingehen den Datenschutz in Microsoft Edge zu verbessern und die Startseite (auch in neuen Tabs) zu deaktivieren.

In den Browser-Einstellungen die folgenden Einstellungen deaktivieren:

  • "Profile / Microsoft Rewards" und "Profile / Browsing-Daten mit anderen Windows-Features gemeinsam nutzen"

Unter "Datenschutz, Suche und Dienste" die Tracking-Verhinderung auf "Streng" stellen. Ausnahmen von der Tracking-Verhinderung lassen sich, wenn nötig, hinterlegen. Zudem sollten auch alle Browserdaten gelöscht werden, wenn der Browser geschlossen wird. Auch hier lassen sich Webseiten eintragen, welche davon ausgeschlossen werden sollen.

Desweiteren müssen auch die folgenden Dienste unter "Datenschutz, Suche und Dienste" deaktiviert werden:

  • Optionale Diagnosedaten
  • Such- und Dienstverbesserung
  • Personalisieren Sie Ihr Weberlebnis

Zu guter Letzt müssen auch die folgenden Dienste unter "Datenschutz, Suche und Dienste" deaktiviert bzw. aktiviert werden:

  • Tippfehlerüberprüfung
  • Aktivieren Sie die Sicherheitsdienste der Site, um weitere Informationen zu den von Ihnen besuchten Websites zu erhalten.
  • Verwenden Sie sicheres DNS, um anzugeben, wie die Netzwerkadresse für Websites nachzuschlagen ist.

Unter "Dienste" sollte am Besten alle deaktiviert werden, da diese mit der Microsoft Cloud sprechen. Auch sollte unter "Datenschutz, Suche und Dienste / Adressleiste und Suche" die Such- und Webseitenvorschläge ausgeschaltet werden und eine datenschutzoptimierte Suchmaschine gewählt werden.

Auch sollten die Cookies von Drittanbietern blockiert werden unter "Cookies und gespeicherte Daten / Cookies und Websitedaten".

Als sehr nützlich hat sich auch die Erweiterung "I DON'T CARE ABOUT COOKIES" erwiesen.

Startseite entfernen

Die extrem überladene Startseite lässt sich mit Hilfe vom Setzen einer leeren Startseite (about:blank) umgehen. Dies geht unter "Start, Startseite und neue Registerkarten" und "Diese Seiten öffnen:".


Für neue Tabs, lässt sich dies mit dem Pluging "Custom New Tab URL" einstellen.


Montag, 27. Juni 2022

Windows 11 - Videos bearbeiten / Video Editor

Windows 10 und 11 bietet ein umfassendes Videobearbeitungsprogramm, welches viele grundlegenden Videobearbeitungsfunktionen beinhaltet. Mit dem Editor kann man Videos schneiden, 3D-Effekte hinzufügen, Filter anwenden und vieles mehr. Hierbei handelt es sich um den Nachfolger vom Windows Movie Maker.


Man kann das Videobearbeitungsprogramm in der "Fotos-"App starten oder wenn man direkt über die Suche nach "Video-Editor" starten.

Eine ausführliche Anleitung gibt es sogar direkt von Microsoft unter https://support.microsoft.com/de-de/windows/erstellen-von-filmen-mit-einem-video-editor-94e651f8-a5be-ae03-3c50-e49f013d47f6#ID0EBD=Windows_11



Sonntag, 19. Juni 2022

Synology NAS - Home-Verzeichnis für Benutzer hinzufügen incl. SSH Zugriff per Schlüssel

Wird das Synology NAS von mehreren Personen verwendet, ist es sinnvoll jedem sein eigenes Home-Verzeichnis anzubieten. So kann jeder Benutzer seinen eigenen Bereich für Daten oder auch Ordner verwenden. Anschließend kann dies auch genutzt werden, um je User einen eignen Schlüssel für den SSH Zugriff zu hinterlegen.


Benutzer-Home-Dienst aktivieren

  • Hierfür muss man die "Systemsteuerung" öffnen und dort "Benutzer und Gruppe" auswählen und dort den Reiter "Erweitert" anklicken.
  • Jetzt einen Haken bei „Benutzer-Home-Dienst aktivieren“ setzen.

Anschließend wird automatisch für jeden User ein Home-Verzeichnis angelegt. Hinweis: Ggf. macht es Sinn je User/Gruppe eine Quota (Speicherplatz Beschränkung) zuweisen.

SSH-Keys generieren und im Home-Verzeichnis ablegen

SSH-Dienst aktivieren und das unsichere TELNET ggf. nur temporär aktivieren.

  • ssh <benutzername>@<ip-adresse>
  • telnet <ip-adresse>

Wichtig ist die Verwendung des Algorithmus ED25519, ist aktuell der am meisten zu empfehlende public-key Algorithmus und in OpenSSH vorhanden.

ssh-keygen -t ed25519 -C "redleffer@192.168.1.50" cat ~/.ssh/id_ed25519.pub

Weitere Informationen dazu finden sich unter:

Dienstag, 14. Juni 2022

Excel - Text über Zellen hinweg zentrieren, ohne sie Zusammenzuführen

Es gibt in Excel auch die Möglichkeit Text zellenübergreifend zu zentrieren OHNE die Funktion "Zusammenführen und zentrieren" zu verwenden. Dies hat den Vorteil, dass man auch Spalten über eine Überschrift hinaus markieren kann. Die Funktion nennt sich "Über Auswahl zentrieren".


Überschrift über markierten Zellen zentrieren ohne sie zu verbinden

  1. Text inkl. der Zellen für die Überschrift markieren
  2. Tastenkombination "Strg + 1" (Windows) ODER im Kontextmenü "Zellen formatieren" auswählen und
  3. anschließend "Ausrichtung" => Horizontal "Über Auswahl zentrieren" => Ok

Siehe auch https://docs.microsoft.com/de-de/office/troubleshoot/excel/center-across-columns-button-disappear.


Sonntag, 12. Juni 2022

Programmierung - Halbierungsmethode (Wurzelfindung) mit Excel und Python inkl. Struktogramm

Mi Hilfe des Halbierungsverfahren, kann man Sie sich z.B. einer Wurzel nähern. Siehe auch https://de.wikibrief.org/wiki/Root-finding_algorithms => "Halbierungsmethode". Auf dieser Basis habe ich ein Struktogramm erstellt und eine Umsetzung mit Excel und Python realisiert.


Struktogramm

Dies wurde mit Hilfe des Struktogrammeditor, ein Tool des Lehrstuhls für Didaktik der Informatik der TU Dresden, erstellt.


Excel

Umsetzung in Excel (Halbierungsverfahren_Wurzel.xlsx) mit Hilfe der folgenden Formeln.


Python

Programmierung in Python (Halbierungsmethode_Wurzel.py), online ausführbar über:

 

z=float(input("Zahl ? "))
l=float(input("Linke Grenze ? "))
r=float(input("Rechte Grenze ? "))
n=float(input("Durchläufe ? "))

i=1
while i<=n:
    m=(l+r)/2
    if m**2<z:
        l=m
    else:
        r=m
    print(i, l, r)
    i=i+1

 

Quelle: c't 12/2022 S. 156

Samstag, 11. Juni 2022

Agile Softwareentwicklung - Software im Team entwickeln (Glossar)

In dem Beitrag "Agile Softwareentwicklung - GitHub Flow notwendig?" habe ich den "GitHub Flow" kurz erklärt. Etwas näher möchte ich auf die allgemeinen Begriffe (Contributor, Maintainer, Pull Request / Merge Request, Commit und Issue) in der Softwareentwicklung im Team eingehen.


Contributor

Wenn jemand als Entwickler etwas zu einem Projekt beiträgt, der darf sich offiziell Contributor (Mitwirkender) nennen. Dies trifft auch dann zu, wenn man nur einen kleinen Tippfehler in der Dokumentation beseitigt, was für viele der Einstieg in ein Open Source-Projekte ist. Da die meisten Softwareprojekte in Regel bei GitHub oder GitLab verwaltet werden, kann man mit einem eigenen Account dort sofort mit der Unterstützung beginnen.

Maintainer

Nicht jeder, kann aber sofort Änderungen am Quellcode oder der Dokumentation vornehmen. Jedes Entwicklungsprojekt benötigt einen oder mehrere Maintainer (Betreuer). Sie haben die Berechtigung, eingereichte Änderungen zu akzeptieren und in den Quellcode aufzunehmen. Zudem kümmern Sie sich um geplanten Funktionen für neue Versionen und legen fest wohin sich das Projekt entwickelt soll.

Pull Request / Merge Request

Möchte man Änderungen an einer Software vornehmen, muss mann zunächst einen neuen "Fork" (Verzweigung) anlegen. Dies ist eine lokale Kopie der aktuellen Code Basis. Jetzt kann man all seine geplanten Änderungen vornehmen. Anschließend kann man einen Request mit seinen Änderungen an das Originalprojekt stellen. Bei GitHub und Bitbucket heißen diese Request "Pull Request" und GitLab nennt sie "Merge Request". Der Maintainer prüft nun die Änderungen und entscheidet, ob sie für eine Übernahme geeignet sind.

Commit

Hinweis: Die Befehle "git commit" und "svn commit" haben denselben Namen, sie unterscheiden sich aber voneinander! Siehe auch https://www.atlassian.com/de/git/tutorials/saving-changes/git-commit.

Hat man seine Änderungen fertiggestellt (z.B. die Programmierung eines neuen Moduls), erzeugt man einen Commit. Dadurch werden die Änderungen als Entwicklungsschritt in die Quellcode-Chronik mit aufgenommen und mit einer kurze Nachricht versehen. Hierdurch sehen auch die anderen Entwickler diese in ihrer Chronik.


Sonntag, 5. Juni 2022

Windows 11 - Klassisches Kontextmenü anzeigen

Wenn man ausschließlich mit dem alte Kontextmenü arbeiten möchte, muss dafür nur ein Registry Eintrag bearbeitet werden.


Eingabeaufforderung als Administrator ausführen:


  • Windows-Startmenü => Suchfeld => cmd
  • In der Trefferliste die Eingabeaufforderung, als Administrator ausführen
  • Frage der Benutzerkontensteuerung mit Ja beantworten


Jetzt den folgenden Befehl eingeben und bestätigen:

reg.exe add "HKCU\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\InprocServer32" /f /ve


Anschließend einen Neustart des Rechners durchführen.


Freitag, 3. Juni 2022

Python - Generierung von QR-Code Bildern

Mit Hilfe der Python QR-Code-Generierungsbibliothek "qrcode" kann man ganz einfach QR-Code-Bilder generieren. Es ist auch mit "Pillow" möglich einen QR-Code in ein anderes Bild einzubetten oder ein Bild in einen QR-Code einzubetten. In diesem Beitrag zeige ich einige Beispiele.

Python QR-Code Bild-Generator: qrcode

Der QR-Code ist ein zweidimensionaler Code, der aus quadratischen schwarzen und weißen Punkten (Zellen) besteht, siehe auch https://de.wikipedia.org/wiki/QR-Code.

Python hat eine eigene Bibliothek zum Generieren von QR-Code-Bildern, siehe auch https://github.com/lincolnloop/python-qrcode.

Die Standardinstallation erfolgt mit dem folgenden Befehl:
pip install qrcode[pil]

Wenn man einen einfachen QR-Code erstellen möchte, funktioniert dies mit dem folgenden Befehl:
qr "Test Blog shemel.de" > qrcode.png

Hinweis: Ein QR-Code enthält nur eine Zeichenfolge (String).

QR-Code Bild mit Python erstellen

import qrcode

img = qrcode.make('https://www.shemel.de')

print(type(img))
print(img.size)

img.save('/home/hemel/qrcode_hemel_1.png')

Sollte der Fehler "AttributeError: module 'qrcode' has no attribute 'make'" erscheinen, bitte als Dateinamen NICHT qrcode.py wählen. Siehe auch https://github.com/lincolnloop/python-qrcode/issues/185.

Man kann auch mit Hilfe der QRCode-Klasse Details verändern:

qr = qrcode.QRCode(
    version=12,
    error_correction=qrcode.constants.ERROR_CORRECT_H,
    box_size=2,
    border=8
)
qr.add_data('htttps://www.shemel.de')
qr.make()
img = qr.make_image(fill_color="yellow", back_color="#23dda0")
img.save('/home/hemel/qrcode_hemel_2.png')


QR-Code in ein Bild einbetten

Mit Hilfe von PilImage kann man Image-Objekte direkt in andere Bilder einfügen bzw. einbetten.

Anbei ein Beispiel zum Einfügen des QR-Codes in der unteren rechten Ecke.

import qrcode
from PIL import Image

img_bg = Image.open('/home/hemel/blog.png')

qr = qrcode.QRCode(box_size=2)
qr.add_data('
htttps://www.shemel.de')
qr.make()
img_qr = qr.make_image()

pos = (img_bg.size[0] - img_qr.size[0], img_bg.size[1] - img_qr.size[1])

img_bg.paste(img_qr, pos)
img_bg.save('/home/hemel/qrcode_hemel_3.png')


QR-Code zum Bezahlen benutzen

Siehe auch c't 9/2022 S. 8 https://www.heise.de/select/ct/2022/9/softlinks/yb26?wt_mc=pred.red.ct.ct092022.008.softlink.softlink und https://de.wikipedia.org/wiki/EPC-QR-Code.

import qrcode

vwz = "Rechnung 123456789"
iban = "DE02100500000054540402"
bic = "BELADEBE"
recipient = "Beispielfirma Musterdörfer"
amount = 55.25
filename = "epc_qr"

# The docs can be found here: https://pypi.org/project/qrcode/
qr = qrcode.QRCode(error_correction=qrcode.constants.ERROR_CORRECT_M)

qr.add_data("BCD\n")
qr.add_data("002\n")
qr.add_data("1\n")
qr.add_data("SCT\n")
qr.add_data(bic+"\n")
qr.add_data(recipient[0:69]+"\n")
qr.add_data(iban+"\n")
qr.add_data("EUR"+str(amount)+"\n")
qr.add_data("\n")
qr.add_data("\n")
qr.add_data(vwz[0:139]+"\n")
qr.make(fit=True)
img = qr.make_image()
img.save(filename+".png")


Montag, 28. März 2022

Agile - (Online) Warm-up bzw. Kennenlernspiele

In dem Beitrag Agile - "Lifehack" Sammlung Selbstmanagement und Kollaboration bin ich auf das Thema "Daily-Stand-up Meetings" eingegangen. Gerade bei Online-Meetings spielen die Themen Vorbereitung, Moderation und Zeitmanagement eine sehr wichtige Rolle. Um das "Eis" bei Online-Meetings oder Konferenzen zu brechen, bieten sich vor dem eigentlichen Start Kennenlern-Spiele bzw. Warm-ups an.

Es gibt vermutlich zich hunderte Ideen für Workshop Spiele, anbei ein paar Beispiele für den Einstieg:

  • Wichtig: Die Moderation sollte hierbei etwas vorschlagen, was zum Team passt und vor allem jeden zu Wort kommen lassen. Die Dauer sollte max. 5-8 Minuten betragen, um nicht den Fokus auf das eigentliche Meeting zu verlieren!
  • Jeder malt für sich in einer Minute ein Tier, das die heutige Stimmung widerspiegelt. Anschließend zeigen alle die Ergebnisse und erklären sie gegenseitig kurz.
  • Die Teilnehmer sollen in ihrem Arbeitszimmer (bei Homeoffice) einen Gegenstand einer bestimmten Farbe suchen und in die Kamera halten.
  • Was müssten wir tun, damit das Meeting heute ein "Reinfall" wird?
  • Was ist deine Superpower?
  • Wenn Zeitreisen möglich wären, wohin würdest du reisen? Warum?


Viele weitere Ideen finden sich im Blog Wilde Workshop-Spiele.

Samstag, 26. März 2022

Hacking - Mit Hilfe von Google

Mit Hilfe von Google Hacking (Google Dorking) ist es möglich indexierten Inhalt, welcher nicht für die Öffentlichkeit gedacht war, mit Hilfe von gezielten Suchanfragen schnell und einfach zu finden. Hierzu gab es von mir bereits vor einigen Jahren den Beitrag Spion im Wohnzimmer - Offene Webcams finden.

Exploit Database

Hier gibt es einen eigenen Bereich "Google Hacking" mit den neuesten bekannten Suchbegriffen.

DorkSearch

Unter dorksearch.com kann man auf über 7.000 vorgefertigte Begriife zugreifen und sie miteinander kombinieren.




Sonntag, 20. März 2022

Hacking - Netzwerkscanner, nmap, Reverse Shell und Password Cracking mit hashcat

In den Artikel Security - Nmap Netzwerkscanner und Kali Linux und Hacking - Nützliche Tools (PassView, Windows Login Unlocker, Recovery, Process Hacker, Network Sniffer) habe ich bereits etliche Beispiele beschrieben, welche Tools Hacker verwenden und wie sie dabei vorgehen. In diesem Beitrag werde ich noch etwas tiefer ins Detail gehen.


Netzwerkscanner (Netdiscover)

Netdiscover kann auch verwendet werden, um im Netzwerk-ARP-Pakete zu untersuchen oder Netzwerkadressen mithilfe des Auto-Scan-Modus zu finden. Siehe auch https://www.kali.org/tools/netdiscover/. Hierdurch lassen sich in einem Netzwerk potenzielle Angriffsziele ermitteln.

Installation: sudo apt-get install netdiscover
Aufruf: netdiscover -r 192.168.1.0/24

Hinweis: Netdiscover staret automatisch mit der ersten Netzwerkschnittstelle, die es findet.

nmap Funktion http-enum

Mit Hilfe von http-enum findet man automatisiert Dateien oder interessante Verzeichnisse auf einem Webserver. Dabei sendet das Script weit über tausend Abfragen für gängige Dateien und Verzeichnisse an den Server. So lassen sich schnell wichtige Informationen erhalten, ob einige bekannte Dienste oder Dateien auf dem Webserver offen zugänglich sind oder nicht.

Aufruf: nmap -n --script=http-enum 192.168.1.1 oder Domain.de


WordPress: Reverse Shell

Es gibt viele verschiedene Methoden WordPress anzugreifen (z.B. WordPress - Brute-Force Angriffe mit XML-RPC und REST-API), eine davon ist Zugriff auf die WordPress-Verwaltungskonsole mit Hilfe des Metasploit Framework https://www.kali.org/tools/metasploit-framework/. Hierdurch ist es dann auch mögloch eine "Reverse Shell" als Plugin zu installieren, um so "root" bzw. Vollzugriff auf den Server zu erhalten.
Das Vorgehen ist unter https://www.hackingarticles.in/wordpress-reverse-shell/ beschrieben.

Password Cracking mit hashcat

Hashcat ist ein extrem schnelles Tool zur Passwortwiederherstellung. So kann es hochkomplexe Passwörter in kürzester Zeit knacken. Dies ist möglich, wenn Passwörter einem Wörterbuch entstammen.
Ein gutes Tutorial für den Einstieg findet sich unter https://resources.infosecinstitute.com/topic/hashcat-tutorial-beginners/.


Samstag, 12. März 2022

Datenbank - Universally Unique Identifier (UUID) als Primärschlüssel anstatt Integer verwenden

Die Verwendung von Tabellen, Spalten, Primärschlüsseln und Sekundärschlüsseln sind die Grundlagen für den Aufbau eines Datenbanksystems. Um die Datensätzen für Verarbeitung-, Zugriffs- und Speicherungszwecken nutzen zu können, werden in der Regel Tabellen  mit einer ID als Primärschlüssel und Sekundärschlüssel angelegt. Als Datenformat verwendet man meistens ein 32-Bit-Integer und aktiviert das automatische Inkrementieren für die ID mit jeder neu angelegten Zeile. Die Verwendung eines 32-Bit-Integer kann aber in bestimmten Situationen zu Problemen führen, welche sich mit Hilfe von einer anderen universell eindeutigen Kennung (UUID) umgehen lässt.

Anhand dem folgenden Beispiel der Tabelle "Raumtechnik", vergibt die Datenbank immer automatisch eine freie ID.

CREATE TABLE Raumtechnik (Id INT NOT NULL AUTO_INCREMENT, Typ VARCHAR(255) NOT NULL, Beschreibung VARCHAR(255), PRIMARY KEY (Id));

Beispiel für ein logisches Datenbankkonzept.

Integer (UNSIGNED INT / BIGINT)

Eine Möglichkeit der Optimierung wäre hier einen vorzeichenlosen Integer (UNSIGNED INT) zu verwenden. Siehe auch "Im Dezember 2014 übertraf die Aufrufzahl von Psys Video „Gangnam Style“ auf YouTube das 32-Bit-Integer-Limit von 2 147 483 647."

Id UNSIGNED INT NOT NULL AUTO INCREMENT,

So lässt sich der Zahlenraum für IDs verdoppeln von 0 bis 4 294 967 295. Für sehr große Projekte sollte daher der 64-Bit-Integer UNSIGNED BIGINT verwendet werden. Aufpassen sollte man hier aber bei Web Applikationen (JSON Format), denn JavaScript-Engines der Browser haben hier irgendwann Probleme.

Probleme von Auto-Increments

Auto-Increments können bei der Verwendung von Datenbank Clustern ggf. ein Problem werden. Denn hier erhält jeder Node einen Schreibauftrag. Damit sie sich nicht bei jedem Insert auf die nächste ID einigen müssen erhöhen die Nodes die ID nicht um +1, es wird um die Anzahl der Nodes im Cluster erhöht.

Verwendet man in seiner Applikation Import- und Export-Funktionen, kann dies in einer relationalen Datenbank (über Schlüssel mit anderen Tabellen verknüpft) beim Importieren von Datensätze aus einer anderen Datenbank zu Problemen führen. So können Einträge bereits existieren und IDs sich doppeln, die Einträge müssten somit neue IDs bekommen und in allen anderen relevanten Tabellen müssen die Fremdschlüssel aktualisiert werden. Je nach dem wie groß der Import ist, kann es hier zu sehr großen verketteten Abhängigkeiten kommen.

Verwendet man IDs in seiner WebAPI (uni.org/klausurergebnis/123), kann dies schnell zum Sicherheitsproblem innerhalb der Anwendung führen. So lassen sich IDs sehr einfach erraten und ggf. fremde Ergebnisse abrufen.
 

UUIDs Universally Unique Identifier

UUIDs können in einer Datenbank als Alternative zum Integer verwendet werden und können die oben beschriebenen Probleme beim Importieren von Daten und Zusammenführen der Datensätze verhindern.

Die UUID (Request for Comments 4122) besteht aus einer 16-Byte-Zahl, ist hexadezimal notiert und in fünf Gruppen unterteilt:

550e8400-e29b-11d4-a716-446655440000

Microsoft nennt dieses Verfahren anders, nämlich GUID (Globally Unique Identifier).

Erzeugen lassen sich die UUIDs unter PostgreSQL mit Hilfe von gen_random_uuid () und bei Microsoft SQL Servern verwendet man beim Anlegen der Tabelle den UNIQUE IDENTIFIER.

CREATE TABLE Raumtechnik (unique_id UUID DEFAULT gen_random_uuid (), Typ VARCHAR(255) NOT NULL, Beschreibung VARCHAR(255), PRIMARY KEY (unique_id));

Zukünftige Konflikte sollten mit der Verwendung von UUIDs so gut wie ausgeschlossen sein, denn eine UUID ist einzigartig und kann nur einmal vergeben werden.