Dienstag, 7. November 2023

Internet - Verbindungszeitlimit für HTTP-Anfragen (connection timeout during http request)

Es gibt viele Formen von Zeitüberschreitungen bei HTTP-Anfragen. Diese sind das Verbindungszeitlimit, das Anforderungszeitlimit oder das Time to Live Zeitlimit. In diesem Beitrag werde ich diese drei Formen näher beschreiben und Möglichkeiten aufzeigen, um diese "timeouts" per Browsereinstellungen hinauszuzögern.


Verbindungszeitlimit (connection timeout)

Zeitraum, innerhalb dessen eine Verbindung zwischen einem Client und einem Server hergestellt werden muss.

Beispiel: Man navigiert mit dem Browser (Client) zu einer Website (Server). Der Browser beginnt nun auf die Antwortnachricht von diesem Server zu warten. Diese Antwort trifft beim Client aber nie ein (z. B. weil der Server offline ist). Nach 250 Sekunden (Firefox), gibt der Browser das Warten auf (connection timeout).

Die Einstellung kann mit Hilfe von about:config angepasst werden:

  • network.http.connection-retry-timeout

Anforderungszeitüberschreitung (request timeout)

Zeitraum, in dem der Server nicht bereit war, zu lange auf die Antwort vom Client zu warten. Wurde die Verbindung zwischen Server und Client hergestellt, muss der Client den Server regelmäßig darüber informieren das die Verbindung noch besteht. Geschieht dies nicht, trennt der Server diese Verbindung. Siehe auch https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/408.

Die Einstellung kann mi Hilfe von about:config angepasst werden:

  • network.http.pipelining.read-timeout

 

Time to Live (time to live)

Beschreibt den angegebenen Wert eines Paket, wie lange das Paket in einem Netzwerk am Leben bleiben kann. In einem Netzwerk durchläuft ein Paket verschiedene Router, die sich auf dem Weg  zwischen dem Ursprung des Pakets und seinem Ziel befinden. Jedes Mal, wenn der Router das Paket erneut sendet, verringert er auch seinen TTL-Wert um 1. Wenn dieser Wert auf 0 fällt, sendet der Router das Paket nicht erneut, sondern verwirft es einfach, da das Paket nicht mehr leben soll. Hiermit soll eine Datenüberflutung des Netzwerks verhindert werden, da jedes Paket nur für eine begrenzte „Zeit“ darin verbleiben kann.

Die Einstellung kann mi Hilfe von about:config angepasst werden:

  • network.http.keep-alive.timeout

 

Samstag, 28. Oktober 2023

Datenbank - Warum Transaktionen?

In meinem Beitrag Überblick über Datenbankmanagementsysteme (DBMS) habe ich PostgreSQL im Zusammenhang mit dem Transaktionsverfahren erwähnt. Ich werde kurz erklären, für was Transaktionen im Datenbankumfeld hilfreich sind.


Transaktionen helfen dabei dass Änderungen vollständig und dauerhaft in der Datenbank gespeichert werden. Dies nennt man auch ACID-Kriterien.

Am Besten lässt sich dies mit einem Beispiel aus dem Bankensektor beschreiben "Es soll eine Überweisung von einem Konto auf ein anderes durchgeführt werden":

  1. Es wird der Kontostand des einen Kontos um 100 Euro vermindert und soll durch das Programm  später auf dem anderen Konto erhöht werden.
  2. Es kommt zu einem Fehler und der Server stürzt genau während dieser Aktion ab.
  3. In diesem Fall muss der komplette Vorgang zurück abgewickelt werden, damit keine fehlerhaften Daten in der Datenbank verbleiben.

Die einzelnen Punkte in dem Programm müssen eine TRANSACTION gehüllt werden. Gibt es am Ende  keine Probleme führt man zum Ende den COMMIT Befehl aus. Somit wird sichergestellt, dass immer nur alles oder nichts geändert. Bei Problemen kommt es zu einem ROLLBACK.


Datenbank - Überblick über Datenbankmanagementsysteme (DBMS)

Nach einem Datenbank Artikel zum Thema Universally Unique Identifier (UUID) als Primärschlüssel verwenden, möchte ich in diesem Beitrag einen kurzen Überblick über Datenbankmanagementsysteme (DBMS) geben.


Einen guten Überblick bekommt man durch die Webseite db-engines.com, sie stellt Bestenlisten bereit und berechnet die Popularität von Datenbanken anhand von Suchergebnissen.


Die Oracle-Datenbank, MySQL und Microsofts SQL Server sind die Top 3 der relationalen Datenbanken und sind die erste Wahl für viele Anwendungen.

Möchte man schnell einen ersten Prototypen entwickeln (ohne Administration einer Entwicklungsinstanz mit einer Datenbank hochzufahren), bietet sich zu SQLite an. Eine Bibliothek, die ein DBMS imitiert, aber keinen Serverdienst hochfährt. Die Daten liegen hier in in einer lokal gespeicherten Datei. Siehe auch mein Beitrag SQLite - Import CSV File - existing or new table.

PostgreSQL ist auch eine relationale Datenbank, unterstützt zum Beispiel das Transaktionsverfahren und den Datentyp JSON. Die Daten werden im JSON-Format abgelegt und sind durchsuch- und manipulierbar (ohne reguläre Ausdrücke verwenden zu müssen). Auch bieten die Funkionen LISTEN und NOTIFY eine Event-Driven-Architecture.

Beim Thema NoSQL (schemalose dokumentengestützte Datenbanken) kommt oft MongoDB zum Einsatz. Für ein Objekt was gespeichert werden soll muss somit keine Tabelle mit Spalten und Datentypen angelegt werden. Gleiche oder ähnliche Datenobjekte speichert man hier in einer Collection.

Elasticsearch verwendet man, wenn man große Datenmengen mit viel Text durchsuchbar speichern möchte z.B. für eine Suchmaschine.


Sonntag, 22. Oktober 2023

Montag, 16. Oktober 2023

REST Webservice - Mittels Postman HTTP-APIs testen

HTTP-Schnittstellen (z.B. REST oder SOAP) werden in fast allen modernen Webanwendungen verwendet. So ist es möglich über eine API Datensätze zu erstellen (PUT), zu lesen (GET), zu ändern oder zu löschen (siehe auch HTTP Request Methods). Fehler in der API sollten mittels Tests (Unittests) schnell gefunden werden, da Fehlfunktion fatale Auswirkungen haben können. Zusätzlich bieten sich aber auch Integrationstests mit Hilfe von Postman an. Auf diese Funktion gehe ich kurz in diesem Artikel ein. Nur so kann sichergestellt werden, das eine Software wie erwartet funktioniert.


Mit Hilfe von Postman kann man die APIs bequem testen und gleichzeitig Funktionen für automatische Tests verwenden.

Der Download von Postman erfolgt unter https://www.postman.com .

Es muss natürlich eine öffentliche REST-API zur Verfügung stehen, ich verwende hier als Beispiel https://www.predic8.de/rest-beispiel.htm, ein Projekt der predic8 GmbH an .

Hilfreich ist zudem die Postman-Dokumentation https://learning.postman.com/docs/introduction/overview/ .

Postman-Collection anlegen

GET https://api.predic8.de/shop/v2/products

Testen kann man jetzt den Request mit einem Klick auf "Send", jetzt wird eine Liste von  Produkten angezeigt.

GET https://api.predic8.de/shop/v2/products/13 => Einzelnes Produkt
GET https://api.predic8.de/shop/v2/vendors/3 => Einzelner Hersteller
GET https://api.predic8.de/shop/v2/orders/4 => Eine Bestellung
POST https://api.predic8.de/shop/products/ => Anlegen eines Produkt

Beispiel Response

{
    "meta": {
        "count": 19,
        "start": 1,
        "limit": 10,
        "next_link": "/shop/v2/products?start=11&limit=10"
    },
    "products": [
        {
            "id": 19,
            "name": "Grapes2,",
            "self_link": "/shop/v2/products/19"
        },
        {
            "id": 18,
            "name": "Grapes1,",
            "self_link": "/shop/v2/products/18"
        },
...
    ]
}

Mit Postman wurde die jeweiligen Endpunkte der API aufgerufen und es gab auch eine Antwort (Response) vom Server, aber ist dies jetzt auch die Antwort welche man erwartet hat?

Integrationstests mit Postman

Beim Aufruf von GET products wird ein Test hinterlegt (Prüfung Statuscode = 200).

  • Tab "Tests" anklicken
  • JavaScript Code hinzufügen (Postman zeigt im rechten Bereich bereits einige Vorschläge an)


pm.test("Status code is 200", function () {
    pm.response.to.have.status(200);
});

Diese Methode lässt sich einfach erweitern unnd mann den HTTP Status inkl. der zurückgegebenen Daten mit den zu erwarteten Werten abgleichen. 

Auch lassen sich Tests der einzelnen Endpunkte umsetzen und so eine "Reise" eines User nachbauen. Der folgende Test nimmt die ID des Response-Body eines neu angelegten products und schreibt diese in die Variable productId.

const body = JSON.parse(responseBody); pm.collectionVariables.set("productId", body.id);

In den nachfolgenden Requests, kann man diese Variable jetzt mit doppelt geschweiften Klammern verwenden /products/{{productId}} .


Quelle: https://stackoverflow.com/a/58325002

Samstag, 14. Oktober 2023

Windows - Screenrecorder / Bildschirmvideos aufnehmen

Für die einfache Aufnahme von Bildschirmvideos (Screenrecording) gibt es Open-Source- und  Freeware-Programme (wie z.B. CamStudio). Oft ist aber eine Bildschirmaufnahme mit Standardtools und Bordmitteln möglich, welche ich in diesem Beitrag kurz beschreibe. Zum Bearbeiten, siehe auch Windows 11 - Videos bearbeiten / Video Editor.


Windows (ab Version 10) Xbox Game Bar

Das Hilfsprogramm lässt sich einfach mit "Windows-Taste+G)" aufrufen. Es macht Screenshots und zeichnet Videos auf. Über eine Kontrollleiste lässt sich die Aufzeichnung stoppen, die MP4-Datei liegt im Videoverzeichnis des jeweiligen Benutzers.

  • Windows+Alt+Drucken => erstellt einen Screenshot
  • Windows+Alt+R => startet oder beendet die Aufnahme
  • Windows+ Alt+M => Mikrofoneingang aufnehmen

 

Windows 11 Snipping Tool

Mann kann zwischen Screenshot und Video wechseln, danach kann man einen Rahmen aufziehen und als MP4-Datei ablegen. Ton kann nicht mit aufgezeichnet werden! 


VLC Media Player

Auch hier kann das Monitorbild aufgenommen werden, diese Funktion lässt sich im "Medien-Menü" auswählen.

  • Dialog => "Konvertieren/Speichern"
  • "Aufnahmegerät öffnen" => "Aufnahmequelle" => "Desktop"
  • Bildwiederholrate für die Aufnahme" auf "30 f/s" hochsetzen

Nach Klick auf "Konvertieren/Speichern" öffnet sich einen Dialog zum Speichern. Anschließend nur noch die "Start" anklicken.


Sonntag, 17. September 2023

Agile - Argumentationswippe (Pro- und Kontra-Liste)

Gerade bei Retros im Team bzw einer größeren Gruppe werden Pro- und Kontra-Listen an einer Moderationswand gesammelt. Siehe auch zum Beispiel Siehe auch Agile - "Lifehack" Sammlung => Team-/Projekt Retrospektiven.


Eine digitale Alternative ist die Argumentationswippe (https://argumentationswippe.de). 

Die Retro-Teilnehmer sammeln ihre Argumente und können sie so auf die eine oder andere Seite der "Wippe" sortieren.

Donnerstag, 14. September 2023

Scamming - Spamanrufe herausfiltern (Android), Website/Anrufe melden

Der Onlinebetrug (Scam) verursacht jedes Jahr Milliardenschäden. Darunter zählen zum Beispiel vermeintliche Supportanrufe, Schockanrufe oder auch Enkel- und Kindertrick-SMS und Anlagebetrug. Ich beschreibe kurz, wie man Spam-Anrufe auf dem Smartphone herausfiltert und wo man Spam-Anrufe melden kann.

Spam-Anrufe herausfiltern (Android)

Unter Android kann man Spam-Anrufe filtern und blockieren.

  1. "Telefon-App" auf dem Smartphone öffnen.
  2. Oben rechts auf das "Drei-Punkt-Menü" und "Einstellungen" auswählen.
  3. "Anrufe-ID und Spam" auswählen.
  4. Aktivieren der Optionen "Anrufe- und Spam-ID anzeigen" und "Spamanrufe herausfiltern".


Spam-Anrufe bei Bundesnetzagentur melden

Telefon-Spam kann man bei der Bundesnetzagentur meldet. Auf der folgenden Webseite gibt es viele Möglichkeiten, wie z.B. Belästigende Anrufversuche, Unerlaubte Telefonwerbung oder auch Ping-Anruf.

https://www.bundesnetzagentur.de/DE/Vportal/AnfragenBeschwerden/Beschwerde_Aerger/start.html

Ein gutes Beispiel für einen "Schockanruf", findet sich bei der "Polizeiliche Kriminalprävention Hamburg: Der Schockanruf".

 

Mittwoch, 13. September 2023

Raspberry Pi-hole - Spezialisierte Blacklist für SmartTVs

Nutzt man zu Hause die Funktionen seines SmartTVs, ist es sinnvoll für den PiHole spezialisierte Blacklists zu verwenden.

Eine öffentliche Sammlung von Domains gibt es zum Beispiel hier:

 

Sonntag, 27. August 2023

Datenbank - CSV-Dateien mit SQL abfragen (SQL connect to CSV Data)

Mein letzter Beitrag zum Thema CSV ist schon etwas länger her (SQLite - Import CSV File - existing or new table) ;-) . Es gibt mehrere Möglichkeiten CSV-Dateien "wie eine Datenbank" zu verwenden, wie z.B. CsvJdbc, DuckDB und WhatTheDuck.


CsvJdbc (schreibgeschützter JDBC-Treiber)

CsvJdbc ist ein schreibgeschützter JDBC-Treiber. CSV-Dateien (Comma Separated Value) können als Datenbanktabellen verwendet werden. Es eignet sich zum Schreiben von Datenimportprogrammen oder zum Analysieren der Dateien.
Eine Verbindung zu den CSV-Daten kann zum Beispiel mit dem Squirrel SQL Client erfolgen (siehe auch https://www.cdata.com/kb/tech/csv-jdbc-squirrel-sql.rst).

DuckDB Datenbank-Engine bzw. WhatTheDuck

DuckDB bzw. WhatTheDuck eignet sich für die Verarbeitung und Speicherung von tabellarischen Datensätzen aus CSV-Dateien. So lassen sich CSV-Dateien mit SQL-Abfragen bearbeiten um eine interaktive Datenanalyse oder gleichzeitige große Änderungen an mehreren Tabellen durchzuführen.

Dank WhatTheDuck kann man dies direkt im Browser durchführen und die Abfragen der SQL-Statements lassen sich anschließend wieder im CSV-Format herunterladen.


 

Sonntag, 20. August 2023

Raspberry Pi-hole - Android ignoriert PiHole DNS

Ich hatte bei meinem Google Pixel Android Smartphone das Problem, dass die DNS-Einstellungen einer (per DHCP zugewiesen) mein PiHole umgangen wurde "Android sometimes bypassing the PiHole".


Dies kann folgende Ursachen haben:

  • Android 9 und höher verfügt über eine private DNS-Option, die Google DNS im automatischen Modus verwendet. "Private DNS" sollte "deaktiviert sein". Überprüft daher dies unter Einstellungen/Netzwerk und Internet/Privates DNS.
  • Durch das Anbieten eines anderen DNS-Server (z.B. FritzBox 2. DNS Eintrag). Pi-hole sollte der einzige für Clients verfügbare DNS-Server sein.
  • Android werwendet IPv6, "IPv6 deaktivieren", um zu überprüfen, ob das die Ursache ist? => Dies war auch genau mein Problem. Ich habe auf meiner FritzBox im Heimnetzwerk IPv6 komplett deaktiviert.

  • Android verwendet heimlich 8.8.8.8 (Google DNS) als sekundären DNS.


Sonntag, 6. August 2023

VW ID.3 / e-UP - Sensoren und Fehlerspeicher auslesen + Akkugesundheit mit OBD2 Dongle bestimmen - State of Health (SoH)

Auch wenn die Ladeanzeige eines VW ID.3 oder VW e-UP 100 Prozent anzeigt, nimmt die nutzbare Kapazität des Lithium-Ionen Akkus (aufgrund chemischer Reaktionen im Inneren der Zellen) mit der Zeit ab. Ich zeige daher in diesem Beitrag, wie man die aktuell nutzbare Kapazität (Gesundheitszustand "SoH" des Akkus) feststellen kann.


Hintergrund: Aktuell sind die Hersteller nicht verpflichtet, den Zustand der Batterie des Fahrzeugs für Kunden sichtbar zu dokumentieren. Das Batteriemanagementsystem (BMS) protokolliert allerdings alle Lade- und Entladevorgänge und ermittelt so den "State of Health" (SoH).


App "Car Scanner" installieren und "OBD2 Dongle" kaufen

Beim VW e-UP kann mit Hilfe der App "Car Scanner" und einem "OBD2 Dongle" der tatsächlich nutzbare Energiegehalt ausgelesen werden.

Car Scanner ELM OBD2 App:

OBD2 II Mini ELM327 V2.1 Bluetooth KFZ Adapter ca. 8 EUR bei Amazon.


Vgate iCar 2 Wi-Fi OBD2 Scanner ca. 26 EUR bei Amazon.

"OBD2 Dongle" im Fußraum anbringen

Der Dongle muss im Fußraum an der Unterseite (Fahrerseite links) angebracht werden.



"OBD2 Dongle" via Bluetooth koppeln und "Car Scanner" App starten

Der OBD2 Dongle muss jetzt per Bluetooth oder WLAN mit dem Smartphone verbunden werden (Zündung am Besten anschalten!). Das Passwort hierfür ist in der Regel "1234" oder "0000".

 

In der Car Scanner App muss jetzt noch das korrekte Fahrzeug Verbindungsprofil "Volkswagen EV MEB: ID.3" oder "Volkswagen e-UP! gen.2 (32kW)" und der Adapter OBDII ELM327 "Bluetooth: ODBII" ausgewählt werden.

Sensoren in der "Car Scanner" App auslesen und "SoH" State of Health ausrechnen

Unter "Sensoren", muss jetzt der Parameter "maximaler Energiegehalt der Traktionsbatterie" ausgelesen werden. Hierfür kann auch der Filter verwendet werden, wenn man nicht alle Sensoren durchscrollen möchte.

Hinweis: Leider funktioniert beim VW eUP die Anzeige des "maximaler Energiegehalt der Traktionsbatterie" nicht! Bei den ID Modellen sollte es aber keine Probleme geben. Für den eUP bietet sich aleternativ die Lösung über OBD Amigos an.

Die aktuelle Kapazität der Batterie wird jetzt in Wh angezeigt.

In Verbindung mit der Netto-Kapazität (32,3 kWh) des e-UP kann jetzt SoH errchnet werden.

SoH = (29.800 Wh / 32.300 Wh) * 100 = 92,26%

Alternativ kann mann auch den SOH-Wert bei jeder Inspektion in der Werkstatt abfragen und dokumentieren lassen. Die Hersteller sichern dem Kunden im Rahmen der Garantie eine Kapazität von 70-80 Prozent der Nennkapazität auf sieben oder acht Jahre zu.

Beispiel Garantie VW:

Quelle: https://reachinfo.volkswagen.com/idhub/content/dam/onehub_master/pc/offers-and-products/garanties/2019_05_BEV_Garantie_der_Volkswagen_AG_im_Markt_Deutschland.pdf


Sonntag, 30. Juli 2023

Retro - ISA zu USB-Adapter USB-Speicher als Laufwerk für MS-DOS-PCs nutzen mit CH375

Mit Hilfe einer 8-Bit-ISA-Karte auf dem sich der USB-Interface-Chip CH375 befindet ist es möglich einen USB-Speicherstick als DOS-Laufwerk für ältere PCs einzubinden. Dies funktioniert z.B. mit meinem DELL 333D Intel 386 DX/33 mit MS-DOS 6.22.


Schon länger gibt es für IBM-kompatible PCs, welche einen ISA-Bus (8-Bit-ISA-Slot) besitzen, einen ISA-USB-Adapter.

Die ISA USB Adapter Platine gibt es für ca. 30-40 EUR bei Amazon.


Die Daten werden zwischen dem parallelen 8-Bit-Bus und dem seriellen USB-Port durch den Interface-Chip CH375 übertragen.

Damit die Karte unter DOS funktioniert, muss ein USB-Stick (1 GB - 2 GB genügen^^) verbunden sein und am Besten mit einer einzelnen FAT16-Partition mit einer Größe von 512 MB oder weniger.

Anschließend die folgenden Zeilen zu CONFIG.SYS hinzufügen:
LASTDRIVE=Z
DEVICE=C:\CH375\CH375DOS.SYS @260 #07


Den Treiber findet man z.B. hier https://ia802505.us.archive.org/view_archive.php?archive=/30/items/ch375-isa-usb-cd/CH375%20ISA_USB_EN.zip&file=CH375%20ISA_USB_EN%2FDOS%20driver%20and%20description%2FCH375DOS.SYS


Mittwoch, 26. Juli 2023

Rund um Linux - Shellbefehle dank "explainshell.com" verstehen

Wie kann man verstehen, was genau ein Shellbefehl macht ohne die jeweiligen Manpages zu lesen? Die Webseite explainshell.com kann hier helfen! Nützliche Befehle bzw. Beispiele findet man in meinem Beitrag Rund um Linux - Einige nützliche Befehle für die Shell II (Download mit wget und seq).

Die Webseite explainshell.com durchsucht Informationen von über 30.000 Manpages.

Dennoch kann es vorkommen, dass Parameter nicht ermittelt werden können. Hier hilft dann nur eine manuelle Recherche in den jeweiligen Manpages.

Donnerstag, 18. Mai 2023

Linux - Terminal ist eingefroren (Strg-S)

Kurzer aber nützlicher Tipp, falls auch euch das Terminal einfriert.

Führt man stty -ixon aus, wird verhindert, dass "Strg-S" das Terminal anhält bzw. pausiert. Diesen Befehl am Besten in der Konfigurationsdatei des Terminals (~/.bashrc) eintragen.

# enable the freeze/unfreeze behavior CTRL-S and CTRL-C
stty -ixon

Hintergrund: ixon und ixoff werden verwendet, um darauf zu bestehen, dass "Strg-S" und "Strg-Q" als Kontrollflusssignale (Bildlaufsperre) interpretiert werden. 

Weitere Infos zu stty finden sich hier https://tldp.org/HOWTO/Serial-HOWTO-11.html#ss11.4.


Sonntag, 30. April 2023

ChatGPT - Hacking Kommandos

In dem Beitrag "ChatGPT - Einstieg, Kommandos, Erweiterungen und Schnittstelle OpenAI" ging ich bereits auf die Basics von ChatGPT ein. In diesem Artikel gehe ich kurz auf die Unterstützung von ChatGPT als "Hacking-Tool" ein.

Stellt man die richtigen Anfragen an ChatGPT, kann die KI nützliche Informationen über den Einsatz von Hacking-Tools liefern. Auch lässt sich Quellcode auf Sicherheitslücken untersuchen und ChatGPT erklärt wie diese ausgenutzt werden können. Die KI kann zudem Phishing-Mails bewertet und E-Mails umformulieren, damit diese seriöser klingen.

Einsatz von Hacking-Tools (Kommando)

Wie würde ein Pentester im Rahmen eines Pentests vorgehen, um Sicherheitslücken in einem Netzwerk oder bei einer Webseite zu finden?

Wie würde Schritt 2 ganz konkret ablaufen?


Sicherheitslücken in einer WordPress-Installation finden (Kommando)

Wie würde ein Pentester Sicherheitslücken in einer WordPress-Installation finden, um die Kontrolle zu übernehmen?


Quellcode Analyse (Kommando)

Enthält der folgende Code Sicherheitslücken?, gefolgt von dem Quellcode

E-Mail (Text) umformulieren (Kommando)

Kannst Du die Mail so umformulieren, dass sie einen vertrauenswürdigen Eindruck macht?


Quelle: c't 8/2023 S. 108


Mittwoch, 19. April 2023

Netzwerkgrundlagen - Lernen mit der kostenlosen Simulationssoftware "Filius"

Wie funktioniert das Internet? Was ist ein DHCP- oder DNS-Server? Oft haben Schüler und Azubis keinerlei Kenntnisse der Netzwerktechnik und können daher diese Basics nichrt erklären bzw. werden in der Schule nicht vermittelt.

Mit der kostenlosen Software "Filius" kann lassen sich diese Netzwerkgrundlagen vermitteln. Dies erfolgt durch eine Simulation, also komplett ohne zusätzliche Hardware und Kosten.

Filius erklärt dabei das Zusammenspiel von Client und Server und vermittelt auch die Aufgaben von DHCP-, DNS- und Webservern einfach und verständlich.

Die Software kann man auf der Website www.lernsoftware-filius.de kostenlos herunterladen. Die Quelltexte zu Filius sind öffentlich verfügbar unter gitlab.com/filius1/filius.

Kostenloses Unterrichtsmaterial zu Filius, gibt es auf der Website des Autors:

und auf der Filius-Website:

 

Sonntag, 2. April 2023

Windows-Subsystem für Linux (WSL) - Passwort zurücksetzen (Reset Password)

Installiert man Linux mit WSL unter Windows (https://sebastianhemel.blogspot.com/2020/12/windows-subsystem-fur-linux-wsl.html), wird man aufgefordert, einen Benutzernamen und ein Kennwort zu erstellen. Dieser Benutzer wird dann automatisch angemeldet, wenn man Linux mit WSL startet. Verwendet man einen "Befehl mit sudo", muss man das gesetzte Passwort eingeben.



In diesem Beitrag beschreibe ich, was man tun kann falls man das Passwort vergessen hat.

Um das Linux-Passwort mit WSL zurückzusetzen, muss man folgendes tun:

  • Wechsel auf den Standardbenutzer root (erfolgt über die Eingabeaufforderung cmd)
    • ubuntu config --default-user root
    • debian config –default-user root
    • kali config –default-user root
  • Passwort für den "normalen" Benutzer zurücksetzen
    • Startet man nun die Linux-Distribution, ist man als root angemeldet. Und man kann das Passwort für das normale Benutzerkonto zurücksetzen.
    • Username ggf. mit ls /home prüfen ;-)
    • passwd username
  • Vom root Standardbenutzer wieder auf den "normalen" Benutzer wechseln
    • ubuntu config --default-user username

 

Sonntag, 12. März 2023

IT Forensik - Datei in Bild verstecken oder finden (strings, binwalk)

Eine beliebige Datei lässt sich mit einem Trick ganz einfach mit einer Bilddatei verschmelzen und ist somit auf den ersten Blick nicht auffindbar. Aber mit den Linux Tools Strings und Binwalk können versteckte Dateien wieder aufgespürt werden.


1. Schritt "Dateien packen"

Ales erstes legt man mit Hilfe von z.B. 7-Zip der WinRAR zwei Dateien in ein Archiv. Dieses kann auch zusätzlich mit einem Passwort geschützt sein.

2. Schritt "Dateien zusammenführen"

Bit dem folgenden Befehl in der Kommandozeile (cmd) können jetzt die Dateien zusammengeführt werden.

copy /b Landschaft.jpg + Downloads.zip D:\


Es lässt sich jetzt gut erkennen, dass die "neue" Datei Landschaft.jpg deutlich mehr Speicherplatz belegt.

Analyse mit "Strings"

sudo apt install binutils
strings Landschaft.jpg


Strings druckt die Zeichenketten druckbarer Zeichen in Dateien und gibt sie in der Konsole aus. Man sieht sofort, es befinden sich zwei Dateinamen darunter.


Analyse mit "Binwalk"

sudo apt install binwalk
binwalk Landschaft.jpg


Binwalk durchsucht binary images nach eingebetteten Dateien und ausführbarem Code. Man erkennt sofort, dass es sich um ein Zip Archiv handelt.


Sonntag, 5. März 2023

ESP32 - WLAN-Kamera mit ESP32-CAM-Modul (Tasmota)

Mit Hilfe der Tasmota Firmware, welche eigentlich für Sensoren und Schalter verwendet wird, kann man auch sehr gut die Kamera des ESP32-CAM-Modul betreiben. Das ESP32-CAM-Entwicklungsboard mit Kameramodul gibt es schon für ca. 15 EUR. Die Anwendungsgebiete wären z.B. Webcam, Beobachtungs Kamera oder auch Gesichtserkennung.


ESP32 Cam – Verbindung mit USB Brücke (FTDI)

Leider hat das ESP32-CAM-Modul keine direkte USB-Schnittstelle. Um die Programmierung durchführen zu können benötigt man einen USB to Serial Konverter. Dieser FTDI (Yizhet FTDI Serial Adapter FT232RL USB zu TTL Adapter 3,3V / 5V Modul) kostet ca. 3-4 EUR.


Hinweis: Bitte auf die richtige Spannung von 3.3V des FTDI achten!

Für die Verkabelung habe ich ein Steckbrett und Pinheader Kabel verwendet.

  1. Strom Verbindung herstellen (3,3V und Masse (GND)) verbinden
  2. Datenleitungen (RX/TX) anschließen
  3. Verbindung zwischen Masse und IO0 wird NUR zum Programmieren gesteckt und danach wieder entfernt. Vor der Programmierung sollte man ggf. ein Reset durchführen.


Tasmota Webcam Server installieren

  1. Schritt: Firmware aufspielen, hierfür benötigt man nur einen Browser, welcher auf die USB-Schnittstelle Zugriff hat.
  2.  Schritt: Verbindung zwischen Masse und IO0 kappen, damit die Konfiguration (für z.B. WLAN) erfolgen kann.

    • nn
  3. Schritt: Einstiegsseite (IP-Adresse des ESP32) zeigt das Kamerabild

Übersicht über die Konfigurationsoptionen des Kamera-Webservers in Tasmota https://cgomesu.com/blog/Esp32cam-tasmota-webcam-server/#webcam-server-additional-configurations.

Eine weitere Alternative Firmware ist https://github.com/easytarget/esp32-cam-webserver, diese lässt sich aber nicht direkt per Browser installieren (siehe auch Arduino IDE für ESP32 einrichten). Auch interssant ist die folgende KI Firmware https://jomjol.github.io/AI-on-the-edge-device/index.html.

Quelle c't 6/2023 S. 30

Sonntag, 26. Februar 2023

ffmpeg - mp3-Datei Coverbild hinzufügen

Mit Hilfe von ffmpeg ist es möglich ein Coverbild in eine mp3-Datei nachträglich hinzuzufügen, ohne das man ein "mächtiges" Tool installieren muss.

Dies ist mit dem folgenden Konsolen Befehl möglich: 

ffmpeg -i input.mp3 -i cover.png -c copy -map 0 -map 1 output.mp3

Siehe auch http://www.ffmpeg.org/ffmpeg-all.html#mp3.

ChatGPT - Einstieg, Kommandos, Erweiterungen und Schnittstelle OpenAI

In diesem Beitrag gehe ich kurz auf die Basics von ChatGPT (https://de.wikipedia.org/wiki/ChatGPT) ein und welche Tools einen Mehrwert bieten. Da es sich um den Prototyp eines Chatbots handelt, sind die Dialoge für den Austausch mit der sprachbasierten Anwendung sehr wichtig! Andernfalls wird die Qualität der Ergebnisse nicht zufriedenstellend sein.


Einstieg in ChatGPT

Um mit ChatGPT loslegen zu können, muss man sich einen Account anlegen.


Wichtig für die Anfragen an ChatGPT ist der jeweilige Gesprächskontext. Ändert man diesen, sollte in der Menüleiste immer ein neuer Chat gestartet werden!

 
Beachten sollte man außerdem, dass ChatGPT nicht verrät aus welchen Quellen die Aussagen bzw. Antworten vom Chatbot stammen! Daher sollte man die Aussagen ggf. überprüfen und kritisch hinterfragen!

Nützliche Kommandos

Text überarbeiten:

  • Hier ist ein Text: [DEIN TEXT]
  • Formuliere mir diesen Text leicht verständlich um.

Codegenerierung:

  • Zeige mir, wie ich in Python eine HTTP-Anfrage stellen kann.


Text in Tabelle umwandeln:

  • Erstelle eine Tabelle aus diesem Text: Erstelle eine 2-Spalten-Tabelle, in der die erste Spalte die Aktie enthält Tickersymbol für Apple, Google, Amazon, Meta und die andere Spalte enthält die Namen der Unternehmen. 


Weitere Sammlungen von "Prompt´s" bzw. Nutzungsbeispiele finden sich hier:


Erweiterungen für Browser und Apps

 

Quelle: c't 5/2023, S. 60

Donnerstag, 23. Februar 2023

Linux - Bildvergleich bzw. "Finde den Fehler" mit Kommandozeile (ImageMagick)

Mit Hilfe von ImageMagick lassen sich viele Konvertierungen oder Veränderungen an Bildern vornehmen. Siehe dazu auch meine Beiträge Linux - PDF in JPG mit der Befehlszeile/Kommandozeile konvertieren oder ImageMagick - Wasserzeichen (watermark) einem Bild hinzufügen. In diesem Beitrag zeige ich kurz, wie man "Fehler" bei einem Bildvergleich sehr schnell finden kann.


Sollte ImageMagick noch nicht installiert sein, kann man dies mit dem folgenden Befehl tun:
sudo apt install imagemagick


Ein Vergleich von zwei ähnlichen Bildern ist mit dem folgenden Befehl möglich:
compare Bildvergleich_1.png Bildvergleich_2.png Diff.png

Die durchgehend "roten" Bereiche zeigen den jeweiligen Unterschied an:


 

Sonntag, 19. Februar 2023

Balkonkraftwerk - Hoymiles Wechselrichter auslesen (DTU bzw. AhoyDTU oder OpenDTU)

Hoymiles ist ein weltweit führendes Unternehmen für Mikro-Wechselrichter. Der Hoymiles HM-300 ist der perfekte Mikrowechselrichter für ein kleines Balkonkraftwerk und eignet sich für die Solarstromproduktion mit einem Solarpanel bis zu einer Leistung von 380 Watt Peak. Zur Anlagenüberwachung wird laut Hersteller eine DTU Lite benötigt (Kostenpunkt ca. 150 €).


Um den Hoymiles auszulesen, benötigt man aber nicht unbedingt den DTU WLite des Herstellers!

Als Alternative gibt es das Selbstbau-Bastelprojekte mitteles AhoyDTU bzw. OpenDTU. Die Kosten hierfür betragen nur ca. 10-30 €.


Weitere Informationen unter:


JSON Crack - Besserer Überblick für komplexe JSON-Daten

Mit Hilfe der JavaScript Object Notation (JSON) ist z.B. ein Datenaustausch zwischen Servern und Applikationen möglich. Die JSON-Daten sind bereits relativ gut strukturiert und in einem Editor lesbar. Verwendet man aber eine Vielzahl von Objekten, kann man dennoch die Übersicht schnell verlieren. Mit Hilfe des Open-Source-Tool JSON Crack kann man den Code sehr schnell in übersichtliche Grafiken umwandeln.


Für JSON Crack ist keine Registrierung erforderlich! Mann öffnet den https://jsoncrack.com/editor im Browser und ersetzt den Beispiel-JSON-Code im linken Teil des Bildschirms durch seinen eigenen oder importiert eine beliebige Datei. Rechts sieht man sofort die Visualisierung des JSON-Codes.


Die aktuelle Grafik kann man als PNG-Datei herunterladen. Dies kann sehr hilfreich sein, um die Visualisierung anderen zu zeigen.


Montag, 9. Januar 2023

Windows Subsystem für Linux (WSL) - Version 1.0 veröffentlicht

Gegen Ende 2022 hat Microsoft die Version 1.0 des Windows Subsystem für Linux veröffentlicht. 

Wichtig: Es ist jetzt zur Installation der neuesten Version, der direkte Weg über der Microsoft Store empfohlen!


Es ist wohl nicht mehr sichergestellt, dass man über die Kommandozeile (wsl --install bzw. wsl --update) die jeweils aktuelle  Version erhält.


Freitag, 6. Januar 2023

Twitter - Suchen und recherchieren inkl. Twitter ID (user_id)

In diesem Beitrag gehe ich kurz auf die Möglichkeiten ein, auf Twitter zu recherchieren und wie man bestimmte Tweets finden kann. Auch lassen sich hierdurch ggf. Fake-Profile entschlüsseln.

Antworten an ein bestimmtes Profil


 Suche nach Nutzername des Profils und Tweets ausschließen

Erweiterte Suche sehr hilfreich

Über das "Drei-Punkte-Menü" neben dem Suchfeld, kann man Sie erreichen. Alternativ geht dies auch direkt über https://twitter.com/search-advanced .


Twitter ID (user_id)

Jedes Profil hat eine eindeutige ID und ändert sich somit niemals (auch nicht, wenn der Name des Accounts geändert wird).


Mit Hilfe der ID lassen sich dann viele weitere Suchbefehle (https://github.com/igorbrigadir/twitter-advanced-search) und Services nutzen, um so ggf. Fake Profile aufzuspüren.

Nützliche Tools:

  • BirdHunt sucht nach lokal begrenzten Tweets.
  • Spoonbill protokolliert Änderungen an Twitter-Profilen.
  • Socialbearing hilft bei der Analyse von Twitter-Profilen.